{"version":3,"sources":["webpack:///./node_modules/@emotion/sheet/dist/sheet.browser.esm.js","webpack:///./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack:///./node_modules/@emotion/cache/dist/cache.browser.esm.js","webpack:///./node_modules/@emotion/core/dist/emotion-element-04d85134.browser.esm.js","webpack:///./node_modules/@emotion/css/dist/css.browser.esm.js","webpack:///./node_modules/@emotion/core/dist/core.browser.esm.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Type.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Math.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/react-device-detect/main.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Registry.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Path.js","webpack:///./node_modules/antd-mobile/node_modules/rc-collapse/es/PanelContent.js","webpack:///./node_modules/antd-mobile/node_modules/rc-collapse/es/Panel.js","webpack:///./node_modules/antd-mobile/node_modules/rc-collapse/es/openAnimationFactory.js","webpack:///./node_modules/antd-mobile/node_modules/rc-collapse/es/Collapse.js","webpack:///./node_modules/antd-mobile/node_modules/rc-collapse/es/index.js","webpack:///./node_modules/antd-mobile/es/accordion/index.js","webpack:///./node_modules/rmc-dialog/es/LazyRenderBox.js","webpack:///./node_modules/rmc-dialog/es/Dialog.js","webpack:///./node_modules/rmc-dialog/es/DialogWrap.js","webpack:///./node_modules/rmc-feedback/es/TouchFeedback.js","webpack:///./node_modules/antd-mobile/es/_util/getDataAttr.js","webpack:///./node_modules/antd-mobile/es/badge/index.js","webpack:///./node_modules/antd-mobile/es/action-sheet/index.js","webpack:///./node_modules/antd-mobile/es/activity-indicator/index.js","webpack:///./node_modules/antd-mobile/es/icon/loadSprite.js","webpack:///./node_modules/antd-mobile/es/icon/index.js","webpack:///./node_modules/antd-mobile/es/button/index.js","webpack:///./node_modules/rmc-picker/es/MultiPickerMixin.js","webpack:///./node_modules/rmc-picker/es/MultiPicker.js","webpack:///./node_modules/rmc-date-picker/es/DatePicker.js","webpack:///./node_modules/rmc-date-picker/es/locale/en_US.js","webpack:///./node_modules/rmc-calendar/es/date/DataTypes.js","webpack:///./node_modules/rmc-calendar/es/TimePicker.js","webpack:///./node_modules/rmc-calendar/es/util/index.js","webpack:///./node_modules/rmc-calendar/es/DatePicker.base.js","webpack:///./node_modules/rmc-calendar/es/date/WeekPanel.js","webpack:///./node_modules/rmc-calendar/es/date/SingleMonth.js","webpack:///./node_modules/rmc-calendar/es/DatePicker.js","webpack:///./node_modules/rmc-calendar/es/calendar/ConfirmPanel.js","webpack:///./node_modules/rmc-calendar/es/calendar/ShortcutPanel.js","webpack:///./node_modules/rmc-calendar/es/calendar/AnimateWrapper.js","webpack:///./node_modules/rmc-calendar/es/calendar/Header.js","webpack:///./node_modules/rmc-calendar/es/Calendar.js","webpack:///./node_modules/rmc-calendar/es/index.js","webpack:///./node_modules/antd-mobile/es/_util/getLocale.js","webpack:///./node_modules/antd-mobile/es/calendar/index.js","webpack:///./node_modules/antd-mobile/es/card/CardBody.js","webpack:///./node_modules/antd-mobile/es/card/CardFooter.js","webpack:///./node_modules/antd-mobile/es/card/CardHeader.js","webpack:///./node_modules/antd-mobile/es/card/index.js","webpack:///./node_modules/rmc-nuka-carousel/es/decorators.js","webpack:///./node_modules/rmc-nuka-carousel/es/carousel.js","webpack:///./node_modules/antd-mobile/es/carousel/index.js","webpack:///./node_modules/rc-checkbox/es/Checkbox.js","webpack:///./node_modules/antd-mobile/es/checkbox/Checkbox.js","webpack:///./node_modules/antd-mobile/es/checkbox/AgreeItem.js","webpack:///./node_modules/antd-mobile/es/list/ListItem.js","webpack:///./node_modules/antd-mobile/es/list/index.js","webpack:///./node_modules/antd-mobile/es/checkbox/CheckboxItem.js","webpack:///./node_modules/antd-mobile/es/checkbox/index.js","webpack:///./node_modules/rmc-picker/es/PopupMixin.js","webpack:///./node_modules/rmc-picker/es/Popup.js","webpack:///./node_modules/rmc-date-picker/es/Popup.js","webpack:///./node_modules/antd-mobile/es/date-picker/utils.js","webpack:///./node_modules/antd-mobile/es/date-picker/index.js","webpack:///./node_modules/antd-mobile/es/date-picker-view/date-picker-view.js","webpack:///./node_modules/rmc-drawer/es/Drawer.js","webpack:///./node_modules/rmc-drawer/es/index.js","webpack:///./node_modules/antd-mobile/es/drawer/index.js","webpack:///./node_modules/antd-mobile/es/flex/Flex.js","webpack:///./node_modules/antd-mobile/es/flex/FlexItem.js","webpack:///./node_modules/antd-mobile/es/flex/index.js","webpack:///./node_modules/antd-mobile/es/grid/index.js","webpack:///./node_modules/antd-mobile/es/image-picker/index.js","webpack:///./node_modules/antd-mobile/es/_util/class.js","webpack:///./node_modules/antd-mobile/es/_util/exenv.js","webpack:///./node_modules/antd-mobile/es/input-item/CustomKeyboard.js","webpack:///./node_modules/antd-mobile/es/input-item/Portal.js","webpack:///./node_modules/antd-mobile/es/input-item/CustomInput.js","webpack:///./node_modules/antd-mobile/es/input-item/Input.js","webpack:///./node_modules/antd-mobile/es/input-item/index.js","webpack:///./node_modules/rmc-list-view/es/ListViewDataSource.js","webpack:///./node_modules/rmc-list-view/es/ScrollView.js","webpack:///./node_modules/rmc-list-view/es/ListView.js","webpack:///./node_modules/rmc-list-view/es/Indexed.js","webpack:///./node_modules/rmc-list-view/es/index.js","webpack:///./node_modules/antd-mobile/es/list-view/handleProps.js","webpack:///./node_modules/antd-mobile/es/list-view/Indexed.js","webpack:///./node_modules/antd-mobile/es/list-view/index.js","webpack:///./node_modules/antd-mobile/es/radio/Radio.js","webpack:///./node_modules/antd-mobile/es/radio/RadioItem.js","webpack:///./node_modules/antd-mobile/es/radio/index.js","webpack:///./node_modules/antd-mobile/es/menu/SubMenu.js","webpack:///./node_modules/antd-mobile/es/menu/index.js","webpack:///./node_modules/antd-mobile/es/_util/closest.js","webpack:///./node_modules/antd-mobile/es/modal/Modal.js","webpack:///./node_modules/antd-mobile/es/modal/index.js","webpack:///./node_modules/antd-mobile/es/modal/alert.js","webpack:///./node_modules/antd-mobile/es/modal/prompt.js","webpack:///./node_modules/antd-mobile/es/modal/operation.js","webpack:///./node_modules/antd-mobile/es/nav-bar/index.js","webpack:///./node_modules/antd-mobile/es/notice-bar/Marquee.js","webpack:///./node_modules/antd-mobile/es/notice-bar/index.js","webpack:///./node_modules/antd-mobile/es/pagination/index.js","webpack:///./node_modules/rmc-cascader/es/Cascader.js","webpack:///./node_modules/rmc-cascader/es/Popup.js","webpack:///./node_modules/rmc-picker/es/PickerMixin.js","webpack:///./node_modules/rmc-picker/es/Picker.js","webpack:///./node_modules/antd-mobile/es/picker/AbstractPicker.js","webpack:///./node_modules/antd-mobile/es/picker/popupProps.js","webpack:///./node_modules/antd-mobile/es/picker/index.js","webpack:///./node_modules/antd-mobile/es/picker-view/PickerView.js","webpack:///./node_modules/antd-mobile/es/picker-view/index.js","webpack:///./node_modules/rmc-align/es/isWindow.js","webpack:///./node_modules/rmc-align/es/Align.js","webpack:///./node_modules/rmc-align/es/index.js","webpack:///./node_modules/rmc-trigger/es/LazyRenderBox.js","webpack:///./node_modules/rmc-trigger/es/PopupInner.js","webpack:///./node_modules/rmc-trigger/es/utils.js","webpack:///./node_modules/rmc-trigger/es/Popup.js","webpack:///./node_modules/rmc-trigger/es/Trigger.js","webpack:///./node_modules/rmc-trigger/es/index.js","webpack:///./node_modules/rmc-tooltip/es/placements.js","webpack:///./node_modules/rmc-tooltip/es/Tooltip.js","webpack:///./node_modules/rmc-tooltip/es/index.js","webpack:///./node_modules/antd-mobile/es/popover/Item.js","webpack:///./node_modules/antd-mobile/es/popover/index.js","webpack:///./node_modules/antd-mobile/es/progress/index.js","webpack:///./node_modules/rmc-pull-to-refresh/es/PullToRefresh.js","webpack:///./node_modules/rmc-pull-to-refresh/es/index.js","webpack:///./node_modules/antd-mobile/es/pull-to-refresh/index.js","webpack:///./node_modules/antd-mobile/es/result/index.js","webpack:///./node_modules/antd-mobile/es/search-bar/PropsType.js","webpack:///./node_modules/antd-mobile/es/search-bar/index.js","webpack:///./node_modules/antd-mobile/es/segmented-control/index.js","webpack:///./node_modules/rc-slider/es/common/Track.js","webpack:///./node_modules/rc-slider/es/common/Steps.js","webpack:///./node_modules/rc-slider/es/common/Marks.js","webpack:///./node_modules/rc-slider/es/Handle.js","webpack:///./node_modules/rc-slider/es/utils.js","webpack:///./node_modules/rc-slider/es/common/createSlider.js","webpack:///./node_modules/rc-slider/es/Slider.js","webpack:///./node_modules/antd-mobile/es/slider/index.js","webpack:///./node_modules/rc-slider/es/Range.js","webpack:///./node_modules/antd-mobile/es/range/index.js","webpack:///./node_modules/rmc-input-number/es/base.js","webpack:///./node_modules/rmc-input-number/es/InputHandler.js","webpack:///./node_modules/rmc-input-number/es/index.js","webpack:///./node_modules/antd-mobile/es/stepper/index.js","webpack:///./node_modules/antd-mobile/es/steps/index.js","webpack:///./node_modules/rc-gesture/es/config.js","webpack:///./node_modules/rc-gesture/es/util.js","webpack:///./node_modules/rc-gesture/es/index.js","webpack:///./node_modules/rc-swipeout/es/Swipeout.js","webpack:///./node_modules/rc-swipeout/es/index.js","webpack:///./node_modules/antd-mobile/es/swipe-action/index.js","webpack:///./node_modules/antd-mobile/es/switch/index.js","webpack:///./node_modules/rmc-tabs/es/util/index.js","webpack:///./node_modules/rmc-tabs/es/TabPane.js","webpack:///./node_modules/rmc-tabs/es/DefaultTabBar.js","webpack:///./node_modules/rmc-tabs/es/Tabs.base.js","webpack:///./node_modules/rmc-tabs/es/Tabs.js","webpack:///./node_modules/antd-mobile/es/tabs/index.js","webpack:///./node_modules/antd-mobile/es/tab-bar/Tab.js","webpack:///./node_modules/antd-mobile/es/tab-bar/index.js","webpack:///./node_modules/antd-mobile/es/tag/index.js","webpack:///./node_modules/antd-mobile/es/view/index.js","webpack:///./node_modules/antd-mobile/es/text/index.js","webpack:///./node_modules/antd-mobile/es/textarea-item/index.js","webpack:///./node_modules/rmc-notification/es/Notice.js","webpack:///./node_modules/rmc-notification/es/Notification.js","webpack:///./node_modules/antd-mobile/es/toast/index.js","webpack:///./node_modules/antd-mobile/es/white-space/index.js","webpack:///./node_modules/antd-mobile/es/wing-blank/index.js","webpack:///./node_modules/antd-mobile/es/locale-provider/locale-provider.js","webpack:///./node_modules/babel-runtime/helpers/extends.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Utils.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Array.js","webpack:///./node_modules/babel-runtime/helpers/inherits.js","webpack:///./node_modules/babel-runtime/helpers/createClass.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Iterator.js","webpack:///../node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Percent.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Object.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/List.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Color.js","webpack:///./node_modules/antd/lib/message/index.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/DOM.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Disposer.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Sprite.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Container.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Time.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/InterfaceColorSet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/Interaction.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Options.js","webpack:///./node_modules/uuid/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Dictionary.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/System.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Base.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Responsive.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Strings.js","webpack:///./node_modules/antd/lib/message/style/index.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/antd/lib/radio/index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/antd/lib/config-provider/index.js","webpack:///./node_modules/antd/node_modules/classnames/index.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/antd/lib/popover/index.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Adapter.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/autoplay/autoplay.js","webpack:///./node_modules/swiper/modules/thumbs/thumbs.js","webpack:///./node_modules/swiper/modules/free-mode/free-mode.js","webpack:///./node_modules/swiper/shared/effect-init.js","webpack:///./node_modules/swiper/shared/effect-target.js","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack:///./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack:///./node_modules/rc-util/es/unsafeLifecyclesPolyfill.js","webpack:///./node_modules/rc-animate/es/ChildrenUtils.js","webpack:///./node_modules/rc-animate/es/util/animate.js","webpack:///./node_modules/rc-animate/es/AnimateChild.js","webpack:///./node_modules/rc-animate/es/Animate.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/Mouse.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Animation.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Label.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///../node_modules/dateformat/lib/dateformat.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Smoothing.js","webpack:///./node_modules/antd/lib/style/index.less?7239","webpack:///./node_modules/rc-util/es/KeyCode.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/babel-runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Ease.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Colors.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/react-router/esm/react-router.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradient.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/async-validator/es/util.js","webpack:///./node_modules/antd/lib/checkbox/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/RoundedRectangle.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///../node_modules/core-js/internals/function-uncurry-this.js","webpack:///../node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/AsyncPending.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/EventDispatcher.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///../node_modules/core-js/internals/fails.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/SortedList.js","webpack:///./node_modules/react-number-format/dist/react-number-format.es.js","webpack:///./node_modules/swiper/react/utils.js","webpack:///./node_modules/swiper/react/params-list.js","webpack:///./node_modules/swiper/react/loop.js","webpack:///./node_modules/swiper/react/get-children.js","webpack:///./node_modules/swiper/react/update-swiper.js","webpack:///./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/react/swiper.js","webpack:///./node_modules/swiper/react/get-params.js","webpack:///./node_modules/swiper/react/init-swiper.js","webpack:///./node_modules/swiper/react/get-changed-params.js","webpack:///./node_modules/swiper/react/virtual.js","webpack:///./node_modules/swiper/react/swiper-slide.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Keyboard.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Line.js","webpack:///./node_modules/antd/lib/form/index.js","webpack:///./node_modules/antd/lib/icon/index.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///../node_modules/core-js/internals/well-known-symbol.js","webpack:///../node_modules/core-js/internals/global.js","webpack:///./node_modules/@amcharts/amcharts4/lang/en.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Language.js","webpack:///./node_modules/antd/lib/select/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/formatters/TextFormatter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Number.js","webpack:///./node_modules/react-social-media-embed/dist/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Paper.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Button.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/engine.io-client/build/esm/globalThis.browser.js","webpack:///./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack:///./node_modules/value-equal/esm/value-equal.js","webpack:///./node_modules/history/esm/history.js","webpack:///./node_modules/omit.js/es/index.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/mobx-react-lite/es/assertEnvironment.js","webpack:///./node_modules/mobx-react-lite/es/observerBatching.js","webpack:///./node_modules/mobx-react-lite/es/staticRendering.js","webpack:///./node_modules/mobx-react-lite/es/printDebugValue.js","webpack:///./node_modules/mobx-react-lite/es/reactionCleanupTracking.js","webpack:///./node_modules/mobx-react-lite/es/useQueuedForceUpdate.js","webpack:///./node_modules/mobx-react-lite/es/useObserver.js","webpack:///./node_modules/mobx-react-lite/es/observer.js","webpack:///./node_modules/mobx-react-lite/es/ObserverComponent.js","webpack:///./node_modules/mobx-react-lite/es/useAsObservableSource.js","webpack:///./node_modules/mobx-react-lite/es/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/DataItem.js","webpack:///./node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","webpack:///./node_modules/antd/lib/collapse/index.js","webpack:///./node_modules/antd/lib/radio/style/index.js","webpack:///./node_modules/antd/lib/popover/style/index.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///../node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/async-validator/es/rule/index.js","webpack:///./node_modules/antd/lib/input/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/Component.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Circle.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/Filter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradient.js","webpack:///./node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Slice.js","webpack:///./node_modules/rc-menu/es/utils/isMobile.js","webpack:///./node_modules/rc-menu/es/util.js","webpack:///./node_modules/rc-animate/es/util/motion.js","webpack:///./node_modules/rc-animate/es/CSSMotion.js","webpack:///./node_modules/rc-util/es/Dom/findDOMNode.js","webpack:///./node_modules/rc-menu/es/placements.js","webpack:///./node_modules/rc-menu/es/SubMenu.js","webpack:///./node_modules/rc-menu/es/DOMWrap.js","webpack:///./node_modules/rc-menu/es/SubPopupMenu.js","webpack:///./node_modules/rc-util/es/warning.js","webpack:///./node_modules/rc-menu/es/utils/legacyUtil.js","webpack:///./node_modules/rc-menu/es/Menu.js","webpack:///./node_modules/rc-menu/es/MenuItem.js","webpack:///./node_modules/rc-menu/es/MenuItemGroup.js","webpack:///./node_modules/rc-menu/es/Divider.js","webpack:///./node_modules/rc-menu/es/index.js","webpack:///./node_modules/engine.io-parser/build/esm/commons.js","webpack:///./node_modules/engine.io-parser/build/esm/encodePacket.browser.js","webpack:///./node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","webpack:///./node_modules/engine.io-parser/build/esm/decodePacket.browser.js","webpack:///./node_modules/engine.io-parser/build/esm/index.js","webpack:///./node_modules/antd/lib/list/index.js","webpack:///./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack:///./node_modules/antd/lib/_util/warning.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///../node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/react-social-media-embed/node_modules/classnames/index.js","webpack:///./node_modules/@socket.io/component-emitter/index.mjs","webpack:///./node_modules/engine.io-client/build/esm/util.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/String.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/WavedLine.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///../node_modules/core-js/internals/object-define-property.js","webpack:///../node_modules/core-js/internals/function-call.js","webpack:///../node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/mobx-react-lite/es/utils.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Order.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/Pattern.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///../node_modules/core-js/internals/an-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/scriptjs/dist/script.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/formatters/DateFormatter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/ColorSet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Cache.js","webpack:///./node_modules/rc-util/es/Dom/contains.js","webpack:///./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./node_modules/@emotion/serialize/dist/serialize.browser.esm.js","webpack:///./node_modules/@emotion/utils/dist/utils.browser.esm.js","webpack:///./node_modules/antd/lib/col/index.js","webpack:///./node_modules/antd/lib/_util/type.js","webpack:///./node_modules/mini-store/lib/index.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/AMElement.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Polyline.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/data/JSONParser.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Image.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Polyarc.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Morpher.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Polygon.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Preloader.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/CloseButton.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/SwitchButton.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Slider.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/PlayButton.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradientModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinePattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/CirclePattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/RectPattern.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/ColorizeFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/BlurFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/FocusFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/PatternSet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Plugin.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/AmChartsLogo.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Instance.js","webpack:///./node_modules/antd/lib/checkbox/style/index.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///../node_modules/core-js/internals/to-indexed-object.js","webpack:///../node_modules/core-js/internals/is-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/react-social-media-embed/dist/components/placeholder/PlaceholderEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/EmbedStyle.js","webpack:///./node_modules/engine.io-client/build/esm/transport.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Rectangle.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Scrollbar.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Tooltip.js","webpack:///./node_modules/rmc-calendar/es/locale/zh_CN.js","webpack:///./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Log.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Net.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/data/CSVParser.js","webpack:///./node_modules/css-animation/es/Event.js","webpack:///./node_modules/css-animation/es/index.js","webpack:///./node_modules/@ant-design/icons-react/es/utils.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///(webpack)/buildin/module.js","webpack:///../node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/SpriteState.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/data/DataLoader.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Polyspline.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradientModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/DesaturateFilter.js","webpack:///./node_modules/rc-trigger/es/utils.js","webpack:///./node_modules/rc-align/es/util.js","webpack:///./node_modules/rc-align/es/Align.js","webpack:///./node_modules/rc-align/es/index.js","webpack:///./node_modules/rc-trigger/es/LazyRenderBox.js","webpack:///./node_modules/rc-trigger/es/PopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup.js","webpack:///./node_modules/rc-trigger/es/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/ResizeSensor.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/SVGContainer.js","webpack:///./node_modules/rmc-list-view/es/util.js","webpack:///./node_modules/react-iframe/dist/es/iframe.js","webpack:///./node_modules/engine.io-client/build/esm/contrib/has-cors.js","webpack:///./node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","webpack:///./node_modules/engine.io-client/build/esm/transports/polling.js","webpack:///./node_modules/engine.io-client/build/esm/transports/webtransport.js","webpack:///./node_modules/engine.io-client/build/esm/transports/index.js","webpack:///./node_modules/engine.io-client/build/esm/contrib/parseuri.js","webpack:///./node_modules/engine.io-client/build/esm/socket.js","webpack:///./node_modules/engine.io-client/build/esm/index.js","webpack:///./node_modules/socket.io-parser/build/esm/is-binary.js","webpack:///./node_modules/socket.io-parser/build/esm/binary.js","webpack:///./node_modules/socket.io-parser/build/esm/index.js","webpack:///./node_modules/socket.io-client/build/esm/on.js","webpack:///./node_modules/socket.io-client/build/esm/socket.js","webpack:///./node_modules/socket.io-client/build/esm/contrib/backo2.js","webpack:///./node_modules/socket.io-client/build/esm/manager.js","webpack:///./node_modules/socket.io-client/build/esm/index.js","webpack:///./node_modules/socket.io-client/build/esm/url.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/rmc-list-view/node_modules/warning/browser.js","webpack:///./node_modules/antd/lib/input/style/index.js","webpack:///./node_modules/antd/lib/select/style/index.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///../node_modules/core-js/internals/classof-raw.js","webpack:///../node_modules/core-js/internals/shared.js","webpack:///../node_modules/core-js/internals/to-object.js","webpack:///../node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///../node_modules/core-js/internals/length-of-array-like.js","webpack:///../node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/@ant-design/create-react-context/lib/index.js","webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Modal.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/formatters/NumberFormatter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/formatters/DurationFormatter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Validatable.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/data/DataParser.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Triangle.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/WavedRectangle.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/LightenFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/PopupCSS.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Popup.js","webpack:///./node_modules/rc-util/es/createChainedFunction.js","webpack:///./node_modules/antd/lib/row/index.js","webpack:///./node_modules/antd/lib/badge/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/WavedCircle.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js","webpack:///./node_modules/@emotion/styled/dist/styled.browser.esm.js","webpack:///./node_modules/react-loadable/lib/index.js","webpack:///./node_modules/rmc-picker/lib/Picker.js","webpack:///./node_modules/babel-runtime/helpers/get.js","webpack:///./node_modules/antd/lib/layout/index.js","webpack:///./node_modules/antd/lib/locale-provider/LocaleReceiver.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///../node_modules/core-js/internals/is-pure.js","webpack:///../node_modules/core-js/internals/object-create.js","webpack:///../node_modules/core-js/internals/iterators.js","webpack:///../node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/antd/lib/input/Input.js","webpack:///../node_modules/core-js/internals/to-string.js","webpack:///./node_modules/antd/lib/collapse/style/index.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/SpriteEvents.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/InteractionObjectEvents.js","webpack:///./node_modules/component-classes/index.js","webpack:///./node_modules/dom-scroll-into-view/lib/index.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Ellipse.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/ResizeButton.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/TextLink.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/array-tree-filter/lib/index.js","webpack:///./node_modules/dom-align/dist-web/index.js","webpack:///./node_modules/antd/lib/back-top/index.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///../node_modules/core-js/internals/function-bind-native.js","webpack:///../node_modules/core-js/internals/to-property-key.js","webpack:///../node_modules/core-js/internals/is-symbol.js","webpack:///../node_modules/core-js/internals/a-callable.js","webpack:///../node_modules/core-js/internals/try-to-string.js","webpack:///../node_modules/core-js/internals/to-absolute-index.js","webpack:///../node_modules/core-js/internals/hidden-keys.js","webpack:///../node_modules/core-js/internals/shared-key.js","webpack:///../node_modules/core-js/internals/internal-state.js","webpack:///../node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/rc-util/lib/Dom/addEventListener.js","webpack:///./node_modules/antd/lib/list/style/index.js","webpack:///./node_modules/antd/lib/grid/style/index.js","webpack:///./node_modules/antd/lib/grid/index.js","webpack:///../node_modules/core-js/internals/is-array.js","webpack:///../node_modules/core-js/internals/classof.js","webpack:///../node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./node_modules/rc-slider/node_modules/warning/browser.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/defs/SVGDefaults.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/Group.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/InteractionObject.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/InteractionKeyboardObject.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/interaction/Inertia.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/export/Export.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/data/DataSource.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/PointedRectangle.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/PointedShape.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/filters/DropShadowFilter.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Trapezoid.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/ZoomOutButton.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/3d/Cone.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/ColorModifier.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/3d/Rectangle3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/3d/Slice3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/export/ExportCSS.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/export/ExportMenu.js","webpack:///./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./node_modules/mobx-react-router/dist/mobx-react-router.js","webpack:///../node_modules/dayjs/plugin/duration.js","webpack:///./node_modules/rmc-date-picker/es/locale/zh_CN.js","webpack:///./node_modules/rc-util/es/ContainerRender.js","webpack:///./node_modules/rc-util/es/Portal.js","webpack:///./node_modules/engine.io-client/build/esm/contrib/parseqs.js","webpack:///./node_modules/engine.io-client/build/esm/contrib/yeast.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/utils/Browser.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/rendering/fills/GradientModifier.js","webpack:///./node_modules/react-router-dom/esm/react-router-dom.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/Grip.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/Chart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Bullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/Legend.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/Series.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/SerialChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisBreak.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/Axis.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisLine.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisFill.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/Grid.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisLabel.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Tick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisTick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRenderer.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererY.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/ValueAxisBreak.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/ValueAxis.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/DateAxisBreak.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/DateAxis.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererX.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/CategoryAxisBreak.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/CategoryAxis.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/XYSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/XYChartScrollbar.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/XYChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/LineSeriesSegment.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/DurationAxis.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/LineSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/RadarSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisFillCircular.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/GridCircular.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisLabelCircular.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererCircular.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererRadial.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/RadarChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ClockHand.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/GaugeChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/PercentSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/PercentChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/PieTick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/PieSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/PieChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/PieSeries3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/PieChart3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/SlicedChart.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramNode.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FlowDiagramLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/FlowDiagram.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/LabelBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyNode.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/SankeyLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/SankeyDiagram.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordNode.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/core/elements/QuadraticCurve.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ChordLink.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/ChordDiagram.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/ColumnSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/TreeMapSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/TreeMap.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererX3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/axes/AxisRendererY3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Column3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/ColumnSeries3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/types/XYChart3D.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/HeatLegend.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/Candlestick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/CandlestickSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/OHLC.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/OHLCSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/StepLineSeriesSegment.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/StepLineSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/RadarColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/RadarColumnSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelSlice.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/FunnelTick.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/FunnelSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/PyramidSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/PictorialStackedSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ConeColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/ConeSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/CurvedColumn.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/CurvedColumnSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/CircleBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/ErrorBullet.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/elements/NavigationBar.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/cursors/Cursor.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/cursors/XYCursor.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/cursors/RadarCursor.js","webpack:///./node_modules/antd/lib/button/index.js","webpack:///./node_modules/antd/lib/form/style/index.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/antd-mobile/dist/antd-mobile.css?4d52","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/internals/well-known-symbol-define.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///../node_modules/core-js/modules/es.array.iterator.js","webpack:///../node_modules/core-js/internals/is-null-or-undefined.js","webpack:///../node_modules/core-js/internals/shared-store.js","webpack:///../node_modules/core-js/internals/define-global-property.js","webpack:///../node_modules/core-js/internals/uid.js","webpack:///../node_modules/core-js/internals/document-create-element.js","webpack:///../node_modules/core-js/internals/object-is-prototype-of.js","webpack:///../node_modules/core-js/internals/get-method.js","webpack:///../node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///../node_modules/core-js/internals/enum-bug-keys.js","webpack:///../node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///../node_modules/core-js/internals/object-get-own-property-names.js","webpack:///../node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///../node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/antd/lib/modal/locale.js","webpack:///../node_modules/core-js/internals/is-constructor.js","webpack:///../node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/antd/lib/row/style/index.js","webpack:///./node_modules/antd/lib/col/style/index.js","webpack:///./node_modules/rc-form/lib/utils.js","webpack:///./node_modules/antd/lib/_util/raf.js","webpack:///./node_modules/react-social-media-embed/dist/components/hooks/useFrame.js","webpack:///./node_modules/react-social-media-embed/dist/components/uuid.js","webpack:///./node_modules/react-sub-unsub/dist/index.js","webpack:///./node_modules/url/node_modules/qs/lib/formats.js","webpack:///./node_modules/antd/lib/radio/radio.js","webpack:///./node_modules/antd/lib/badge/style/index.js","webpack:///./node_modules/antd/lib/menu/MenuContext.js","webpack:///./node_modules/antd/lib/layout/Sider.js","webpack:///./node_modules/add-dom-event-listener/lib/index.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/antd/lib/input/TextArea.js","webpack:///./node_modules/antd/lib/menu/index.js","webpack:///./node_modules/antd/lib/notification/index.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/rmc-steps/lib/index.js","webpack:///./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack:///./node_modules/antd/lib/button/style/index.js","webpack:///./node_modules/rc-util/lib/warning.js","webpack:///./node_modules/antd/lib/locale/default.js","webpack:///./node_modules/antd/lib/empty/style/index.js","webpack:///./node_modules/antd/lib/tooltip/index.js","webpack:///./node_modules/core-js/internals/document-all.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/symbol-registry-detection.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/delete-property-or-throw.js","webpack:///../node_modules/core-js/internals/indexed-object.js","webpack:///../node_modules/core-js/internals/require-object-coercible.js","webpack:///../node_modules/core-js/internals/engine-v8-version.js","webpack:///../node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///../node_modules/core-js/internals/document-all.js","webpack:///../node_modules/core-js/internals/object-define-properties.js","webpack:///../node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///../node_modules/core-js/internals/ie8-dom-define.js","webpack:///../node_modules/core-js/internals/object-keys.js","webpack:///../node_modules/core-js/internals/object-keys-internal.js","webpack:///../node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///../node_modules/core-js/internals/make-built-in.js","webpack:///../node_modules/core-js/internals/function-name.js","webpack:///../node_modules/core-js/internals/inspect-source.js","webpack:///../node_modules/core-js/internals/copy-constructor-properties.js","webpack:///../node_modules/core-js/internals/iterators-core.js","webpack:///../node_modules/core-js/internals/object-get-prototype-of.js","webpack:///../node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/component-indexof/index.js","webpack:///./node_modules/rc-pagination/lib/locale/en_US.js","webpack:///./node_modules/antd/lib/date-picker/locale/en_US.js","webpack:///./node_modules/antd/lib/time-picker/locale/en_US.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/mini-store/lib/PropTypes.js","webpack:///./node_modules/antd/lib/grid/row.js","webpack:///./node_modules/antd/lib/grid/RowContext.js","webpack:///./node_modules/enquire.js/src/Util.js","webpack:///./node_modules/antd/lib/grid/col.js","webpack:///./node_modules/antd/lib/checkbox/Checkbox.js","webpack:///../node_modules/core-js/internals/array-species-create.js","webpack:///../node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///../node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/antd/lib/back-top/style/index.js","webpack:///./node_modules/antd/lib/layout/style/index.js","webpack:///./node_modules/react-helmet/lib/HelmetConstants.js","webpack:///./node_modules/rc-form/lib/createBaseForm.js","webpack:///./node_modules/async-validator/es/rule/required.js","webpack:///./node_modules/rc-form/lib/createFormField.js","webpack:///./node_modules/antd/lib/form/constants.js","webpack:///./node_modules/antd/lib/form/context.js","webpack:///./node_modules/antd/lib/input/ClearableLabeledInput.js","webpack:///./node_modules/react-social-media-embed/dist/components/placeholder/parts/BorderSpinner.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/XEmbed.js","webpack:///../node_modules/core-js/internals/array-slice.js","webpack:///../node_modules/core-js/internals/function-bind-context.js","webpack:///../node_modules/core-js/internals/get-iterator-method.js","webpack:///../node_modules/core-js/internals/define-built-in-accessor.js","webpack:///../node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///../node_modules/core-js/internals/symbol-registry-detection.js","webpack:///./node_modules/url/node_modules/qs/lib/utils.js","webpack:///./node_modules/antd/lib/modal/index.js","webpack:///./node_modules/antd/lib/modal/Modal.js","webpack:///./node_modules/react-reveal/globals.js","webpack:///../node_modules/dayjs/locale/ko.js","webpack:///./node_modules/antd/lib/_util/getScroll.js","webpack:///./node_modules/react-snowfall/lib/config.js","webpack:///./node_modules/react-snowfall/node_modules/react-fast-compare/index.js","webpack:///./node_modules/react-snowfall/lib/Snowflake.js","webpack:///./node_modules/react-snowfall/lib/utils.js","webpack:///./node_modules/antd/lib/layout/layout.js","webpack:///./node_modules/antd/lib/date-picker/locale/ko_KR.js","webpack:///./node_modules/antd/lib/time-picker/locale/ko_KR.js","webpack:///./node_modules/rc-collapse/es/PanelContent.js","webpack:///./node_modules/rc-collapse/es/Panel.js","webpack:///./node_modules/rc-collapse/es/openAnimationFactory.js","webpack:///./node_modules/rc-collapse/es/Collapse.js","webpack:///./node_modules/rc-collapse/es/index.js","webpack:///./node_modules/rc-notification/es/Notice.js","webpack:///./node_modules/rc-notification/es/Notification.js","webpack:///./node_modules/rc-notification/es/index.js","webpack:///./node_modules/@ant-design/icons-react/es/components/Icon.js","webpack:///./node_modules/antd/node_modules/rc-checkbox/es/Checkbox.js","webpack:///./node_modules/antd/node_modules/rc-checkbox/es/index.js","webpack:///./node_modules/react-fastclick-alt/dist/react-fastclick-alt.js","webpack:///../node_modules/dayjs/plugin/utc.js","webpack:///./node_modules/@ant-design/colors/lib/index.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/cron-parser/lib/parser.js","webpack:///./node_modules/rc-util/es/PureRenderMixin.js","webpack:///./node_modules/fbjs/lib/isEmpty.js","webpack:///./node_modules/antd/node_modules/rc-checkbox/node_modules/classnames/index.js","webpack:///./node_modules/engine.io-client/build/esm/transports/websocket.js","webpack:///./node_modules/socketio-wildcard/index.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/web-push-notifications/lib/index.js","webpack:///./node_modules/emotion-theming/dist/emotion-theming.browser.esm.js","webpack:///./node_modules/react-google-login/dist/google-login.js","webpack:///./node_modules/react-helmet/lib/Helmet.js","webpack:///./node_modules/react-dock/lib/index.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./node_modules/youtube-player/dist/index.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/animated-number-react/build/index.js","webpack:///./node_modules/react-reveal/Slide.js","webpack:///../node_modules/dayjs/plugin/dayOfYear.js","webpack:///./node_modules/vanilla-tilt/lib/vanilla-tilt.js","webpack:///./node_modules/react-snowfall/lib/Snowfall.js","webpack:///./node_modules/path-to-regexp/index.js","webpack:///./node_modules/antd/lib/locale-provider/ko_KR.js","webpack:///./node_modules/aos/dist/aos.js","webpack:///./node_modules/antd/lib/spin/style/index.js","webpack:///./node_modules/antd/lib/pagination/style/index.js","webpack:///./node_modules/antd/lib/spin/index.js","webpack:///./node_modules/antd/lib/pagination/index.js","webpack:///./node_modules/antd/lib/modal/style/index.js","webpack:///./node_modules/antd/lib/_util/scrollTo.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/antd/lib/style/index.less","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./node_modules/antd/lib/message/style/index.less?eaf2","webpack:///./node_modules/antd/lib/message/style/index.less","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/antd-mobile/dist/antd-mobile.css","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/antd/lib/notification/style/index.js","webpack:///./node_modules/antd/lib/notification/style/index.less?ffdf","webpack:///./node_modules/antd/lib/notification/style/index.less","webpack:///./node_modules/core-js/modules/es.symbol.constructor.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///./node_modules/core-js/modules/es.symbol.for.js","webpack:///./node_modules/core-js/modules/es.symbol.key-for.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/core-js/modules/es.array.last-index-of.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///../node_modules/core-js/internals/add-to-unscopables.js","webpack:///../node_modules/core-js/internals/engine-user-agent.js","webpack:///../node_modules/core-js/internals/to-primitive.js","webpack:///../node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///../node_modules/core-js/internals/array-includes.js","webpack:///../node_modules/core-js/internals/math-trunc.js","webpack:///../node_modules/core-js/internals/to-length.js","webpack:///../node_modules/core-js/internals/html.js","webpack:///../node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///../node_modules/core-js/internals/iterator-define.js","webpack:///../node_modules/core-js/internals/own-keys.js","webpack:///../node_modules/core-js/internals/is-forced.js","webpack:///../node_modules/core-js/internals/iterator-create-constructor.js","webpack:///../node_modules/core-js/internals/correct-prototype-getter.js","webpack:///../node_modules/core-js/internals/object-set-prototype-of.js","webpack:///../node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///../node_modules/core-js/internals/a-possible-prototype.js","webpack:///../node_modules/core-js/internals/create-iter-result-object.js","webpack:///../node_modules/core-js/internals/dom-iterables.js","webpack:///../node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/babel-runtime/core-js/object/assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/babel-runtime/core-js/object/create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/@ant-design/icons/lib/dist.js","webpack:///./node_modules/@ant-design/colors/lib/generate.js","webpack:///./node_modules/tinycolor2/cjs/tinycolor.js","webpack:///./node_modules/antd/lib/icon/IconFont.js","webpack:///./node_modules/antd/lib/icon/utils.js","webpack:///./node_modules/antd/lib/locale-provider/default.js","webpack:///./node_modules/rc-calendar/lib/locale/en_US.js","webpack:///./node_modules/antd/lib/calendar/locale/en_US.js","webpack:///./node_modules/antd/lib/icon/twoTonePrimaryColor.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/has-proto/index.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./node_modules/define-data-property/index.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/core-js/internals/array-set-length.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/uuid/v4.js","webpack:///./node_modules/cron-parser/lib/expression.js","webpack:///./node_modules/cron-parser/lib/date.js","webpack:///./node_modules/luxon/build/cjs-browser/luxon.js","webpack:///./node_modules/cron-parser/lib/field_stringify.js","webpack:///./node_modules/cron-parser/lib/field_compactor.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/rmc-picker/lib/PickerMixin.js","webpack:///./node_modules/antd-mobile/es/calendar/locale/zh_CN.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/antd-mobile/es/date-picker/locale/zh_CN.js","webpack:///./node_modules/antd-mobile/es/date-picker-view/locale/zh_CN.js","webpack:///./node_modules/antd-mobile/es/input-item/locale/zh_CN.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/antd-mobile/es/menu/locale/zh_CN.js","webpack:///./node_modules/antd-mobile/es/pagination/locale/zh_CN.js","webpack:///./node_modules/antd-mobile/es/picker/locale/zh_CN.js","webpack:///./node_modules/add-dom-event-listener/lib/EventObject.js","webpack:///./node_modules/add-dom-event-listener/lib/EventBaseObject.js","webpack:///./node_modules/antd-mobile/es/pull-to-refresh/locale/zh_CN.js","webpack:///./node_modules/antd-mobile/es/search-bar/locale/zh_CN.js","webpack:///./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/rmc-steps/lib/Steps.js","webpack:///./node_modules/rmc-steps/lib/Step.js","webpack:///./node_modules/antd/lib/list/style/index.less?7554","webpack:///./node_modules/antd/lib/list/style/index.less","webpack:///./node_modules/antd/lib/empty/style/index.less?2682","webpack:///./node_modules/antd/lib/empty/style/index.less","webpack:///./node_modules/antd/lib/spin/style/index.less?ffc4","webpack:///./node_modules/antd/lib/spin/style/index.less","webpack:///./node_modules/antd/lib/pagination/style/index.less?74fe","webpack:///./node_modules/antd/lib/pagination/style/index.less","webpack:///./node_modules/antd/lib/select/style/index.less?44f4","webpack:///./node_modules/antd/lib/select/style/index.less","webpack:///./node_modules/antd/lib/grid/style/index.less?ed7b","webpack:///./node_modules/antd/lib/grid/style/index.less","webpack:///./node_modules/antd/lib/locale-provider/index.js","webpack:///./node_modules/antd/lib/_util/interopDefault.js","webpack:///./node_modules/antd/lib/config-provider/context.js","webpack:///./node_modules/@ant-design/create-react-context/lib/implementation.js","webpack:///./node_modules/gud/index.js","webpack:///./node_modules/antd/lib/config-provider/renderEmpty.js","webpack:///./node_modules/antd/lib/empty/index.js","webpack:///./node_modules/antd/lib/empty/empty.js","webpack:///./node_modules/antd/lib/empty/simple.js","webpack:///./node_modules/antd/lib/pagination/Pagination.js","webpack:///./node_modules/antd/lib/pagination/MiniSelect.js","webpack:///./node_modules/mini-store/lib/Provider.js","webpack:///./node_modules/mini-store/lib/connect.js","webpack:///./node_modules/mini-store/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/mini-store/lib/create.js","webpack:///./node_modules/mutationobserver-shim/dist/mutationobserver.min.js","webpack:///./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js","webpack:///./node_modules/dom-scroll-into-view/lib/util.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/antd/lib/_util/responsiveObserve.js","webpack:///./node_modules/enquire.js/src/index.js","webpack:///./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack:///./node_modules/enquire.js/src/MediaQuery.js","webpack:///./node_modules/enquire.js/src/QueryHandler.js","webpack:///./node_modules/antd/lib/list/Item.js","webpack:///./node_modules/antd/lib/_util/reactNode.js","webpack:///./node_modules/antd/lib/checkbox/style/index.less?7ae2","webpack:///./node_modules/antd/lib/checkbox/style/index.less","webpack:///./node_modules/antd/lib/checkbox/Group.js","webpack:///../node_modules/core-js/modules/es.array.splice.js","webpack:///../node_modules/core-js/internals/array-set-length.js","webpack:///../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///../node_modules/core-js/internals/array-species-constructor.js","webpack:///../node_modules/core-js/internals/delete-property-or-throw.js","webpack:///./node_modules/core-js/modules/es.set.constructor.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/object-is-extensible.js","webpack:///./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///../node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./node_modules/antd/lib/back-top/style/index.less?3282","webpack:///./node_modules/antd/lib/back-top/style/index.less","webpack:///./node_modules/antd/lib/layout/style/index.less?4e68","webpack:///./node_modules/antd/lib/layout/style/index.less","webpack:///./node_modules/antd/lib/popover/style/index.less?11d9","webpack:///./node_modules/antd/lib/popover/style/index.less","webpack:///./node_modules/antd/lib/form/style/index.less?1e43","webpack:///./node_modules/antd/lib/form/style/index.less","webpack:///./node_modules/antd/lib/input/style/index.less?164e","webpack:///./node_modules/antd/lib/input/style/index.less","webpack:///./node_modules/antd/lib/button/style/index.less?20bc","webpack:///./node_modules/antd/lib/button/style/index.less","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./node_modules/react-helmet/lib/HelmetUtils.js","webpack:///./node_modules/antd/lib/form/Form.js","webpack:///./node_modules/rc-form/lib/createDOMForm.js","webpack:///./node_modules/create-react-class/index.js","webpack:///./node_modules/create-react-class/factory.js","webpack:///./node_modules/rc-util/lib/unsafeLifecyclesPolyfill.js","webpack:///./node_modules/async-validator/es/index.js","webpack:///./node_modules/async-validator/es/validator/index.js","webpack:///./node_modules/async-validator/es/validator/string.js","webpack:///./node_modules/async-validator/es/rule/whitespace.js","webpack:///./node_modules/async-validator/es/rule/type.js","webpack:///./node_modules/async-validator/es/rule/range.js","webpack:///./node_modules/async-validator/es/rule/enum.js","webpack:///./node_modules/async-validator/es/rule/pattern.js","webpack:///./node_modules/async-validator/es/validator/method.js","webpack:///./node_modules/async-validator/es/validator/number.js","webpack:///./node_modules/async-validator/es/validator/boolean.js","webpack:///./node_modules/async-validator/es/validator/regexp.js","webpack:///./node_modules/async-validator/es/validator/integer.js","webpack:///./node_modules/async-validator/es/validator/float.js","webpack:///./node_modules/async-validator/es/validator/array.js","webpack:///./node_modules/async-validator/es/validator/object.js","webpack:///./node_modules/async-validator/es/validator/enum.js","webpack:///./node_modules/async-validator/es/validator/pattern.js","webpack:///./node_modules/async-validator/es/validator/date.js","webpack:///./node_modules/async-validator/es/validator/required.js","webpack:///./node_modules/async-validator/es/validator/type.js","webpack:///./node_modules/async-validator/es/messages.js","webpack:///./node_modules/rc-form/lib/createFieldsStore.js","webpack:///./node_modules/rc-form/lib/FieldElemWrapper.js","webpack:///./node_modules/rc-form/lib/createForm.js","webpack:///./node_modules/antd/lib/form/FormItem.js","webpack:///./node_modules/antd/lib/input/Group.js","webpack:///./node_modules/antd/lib/input/Search.js","webpack:///./node_modules/is-mobile/index.js","webpack:///./node_modules/antd/lib/button/button.js","webpack:///./node_modules/antd/lib/_util/wave.js","webpack:///./node_modules/css-animation/lib/Event.js","webpack:///./node_modules/antd/lib/button/button-group.js","webpack:///./node_modules/antd/lib/input/ResizableTextArea.js","webpack:///./node_modules/rc-resize-observer/es/index.js","webpack:///./node_modules/rc-util/lib/Dom/findDOMNode.js","webpack:///./node_modules/rc-util/lib/Children/toArray.js","webpack:///./node_modules/rc-util/lib/ref.js","webpack:///./node_modules/rc-resize-observer/es/util.js","webpack:///./node_modules/antd/lib/input/calculateNodeHeight.js","webpack:///./node_modules/antd/lib/input/Password.js","webpack:///./node_modules/react-dock/lib/Dock.js","webpack:///./node_modules/react-dock/node_modules/lodash.debounce/index.js","webpack:///./node_modules/lodash._getnative/index.js","webpack:///./node_modules/react-dock/lib/autoprefix.js","webpack:///./node_modules/antd/lib/radio/style/index.less?130b","webpack:///./node_modules/antd/lib/radio/style/index.less","webpack:///./node_modules/antd/lib/icon/style/index.js","webpack:///./node_modules/antd/lib/icon/style/index.less?7872","webpack:///./node_modules/antd/lib/icon/style/index.less","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/FacebookEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/placeholder/parts/EngagementIconsPlaceholder.js","webpack:///./node_modules/react-social-media-embed/dist/components/placeholder/parts/ProfilePlaceholder.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/InstagramEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/LinkedInEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/PinterestEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/TikTokEmbed.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/TwitterEmbed.js","webpack:///./node_modules/react-twitter-embed/dist/index.modern.js","webpack:///./node_modules/react-social-media-embed/dist/components/embeds/YouTubeEmbed.js","webpack:///./node_modules/react-youtube/dist/YouTube.esm.js","webpack:///./node_modules/sister/src/sister.js","webpack:///./node_modules/youtube-player/dist/loadYouTubeIframeApi.js","webpack:///./node_modules/load-script/index.js","webpack:///./node_modules/youtube-player/dist/YouTubePlayer.js","webpack:///./node_modules/youtube-player/node_modules/debug/src/browser.js","webpack:///./node_modules/youtube-player/node_modules/debug/src/debug.js","webpack:///./node_modules/youtube-player/node_modules/ms/index.js","webpack:///./node_modules/youtube-player/dist/functionNames.js","webpack:///./node_modules/youtube-player/dist/eventNames.js","webpack:///./node_modules/youtube-player/dist/FunctionStateMap.js","webpack:///./node_modules/youtube-player/dist/constants/PlayerStates.js","webpack:///../node_modules/core-js/modules/es.regexp.exec.js","webpack:///../node_modules/core-js/internals/regexp-exec.js","webpack:///../node_modules/core-js/internals/regexp-flags.js","webpack:///../node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///../node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///../node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///../node_modules/core-js/modules/es.array.slice.js","webpack:///../node_modules/core-js/modules/es.array.from.js","webpack:///../node_modules/core-js/internals/array-from.js","webpack:///../node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///../node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///../node_modules/core-js/internals/iterator-close.js","webpack:///../node_modules/core-js/internals/is-array-iterator-method.js","webpack:///../node_modules/core-js/internals/get-iterator.js","webpack:///../node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///../node_modules/core-js/modules/es.symbol.js","webpack:///../node_modules/core-js/modules/es.symbol.constructor.js","webpack:///../node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///../node_modules/core-js/internals/array-slice-simple.js","webpack:///../node_modules/core-js/internals/well-known-symbol-define.js","webpack:///../node_modules/core-js/internals/path.js","webpack:///../node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///../node_modules/core-js/internals/array-iteration.js","webpack:///../node_modules/core-js/modules/es.symbol.for.js","webpack:///../node_modules/core-js/modules/es.symbol.key-for.js","webpack:///../node_modules/core-js/modules/es.json.stringify.js","webpack:///../node_modules/core-js/internals/function-apply.js","webpack:///../node_modules/core-js/internals/get-json-replacer-function.js","webpack:///../node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///../node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/url/node_modules/qs/lib/index.js","webpack:///./node_modules/url/node_modules/qs/lib/stringify.js","webpack:///./node_modules/url/node_modules/qs/lib/parse.js","webpack:///./node_modules/antd/lib/tooltip/placements.js","webpack:///./node_modules/rc-tooltip/lib/placements.js","webpack:///./node_modules/antd/lib/modal/style/index.less?2145","webpack:///./node_modules/antd/lib/modal/style/index.less","webpack:///./node_modules/antd/lib/modal/confirm.js","webpack:///./node_modules/antd/lib/modal/ActionButton.js","webpack:///./node_modules/antd/lib/collapse/style/index.less?6665","webpack:///./node_modules/antd/lib/collapse/style/index.less","webpack:///./node_modules/react-reveal/wrap.js","webpack:///./node_modules/react-reveal/RevealBase.js","webpack:///./node_modules/antd/lib/collapse/Collapse.js","webpack:///./node_modules/antd/lib/collapse/CollapsePanel.js","webpack:///./node_modules/antd/lib/_util/openAnimation.js","webpack:///./node_modules/antd/lib/radio/group.js","webpack:///./node_modules/antd/lib/radio/radioButton.js","webpack:///./node_modules/antd/lib/_util/easings.js","webpack:///./node_modules/antd/lib/badge/style/index.less?56d9","webpack:///./node_modules/antd/lib/badge/style/index.less","webpack:///./node_modules/antd/lib/badge/ScrollNumber.js","webpack:///./node_modules/antd/lib/_util/colors.js","webpack:///./node_modules/react-snowfall/lib/hooks.js","webpack:///./node_modules/antd/lib/menu/style/index.js","webpack:///./node_modules/antd/lib/menu/style/index.less?f4f3","webpack:///./node_modules/antd/lib/menu/style/index.less","webpack:///./node_modules/antd/lib/tooltip/style/index.js","webpack:///./node_modules/antd/lib/tooltip/style/index.less?4576","webpack:///./node_modules/antd/lib/tooltip/style/index.less","webpack:///./node_modules/antd/lib/menu/SubMenu.js","webpack:///./node_modules/antd/lib/menu/MenuItem.js","webpack:///./node_modules/antd/lib/_util/isNumeric.js","webpack:///./node_modules/antd/lib/_util/motion.js","webpack:///./node_modules/react-router/node_modules/isarray/index.js","webpack:///./node_modules/antd/lib/config-provider/style/index.js","webpack:///./node_modules/antd/lib/config-provider/style/index.less?f97a","webpack:///./node_modules/antd/lib/config-provider/style/index.less","webpack:///./node_modules/antd/lib/locale/ko_KR.js","webpack:///./node_modules/rc-pagination/lib/locale/ko_KR.js","webpack:///./node_modules/rc-calendar/lib/locale/ko_KR.js","webpack:///./node_modules/antd/lib/calendar/locale/ko_KR.js","webpack:///./node_modules/aos/dist/aos.css?be11","webpack:///./node_modules/aos/dist/aos.css","webpack:///./node_modules/rc-select/es/OptGroup.js","webpack:///./node_modules/rc-select/es/Option.js","webpack:///./node_modules/rc-select/es/PropTypes.js","webpack:///./node_modules/rc-util/es/Children/toArray.js","webpack:///./node_modules/rc-select/es/util.js","webpack:///./node_modules/rc-select/es/DropdownMenu.js","webpack:///./node_modules/rc-select/es/SelectTrigger.js","webpack:///./node_modules/rc-select/es/Select.js","webpack:///./node_modules/rc-select/es/index.js","webpack:///./node_modules/rc-dialog/es/LazyRenderBox.js","webpack:///./node_modules/rc-dialog/es/Dialog.js","webpack:///./node_modules/rc-util/es/getScrollBarSize.js","webpack:///./node_modules/rc-util/es/setStyle.js","webpack:///./node_modules/rc-util/es/switchScrollingEffect.js","webpack:///./node_modules/rc-util/es/PortalWrapper.js","webpack:///./node_modules/rc-dialog/es/DialogWrap.js","webpack:///./node_modules/rc-pagination/es/Pager.js","webpack:///./node_modules/rc-pagination/es/KeyCode.js","webpack:///./node_modules/rc-pagination/es/Options.js","webpack:///./node_modules/rc-pagination/es/Pagination.js","webpack:///./node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///./node_modules/rc-tooltip/es/placements.js","webpack:///./node_modules/rc-tooltip/es/Content.js","webpack:///./node_modules/rc-tooltip/es/Tooltip.js","webpack:///./node_modules/rc-tooltip/es/index.js"],"names":["StyleSheet","options","this","isSpeedy","undefined","speedy","tags","ctr","nonce","key","container","before","_proto","prototype","insert","rule","_tag","tag","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","length","nextSibling","insertBefore","push","sheet","i","styleSheets","ownerNode","sheetForTag","isImportRule","charCodeAt","insertRule","cssRules","e","flush","forEach","parentNode","removeChild","W","X","d","c","h","trim","split","ia","a","m","b","Z","v","n","replace","F","indexOf","P","substring","w","L","ja","ka","test","aa","G","ba","la","ma","R","na","ea","oa","H","q","g","x","A","S","call","B","U","prefix","D","z","M","k","y","C","K","u","l","r","I","t","J","f","p","N","charAt","ca","O","join","da","fa","Y","E","ha","Q","use","T","set","toSheet","block","Sheet","current","ruleSheet","context","content","selectors","parents","line","column","ns","depth","at","delimiter","stylisOptions","stylis","inserted","head","_insert","nodes","querySelectorAll","Array","node","getAttribute","id","stylisPlugins","selector","serialized","shouldCache","name","styles","cache","registered","Object","hasOwnProperty","EmotionCacheContext","HTMLElement","ThemeContext","Provider","func","render","props","ref","Consumer","typePropName","createEmotionProps","type","newProps","Noop","theme","cssProp","css","registeredStyles","className","ele","possiblyStyleElement","Emotion","_len","arguments","args","_key","apply","argsLength","createElementArgArray","Global","_React$Component","InnerGlobal","updater","componentDidMount","querySelector","insertStyles","componentDidUpdate","prevProps","next","element","nextElementSibling","componentWillUnmount","insertable","anim","toString","classnames","len","cls","arg","toAdd","isArray","merge","rawClassName","cx","_len2","_key2","children","isNaN","value","Number","getType","castString","Error","toBoolean","toNumber","hasValue","isNumber","converted","isString","toText","isObject","toNumberOrPercent","getValue","getValueDefault","defaultValue","isDate","PI","Math","HALFPI","RADIANS","DEGREES","toNumberRange","min","max","fitToRange","round","precision","floor","rounded","pow","ceil","minValue","maxValue","temp","sin","tan","cos","left","right","closest","values","referenceValue","reduce","prev","curr","abs","intersect","range1","range2","start1","start","start2","end1","end","end2","invertRange","range","intersection","startMax","endMin","getDistance","point1","point2","sqrt","getHorizontalDistance","getVerticalDistance","getCubicCurveDistance","controlPointA","controlPointB","stepCount","distance","prevPoint","s","point","getPointOnCubicCurve","getScale","startPoint1","startPoint2","initialDistance","currentDistance","getMidPoint","position","getAngle","diffX","diffY","angle","atan2","normalizeAngle","getBBox","points","length_1","top_1","bottom","width","height","getCommonRectangle","rectangles","minX","minY","maxX","maxY","rectangle","getPointOnQuadraticCurve","pointA","pointB","controlPoint","mt1","mt2","mt3","getCubicControlPointA","p0","p1","p2","p3","tensionX","tensionY","adjustTension","getCubicControlPointB","tension","fitAngleToRange","startAngle","endAngle","count","getArcRect","radius","MAX_VALUE","bpoints","getArcPoint","fromAngle","toAngle","pt","arc","isInRectangle","module","exports","defineProperty","ex","React","React__default","UA","browser","getBrowser","device","getCPU","getDevice","engine","getEngine","os","getOS","ua","getUA","setDefaults","getNavigatorInstance","window","navigator","isIOS13Check","nav","platform","maxTouchPoints","MSStream","_typeof","obj","Symbol","iterator","constructor","_defineProperties","target","descriptor","enumerable","configurable","writable","_defineProperty","_extends","assign","source","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","self","ReferenceError","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","initialData","isMobile","isTablet","isBrowser","isSmartTV","isConsole","isWearable","mobilePayload","getOwnPropertyDescriptors","defineProperties","_objectSpread2","vendor","model","osVersion","version","checkType","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","userAgent","toLowerCase","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","AndroidView","_ref","renderWithFragment","viewClassName","style","Fragment","BrowserView","_ref2","ConsoleView","_ref10","CustomView","_ref12","condition","IEView","_ref3","IOSView","_ref4","MobileOnlyView","_ref8","MobileView","_ref5","SmartTVView","_ref9","TabletView","_ref6","WearableView","_ref11","WinPhoneView","_ref7","deviceDetect","browserMajorVersion","browserFullVersion","broPayload","stvPayload","consolePayload","wearPayload","withOrientationChange","WrappedComponent","_class","_this","instance","Constructor","TypeError","_classCallCheck","_possibleConstructorReturn","isEventListenerAdded","handleOrientationChange","bind","onOrientationChange","onPageLoad","state","isLandscape","isPortrait","protoProps","staticProps","subClass","superClass","create","_inherits","orientation","innerWidth","innerHeight","setState","removeEventListener","addEventListener","Component","extendStatics","__extends","String","__","__assign","__awaiter","thisArg","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","verb","op","pop","__values","__read","ar","error","__spread","concat","SuppressedError","registry","Registry","events","themes","loadedThemes","_uidCount","registeredClasses","_placeholders","invalidSprites","invalidDatas","invalidRawDatas","invalidDataItems","invalidDataRange","invalidPositions","invalidLayouts","baseSprites","baseSpritesByUid","queue","deferred","uid","getUniqueId","noBase","sprite","svg","paper","clientWidth","clientHeight","removeAttribute","get","_map","setCache","ttl","getCache","dispatch","eventType","data","isEnabled","dispatchImmediately","getPlaceholder","addToInvalidComponents","component","baseId","removeFromInvalidComponents","addToInvalidSprites","removeFromInvalidSprites","addToInvalidPositions","removeFromInvalidPositions","addToInvalidLayouts","removeFromInvalidLayouts","is","polyline","path","lineTo","minStep","minPolylineStep","moveTo","quadraticCurveTo","cubicCurveTo","closePath","arcTo","radiusY","segments","pax","pay","cy","ax","ay","innerRadius","cornerRadius","innerCornerRadius","crSin","innerRadiusY","cornerRadiusY","innerCornerRadiusY","crAngle","asin","crAngleY","crInnerAngle","crInnerAngleY","middleAngle","mPoint","a0","b0","c0","d0","b1","d1","arcToPoint","sweepFlag","largeArcFlag","xAxisRotation","Boolean","rectToPath","rect","ccw","_createClass","_Component","PanelContent","nextProps","forceRender","isActive","_classnames","_isActived","_props","prefixCls","destroyInactivePanel","role","contentCls","child","propTypes","string","bool","any","CollapsePanel","_temp","handleItemClick","onItemClick","handleKeyPress","keyCode","which","_classNames2","header","headerClass","showArrow","disabled","accordion","headerCls","itemCls","onClick","tabIndex","onKeyPress","Animate","showProp","exclusive","animation","openAnimation","oneOfType","number","defaultProps","animate","show","transitionName","offsetHeight","active","enter","leave","toArray","activeKey","currentActiveKey","Collapse","_this$props","defaultActiveKey","openAnimationFactory","index","arr","arr2","from","_toConsumableArray","splice","setActiveKey","_this2","newChildren","_child$props","onClickItem","cloneElement","onChange","_classNames","_props2","collapseClassName","getItems","arrayOf","Panel","Accordion","LazyRenderBox","hiddenClassName","visible","noop","Dialog","getDialogElement","closable","footer","el","footerRef","title","headerRef","closer","close","getTransitionName","dialogElement","dialogRef","bodyStyle","bodyRef","onAppear","onAnimateAppear","onLeave","onAnimateLeave","transitionAppear","overflow","wrapRef","display","afterClose","onClose","onMaskClick","currentTarget","zIndex","wrapStyle","getZIndexStyle","maskStyle","maskTransitionName","maskAnimation","maskElement","mask","maskTransition","getMaskTransitionName","getMaskStyle","maskProps","maskClosable","getWrapStyle","getMaskElement","wrapClassName","wrapProps","IS_REACT_16","createPortal","CAN_USE_DOM","DialogWrap","saveRef","_component","getComponent","removeContainer","unmountComponentAtNode","getContainer","containerId","Date","getTime","renderDialog","unstable_renderSubtreeIntoContainer","TouchFeedback","onTouchStart","triggerEvent","onTouchMove","onTouchEnd","onTouchCancel","onMouseDown","onMouseUp","onMouseLeave","ev","activeClassName","activeStyle","Children","only","substr","__rest","Badge","_classnames2","_a","text","size","overflowCount","dot","corner","hot","restProps","scrollNumberCls","badgeCls","ActivityIndicator","animating","toast","wrapClass","spinnerClass","panelColor","icons","check","cross","down","up","loading","search","ellipsis","voice","plus","minus","dislike","fail","success","existing","getElementById","mountNode","insertAdjacentHTML","map","iconName","Icon","xlinkHref","rxTwoCNChar","isTwoCNChar","str","insertSpace","Button","inline","icon","iconType","wrapCls","kids","iconEl","rawCls","rootNativeProps","selectedValue","colElements","col","onValueChange","onScrollChange","cc","cb","ComposedComponent","getDaysInMonth","date","getFullYear","getMonth","getDate","pad","cloneDate","setMonth","month","setDate","DatePicker","defaultDate","getNewDate","parseInt","mode","newValue","setFullYear","setHours","setMinutes","setAmPm","clipDate","onDateChange","hour","use12Hours","nhour","getHours","setTime","ONE_DAY","defaultMinDate","defaultMaxDate","getDefaultMinDate","getMinDate","getMaxDate","getMinutes","minDate","maxDate","getDefaultMaxDate","locale","formatMonth","formatDay","selYear","selMonth","minDateYear","getMinYear","maxDateYear","getMaxYear","minDateMonth","getMinMonth","maxDateMonth","getMaxMonth","minDateDay","getMinDay","maxDateDay","getMaxDay","years","year","yearCol","months","minMonth","maxMonth","_i","monthCol","days","minDay","maxDay","_i2","_label","day","rawHour","_props2$minHour","minHour","_props2$maxHour","maxHour","_props2$minMinute","minMinute","_props2$maxMinute","maxMinute","_props3","minuteStep","minDateMinute","getMinMinute","maxDateMinute","getMaxMinute","minDateHour","getMinHour","maxDateHour","getMaxHour","hours","getDisplayHour","minutes","selMinute","_i3","minute","cols","am","pm","maxMinutes","minMinutes","_props4","getDateData","time","getTimeData","dtValue","_getValueCols","getValueCols","_props5","pickerPrefixCls","itemStyle","multiStyle","flexDirection","alignItems","flex","item","Item","Models","_React$PureComponent","TimePicker","getMinTime","getMaxTime","POSITIVE_INFINITY","PureComponent","SelectType","mergeDateTime","getSeconds","format","week","getDay","getMilliseconds","RegExp","$1","shallowEqual","objA","objB","exclude","keysA","keysB","visibleMonth","getDateWithoutTime","genWeekData","firstDate","minDateTime","maxDateTime","weeks","nextMonth","getMonthDate","currentDay","currentWeek","startWeekday","dayOfMonth","tick","selected","None","isFirstOfMonth","isLastOfMonth","outOfDate","selectDateRange","startDate","endDate","clear","getDateExtra","onSelectHasDisableDate","time1","time2","startDateTick","endDateTick","startMonthDate","endMonthDate","lastDate","unuseable","needUpdate","inDate","oldValue","info","disable","Single","Start","All","Only","End","Middle","componentRef","updateWeeks","forceUpdate","console","warn","computeVisible","scrollTop","MAX_VIEW_PORT","MIN_VIEW_PORT","filterFunc","vm","infiniteOpt","sort","last","lastIndex","canLoadNext","genMonthData","first","firstIndex","_index","unshift","createOnScroll","timer","client","top","setTimeout","onCellClick","shouldComponentUpdate","nextState","nextContext","componentWillReceiveProps","componentWillMount","_props$initalMonths","initalMonths","addMonth","canLoadPrev","_getMonthDate","monthTitle","genMonthComponent","infinite","WeekPanel","SingleMonth","genWeek","weeksData","monthData","rowCls","rowSize","weekComponents","dayOfWeek","extra","lCls","rCls","infoCls","styleType","begin","begin_over","over","defaultContent","cellCls","cellRender","setWarpper","dom","wrapperDivDOM","lastY","delta","transform","updateLayout","computeHeight","singleMonth","offsetTop","setLayout","onLayout","scrollHandler","onscroll","evt","full","setPanel","panel","touchHandler","touches","screenY","preventDefault","setTransform","onFinish","slice","setTransition","nodeStyle","webkitTransform","transition","webkitTransition","_props$prefixCls","_props$locale","overflowX","overflowY","loadPrevMonth","ConfirmPanel","onConfirm","disableBtn","formatDate","_props$formatStr","formatStr","startDateTime","endDateTime","tmp","startTimeStr","noChoose","endTimeStr","btnCls","confirm","ShortcutPanel","onSelect","today","yesterday","lastWeek","lastMonth","AnimateWrapper","displayType","Header","onCancel","onClear","showClear","closeIcon","clearIcon","StateType","showTimePicker","disConfirmBtn","clientHight","Calendar","selectDate","useDateTime","oldState","newState","pickTime","defaultTimeValue","newDate","timePickerTitle","selectTime","selectStartTime","selectEndTime","onSelectedDate","_this$state","shortcutSelect","_this$state2","onTimeChange","_this$state3","setClientHeight","_props$locale2","showShortcut","renderHeader","renderShortcut","enterDirection","timePickerPrefixCls","timePickerPickerPrefixCls","_state","headerProps","dateTimeFormat","dateFormat","DefaultHeader","DefaultShortcut","showHeader","getComponentLocale","componentName","getDefaultLocale","antLocale","defaultLocale","lang","contextTypes","CardBody","CardFooter","CardHeader","thumb","thumbStyle","src","Card","resetProps","Body","Footer","handleClick","previousSlide","getButtonStyles","currentSlide","wrapAround","border","background","color","padding","outline","opacity","cursor","_React$Component2","nextSlide","slidesToScroll","slideCount","_React$Component3","_this4","indexes","getIndexes","getListStyles","getListItemStyles","goToSlide","inc","margin","listStyleType","fontSize","stackBehavior","ADDITIVE","DESTRUCTIVE","addEvent","elem","eventHandle","attachEvent","removeEvent","detachEvent","Carousel","_rafCb","tweenQueue","now","newTweenQueue","initTime","config","duration","onEnd","_rafID","clickSafe","stopPropagation","nativeEvent","autoplayIterator","slidesToShow","stopAutoplay","beforeSlide","afterSlide","animateSlide","getTargetLeft","resetAutoplay","setExternalData","endSlide","childrenCount","slideWidth","onResize","setDimensions","onReadyStateChange","slideIndex","dragging","frameWidth","touchObject","setInitialDimensions","bindEvents","autoplay","startAutoplay","unbindEvents","cancel","easing","delay","beginValue","endValue","configSB","stateName","pathHash","newConfig","tweeningValue","_state$tweenQueue$_i","itemPathHash","progressTime","_this3","formatChildren","getSliderStyles","getFrameStyles","getTouchEvents","getMouseEvents","decorators","Decorator","getDecoratorStyles","cellSpacing","dangerouslySetInnerHTML","__html","getStyleTagStyles","swiping","startX","pageX","startY","pageY","handleMouseOver","direction","swipeDirection","vertical","endX","endY","handleSwipe","handleMouseOut","onMouseOver","onMouseOut","clientX","clientY","onMouseMove","autoplayPaused","swipeSpeed","edgeEasing","x1","x2","y1","y2","xDist","yDist","swipeAngle","autoplayID","setInterval","autoplayInterval","clearInterval","callback","tweenState","speed","touchOffset","slide","offset","cellAlign","canUseDOM","positionValue","getTweeningValue","getSlideStyles","_this5","initialSlideHeight","initialSlideWidth","slideHeight","frameHeight","setLeft","_this6","frame","refs","firstSlide","childNodes","offsetWidth","listWidth","spacingOffset","WebkitTransform","msTransform","boxSizing","MozBoxSizing","frameOverflow","framePadding","targetPosition","getSlideTargetPosition","verticalAlign","marginLeft","marginRight","marginTop","marginBottom","slidesBefore","slidesAfter","visibility","textAlign","_c","selectedIndex","afterChange","beforeChange","dots","dotActiveStyle","dotStyle","Decorators","dotDom","dotCls","currentDotStyle","arrows","Checkbox","checked","defaultChecked","readOnly","onFocus","onBlur","others","globalProps","classString","handleChange","mark","wrapLabel","AgreeItem","getDataAttr","Brief","ListItem","_this2$props","debounceTimeout","clearTimeout","RippleWidth","ClientRect","getBoundingClientRect","coverRippleStyle","RippleClicked","_classnames3","_classnames4","align","wrap","multipleLine","arrow","otherProps","rippleCls","lineCls","arrowCls","touchProps","List","renderFooter","CheckboxItem","listPrefixCls","checkboxProps","extraProps","getModal","platformProps","onPickerChange","pickerValue","picker","pickerValueChangeProp","onTriggerClick","childProps","triggerType","fireVisibleChange","onOk","getContent","_React$cloneElement","pickerValueProp","onDismiss","hide","setVisibleState","onVisibleChange","_this$props2","WrapComponent","newChildProps","getRender","okText","dismissText","popupTransitionName","PopupDatePicker","datePicker","formatIt","form","dateStr","timeStr","formatFn","datetime","setScrollValue","scrollValue","fixOnOk","popupPrefixCls","DatePickerLocale","DatePickerView","getOffset","_x","_y","offsetLeft","scrollLeft","offsetParent","Drawer","onOverlayClicked","open","onOpenChange","overlayClicked","isTouching","touch","targetTouches","touchIdentifier","notTouch","identifier","touchStartX","touchStartY","touchCurrentX","touchCurrentY","ind","touchWidth","touchSidebarWidth","sidebarWidth","dragToggleDistance","touchHeight","touchSidebarHeight","sidebarHeight","onScroll","inCancelDistanceOnScroll","cancelDistanceOnScroll","saveSidebarSize","sidebar","findDOMNode","sidebarTop","dragHandleTop","dragHandle","touchStartOffsetY","renderStyle","sidebarStyle","overlayStyle","contentStyle","percentage","_percentage","touchSupported","_rootCls","transitions","enableDragHandle","docked","rootCls","rootProps","WebkitTransition","dragHandleStyle","isRequired","oneOf","Flex","justify","alignContent","FlexItem","Grid","renderCarousel","rowsArr","pageCount","rowCount","carouselMaxRow","pagesArr","pageIndex","pageRows","ii","rowIndex","renderItem","dataItem","columnNum","itemEl","getRows","dataLength","_onClick","rowWidth","colStyle","rowArr","_loop","j","dataIndex","documentElement","hasLine","isCarousel","square","restPropsForCarousel","renderEl","carouselProps","ImagePicker","getOrientation","file","reader","FileReader","onload","view","DataView","getUint16","byteLength","marker","getUint32","little","readAsArrayBuffer","getRotation","imgRotation","removeImage","newImages","_this$props$files","files","image","idx","addImage","imgItem","_this$props$files2","onImageClick","onFileChange","fileSelectorEl","fileSelectorInput","imageParsePromiseList","parseFile","all","imageItems","onFail","dataURL","res","url","readAsDataURL","_props$files","selectable","onAddImageClick","multiple","accept","capture","disableDelete","imgItemList","imgStyle","backgroundImage","selectEl","input","allEl","blankCount","fillBlankEl","flexEl","rowEl","hasClass","classList","contains","addClass","add","removeClass","remove","originClass","IS_IOS","includes","KeyboardItem","tdRef","iconOnly","extraCls","CustomKeyboard","onKeyboardClick","stopImmediatePropagation","disabledKeys","confirmDisabled","linkedInput","renderKeyboardItem","confirmLabel","backspaceLabel","cancelKeyboardLabel","wrapperCls","antmKeyboard","rowSpan","getAriaAttr","confirmKeyboardItem","Portal","customNumberKeyboard","NumberInput","onVirtualKeyboardConfirm","addBlurListener","doBlur","removeBlurListener","inputRef","onInputBlur","unLinkInput","autoAdjustHeight","keyboardPrefixCls","keyBoard","focus","onInputFocus","keyBoardHeight","scrollingElement","KeyboardItemValue","maxLength","valueAfterChange","onFakeInputClick","renderCustomKeyboard","moneyKeyboardWrapProps","moneyKeyboardHeader","placeholder","editable","moneyKeyboardAlign","preventKeyboard","fakeInputCls","fakeInputContainerCls","renderPortal","Input","normalizeValue","InputItem","onInputChange","rawVal","prePos","selectionEnd","_this$state$value","preCtrlVal","ctrlValue","valueLen","handleOnChange","pos","calcPos","selectionStart","isMutated","adjustPos","activeElement","clearInput","updatePlaceholder","ctrlVal","placeholderChars","maskReg","editLength","ctrlCharCount","placeholderCharCount","prefixListCls","labelNumber","onExtraClick","onErrorClick","_locale","labelCls","controlCls","inputType","patternProps","pattern","classNameProps","CustomInput","defaultGetRowData","dataBlob","sectionID","rowID","defaultGetSectionHeaderData","keyedDictionaryFromArray","ListViewDataSource","params","rowHasChanged","_rowHasChanged","_getRowData","getRowData","_sectionHeaderHasChanged","sectionHeaderHasChanged","_getSectionHeaderData","getSectionHeaderData","_dataBlob","_dirtyRows","_dirtySections","_cachedRowCount","rowIdentities","sectionIdentities","rowIds","cloneWithRowsAndSections","s1","newSource","allRowIDs","totalRows","sectionIdx","rowIDs","countRows","_calculateDirtyArrays","sectionIndex","needsUpdate","accessIndex","results","prevDataBlob","prevSectionIDs","prevRowIDs","dirty","prevSectionsHash","prevRowsHash","sIndex","rIndex","listViewPrefixCls","contentContainerStyle","ScrollView","_ret","dataSource","initialListSize","handleScroll","useBodyScroll","ScrollViewRef","getMetrics","scrollEventThrottle","layout","_props$style","_props$contentContain","pullToRefresh","preCls","containerProps","WebkitOverflowScrolling","contentContainerProps","InnerScrollViewRef","minWidth","clonePullToRefresh","isBody","getScrollContainer","isVertical","horizontal","scrollNode","visibleLength","contentLength","getInnerViewNode","scrollTo","_window","StaticRenderer","shouldUpdate","ListView","scrollProperties","_childFrames","_visibleRows","_prevRenderedRowsCount","_sentEndForContentLength","curRenderedRowsCount","getRowCount","_renderMoreRowsIfNeeded","bodyComponents","renderSectionHeader","shouldUpdateHeader","sectionHeaderShouldUpdate","sectionBody","rowIdx","comboID","shouldUpdateRow","rowShouldUpdate","row","renderRow","onRowHighlighted","renderSeparator","adjacentRowHighlighted","highlightedRow","separator","rowsAndSeparators","renderSectionBodyWrapper","sectionBodyClassName","renderSectionWrapper","renderScrollComponent","_onScroll","ListViewRef","onContentSizeChange","_onContentSizeChange","_onLayout","renderBodyComponent","DataSource","instanceOf","onEndReached","onEndReachedThreshold","pageSize","scrollRenderAheadDistance","onChangeVisibleRows","scrollerOptions","renderedRows","visibleRows","_ListViewRef","event","_event$nativeEvent$la","_maybeCallOnEndReached","_getDistanceFromEnd","_pageInNewRows","rowsToRender","metrics","setDocumentScrollTop","val","IndexedList","_delay","dataChange","getQsInfo","_timer","_hCache","quickSearchBarTop","quickSearchBarStyle","sectionKvs","quickSearchBarRef","onQuickSearchTop","onQuickSearch","_props2$initialListSi","showQuickSearchIndicator","_renderSectionHeader","sectionHeaderClassName","other","delayActivityIndicator","indexedListViewRef","sectionData","sectionComponents","renderQuickSearchBar","qsIndicatorRef","delayTime","topId","lv","sec","_target","_basePos","_disableParent","updateIndicator","basePos","_pos","_qsHeight","_avgH","overValue","quickSearchBar","hCache","_top","innerText","_indicatorTimer","Indexed","handleProps","isIndexed","MIndexedList","_handleProps","indexedListRef","_this$listviewRef","listviewRef","Radio","RadioItem","radioProps","SubMenu","subMenuPrefixCls","radioPrefixCls","subMenuData","showSelect","selItem","multiSelect","ItemComponent","paddingTop","onSel","Menu","onMenuOk","onMenuCancel","onClickFirstLevelItem","firstLevelSelectValue","isLeaf","getSelectValue","level","chosenValues","existIndex","onClickSubMenuItem","getNewFsv","firstValue","_props$data","multiSelectMenuBtnsCls","MenuSelectContanerPrefixCls","parent","subValue","shift","parentValue","subSelInitItem","heightStyle","cancelText","matchesSelector","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","parentElement","_ModalComponent","Modal","button","buttonStyle","destructive","onPress","_a$footer","operation","animated","transparent","popup","animationType","btnGroupClass","footerDom","renderFooterButton","transName","maskTransName","ModalComponent","onShow","alert","message","actions","closed","div","orginPress","onWrapTouchStart","prompt","callbackOrActions","placeholders","onBlurFixWechat","inputDom","focusFn","password","handleConfirm","_data$text","_data$password","callbackArgs","NavBar","onLeftClick","leftContent","rightContent","Marquee","animatedWidth","overflowWidth","_measureText","_startAnimation","_marqueeTimer","whiteSpace","textRef","TIMEOUT","fps","timeout","leading","isRoundOver","loop","trailing","containerWidth","NoticeBar","action","marqueeProps","operationDom","Pagination","total","simple","prevText","nextText","markup","Cascader","pickerItemStyle","indicatorStyle","childrenTree","needPad","getCols","PopupCascader","cascader","Picker","selectedValueState","scrollHanders","scrollY","scrollDisabled","isMoving","noAnimate","contentRef","scrollingComplete","Velocity","minInterval","maxInterval","_time","_velocity","recorder","record","getVelocity","targetY","itemHeight","velocity","onStart","onMove","touchstart","mousedown","touchmove","mousemove","touchend","touchcancel","mouseup","setDisabled","scrollToWithoutAnimation","fireValueChange","computeChildIndex","doScrollingComplete","defaultSelectedValue","indicatorRef","maskRef","rootRef","rootHeight","num","backgroundSize","select","passiveSupported","willPreventDefault","passive","willNotPreventDefault","pd","err","_pickerCls","_props$indicatorClass","indicatorClassName","itemClassName","selectedItemClassName","_item$props","_item$props$className","items","pickerCls","selectByIndex","zscrollTo","childrenLength","AbstractPicker","getSel","treeChildren","cascade","getPickerCol","setCasecadeScrollValue","_a$value","popupMoreProps","popupProps","_AbstractPicker","PickerView","isMultiPicker","getCol","isWindow","Align","forceAlign","onAlign","monitorWindowResize","startMonitorWindowResize","reAlign","lastTarget","stopMonitorWindowResize","resizeHandler","bufferMonitor","fn","ms","bufferFn","buffer","monitorBufferTime","childrenProps","prop","PopupInner","getAlignFromPlacement","builtinPlacements","placementStr","baseAlign","getPopupClassNameFromAlign","a1","a2","placement","Popup","popupDomNode","currentAlignClassName","getClassNameFromAlign","getClassName","getTarget","getRootDomNode","savePopupRef","saveAlignRef","rootNode","getPopupDomNode","popupInstance","destroyPopupOnHide","popupInnerProps","alignOtherProps","xVisible","getPopupElement","Trigger","onDocumentClick","root","popupNode","getPopupAlign","popupPlacement","popupAlign","_container","clearOutsideHandler","touchOutsideHandler","currentDocument","getDocument","popupRef","afterPopupVisibleChange","popupClassName","onPopupAlign","popupAnimation","popupStyle","popupContainer","getPopupContainer","onTargetClick","trigger","portal","onPopupVisibleChange","defaultPopupVisible","TriggerWrap","setPopupVisible","popupVisible","triggerRef","displayName","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","Tooltip","arrowContent","overlay","saveTrigger","overlayClassName","afterVisibleChange","destroyTooltipOnHide","defaultVisible","getTooltipContainer","firstItem","activeClass","myName","Popover","_a$onSelect","overlayNode","recursiveCloneChildren","ch","newChild","wrapperNode","Progress","noAppearTransition","appearTransition","barRef","percent","unfilled","_props$barStyle","barStyle","percentStyle","MozTransform","isWebView","DOWN","UP","INDICATOR","activate","deactivate","release","finish","supportsPassive","opts","PullToRefresh","currSt","dragOnEdge","_isMounted","shouldUpdateChildren","triggerPullToRefresh","refreshing","_lastScreenY","distanceToRefresh","setContentStyle","reset","init","_to","destroy","_ele","_ScreenY","_startScreenY","_startScreenX","screenX","scrollHeight","damping","dy","screen","scale","_screenY","_screenX","devicePixelRatio","_diff","changedTouches","onRefresh","ty","containerRef","indicator","renderChildren","renderRefresh","cla","_getComponentLocale","activateText","deactivateText","finishText","Result","img","imgUrl","buttonText","onButtonClick","buttonType","imgContent","onSubmit","showCancelButton","SearchBar","blur","firstFocus","onBlurTimeout","blurFromOnClear","requestAnimationFrame","doClear","rightBtnRef","initBtn","getComputedStyle","rightBtnInitMarginleft","syntheticPhRef","inputContainerRef","syntheticPhContainerRef","realWidth","nextFrameId","cancelAnimationFrame","clearCls","cancelCls","SegmentedControl","selectedSegmentIndex","tintColor","backgroundColor","borderColor","activeInnerStyle","_props3$values","renderSegmentItem","included","positonStyle","elStyle","marks","lowerBound","upperBound","activeDotStyle","elements","parseFloat","isActived","pointClassName","marksKeys","marksCount","markWidth","markClassName","markPoint","markPointIsObject","isValidElement","markLabel","markStyle","Handle","postionStyle","ariaProps","isEventFromHandle","handles","some","isValueOutOfRange","isNotTouchEvent","getMousePosition","getTouchPosition","getHandleCenterPosition","handle","coords","ensureValueInRange","ensureValuePrecision","closestPoint","closestStep","diffs","getClosestPoint","toFixed","stepString","getPrecision","pauseEvent","createSlider","ComponentEnhancer","handlesRefs","handlePosition","dragOffset","addDocumentMouseEvents","addDocumentTouchEvents","sliderRef","saveSlider","slider","removeDocumentEvents","onTouchMoveListener","onTouchUpListener","onMouseMoveListener","onMouseUpListener","ratio","getSliderLength","pixelOffset","getSliderStart","trimAlignValue","calcValue","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","getLowerBound","getUpperBound","onBeforeChange","onAfterChange","minimumTrackStyle","handleStyle","trackStyle","Slider","prevValue","nextValue","changedValue","calcValueByPos","startValue","startPosition","mergedProps","handleGenerator","calcOffset","saveHandle","_trackStyle","Range","initialValue","bounds","recent","nextBounds","every","closestBound","getClosestBound","boundNeedMoving","getBoundNeedMoving","nextHandle","pushable","originalValue","pushSurroundingHandles","allowCross","isAtTheSamePoint","_getPointsCache","pointsObject","threshold","diffToNext","pushHandle","amount","currentValue","pushHandleOnePoint","getPoints","nextPointIndex","valInRange","valNotConflict","ensureValueNotConflict","_state2","offsets","handleClassName","trackClassName","MAX_SAFE_INTEGER","BaseComponent","parser","getValueFromEvent","inputValue","toNumberWhenUserInput","focused","getCurrentValidValue","persist","setValue","isNotCompleteNumber","getValidValue","changed","toPrecisionAsStep","valueString","getMaxPrecision","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","stepCompute","rat","precisionFactor","direct","Infinity","outOfRange","stop","autoStepTimer","recursive","autoFocus","InputHandler","_BaseComponent","InputNumber","setInput","focusOnUpDown","selectionRange","setSelectionRange","metaKey","ctrlKey","shiftKey","formatter","classes","upDisabledClass","downDisabledClass","inputDisplayValue","upEvents","downEvents","inputDisplayValueFormat","formatWrapper","isUpDisabled","isDownDisabled","unselectable","upHandler","downHandler","autoComplete","useTouch","Stepper","showNumber","stepperClass","stepperRef","Steps","stepRefs","tail","main","status","filterChildren","stepsRef","Step","iconPrefix","labelPlacement","PRESS","SWIPE","_calcTriangleDistance","_calcAngle","radian","calcMutliFingerStatus","_touches$","_touches$2","deltaX","deltaY","getEventName","toUpperCase","getDirectionEventName","directionMap","DIRECTION_HORIZONTAL","DIRECTION_UP","DIRECTION_LEFT","Gesture","getGestureState","triggerCombineEvent","mainEventName","eventStatus","triggerSubEvent","_len3","_key3","subEventName","triggerPinchEvent","_len4","_key4","gesture","initPressTimer","cleanPressTimer","pressTimer","setGestureState","press","preTouches","cleanGestureState","getTouches","triggerUserCb","cbName","_handleTouchStart","initGestureStatus","checkIfMultiTouchStart","startTouches","startTime","startMutliFingerStatus","mutliFingerStatus","srcEvent","enablePinch","enableRotate","pinch","rotate","rotation","_handleTouchMove","updateGestureStatus","checkIfSingleTouchMove","checkIfMultiTouchMove","_this$gesture","calcRotation","allowGesture","directionSetting","_this$gesture2","pan","moveStatus","_this$gesture2$availa","availablePan","eventName","checkIfMultiTouchEnd","_this$gesture3","_this$gesture4","_startTouches$","_touches$3","deltaZ","calcMoveStatus","_handleTouchEnd","doSingleTouchEnd","_handleTouchCancel","triggerAllowEvent","_this$gesture5","swipe","shouldTriggerSwipe","directionEvName","getTouchAction","touchAction","Swipeout","onCloseSwipe","openedLeft","openedRight","onPanStart","isLeft","isRight","needShowRight","needShowLeft","_setStyle","onPanMove","onPanEnd","needOpenRight","btnsRightWidth","needOpenLeft","btnsLeftWidth","doOpenRight","doOpenLeft","limit","contentLeft","_getContentEasing","cover","onOpen","btn","autoClose","factor","buttons","onBtnClick","divProps","refProps","renderButtons","onPanCancel","onSwipeLeft","onSwipeRight","SwipeAction","_props$left","_props$right","Switch","fackInputCls","getTransformPropValue","getPxStyle","unit","setPxStyle","useLeft","mozTransform","TabPane","offsetX","offsetY","fixX","fixY","showPrev","showNext","DefaultTabBar","lastOffset","finalOffset","onPan","isTabBarVertical","getLastOffset","canScrollOffset","scrollWidth","setCurrentOffset","getTransformByIndex","activeTab","tabs","_props$page","page","getTabSize","center","skipSize","goToTab","onTabClick","tabBarPosition","renderTab","tabBarTextStyle","tabBarActiveTextColor","tabBarInactiveTextColor","instanceId","textStyle","ariaSelected","setContentLayout","tabLength","_props$tabs","_props$page2","_props$activeTab","tabBarBackgroundColor","tabBarUnderlineStyle","renderUnderline","needScroll","Tabs","transformStyle","underlineProps","tabCache","isTabVertical","tabDirection","shouldRenderTab","_this$props$prerender","prerenderingSiblingsNumber","_this$state$currentTa","currentTab","getOffsetIndex","distanceToChangeTab","getSubElements","subElements","defaultPrefix","allPrefix","getTabIndex","nextCurrentTab","initialPage","param","prevCurrentTab","force","tabClickGoToTab","tabBarProps","renderTabBar","tab","Function","swipeable","destroyInactiveTab","usePaged","_BaseStateType","contentPos","panDirection","getPanDirection","useLeftInsteadTransform","offsetIndex","getContentPosByIndex","onSwipe","_this2$props2","translate","_getTabBarBaseProps","getTabBarBaseProps","getSubElement","useOnPan","noRenderContent","renderContent","reverse","_RMCDefaultTabBar","Tab","renderIcon","badge","selectedIcon","iconRes","iconDom","uri","alt","unselectedTintColor","iconColor","dataAttrs","AntTabBar","getTabs","barTintColor","hidden","tabsData","cProps","activeIndex","Tag","isSelect","onTagClose","small","closableDom","View","_props$Component","Text","regexAstralSymbols","TextareaItem","textareaRef","reAlignHeight","textareaDom","autoHeight","hasCount","rows","characterLength","countSymbols","lengthCtrlProps","entValue","entLen","Notice","clearCloseTimer","startCloseTimer","closeTimer","_className","componentClass","seed","getUuid","Notification","notices","notice","previousState","noticeNodes","createChainedFunction","newInstance","properties","called","notification","noticeProps","removeNotice","WhiteSpace","WingBlank","LocaleProvider","exist","childContextTypes","__esModule","_assign","_assign2","default","hasOwn","classNames","argType","inner","_typeof2","_typeof3","used","copyProperties","stripHash","exec","getBaseURI","baseURI","loc","location","href","copy","isNotEmpty","relativeToValue","relativeRadiusToValue","subtractIfNegative","getPixelRatio","capitalize","stringify","JSON","escapeForRgex","splitTextByCharCount","maxChars","fullWords","rtl","fullWordFallback","currentIndex","words","word","match","wordLength","reverseString","parts","truncateWithEllipsis","rtrim","ltrim","padString","char","getFormat","hints","cleanFormat","stripTags","plainText","numberToString","negative","parsed","digits","decimals","exponent","zeros","anyToDate","setMilliseconds","anyToNumber","getYearDay","utc","diff","getTimezoneOffset","getWeek","_utc","UTC","getUTCDay","setUTCDate","getUTCDate","firstDay","getUTCFullYear","getMonthWeek","firstWeek","getDayFromWeek","weekday","setUTCFullYear","get12Hours","base","getTimeZone","long","savings","wotz","toLocaleString","wtz","timeZoneName","fitNumber","fitNumberRelative","gap","svgPointToSprite","sprites","sprite_1","relativeX","pixelX","relativeY","pixelY","ey","dx","group","pixelPaddingLeft","pixelPaddingTop","spritePointToSvg","spritePointToSprite","toSprite","spriteRectToSvg","documentPointToSvg","svgContainer","cssScale","bbox","svgPointToDocument","documentPointToSprite","htmlContainer","spritePointToDocument","cs","paddingX","paddingLeft","paddingRight","borderX","borderLeftWidth","borderRightWidth","paddingY","paddingBottom","borderY","borderTopWidth","borderBottomWidth","decimalPlaces","urlRegexp","parseUrl","protocol","authority","domain","port","query","hash","serializeUrl","isRelativeUrl","joinUrl","parsedLeft","parsedRight","leftPath","rightPath","MSInputMethodContext","documentMode","array","output","each","eachReverse","eachContinue","shiftLeft","pushAll","found","move","toIndex","removeIndex","insertIndex","getSortedIndex","ordering","pivot","order","findIndex","keepIf","keep","_setPrototypeOf2","_interopRequireDefault","_create2","_defineProperty2","fromArray","iter","sum","go","push2","flatten","indexed","find","ListIterator","list","createNewItems","_create","_listCopy","getFirst","returnItem","getLast","removeItem","$","weekdays","ordinal","utcOffset","clone","$L","$u","$x","$offset","parse","$d","NaN","$y","$M","$D","$W","$H","$m","$s","$ms","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","Percent","_value","isPercent","TO_STRING_TAG_SUPPORT","defineBuiltIn","unsafe","toIndexedObject","addToUnscopables","Iterators","InternalStateModule","defineIterator","createIterResultObject","IS_PURE","DESCRIPTORS","setInternalState","getInternalState","getterFor","iterated","kind","Arguments","global","DOMIterables","DOMTokenListPrototype","ArrayIteratorMethods","createNonEnumerableProperty","wellKnownSymbol","ITERATOR","TO_STRING_TAG","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","METHOD_NAME","uncurryThis","isCallable","isPrototypeOf","copyConstructorProperties","NativeSymbol","SymbolPrototype","description","EmptyStringDescriptionStore","SymbolWrapper","NATIVE_SYMBOL","thisSymbolValue","symbolDescriptiveString","regexp","stringSlice","symbol","desc","forced","isConstructor","toAbsoluteIndex","lengthOfArrayLike","createProperty","arrayMethodHasSpeciesSupport","nativeSlice","HAS_SPECIES_SUPPORT","SPECIES","$Array","proto","fin","entries","hasKey","eachOrdered","ord","keysOrdered","object1","object2","forceCopyProperties","copyAllProperties","to","IndexedIterable","_array","_start","_end","backwards","ListDisposer","_super","ListGrouper","getKey","on","_getKey","_remove","_keys","_groups","_sort","index_1","disposeOnRemove","disposer_1","dispose","checkBounds","initial","_values","removeValue","hasIndex","getIndex","setIndex","_sortQuicksort","low","high","_sortPartition","swap","value_a","value_b","moveValue","copyFrom","setAll","newArray","oldArray","ListTemplate","template","_template","isTemplate","make","out","Color","_lightColor","_darkColor","alpha","rgba","hex","lighten","rgb","brighten","saturate","saturation","darkColor","lightColor","cacheId","cached","toColor","isColor","castColor","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","_interopRequireWildcard","_rcNotification","_icon","WeakMap","defaultTop","messageInstance","maxCount","defaultDuration","api","warning","closePromise","getMessageInstance","iconNode","switchIconNode","filled","promise","isArgsProps","_default","stat","checkCorrectnessOfIteration","iterable","rootStylesheet","SVGNS","XMLNS","XLINK","listener","getElement","getElementsByClassName","currentClassName","setStyle","property","currentStyle","defaultView","getPropertyValue","host","getShadowRoot","getRoot","owner","ownerDocument","eventTarget","composedPath","fixPixelPerfect","left_1","StyleRule","getStylesheet","_rule","deleteRule","appendStylesheet","selectorText","_setVendorPrefixName","setProperty","styleId","StyleClass","ready","readyState","listener_1","findFont","font","parent_1","findFontSize","parent_2","isElementInViewport","viewportTarget","targets","viewportRect","Disposer","_disposed","_dispose","isDisposed","MultiDisposer","disposers","MutableValueDisposer","_disposer","disposer","CounterDisposer","_counter","increment","defineWellKnownSymbol","getBuiltIn","setToStringTag","visualProperties","Sprite","_eventDispatcher","_bindings","_isTemplate","_isPath","_inited","_ready","isHiding","_isHidden","isShowing","isStandaloneInstance","_isActive","_mask","_positionPrecision","_language","_exporting","_exportable","_bbox","invalid","positionInvalid","propertyFields","applyOnClones","_measuredWidthSelf","_measuredHeightSelf","maxLeft","maxRight","maxTop","maxBottom","maxLeftSelf","maxRightSelf","maxTopSelf","maxBottomSelf","_isDragged","_isResized","_disabled","_internalDisabled","_updateDisabled","_internalDefaultsApplied","rollOutDelay","isBaseSprite","shouldClone","appeared","dragWhileResize","measureFailed","preventShow","cloneTooltip","_disposers","addGroup","setPropertyValue","_prevMeasuredWidth","_prevMeasuredHeight","_measuredWidth","_measuredHeight","_isMeasured","invalidate","applyTheme","_adapterO","autoSetClassName","setClassName","getCurrentThemes","_themes","_parent","applyInternalDefaults","__disabled","requestFrame","validate","beforeDraw","draw","afterDraw","invalidatePosition","validatePosition","attr","removeSVGAttribute","sizeChanged","measure","prevGroupTransform","transformString","nonScaling","globalScale","showTooltipOn","updateTooltipPosition","maskRectangle","_maskRectangle","_clipElement","e_1","isMeasured","horizontalCenter","verticalCenter","measureElement","_b","e_1_1","return","applyFilters","interactionsEnabled","showOnInit","applyMask","dispatchReady","hideTooltip","showTooltip","isReady","reinit","defaultState","handleGlobalScale","nonScalingStroke","strokeWidth","updateFilterScale","filters","removeFromInvalids","states","adapter","interactions","plugins","configField","virtualParent","exportable","_tooltip","tooltip","_showSystemTooltip","showSystemTooltip","fillModifier","strokeModifier","focusFilter","firstChild","_clones","_svgContainer","_interactionDisposer","_urlDisposer","_numberFormatter","_focusFilter","stroke","clonedFrom","fill","removeKey","_filters","_alwaysShowDisposers","applyAccessibility","_topParent","topParent","oldParent","_tooltipContainer","tooltipContainer","_dataItem","handleAlwaysShowTooltip","handleAlwaysShow","oldDisposers","oldDisposer","addDisposer","_virtualParent","appendDefs","filterElement","appendDef","fill_1","modify","stroke_1","_clipPath","delayedMap","_delayedMap","_id","setKey","_paper","setPaper","_htmlContainer","parent_3","_titleElement","_descriptionElement","onAll","setSVGAttributes","fillOpacity","strokeOpacity","shapeRendering","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","focusable","tabindex","setSVGAttribute","attribute","removeAttr","classNamePrefix","userClassName","uidAttr","updateClipPath","createClipPath","pixelWidth","pixelHeight","width_1","height_1","removeChildNodes","filterUnits","appendPrimitives","removeClipPath","removeDispose","setElement","_element","removeElement","SVGPathElement","definedBBox","svgBBox","updateCenter","prevElementTransform","elementX","elementY","elementWidth","elementHeigth","pixelPaddingRight","pixelPaddingBottom","measuredWidth","measuredHeight","pixelPerfect","pixelPerfectPrecision","positionPrecision","matrix","createSVGMatrix","createSVGPoint","p4","pt1","matrixTransform","pt2","pt3","pt4","isHover","tooltipText","tooltipHTML","sortChildren","insertAfter","getRelativeX","getRelativeY","getPixelX","pixel","relative","getPixelY","isDragged","inited","hitTest","ax1","ay1","ax2","ay2","bx1","by1","bx2","by2","_states","processState","hiddenState","hoverable","clickable","clones","_animations","getSvgPoint","animationOptions","transitionDuration","isHidden","setVisibility","transitionEasing","transitTo","applyCurrentState","isDown","downPointers","isFocused","propValues","allValues","propertyName","finalValue","option","isFinished","newFilters_1","stateFilter","newFilter","currentFilter","isInTransition","animations","isInteractive","handleOver","isRealHover","handleOut","handleDown","handleUp","handleFocus","handleBlur","setActive","hasChild","deepInvalidate","_background","numberFormatter","language","_dateFormatter","dateFormatter","_durationFormatter","durationFormatter","exporting","populateString","escape","getTagValue","unescape","tagName","reg","reg2","matches2","method","getTagValueFromObject","dataContext","populateStringFrom","formatApplied","part","numberValue","dateValue","durationValue","encodeURIComponent","formatParts","formatterType","setDataItem","dataContext_1","dataContext_2","dataContext2_1","fieldValue","propValue","applyAll","setColorProperty","setPercentProperty","event_1","length_2","bindToProperty","modifier","observe","readerTitle","readerDescription","readerHidden","readerChecked","controls","readerControls","live","readerLive","readerOrientation","valueNow","readerValueNow","valueText","readerValueText","labelledByIds","describedByIds","labelledBy","readerLabelledBy","describedBy","readerDescribedBy","titleElement","titleId","textContent","descriptionElement","descriptionId","keyboardOptions","mouseOptions","_interaction","interaction","getInteraction","trackable","draggable","resizable","wheelable","contextMenuDisabled","inert","_tabindex","setEventDisposer","hasFocused","focusedElement","hoverOnFocus","inertiaOptions","applyCursorStyle","handleDragStart","handleDragMove","handleDragStop","isTouchProtected","originalPosition","dragStart","pointer","dragStop","cancelled","hoverOptions","_outTimeout","SVGContainer","targetSprite","keepTargetHover","handleOutReal","hitOptions","originalAngle","originalScale","once","handleToggle","urlHandler","cursorOverStyle","_baseId","setBaseId","baseSprite","urlTarget","swipeOptions","handleResize","svgPoint1","svgPoint2","svgMidPoint","parentPoint1","parentPoint2","spritePoint1","spritePoint2","spriteMidPoint","parentPoint","cursorOptions","overStyle","defaultStyle","applyCursorOverStyle","downStyle","pointerEvents","getExporting","exp","_export","nonExportableSprites","modalPrefix","modal","openModal","closeModal","popups","openPopup","closeAllPopups","invalidateLayout","maxWidth","parentWidth","pixelMarginLeft","pixelMarginRight","setMaxWidth","prevWidth","prevHeight","maxHeight","relativeWidth","event_2","previousWidth","previousHeight","parentHeight","valign","pixelMarginTop","pixelMarginBottom","setMaxHeight","relativeHeight","event_3","percentWidth","_pixelWidth","percentHeight","_relativeHeight","_pixelHeight","minHeight","_relativeWidth","setPath","setFill","realFill","setStroke","realStroke","_rtl","showReal","_hideAnimation","kill","_showHideDisposer","hideReal","currentSprite","hiddenState_1","getVisibility","event_4","toFront","toBack","tooltipDataItem","_tooltipDataItem","_tooltipColorSource","tooltipPosition","lastPointer","colorSource_1","tooltipColorSource_1","tooltipColorSource","getStrokeFromObject","getFillFromObject","animationDuration","autoTextColor","alternative","html","currentText","globalPoint","getTooltipX","getTooltipY","pointTooltipTo","instantly","showInViewport","pointTo","raiseCriticalError","suppressErrors","verbose","log","processConfig","getCursorStyle","cursorDowntyle","processDelayedMap","grab","grabbing","horizontalResize","verticalResize","configOrder","setShowOnInit","_showOnInitDisposer","hideInitially","appear","_plugins","_systemUpdate","skippedSprites","_systemCheckIfValidate","_systemValidatePositions","_systemValidateLayouts","Container","_childrenByLayout","_childrenDisposers","setStateOnSprites","layoutInvalid","_absoluteWidth","_absoluteHeight","_shouldBeReady","_tapToActivate","tapTimeout","handleChildAdded","handleChildRemoved","processChild","insertKey","handleChildTransform","sortAndAdd","addChildren","_children","fixed_1","relative_1","calculateRelativeSize","totalRelativeWidth","totalRelativeHeight","zindexed","sortArray","ai","bi","group_1","isCorrect","addToBack","createChild","classType","removeChildren","disposeChildren","createBackground","processBackground","getFor","validateLayout","_availableWidth","_availableHeight","allValid","childMeasuredWidth","childMeasuredHeight","arrange","maxCellWidth","minCellWidth","columnCount","contentRight","contentTop","contentBottom","nextX","nextY","columnWidth","rowHeight","childrenCopy","reverseOrder","fixedWidthGrid","maxColumns","getColumnWidth","childMarginLeft","childMarginRight","childMarginTop","childMarginBottom","childWidth","childHeight","childLeft","childRight","childTop","childBottom","nextColumnWidth","noneBBox","measuredContentWidth","measuredContentHeight","contentAlign","contentValign","dx_1","dy_1","mwa","mha","ddx","ddy","oldBBox","contentWidth","contentHeight","prevLeft","prevTop","prevBotttom","prevRight","dummyData","updateBackground","fitsToBounds","setStateOnChildren","preloader","_preloader","invalidateLabels","handleValidate","allReady_1","dataInvalid","setTapToActivate","handleTapToActivate","initTapTimeout","isLocalElement","handleTapToActivateDeactivation","_tapToActivateTimeout","tapToActivate","moveHtmlContainer","htmlElement","newContainer","svgDiv","initSensor","hasLicense","commercialLicense","licenses","timeUnitDurations","millisecond","second","getNextUnit","getDuration","checkChange","dateOne","dateTwo","timeZoneOffset1","timeZoneOffset2","setUTCMinutes","getUTCMinutes","getUTCMonth","getUTCHours","getUTCSeconds","nextUnit","timeZoneOffset","seconds","setUTCSeconds","milliseconds","getUTCMilliseconds","setUTCMilliseconds","setUTCHours","setUTCMonth","wday","newTimeZoneOffset","firstDateOfWeek","roundMinutes","timezone","setTimezone","difference","unitCount","weekDay","timeZone","getTimezoneMinutes","InterfaceColorSet","_purposes","primaryButton","primaryButtonHover","primaryButtonDown","primaryButtonActive","primaryButtonText","primaryButtonStroke","secondaryButton","secondaryButtonHover","secondaryButtonDown","secondaryButtonActive","secondaryButtonText","secondaryButtonStroke","grid","alternativeBackground","alternativeText","disabledBackground","positive","debug","purpose","setFor","Interaction","_globalEventsAdded","_pointerEvents","_usePointerEventsOnly","_useTouchEventsOnly","_addHoverEvents","_passiveSupported","_delayedEvents","overObjects","downObjects","trackedObjects","transformedObjects","pointers","pointerdown","pointerup","pointermove","pointercancel","pointerover","pointerout","matchMedia","fullFF","wheel","onmousewheel","addGlobalEvents","handleGlobalPointerDown","handleGlobalPointerMove","handleGlobalPointerUp","relatedTarget","handleDocumentLeave","handleGlobalTouchStart","handleGlobalTouchMove","handleGlobalTouchEnd","handleGlobalKeyDown","handleGlobalKeyUp","processClickable","io","processTouchable","processContextMenu","eventDisposers","processHoverable","handlePointerOut","handlePointerOver","processMovable","isGlobalElement","prepElement","processTrackable","processDraggable","processSwipeable","processResizable","processWheelable","handleMouseWheel","unlockWheel","lockWheel","processFocusable","handleFocusBlur","handleTouchDown","handlePointerDown","isPaused","imev","getHitOption","disableType","enableType","focusedObject","isKey","ko","getEventKey","directionY","directionX","getPointer","getPointerPoint","addBreadCrumb","handleGlobalMove","processDelayed","preventTouchAction","defaultPrevented","handleGlobalUp","resetPointer","mod","deltaMode","getMouseOption","WheelEvent","wheelDeltaX","wheelDeltaY","handleWheel","maybePreventDefault","handleHit","lastHit","lastHitPointer","soft","hoversPaused","shouldCancelHovers","areTransformed","moved","cancelAllHovers","overPointers","handleTrack","hasDelayedOut","old","behavior","getHoverOption","keepUntil","delayedEvent","stopInertia","applyCursorDownStyle","processDragStart","processResizeStart","sorted","compareDocumentPosition","Node","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","restoreCursorDownStyle","swiped","handleInertia","processDragStop","processResizeStop","cancelable","disableHoverOnTransform","target_1","lastEvent","handleTransform","skipCheck","startPoint","handleMoveInertia","handleResizeInertia","inertia","getTrailPoint","getInertiaOption","inertias","lastUpEvent","pointer2","pointer1","singlePoint","nextPointer","pointer1Moved","dragStartEvents","handleTransformMove","pointer2Moved","handleTransformResize","pointerMoved","dragTarget","getDragPointer","lastDownEvent","getPointerId","pointerId","isPointerTouch","Touch","PointerEvent","pointerType","MouseEvent","track","swipeCanceled","lockDocument","unlockDocument","restoreAllStyles","lockElement","unlockElement","wheelLockEvent","doc","elementFromPoint","local","setTemporaryStyle","unprepElement","restoreStyle","getSwipeOption","getKeyboardOption","setGlobalStyle","restoreGlobalStyle","tolerance","minTime","getShift","timestamp","pointerExists","exists","replacedStyles","logTouch","TouchEvent","except","options_1","onlyShowOnViewport","autoDispose","suppressWarnings","animationsEnabled","deferredDelay","v1","v4","uuid","DictionaryDisposer","dict","Dictionary","_dictionary","updateKey","insertKeyIfEmpty","ifEmpty","sortedIterator","DictionaryTemplate","system","System","_isPaused","dummyCounter","_frameRequested","updateStepDuration","reportTime","msg","update","invalidData","dataProvider","validateData","dataValidationProgress","validateRawData","validateDataItems","validateDataRange","skipRangeEvent","validateLayouts","validatePositions","hasSkipped","checkIfValidate2","all0_1","softInvalidate","hardInvalidate","VERSION","BaseObject","_uid","addDelayedMap","clearCache","cloneId","newObject","configKey","item_1","configValue","hasProperty","asIs","createClassInstance","processAdapters","processEvents","asFunction","processListTemplate","processOrderedTemplate","templateValue","entryKey","entryValue","listItem","processDictionaryTemplate","processList","maybeColorOrPercent","processDictionary","isReserved","processingErrors","errors","_processingErrors","entry","priority","getConfigEntryType","itemCount","extraCount","createEntryInstance","field","BaseObjectEvents","Responsive","_rules","_appliedRules","_appliedTargets","_useDefault","_enabled","_responsiveDisposers","_noStates","rules","checkRules","disposeResponsiveHandlers","enabled","applyRules","defaultRules","useDefault","isApplied","ruleId","allRules","rulesChanged","relevant","_applyRules","_timeout","newTarget","defaultStateApplied","isApplied_1","getState","getDefaultState","setTargetState","stateId","tmpId","ResponsiveBreakpoints","widthXXS","XXS","widthXS","XS","widthS","widthM","widthL","widthXL","XL","widthXXL","XXL","heightXXS","heightXS","heightS","heightM","heightL","heightXL","heightXXL","isXXS","isXS","isS","isM","isL","isXL","isXXL","maybeXXS","maybeXS","maybeS","maybeM","maybeL","maybeXL","maybeXXL","$map","callbackfn","STRING","NUMBER","DATE","DURATION","PLACEHOLDER","PLACEHOLDER2","$filter","_group","_radioButton","_radio","Group","defineGlobalProperty","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","dontCallGetSet","sham","_context","ConfigConsumer","configConsumerProps","_localeProvider","_LocaleReceiver","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","Proxy","_isNativeReflectConstruct","Super","NewTarget","ConfigProvider","getPrefixCls","suffixCls","customizePrefixCls","_this$props$prefixCls","renderProvider","legacyLocale","renderEmpty","csp","autoInsertSpaceInButton","pageHeader","ConfigContext","_ANT_MARK__","ANT_MARK","$includes","fails","_configProvider","_warning","saveTooltip","renderPopover","getOverlay","mouseEnterDelay","mouseLeaveDelay","notARegExp","requireObjectCoercible","correctIsRegExpLogic","stringIndexOf","searchString","globalAdapter","GlobalAdapter","_callbackId","_callbacks","addAll","scope","callbacks","Adapter","enableKey","disableKey","_hasListenersByType","_shouldDispatch","ssrDocument","nodeName","createEvent","getElementsByTagName","createElementNS","importNode","hostname","origin","pathname","ssrWindow","history","CustomEvent","getWindow","win","Dom7","super","makeReactive","arrayFlat","arrayFilter","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","toggleClass","toggle","attrs","attrName","targetSelector","handleLiveEvent","eventData","dom7EventData","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","detail","bubbles","dispatchEvent","transitionEnd","fireCallBack","outerWidth","includeMargins","outerHeight","box","clientTop","clientLeft","scrollX","compareWith","previousSibling","eq","returnIndex","append","els","tempDiv","prepend","nextAll","nextEls","previousElementSibling","prevAll","prevEls","foundElements","methodName","nextTick","getTranslate","axis","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","OTransform","MsTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","side","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","progress","easeProgress","currentPosition","deviceCached","getSupport","smoothScroll","DocumentTouch","passiveListener","gestures","calcSupport","overrides","support","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","calcDevice","calcBrowser","transitionEmit","runCallbacks","previousIndex","emit","touchEventsData","preventInteractionOnTransition","cssMode","loopFix","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","maxTranslate","minTranslate","touchAngle","isHorizontal","touchMoveStopPropagation","nested","startTranslate","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","setTranslate","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","destroyed","currentPos","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","isEnd","isBeginning","centeredSlides","slides","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","newProgress","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","updateOnWindowResize","isGridEnabled","initialSlide","resizeObserver","createElements","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","rewind","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","eventsListeners","onceHandler","__emitterProxy","eventsAnyListeners","eventHandler","$el","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","gridEnabled","slideSize","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","realIndex","activeSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionStart","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","enable","containerEl","currentHeight","minRatio","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","suffixes","resultClasses","prepareClasses","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","complete","Image","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","modules","__modules__","extendParams","swiperParams","defaults","passedParams","onAny","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","slideEl","updates","getSlideClasses","exact","spv","breakLoop","translateValue","translated","newDirection","currentDirection","mounted","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","observer","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","disabledClass","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","_s","targetEl","pagination","classesToSelector","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","paginationType","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","paginationHTML","numberOfBullets","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","pauseOnMouseEnter","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","lastMoveEvent","velocityEvent","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","effectInit","overwriteParams","perspective","overwriteParamsResult","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","allSlides","$transitionEndTarget","eventTriggered","triggerEvents","EffectFade","fadeEffect","crossFade","tx","slideOpacity","isReactComponent","Profiler","UNSAFE_componentWillReceiveProps","toArrayChildren","ret","findChildInChildrenByKey","findShownChildInChildrenByKey","isAppearSupported","isEnterSupported","transitionEnter","isLeaveSupported","transitionLeave","allowAppearCallback","allowEnterCallback","allowLeaveCallback","transitionMap","AnimateChild","finishCallback","nameIsObj","stopper","activeName","defaultKey","getChildrenFromProps","currentlyAnimatingKeys","keysToEnter","keysToLeave","childrenRefs","performAppear","nextChildren","nextChildrenPending","pendingChildren","currentChildren","currentChild","nextChild","hasPrev","showInNext","hasNext","showInNow","performEnter","performLeave","stateChildren","passedProps","componentProps","isAnimate","onEnter","componentWillEnter","handleDoneAdding","componentWillAppear","isValidChildByKey","componentWillLeave","handleDoneLeaving","c1","c2","same","child2","MouseCursorStyle","notAllowed","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","getProgressNumber","getProgressPercent","getProgressColor","getHybridProperty","AnimationDisposer","Animation","_pause","_delayTimeout","_isFinished","id_1","stopSameAnimations","_startTime","staticOptions","childObject","updateMethod","convertedFrom","applyStaticOptions","resume","setProgress","skipEvent","timeProgress","delayed","killed_1","newOptions","oldOptions","it","globalThis","Label","isOversized","truncate","textValign","baseLineRatio","handleMaxSize","availableWidth","availableHeight","updateCurrentText","supportsForeignObject","_currentFormat","_prevStatus","getLineBBox","lineInfo","oldW","oldH","lines","getAttr","textPathElement","resetBBox","currentFormat","chunks","chunk","ignoreFormatting","currentLineHeight","firstChunk","skipTextChunks","getLineInfo","getSVGLineElement","complex","translateStyleShortcuts","getSvgElement","lineText","avgCharWidth","excessChars","addEllipsis","node_1","node_2","elementText","lastNode","lastChild","splitLines","lineText_1","cleanUp","restOfLine","addLineInfo","tempElement","lineInfo_1","maybeHideOversized","alignSVGText","hideUnused","fo","foreignObject","lineElement","getHTMLLineElement","setStyles","pathElement","hideOversized","wordWrap","addStyle","removeStyle","initLineCache","attrNS","removeChildrenByTag","divs","_sourceDataItemEvents","classid","btoa","defs","getOwnPropertyDescriptorModule","getDerivedStateFromProps","prevState","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","$documentAll","documentAll","IS_HTMLDDA","argument","$reduce","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","token","timezoneClip","gmt","kindOf","maskSlice","masks","getDayOfWeek","flags","dd","ddd","i18n","dayNames","dddd","mm","mmm","monthNames","mmmm","yy","yyyy","hh","HH","MM","ss","timeNames","tt","TT","targetThursday","firstThursday","ds","weekDiff","dow","useSourceMap","cssMapping","sourceMapping","sourceMap","base64","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","memo","stylesInDom","isOldIE","atob","styleTarget","HTMLIFrameElement","contentDocument","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","domStyle","listToStyles","newStyles","media","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","removeStyleElement","getNonce","addAttrs","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","DEBUG","newList","mayRemove","textStore","replaceText","replacement","styleSheet","cssText","cssNode","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","PROPER_FUNCTION_NAME","PROPER","anObject","$toString","getRegExpFlags","nativeToString","NOT_GENERIC","INCORRECT_NAME","shared","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","$indexOf","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","fromIndex","Tension","_tensionX","_tensionY","smooth","wavedLine","waveLength","waveHeight","adjustWaveLength","waveLengthX","waveLengthY","halfWaveCount","sign_1","Monotone","reversed","_reversed","_closed","_curve","x0","y0","t0","t1","slope2","slope3","sign","h0","h1","s0","MonotoneX","MonotoneY","Basis","x3","x4","y3","y4","pushCurve","pushPoint","locals","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","RIGHT","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","V","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","altKey","isCharacterKey","toObject","doesNotExceedSafeInteger","arraySpeciesCreate","V8_VERSION","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arity","linear","polyIn","polyOut","polyInOut","polyOut3","sinOut","cubicIn","cubicOut","bounceOut","tau","period","namedColors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexToRgbWithAlpha","hexToRgb","rgbaToRgb","rgbToHex","pad2","rgbToRGBA","interpolate","rgb1","rgb2","getLightnessStep","hsl","rgbToHsl","hslToRgb","hue2rgb","isLight","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","toIntegerOrInfinity","toLength","advanceStringIndex","getMethod","getSubstitution","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","nativeReplace","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","functionalReplace","fullUnicode","unicode","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","re","commonjsGlobal","createEventEmitter","changedBits","createContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","getChildContext","observedBits","onUpdate","_proto2","createNamedContext","historyContext","Router","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","isExact","Lifecycle","onMount","onUnmount","cacheCount","generatePath","compile","compilePath","pretty","Redirect","computedMatch","_ref$push","prevLocation","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","strict","_options$sensitive","sensitive","_compilePath","cacheKey","pathCache","compilePath$1","Route","context$1","isEmptyChildren","addLeadingSlash","stripBasename","basename","createURL","staticHandler","useContext","LinearGradient","_stops","_rotation","gradientElement","gradientStop","addColor","stops","gradientUnits","convertFieldsError","formatRegExp","isEmptyValue","isNativeStringType","isEmptyObject","asyncMap","objArr","asyncSerialArray","flattenObjArr","firstFields","objArrKeys","objArrLength","pending","fields","arrLength","asyncParallelArray","complementError","oe","fullField","deepMerge","original","_Checkbox","_Group","RoundedRectangle","minSide","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomRight","cornerRadiusBottomLeft","maxcr","crtl","crtr","crbr","crbl","tl","tr","bl","br","$String","$TypeError","pendingFrame","nextQueue","readQueue","writeQueue","idleQueue","raf","frameLoop","pendFrame","nextFrame","readFrame","writeFrame","whenIdle","triggerIdle","EventDispatcher","_listeners","_killed","_iterating","hasListeners","hasListenersByType","killed","_removeListener","_removeExistingListener","_eachListener","_on","TargetedEventDispatcher","compare","compareContext","bHasOwnProperty","valueA","valueB","OrderedList","findClosestIndex","closestValue","closestDifference","closestIndex","SortedList","_ordering","OrderedListTemplate","SortedListTemplate","charIsNumber","isNil","escapeRegExp","splitDecimal","numStr","allowNegative","hasNagation","addNegation","beforeDecimal","afterDecimal","limitToScale","fixedDecimalScale","filler","repeat","setCaretPosition","caretPos","createTextRange","clamp","getCurrentCaretPosition","decimalSeparator","thousandsGroupStyle","allowEmptyFormatting","allowLeadingZeros","isNumericString","onKeyDown","isAllowed","NumberFormat","superclass","validateProps","formattedValue","formatValueProp","numAsString","removeFormatting","selectionBeforeInput","updateValueIfRequired","focusTimeout","caretPositionTimeout","focusedElm","stateValue","lastNumStr","lastValueWithNewFormat","formatNumString","floatValue","lastFloatValue","updateValue","getFloatString","decimalScale","getSeparators","numRegex","getNumberRegex","hasNegation","firstDecimalIndex","ignoreDecimalSeparator","customNumerals","ref$1","thousandSeparator","allowedDecimalSeparators","getMaskAtIndex","getValueObject","setPatchedCaretPosition","correctCaretPosition","firstHashPosition","lastIndexOf","nextPos","caretLeftBound","caretRightBound","getCaretPosition","inputNumber","formattedNumber","currentInputChar","currentFormatChar","removePrefixAndSuffix","isNegative","suffixLastIndex","removePatternFormatting","formatArray","ln","formatWithPattern","hashCount","formattedNumberAry","formatAsNumber","hasDecimalSeparator","ref$2","thousandsGroupRegex","getThousandsGroupRegex","applyThousandSeparator","customNumeralRegex","digit","isNonNumericFalsy","coefficient","decimalIndex","coffiecientLn","toNumericString","shoudHaveDecimalSeparator","roundedDecimalParts","roundedStr","roundToPrecision","formatInput","formatNegation","negationRegex","doubleNegationRegex","removeNegation","isCharacterAFormat","correctInputValue","lastValue","this$1","ref$3","prevLength","newLength","findChangedIndex","leftBound","rightBound","deletedValues","deletedVal","deletedValuePortion","recordIndexOfFormatCharacters","resolvedPortion","currentPortion","numericString","ref$4","isBeforeDecimalPoint","currentCaretPosition","isChangeAllowed","fixLeadingZero","expectedCaretPosition","negativeRegex","isPatternFormat","newCaretPosition","isUnitTestRun","caretPosition","customInput","renderText","getInputRef","objectWithoutProperties","inputMode","addInputMode","inputProps","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","getChildren","slots","slot","foundSlides","processChildren","updateSwiper","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","controller","control","lazy","load","useIsomorphicLayoutEffect","deps","Swiper","wrapperTag","WrapperTag","onSwiper","rest","externalElRef","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","allowedParams","getParams","onBeforeBreakpoint","initSwiper","extendWith","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","zoom","virtualIndex","externalRef","slideElRef","slideClasses","setSlideClasses","updateClasses","slideData","isVisible","isDuplicate","isPrev","isNext","keyboard","Keyboard","eventKey","Line","positionToPoint","allIcons","_iconsReact","_IconFont","_utils","_twoTonePrimaryColor","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","setTwoToneColor","dangerousTheme","defaultTheme","viewBox","spin","twoToneColor","svgClassString","svgStyle","innerSvgProps","svgBaseProps","iconTabIndex","computedType","themeInName","getThemeFromTypeName","withThemeSuffix","removeTypeTheme","alias","primaryColor","renderInnerNode","createFromIconfontCN","getTwoToneColor","Language","_defaultLocale","getLocale","translation","translations","getTranslations","translateAny","setTranslationAny","translateEmpty","translateFunc","translateAll","isDefault","Base","PropTypes","_rcSelect","_omit","_type","SelectSizes","tuple","SelectPropTypes","notFoundContent","showSearch","optionLabelProp","choiceTransitionName","Select","saveSelect","rcSelect","renderSelect","getContextPopupContainer","_a$className","removeIcon","menuItemSelectedIcon","isCombobox","modeConfig","combobox","finalRemoveIcon","finalClearIcon","finalMenuItemSelectedIcon","inputIcon","renderSuffixIcon","getNotFoundContent","SECRET_COMBOBOX_MODE_DO_NOT_USE","suffixIcon","Option","OptGroup","TextFormatter","formatted","texts","wrapHtml","wrapSvg","styleSvgToHtml","getHtmlElement","quotedBlocks","noFormatting","chunks2","i2","chunk2","isImage","getTextFormatter","__createBinding","k2","__exportStar","classof","Paper","setAttributeNS","elementName","groupName","implementation","hasFeature","ghostPaper","getGhostPaper","ghostDiv","ghostSvgContainer","tooltipY","iconPosition","interfaceColors","hoverState","downState","currentIcon","vendors","caf","_now","cp","globalThisShim","isAbsolute","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","getConfirmation","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","allKeys","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","nextKeys","replaceState","goBack","goForward","unblock","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","pushHashPath","nextPaths","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","shallowCopy","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","Attributes","observerBatchingConfiguredSymbol","defaultNoopBatch","globalIsUsingStaticRendering","isUsingStaticRendering","printDebugValue","reactionCleanupHandle","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","uncommittedReactionRefs","Set","ensureCleanupTimerRunning","cleanUncommittedReactions","tracking","cleanAt","reaction","delete","insideRender","forceUpdateQueue","EMPTY_OBJECT","observerComponentNameFor","baseComponentName","useObserver","queuedForceUpdate","useQueuedForceUpdate","useForceUpdate","reactionTrackingRef","useRef","newReaction_1","trackingData_1","createTrackingData","useDebugValue","useEffect","reactionRef","queue_1","useLayoutEffect","useQueuedForceUpdateBlock","rendering","exception","baseComponent","memoComponent","realOptions","forwardRef","wrappedComponent","hoistBlackList","$$typeof","ObserverComponent","ObserverPropsCheck","propFullName","extraKey","hasProp","hasExtraProp","reactionScheduler","DataItem","hasProperties","categories","dates","locations","workingLocations","_visible","_hidden","_ignoreMinMax","hasChildren","_valueAnimations","_locationAnimations","noChangeValues","animation_1","_hideDisposer","setWorkingValue","toValue","animation_2","interpolationDuration","calculated","dataFields","getWorkingValue","realName","workingValue","getActualWorkingValue","newDuration","handleDataItemValueChange","setCalculatedValue","handleDataItemCalculatedValueChange","interpolationEasing","handleInterpolationProgress","valueAnimation","handleDataItemWorkingValueChange","setLocation","event_5","setWorkingLocation","workingLocation","locationAnimation","event_6","handleDataItemWorkingLocationChange","event_7","handleDataItemPropertyChange","setCategory","event_8","event_9","_dataContext","addSprite","setTimeoutFn","WebSocket","MozWebSocket","usingBrowserWebSocket","defaultBinaryType","definePropertyModule","makeBuiltIn","nonConfigurable","nonWritable","_required2","_whitespace2","_type2","_range2","_enum2","_pattern2","required","whitespace","_Input","_Search","_TextArea","_Password","Search","TextArea","Password","_dataSources","_parseDataFrom","_dataDisposers","_currentDataSetId","rangeChangeDuration","rangeChangeEasing","parsingStepDuration","rawDataInvalid","dataRangeInvalid","dataItemsInvalid","sequencedInterpolation","sequencedInterpolationDelay","_addAllDataItems","_usesData","minZoomCount","maxZoomCount","_dataItems","createDataItem","handleDataItemAdded","handleDataItemRemoved","invalidateData","dataUsers","handleDataUserAdded","maxZoomDeclination","invalidateDataItems","processDataItem","hasSomeValues_1","fieldName","mainDataSet","rawDataItem","childDataItem","updateDataItem","validateDataElements","endIndex","startIndex","dataItems","validateDataElement","addData","removeCount","skipRaw","removeData","dataUser","dataItem_1","invalidateDataUsers","invalidateDataRange","_prevStartIndex","_prevEndIndex","rangeChangeUpdate","appendDataItems","sliceData","_workingStartIndex","_workingEndIndex","invalidateRawData","disposeData","_startIndex","_endIndex","_dataSets","getDataItem","_data","counter","_loop_1","this_1","dataUserDataItem","state_1","stacked","setData","getDataSource","setDataSourceEvents","dataSourceDateFields","dataSourceNumberFields","loadData","populateDataSourceFields","targetList","incremental","keepCount","updateCurrentData","_responsive","declination","maxZoomFactor","_finalStart","_finalEnd","minZoomFactor","rangeChangeAnimation","zoomToIndexes","indexToPosition","dataSets","setDataSet","_updateDataItemIndexes","bindDataField","invalidateProcessedData","resetProcessedRange","_dataUsers","_exportData","handleDataUpdated","_showOnInitDisposer2","Circle","pixelRadius","Filter","_scale","_nonScaling","filterPrimitives","filterPrimitive","updateScale","setSprite","_sprite","RadialGradient","fx","fy","_cx","_cy","_fx","_fy","addEventListenerWrap","unstable_batchedUpdates","_inheritsLoose","aFunction","namespace","core","__e","Slice","pixelInnerRadius","shiftRadius","updateGradient","gradient","innerRect","outerRect","ix","iy","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_iterableToArrayLimit","_nonIterableRest","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","regex","apple","phone","tablet","amazon","blackberry","blackberry10","opera","firefox","chrome","_objectSpread","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","loopMenuItem","isMenuItemGroup","menuAllProps","getWidth","styleProperty","makePrefixMap","styleProp","prefixes","domSupport","vendorPrefixes","animationend","transitionend","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","animationEndName","transitionEndName","supportTransition","transitionType","MotionPropTypes","eventProps","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd","transitionSupport","isSupportTransition","CSSMotion","onDomUpdate","newStatus","$ele","$cacheEle","updateStatus","updateActiveStatus","onMotionEnd","statusActive","setNodeRef","internalRef","styleFunc","additionalState","statusStyle","_destroyed","nextStep","currentStatus","deadline","cancelNextFrame","prevStatus","guid","popupPlacementMap","store","defaultActiveFirst","menuId","onDestroy","menu","menuInstance","isOpen","onTitleClick","triggerOpenChange","handled","domEvent","_this$props3","parentMenu","subMenuInstance","onTitleMouseEnter","_this$props4","onItemHover","hover","onTitleMouseLeave","_this$props5","triggerSubMenuAction","onSubMenuClick","addKeyPath","onDeselect","rootPrefixCls","getActiveClassName","getDisabledClassName","getSelectedClassName","getOpenClassName","saveMenuInstance","keyPath","openChange","mouseenterTimeout","isChildrenSelected","loopMenuItemRecursively","isSubMenu","isMenuItem","selectedKeys","openKeys","adjustWidth","subMenuTitle","popupMenu","saveSubMenuTitle","isRootMenu","_this$props6","manualRef","minWidthTimeout","_this$props7","baseProps","inlineIndent","motion","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","internalMenuId","itemIcon","expandIcon","haveRendered","haveOpened","mergedMotion","mergedClassName","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","triggerNode","popupOffset","connected","subMenuKey","DOMWrap","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","lastVisibleIndex","getMenuItemNodes","ul","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","overflowedIndicator","_copy$props","propStyle","setChildrenWidthAndResize","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","overflowedIndicatorWidth","acc","cur","currentSumWidth","liWidth","menuUl","subTree","childNode","overflowed","updateActiveKey","getActiveKey","originalActiveKey","instanceArray","SubPopupMenu","getFlatInstanceArray","activeItem","selectInfo","ci","renderCommonMenuItem","renderMenuItem","domProps","warned","valid","getMotion","openTransitionName","_selectedKeys","selectedKey","innerMenu","getWrappedInstance","processSingle","oneChanged","_selectedKeys2","getOpenTransitionName","animationName","setInnerMenu","defaultSelectedKeys","defaultOpenKeys","updateMiniStore","MenuItem","isSelected","saveNode","callRef","onlyScrollIfNeeded","mouseEvent","MenuItemGroup","renderInnerMenuItem","_props$className","titleClassName","listClassName","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","ArrayBuffer","isView","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","Uint8Array","byteOffset","TEXT_ENCODER","chars","lookup","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","decoded","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","bytes","decode","SEPARATOR","fromCharCode","encodePayload","packets","encodedPackets","packet","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","TransformStream","arrayBuffer","encoded","TextEncoder","encode","encodePacketToBinary","payloadLength","setUint8","setUint16","setBigUint64","BigInt","enqueue","TEXT_DECODER","totalLength","concatChunks","createPacketDecoderStream","maxPayload","TextDecoder","expectedLength","isBinary","headerArray","_spin","_pagination","_grid","_Item","defaultPaginationProps","onPaginationChange","triggerPaginationEvent","onPaginationShowSizeChange","rowKey","emptyText","renderList","paginationCurrent","paginationSize","bordered","itemLayout","loadMore","_a$dataSource","loadingProp","spinning","isLoading","sizeCls","isSomethingAfterLastItem","paginationProps","largestPage","childrenContent","paginationContent","onShowSizeChange","splitDataSource","childrenList","Row","gutter","paginationPosition","paginationObj","defaultCurrent","defaultPageSize","invariant","resetWarned","$Object","appendClass","parseValue","newClass","Emitter","mixin","removeListener","removeAllListeners","emitReserved","pick","NATIVE_SET_TIMEOUT","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","useNativeTimers","clearTimeoutFn","utf8Length","choice","WavedLine","IndexedObject","MATCH","nativeMatch","matcher","matchStr","setTick","isPlainObject","getSymbol","for","mockGlobal","getGlobal","or","Pattern","_elements","patternUnits","backgroundFill","backgroundOpacity","patternElement","rotationX","rotationY","addElement","$trim","forcedStringTrimMethod","tryToString","USE_SYMBOL","definition","scriptpath","urlArgs","ids","scripts","$script","paths","idOrDone","optDone","idOrDoneIsDone","loopFn","dset","loaded","async","req","missing","dep","_iterator2","_symbol2","DateFormatter","_dateFormat","_inputDateFormat","timezoneMinutes","_firstDayOfWeek","_outputFormat","applyTimezone","intlLocales","Intl","DateTimeFormat","parseFormat","timezoneOffset","applyFormat","fullYear","firstDayOfWeek","tz","tzh","tzm","inputDateFormat","parsedIndexes","resValues","indexAdjust","year3","year2","year1","getStringList","monthLong","monthShort","yearDay","weekdayLong","weekdayShort","hour12Base1","hourBase0","hour12Base0","hourBase1","millisecondDigits","zone","iso","resolveMonth","resolveShortMonth","isAm","ts","resolveTimezoneOffset","invalidateSprite","_intlLocales","_timezoneOffset","_timezone","ColorSet","_list","_currentStep","_currentPass","baseColor","stepOptions","passOptions","minColors","minLightness","maxLightness","shuffle","reuse","generate","getReusableColor","tmpstep","curColor","currentColor","hueStep","hue","mods","lightness","hues","applyStepOptions","pass","Cache","_storage","ownerStorage","cacheItem","touched","expired","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","orphans","tabSize","widows","WebkitLineClamp","floodOpacity","stopOpacity","strokeMiterlimit","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","handleInterpolation","interpolation","couldBeSelectorInterpolation","__emotion_styles","interpolated","createStringFromObject","previousCursor","labelPattern","stringMode","strings","raw","identifierName","getRegisteredStyles","isStringTag","Col","tupleNum","connect","_Provider3","_connect3","_create3","aCallable","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","chr","comparefn","itemsLength","arrayLength","getSortCompare","AMElement","_isDisposed","_rotationY","_rotationX","removeNode","_transformString","transfromString","rotateString","svgbbox","attributeName","attributeValue","getAttrNS","getAttributeNS","getStyle","setClass","Polyline","_distance","makePath","_realSegments","deltaAngle","totalDistance","positionA","positionB","positionAB","midPoint","JSONParser","contentType","isJSON","empty","emptyAs","numbers","parsableNumbers","parsableDates","maybeToEmpty","maybeToNumber","maybeToDate","widthRatio","heightRatio","Polyarc","controlPointDistance","controlPointPosition","realPoints","distanceAB","cpDistance","controlPoint1","controlPoint2","i_1","Morpher","morphable","_bboxes","morphDuration","morphEasing","morphToSingle","scaleRatio","morphToPolygon","toPoints","currentPoints","sortPoints","_morphFromPointsReal","_morphToPointsReal","normalizePoints","pointsA","pointsB","surfaceA","holeA","bboxA","middleX","middleY","addPoints","splitAt","newDistance","partA","partB","bbox1","bbox2","bboxes","surface","morphToCircle","commonBBox","hole","fromPoints","realRadius","realAngle","pointOnCircle","hlen","mustHaveCount","addToSegmentCount","newPoints","point0","extraPoint","lastPoint","morphToRectangle","realHeight","i_2","i_3","_morphProgress","currentArea","surfaceFrom","holeFrom","surfaceTo","holeTo","currentSurface","i_4","slen","currentPoint","currentHole","i_5","morphBack","Polygon","_currentPoints","segment","areaHole","areaArr","holeArr","pointsArr","area","areaAndHole","pointsArr_1","_morpher","Preloader","sliceContainer","backgroundSlice","progressSlice","_started","CloseButton","Mouse","bgc","downColor","bhs","bds","SwitchButton","leftLabel","circle","p100","togglable","as","switchButton","rightLabel","_leftLabel","_rightLabel","_switchButton","endGrip","startGrip","_isBusy","__start","PlayButton","playIcon","Triangle","stopIcon","activeState","RadialGradientModifier","LinePattern","_line","CirclePattern","_circle","RectPattern","rectHeight","rectWidth","_rect","ColorizeFilter","feColorMatrix","intensity","applyFilter","BlurFilter","feGaussianBlur","FocusFilter","feFlood","feMorphology","feComposite","feBlend","PatternSet","getLinePattern","getRectPattern","getCirclePattern","thickness","strokeDashArray","currentStep","generatePatterns","Plugin","AmChartsLogo","aColor","aGradient","aStroke","Polyspline","desaturateFilter","DesaturateFilter","desaturateFilterHover","tmpContainer","svgDiv_1","container_1","loopTimer_1","loop_1","tooltipContainer_1","setBounds","preloader_1","logo_1","logo","addToQueue","viewPortHandler","vpDisposer","queueHandler","removeFromQueue","nextSprite","classError","chart","TAG","ctx","$export","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","__g","toPrimitive","dP","__importDefault","PlaceholderEmbed","classnames_1","react_1","EmbedStyle_1","BorderSpinner_1","EngagementIconsPlaceholder_1","ProfilePlaceholder_1","isJavaScriptProtocol","linkText","imageUrl","spinner","BorderSpinner","allowJavaScriptUrls","spinnerDisabled","borderRadius","EmbedStyle","textDecoration","justifyContent","ProfilePlaceholder","rowGap","fontFamily","fontStyle","backgroundRepeat","backgroundPosition","EngagementIconsPlaceholder","columnGap","styleProps","TransportError","reason","Transport","socket","doOpen","doClose","write","onPacket","details","onPause","schema","_hostname","_port","_query","secure","encodedQuery","Rectangle","Scrollbar","_previousStart","_previousEnd","_prevStart","_prevEnd","_skipRangeEvents","updateWhileMoving","animationEasing","updateThumb","dispatchRangeChange","hideGrips","updateExtremes","handleBgHit","makeBusy","spritePoint","thumbX","_thumbAnimation","thumbY","makeUnbusy","_thumb","_unbusyTimeout","stopAnimations","_zoomAnimation","makeUnbusyReal","_usingGrip","dispatchEvents","fromValue","directionFlipped","flipped","fromName","toName","innerWidth_1","innerHeight_1","getPosition","__end","skipRangeEvents","fixRange","updateByOrientation","_startGrip","processGrip","_endGrip","handleGripDrag","cursorDownStyle","handleThumbPosition","handleDoubleClick","newStart","newEnd","zoomAnimation","innerWidth_2","innerHeight_2","_hideGrips","_overDisposer","_outDisposer","_boundingRect","_pointTo","fitPointerToBounds","_verticalOrientation","fixDoc","pointerLength","pointerBaseWidth","dropShadow","drawBackground","pointerOrientation","handleVisibility","textX","textY","boundingRect","textW","textH","ignoreBounds","documentWidth","textWidth","textHeight","bgWidth","bgX","bgHeight","bgY","boundX1","boundX2","boundY1","boundY2","pointerX","pointerY","delayedPointTo","_pointToDisposer","_animation","oldRect","_boundingContainer","updateBounds","boundingContainer","_from","_from2","messages","isBlob","responseType","xhr","XMLHttpRequest","blob_1","response","readAsText","getResponseHeader","responseText","withCredentials","requestHeaders","setRequestHeader","send","separators","CSVParser","skipRows","skipEmpty","useColumnNames","isCSV","getDelimiterFromData","sep","lineColums","csv","CSVToArray","dataPoint","objPattern","arrData","arrMatches","strMatchedDelimiter","strMatchedValue","START_EVENT_NAME_MAP","transitionstart","MozTransition","OTransition","msTransition","animationstart","WebkitAnimation","MozAnimation","OAnimation","msAnimation","END_EVENT_NAME_MAP","startEvents","endEvents","eventListener","process","EVENT_NAME_MAP","baseEventName","baseEvents","detectEvents","addStartEventListener","startEvent","removeStartEventListener","addEndEventListener","endEvent","removeEndEventListener","isCssAnimationSupported","Event","capitalPrefixes","getStyleProperty","fixBrowserByTimeout","transitionDelay","animationDelay","rcEndAnimTimeout","rcEndListener","clearBrowserBugTimeout","endCallback","nodeClasses","rcAnimTimeout","env","isIconDefinition","normalizeAttrs","MiniMap","collection","getSecondaryColor","withSuffix","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","metadata","facade","STATE","enforce","TYPE","createPropertyDescriptor","propertyIsEnumerableModule","that","webpackPolyfill","deprecate","IObject","defined","$SyntaxError","SyntaxError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","decodeURIComponent","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Map","RangeError","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakRef","WeakSet","errorProto","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","doEval","gen","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","setArrayLength","deleteCount","insertCount","actualDeleteCount","actualStart","argumentsLength","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","SpriteState","spriteValue","dataLoader","DataLoader","promises","requestOptions","processData","catch","getParserByType","getParserByData","allPoints","closed_1","getClosestPointIndex","f0","f1","point_1","LinearGradientModifier","isPointsEq","isAlignPoint","isSimilarValue","val1","val2","int1","int2","restoreFocus","getPoint","sourceRect","lastElement","currentElement","preRect","shape","stretchChecked","targetWidth","targetHeight","setStretchSize","stretch","sizeStyle","alignInstance","getAlignTarget","getTargetElement","ALL_HANDLERS","rcTrigger","onPopupMouseDown","prevPopupVisible","fireEvents","renderComponent","clickOutsideHandler","isClickToHide","isContextMenuToShow","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearDelayTimer","mouseDownTimeout","alignPoint","setPoint","delaySetPopupVisible","delayS","delayTimer","createTwoChains","childPros","isClickToShow","showAction","hideAction","isMouseEnterToShow","isMouseLeaveToHide","isFocusToShow","_props6","isBlurToHide","_props7","forcePopupAlign","childCallback","_props8","onContextMenu","childrenClassName","ContainerRender","autoMount","didUpdate","handlePortalUpdate","focusDelay","blurDelay","onPopupMouseEnter","onPopupMouseLeave","focusTime","preClickTime","preTouchTime","preTime","nextVisible","_context$rcTrigger","hasPopupMouseDown","_props9","getAlignPopupClassName","_props10","mouseProps","savePopup","Native","_targets","_observer","addTarget","removeTarget","Raf","lastTime_1","currentTime","newSize","ResizeSensor","_sensor","svgContainers","ghost","autoResize","_printing","resizeSensor","checkTransform","_modal","_popups","popupTemplate","_readerAlertElement","readerAlert","readerAlertElement","getOffsetTop","_event","throttle","delayFlag","firstInvoke","allowFullScreen","onLoad","scrolling","frameBorder","ariaHidden","sandbox","allow","ariaLabel","ariaLabelledby","importance","referrerpolicy","allowpaymentrequest","currentAllow","hasCORS","XHR","xdomain","hasXHR2","polling","isSSL","xd","forceBase64","cookieJar","createCookieJar","poll","doPoll","doWrite","timestampRequests","timestampParam","yeast","sid","b64","createUri","request","xhrStatus","onError","onData","pollXhr","extraHeaders","setDisableHeaderCheck","addCookies","requestTimeout","onreadystatechange","parseCookies","requestsCount","requests","cleanup","fromError","abort","unloadHandler","terminationEvent","WebTransport","transport","transportOptions","createBidirectionalStream","stream","decoderStream","readable","pipeThrough","getReader","encoderStream","pipeTo","writer","getWriter","read","lastPacket","transports","websocket","webtransport","ipv6uri","pathNames","names","queryKey","$0","$2","writeBuffer","prevBufferLen","agent","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","perMessageDeflate","closeOnBeforeunload","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","beforeunloadEventListener","offlineEventListener","EIO","priorWebsocketSuccess","createTransport","setTransport","onDrain","failed","onTransportOpen","upgrading","freezeTransport","onTransportClose","onclose","onupgrade","probe","resetPingTimeout","onHandshake","sendPacket","filterUpgrades","autoUnref","unref","getWritablePackets","payloadSize","compress","cleanupAndClose","waitForUpgrade","filteredUpgrades","withNativeFile","File","deconstructPacket","buffers","packetData","pack","_deconstructPacket","_placeholder","newData","attachments","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","EVENT","ACK","hasBinary","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","deconstruction","reviver","reconstructor","decodeString","isBinaryEvent","takeBinaryData","buf","payload","tryParse","isPayloadValid","CONNECT","DISCONNECT","CONNECT_ERROR","finishedReconstruction","reconPack","binData","freeze","connect_error","disconnecting","newListener","recovered","receiveBuffer","sendBuffer","_queue","_queueSeq","acks","auth","_opts","_autoConnect","subs","onopen","onpacket","subEvents","_readyState","retries","fromQueue","volatile","_addToQueue","ack","_registerAckCallback","isTransportWritable","notifyOutgoingListeners","ackTimeout","withErr","arg1","arg2","tryCount","responseArgs","_drainQueue","_packet","_sendConnectPacket","_pid","pid","_lastOffset","onconnect","onevent","onack","ondisconnect","emitEvent","_anyListeners","emitBuffered","subDestroy","_anyOutgoingListeners","Backoff","jitter","attempts","rand","deviation","setMin","setMax","setJitter","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","_parser","encoder","Encoder","decoder","Decoder","autoConnect","_reconnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_reconnecting","reconnect","skipReconnect","openSubDestroy","maybeReconnectOnOpen","errorSub","onping","ondata","ondecoded","_close","onreconnect","attempt","sameNamespace","forceNew","multiplex","Manager","Socket","copyright","license","Deno","versions","v8","activeXDocument","definePropertiesModule","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","contentWindow","Properties","trunc","propertyKey","createDesc","_react2","_implementation2","showCurtain","NumberFormatter","_negativeBase","_numberFormat","_smallNumberThreshold","_forceLTR","zero","forceLTR","partFormat","modSpacing","thousands","interval","a_1","applyPrefix","bytePrefixes","a_2","smallNumberThreshold","smallNumberPrefixes","bigNumberPrefixes","ol","toPrecision","toExponential","ints","ip","intsr","decs","newvalue","applied","_bigNumberPrefixes","_smallNumberPrefixes","_bytePrefixes","outputFormat","DurationFormatter","_baseUnit","_unitValues","_unitAliases","baseUnit","durationFormat","dirs","absolute","tstamp","toTimeStamp","toTimeUnit","maxUnit","getValueUnit","durationFormats","currentUnit","_durationFormat","_durationFormats","Validatable","_validateDisposer","DataParser","numberFields","dateFields","WavedRectangle","waveLengthH","waveHeightH","waveLengthV","waveHeightV","td","rd","bd","ld","wavedTop","wavedRight","wavedBottom","wavedLeft","setWavedSides","LightenFilter","_IOs","_content","_title","_classPrefix","_defaultStyles","_showCurtain","_draggable","_align","_dynamicResize","_verticalAlign","_shift","_tempShift","_readerTitle","_closable","_cssLoaded","_fitTo","_sized","curtain","positionElement","releasePointers","forceResize","dynamicResize","toStyle","setupDragging","createContentElement","getClassNames","classPrefix","titleClass","contentClass","insideClass","curtainClass","closeClass","disablePointers","defaultStyles","loadDefaultCSS","createCurtainElement","applyEvents","applyReaderSettings","_left","_right","_bottom","fg","bg","abg","_spriteInteractionsEnabled","classPrefixRaw","_rcAnimate","_ScrollNumber","_colors","isPresetColor","PresetColorTypes","renderBadge","customizeScrollNumberPrefixCls","scrollNumberPrefixCls","omitArr","scrollNumber","renderBadgeNumber","statusText","renderStatusText","statusCls","hasStatus","styleWithOffset","getStyleWithOffset","statusTextColor","getBadgeClassName","isDot","getNumberedDispayCount","numberedDispayCount","isZero","showZero","displayCount","getDispayCount","customNode","_classNames3","displayComponent","renderDispayComponent","getScrollNumberTitle","WavedCircle","circleLength","halfWaveHeight","halfWaveLength","angle1","angle2","reactPropsRegex","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","newStyled","createStyled","shouldForwardProp","targetClassName","__emotion_forwardProp","propName","isReal","__emotion_real","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","classInterpolations","finalShouldForwardProp","innerRef","withComponent","nextTag","nextOptions","ALL_INITIALIZERS","READY_INITIALIZERS","loader","loadMap","createLoadableComponent","loadFn","webpack","getModuleIds","moduleId","LoadableComponent","retry","timedOut","_loadModule","pastDelay","preload","_mounted","loadable","moduleName","report","_clearTimeouts","Loadable","Capture","flushInitializers","initializers","preloadAll","preloadReady","_PickerMixin","_getPrototypeOf2","_getOwnPropertyDescriptor2","receiver","getter","_layout","_Sider","Sider","LocaleReceiver","localeFromContext","localeCode","getLocaleCode","bitmap","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","argv","addListener","prependListener","prependOnceListener","binding","cwd","chdir","umask","internalObjectKeys","classofRaw","NativePromiseConstructor","inspectSource","IS_BROWSER","IS_DENO","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","foo","isRegExp","speciesConstructor","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","$push","SPLIT","nativeSplit","internalSplit","lim","lastLength","ignoreCase","multiline","lastLastIndex","separatorCopy","splitter","unicodeMatching","originalExec","fixControlledValue","resolveOnChange","getInputClassName","InputSizes","_reactLifecyclesCompat","_ClearableLabeledInput","originalInputValue","saveClearableInput","clearableInput","saveInput","handleReset","renderInput","addonBefore","addonAfter","handleKeyDown","clearPasswordValueAttribute","removePasswordTimeout","hasAttribute","onPressEnter","hasPrefixSuffix","onKeyUp","allowClear","SpriteEventDispatcher","_interactionEvents","_dispatchSpriteEvent","_dispatchSpritePointEvent","svgPoint","_addInteractionObjectEvent","InteractionObjectEventDispatcher","_domEvents","_addDOMEvent","callback_1","_dispatchKeyboardEvent","ClassList","removeMatching","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","Ellipse","ResizeButton","TextLink","argIndex","framesToPop","filterFn","childrenKeyName","foundItem","factory","vendorPrefix","jsCssMap","Webkit","Moz","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","getComputedStyleX","matrix2d","matrix3d","forceRelayout","originalStyle","getScroll","getScrollLeft","getScrollTop","docElem","getClientPosition","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","preset","_dir","_off","setTransform$1","originalXY","getTransformXY","resultXY","xy","match2d","setTransformXY","isBorderBoxFn","computedStyle","rsLeft","pixelLeft","BOX_MODELS","getPBMWidth","domUtils","getParent","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","getWHIgnoreDisplay","mix","includeMargin","utils","ignoreShake","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","documentHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","getAlignOffset","region","getElFuturePos","elRegion","refNodeRegion","isFailX","elFuturePos","isFailY","flip","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","newElRegion","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","targetRegion","isOutOfVisibleRect","tgtPoint","pointInView","__getOffsetParent","__getVisibleRectForElement","_addEventListener","_getScroll","_scrollTo","getDefaultTarget","BackTop","scrollToTop","_this$props$target","visibilityHeight","_this$props2$target","renderBackTop","_this$props3$classNam","defaultElement","backTopBtn","scrollEvent","postfix","EXISTS","isSymbol","$Symbol","getDescriptor","CONFIGURABLE","CORRECT_ARGUMENTS","tryGet","integer","$propertyIsEnumerable","NASHORN_BUG","1","feature","detection","POLYFILL","NATIVE","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","stopped","ResultPrototype","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","callFn","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","specificCreate","boundFunction","filterReject","arraySpeciesConstructor","originalArray","re1","re2","regexpFlags","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","reCopy","charsAdded","strCopy","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","methods","nativeMethod","forceStringMethod","uncurriedNativeMethod","$keys","px","_reactDom","_addDomEventListener","_row","_col","SVGDefaults","InteractionObject","_clickable","_contextMenuDisabled","_hoverable","_trackable","_swipeable","_resizable","_wheelable","_inert","_isHover","_isHoverByTouch","_isDown","_isFocused","_isTouchProtected","_inertiaOptions","_hitOptions","_hoverOptions","_swipeOptions","_keyboardOptions","_mouseOptions","_cursorOptions","isHoverByTouch","_overPointers","_downPointers","_focusable","_originalPosition","_originalScale","_originalAngle","InteractionKeyboardObject","keyboardEvent","_startedOn","accelleration","accellerationDelay","accelleratedMs","accellerationFactor","Inertia","handleMove","pdfmakePromise","fontFamilySrcRegexp","getCssRules","loadStylesheet","e_2","eachStylesheet","topUrl","CSSRule","IMPORT_RULE","eachStylesheets","doc_1","Export","_formatOptions","_extraSprites","_validateSprites","dataFieldsOrder","_dynamicDataFields","_removedObjects","_hiddenObjects","_objectsAlreadyHidden","_filePrefix","useWebFonts","useRetina","useSimplifiedExport","timeoutDelay","_exportRunning","_prevHasData","quality","imageFormat","addURL","addColumnNames","indent","useLocale","addBOM","printMethod","formatOptions","_menu","branch","unsupported","typeSupported","export","_disablePointers","_releasePointers","supported","getFormatOptions","_hasData","print","_getFunction","getImage","getSVG","getPDF","getExcel","getCSV","getJSON","getHTML","getPrint","handleCustom","showPreloader","hideTimeout","_timeoutTimeout","showTimeout","hideNonExportableSprites","restoreNonExportableSprites","hidePreloader","download","filePrefix","callbackTarget","getFontFamilies","DOMURL","blobs","getDOMURL","FONT_FACE_RULE","cssText_1","urls","after","fullUrl","url_1","e_3","webFontFilter","msSaveOrOpenBlob","includeExtras","prehidden","canvas","newCanvas","e_4","awaitValidSprites","simplifiedImageExport","getCanvas","addExtras","disposeCanvas","toDataURL","getContentType","stack","getImageAdvanced","advanced","middleLeft_1","middleTop_1","middleWidth_1","middleHeight_1","extraRight_1","extraBottom_1","extras","ctx_1","right_1","bottom_1","extraSprites","extraSprite","extraCanvas","extraWidth","extraHeight","getCanvasAdvanced","crop","getDisposableCanvas","getContext","findBackgroundColor","fillStyle","fillRect","drawImage","pixelRatio","getAdjustedScale","fonts","imagesToDataURI","prepForeignObjects","normalizeSVG","serializeElement","loadNewImage","restoreRemovedObjects","canvg","useCORS","ignoreDimensions","scaleWidth","scaleHeight","fromString","widthScale","heightScale","adjWidth","adjHeight","svgToDataURI","imageToDataURI","objects","temporarilyRemoveObject","keepTainted","charset","crossOrigin","currentHref","onabort","webkitURL","dimParams","styleParams","fos","XMLSerializer","serializeToString","addFont","normal","vfs","bold","italics","bolditalics","pdfmake","defaultMargins","extraMargin","pageOrientation","pageMargins","alignment","fit","getPageSizeFit","getPDFData","table","extraFonts","createPdf","getDataUrl","dataFieldsOrder_1","dataRow","dataValue","convertToSpecialFormat","getPDFDataRow","headerRows","convertEmptyValue","margins","newMargins","fitSize","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","EXECUTIVE","FOLIO","LEGAL","LETTER","TABLOID","XLSX","wbOptions","sheetName","wb","dataFieldsOrder_2","xlsx","bookType","bookSST","normalizeExcelSheetName","SheetNames","Sheets","getExcelRow","aoa_to_sheet","workbook","dataFieldsOrder_3","getCSVRow","forceQuotes","dataFieldsOrder_4","tableClass","getHTMLRow","headerRow","rowClass","useTag","cellClass","sourceData","json","newValue_1","keepOriginal","isDateField","isDurationField","isNumberField","numberFormat","useTimestamps","fileName","link_1","blob_2","url_2","charCode","url_3","idoc","msBlobDownloadSupport","msSaveBlob","blobDownloadSupport","click","linkDownloadSupport","legacyIE","showModal","execCommand","downloadSupport","printViaCSS","printViaIframe","scroll","originalTitle","clipPath","validateSprites","_dataFields","generateDataFields","hasData","_dateFields","_numberFields","_durationFields","durationFields","_backgroundColor","hideModal","_canvg","vfs_fonts","pdfMake","_pdfmake","_xlsx","setFormatOptions","_requestOptions","_incremental","_incrementalParams","_keepCount","_updateCurrentData","lastLoad","disableCache","timestampUrl","_url","addUrlParams","incrementalParams","_reloadFrequency","_reloadDisposer","_reloadTimeout","reloadFrequency","PointedRectangle","cr","stemX","stemY","bwh","lineT","lineR","lineB","lineL","d2","arcTR","arcBR","arcBL","arcTL","PointedShape","DropShadowFilter","feOffset","operator","feMerge","Trapezoid","topSide","bottomSide","leftSide","rightSide","bs","ls","rs","mt","mr","mb","ml","horizontalNeck","hn","verticalNeck","vn","ZoomOutButton","Cone","topRadius","bodyFillModifier","lightnesses","radiusBase","ColorModifier","Rectangle3D","sideBack","sideBottom","sideLeft","sideRight","sideTop","sideFront","ah","bh","dh","colorStr","filter2","filter3","filter4","filter5","Slice3D","edge","sideA","sideB","edgeFill","edgePath","mangle","pp","ExportMenu","closeDelay","closeOnClick","_menuTag","_itemTag","_labelTag","_iconTag","_ignoreNextClose","_items","getMenuItemClass","createMenuElement","drawBranch","menuElement","_currentSelection","moveSelection","ascendants","createItemElement","createIconElement","createSvgElement","createLabelElement","readerLabel","getReaderLabel","typeClickable","submenu_1","getSubMenu","selectBranch","setFocus","delayUnselectBranch","local_level","submenu","submenuElement","hideBranch","menuTag","itemTag","labelTag","iconTag","DOMParser","parseFromString","hasSubMenu","newPrefix","colorSet","setBlur","closeTimeout","ascendant","unselectBranch","newSelection","getPrevSibling","getNextSibling","getParentItem","getSiblings","siblings","showBranch","__WEBPACK_EXTERNAL_MODULE__0__","installedModules","__webpack_require__","toStringTag","__webpack_exports__","_descriptor","external_root_Mobx_commonjs2_mobx_commonjs_mobx_amd_mobx_","_applyDecoratedDescriptor","initializer","decorator","RouterStore","sync_syncHistoryWithStore","handleLocationChange","_updateLocation","unsubscribeFromHistory","subscribe","unsubscribeFromStore","rawLocation","unsubscribe","$l","parseFromMilliseconds","calMilliseconds","YY","YYYY","DD","SSS","humanize","fromNow","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","isDuration","autoDestroy","createContainer","qs","qry","pairs","pair","alphabet","isInternetExplorer","GradientModifier","brightnesses","opacities","_lightnesses","_brightnesses","_opacities","_offsets","brightness","HashRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","isModifiedEvent","Link","_ref2$component","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","classNameProp","isActiveProp","locationProp","escapedPath","joinClassnames","_toPropertyKey","hint","prim","Grip","autoHideDelay","_autoHideTimeout","ChartDataItem","Chart","_legend","titles","chartAndLegendContainer","chartContainer","processTitle","updateReaderTitleReferences","fixLayout","legend","feedLegend","titleIds_1","setLegend","_dragGrip","grip_1","Bullet","tooltipX","copyToLegendMarker","LegendDataItem","childrenCreated","label_1","labels","itemContainer","_valueLabel","valueLabel_1","valueLabels","_itemContainer","component_1","itemContainer_1","itemContainers","toggleDataItem","focusedItem","visibilitychanged","_marker","marker_1","markers","LegendSettings","createMarker","Legend","disabledColor","valueLabel","handleScrollbar","scrollable","updateMasks","_handleWheelReal","legendDataItem","tempMaxWidth","legendSettings","createLegendMarker","useDefaultMarker","updateLegendValue","itemValueText","maxLabelWidth","maxValueLabelWidth","maxMarkerWidth","maxAdjustedLabelWidth","trueMaxWidth","_mouseWheelDisposer","colorOrig","SeriesDataItem","_bullets","Series","_showBullets","_tmin","_tmax","_smin","_smax","dataItemsByAxis","skipFocusThreshold","_itemReaderTextChanged","calculatePercent","usePercentHack","simplifiedProcessing","axisRanges","processAxisRange","minBulletDistance","mainContainer","bulletsContainer","_chart","positionBullet","processBullet","itemsFocusable","removeBullet","eachBullet","processValues","getFirstValue","getAbsoluteFirstValue","working","count_1","sum_1","absoluteSum_1","low_1","high_1","open_1","close_1","previous_1","first_1","absoluteFirst_1","startIndex_1","dataItem_2","_loop_2","dataItem_3","ksum","zeroItem_1","dataItem_4","axisRange","updateTooltipBounds","shouldCreateBullet","bulletTemplate","disabledField","currentDataItem","readerText_1","itemReaderText","xField","yField","isDynamic","itemWidth","createMask","rangesContainer","contents","isRange","getAxisField","showTooltipAtPosition","xPosition","yPosition","readerText","_itemReaderText","_legendDataItem","notRange","itemLabelText","labelText","_heatRules","heatRule","dataField_1","dataField","seriesDataItem_1","property_1","foundSprite","anySprite","anyChild","foundSprite_1","ruleTarget","propertyField","logarithmic","LOG10E","heatRules","listitem","maybeIndex","SerialChartDataItem","SerialChart","_exitDP","colors","seriesContainer","patterns","_series","createSeries","handleSeriesAdded","handleSeriesRemoved","series","di","handleSeriesAdded2","handleLegendSeriesAdded","hiddenInLegend","legendData_1","AxisBreak","_axis","breakSize","fillShape","_fillShape","startLine","_startLine","endLine","_endLine","addBreakSprite","renderer","gridContainer","createBreakSprites","breakTemplate","axisBreaks","invalidateSeries","endPosition","updateBreakElement","AxisItemLocation","AxisDataItem","grid_1","_tick","component_2","tick_1","ticks","component_3","_axisFill","component_4","axisFill_1","axisFill","axisFills","_text","_contents","createFill","_axisBreak","axisBreak","appendChildren","appendDataItem","minPosition","maxPosition","_bullet","Axis","_gridCount","_axisItemCount","hideTooltipWhileZooming","toggleZoomOutButton","zoomable","_dataItemsIterator","fillRule","ghostLabel","updateLabelElement","updateGridCount","gridCount","axisLength","minGridDistance","axisFullLength","updateAxisLine","updateTooltip","updateBaseGridElement","_prevLength","initRenderer","above","updateGridContainer","validateAxisRanges","validateBreaks","_axisBreaks","processBreak","breakContainer","registerSeries","_renderer","ghostLabel_1","positionToAngle","pointToPosition","positionToCoordinate","getAnyRangePath","getPositionRangePath","anyToPosition","anyToPoint","_tooltipPosition","toAxisPosition","tooltipLocation","getCellStartPosition","getCellEndPosition","tooltipLocation2","endPoint","currentItemStartPoint","currentItemEndPoint","fullWidthTooltip","getTooltipText","cursorTooltipEnabled","inversed","toGlobalPosition","boundingRectangle","roundPosition","axisLocation","_axisRanges","createAxisBreak","adjustedStartValue","processSeriesDataItems","processSeriesDataItem","axisLetter","postProcessSeriesDataItems","postProcessSeriesDataItem","updateAxisBySeries","hideUnusedDataItems","dataItemsIterator","getSeriesDataItem","findNearest","stackKey","getX","getPositionX","getY","getPositionY","dataChangeUpdate","seriesDataChangeUpdate","adjustDifference","adjustedEndValue","isInBreak","fixAxisBreaks","firstAxisBreak","previousEndValue_1","getPositionLabel","createSeriesRange","resetIterators","AxisLine","AxisFill","fillPath","AxisLabel","Tick","AxisTick","AxisRenderer","inside","cellStartLocation","cellEndLocation","minLabelPosition","maxLabelPosition","invalidateAxisItems","baseGrid","setAxis","processRenderer","positionItem","position2","getHeight","coordinateToPosition","coordinate","coordinate2","updateGridElement","updateTickElement","updateBullet","updateFillElement","toggleVisibility","updatedStart","updatedEnd","_axisFills","createGrid","_ticks","createTick","_labels","createLabel","AxisBullet","AxisRendererY","opposite","inversedPosition","relativePositionSprite","bbx","bbw","bbh","tickLength","basePoint","wavedRectangle","ValueAxisBreak","valueToPosition","ValueAxisDataItem","ValueAxis","_stepDecimalPlaces","_prevStepDecimalPlaces","_adjustLabelPrecision","_baseValue","_adjustedStart","_adjustedEnd","_extremesChanged","_deltaMinMax","_dsc","calculateTotals","axisFieldName","keepSelection","includeRangesInMinMax","_maxZoomed","_maxDefined","_minZoomed","_minDefined","_maxAdjusted","_minAdjusted","excludeFromTotal","getMinMax","calculateZoom","validateAxisElements","positionToValue","differece","minMaxStep","adjustMinMax","stepDecimalPlaces","syncWithAxis","_step","fixSmallStep","value_1","minZoomed","maxZoomed","dataItemsIterator_1","precisionChanged","formatLabel","stepPower","decCount","renderer_1","breakValue_1","adjustedMin","adjustedMax","adjustedStep","itemIndex","fillEndPosition","adjustLabelPrecision","baseValue","valueToPoint","min_1","max_1","_difference","treatZeroAs","difference_1","value_2","breakStartPosition","breakEndPosition","breakStartValue","breakEndValue","xToValue","yToValue","animateMinMax","NEGATIVE_INFINITY","ignoreMinMax","seriesMin","seriesMax","_minReal","_maxReal","dif","fixMin","fixMax","power","extraMin","extraMax","strictMinMax","_minMaxAnimation","_finalMax","_finalMin","handleSelectionExtremesChange","_saveMinMax","strictMode","initialMin","initialMax","stepDivisor","maxPrecision","minCount","handleExtremesChange","selectionMin","selectionMax","allHidden","seriesSelectionMin","seriesSelectionMax","minMaxStep2","syncAxes","extraTooltipPrecision","valueStr","zoomToValues","axisBreakDif","axisBreakGridCount","breakMinMaxStep","showTooltipAt","currentCount","synced","omin","omax","ostep","checkSync","xAxis","_min","_max","DateAxisBreak","DateAxisDataItem","DateAxis","_gapBreaks","gridIntervals","groupIntervals","dateFormats","periodChangeDateFormats","_baseIntervalReal","timeUnit","_prevSeriesTime","_minDifference","_firstWeekDay","groupMin","groupMax","_intervalMax","_intervalMin","snapTooltip","groupCount","getDFFormatter","gridInterval","_gridInterval","gridDuration","baseDuration","periodCount","getFirstWeekDay","mainBaseDuration","mainBaseInterval","getIntervalMax","getIntervalMin","dataSetChanged","groupData","modifiedDifference","startLocation","endLocation","groupInterval","chooseInterval","_groupInterval","newId","baseAxis","baseInterval","_nextGridUnit","_intervalDuration","_gridDate","_df","field_1","minZoomedStr","startDataItem","currentDataSetId","findFirst","maxZoomedStr","endDataItem","previousDataItem","previousDate","minDifference","seriesGroupUpdate","addEmptyUnitsBreaks","_baseInterval","groupSeriesData","dataGrouped","intervals_1","mainIntervalDuration_1","intervalDuration","dataSetId","dataSet","newDataItem","roundedDate","previousTime","dfkey","df","dfk","vkey","dateX","openDateX","dateY","openDateY","dvalues","average","groupDataItems","groupFieldName","groupFields","intervalID","skipEmptyPeriods","breakGridCount","gridDate","getGridDate","intervalCount","realIntervalCount","prevTimestamp","durationBreaksRemoved","getBreaklessDate","prevGridDate","this_2","markUnitChange","timeUnit_1","intervalCount_1","prevGridDate_1","timestamp_1","_loop_3","text_1","endTimestamp","location_1","intervals","dateToPosition","dateToPoint","positionToDate","getTimeByLocation","endTime","openTime","openDate","prevSeriesTime","_mainBaseInterval","timeInterval","tooltipDate","tooltipDateFormat","deltaValue","nextDate","key_1","getCurrentLabelFormat","zoomToDates","adjust","isStart","groupInterval_1","mindi","maxdi","yAxis","closestDate_1","actualTime_1","closestTime_1","snapToSeries","showTooltipAtDataItem","_seriesPoints","makeGap","previous","autoGapCount","prevDate","AxisRendererX","bby","CategoryAxisBreak","category","categoryToIndex","CategoryAxisDataItem","seriesDataItems","endCategory","deltaPosition","oldCategory","deltaCoordinate","CategoryAxis","dataItemsByCategory","_lastDataItem","categoryAxisDataItem","seriesId","positionToIndex","minIndex","maxIndex","axisDataItem","seriesDataItem","dataCount","frequency","_frequency","frequency_1","itemIndex_1","fillEndIndex","fillPosition","breakStartIndex","breakEndIndex","categoryToPosition","categoryToPoint","zoomToCategories","startCategory","startPos","endPos","getFirstSeriesDataItem","categoryX","categoryY","getLastSeriesDataItem","getSeriesDataItemByCategory","sdi_1","category_1","breakPosition","positionToCategory","sortBySeries","XYSeriesDataItem","customValue","valueX","valueY","openValueX","openValueY","openCategoryX","openCategoryY","getMin","stackValue","getMax","XYSeries","_xAxis","_yAxis","_xValueFields","_yValueFields","usesShowFields","_dataSetChanged","_maxxX","_maxxY","_propertiesChanged","cursorHoverEnabled","stackToNegative","returnBulletDefaultState","resetExtremes","valueYShow","openValueXShow","openValueYShow","defineFields","updateItemReaderText","_xField","_yField","setInitialWorkingValues","dataItemsX","clearCatAxis","dataItemsY","xAxisFieldName","xOpenField","yAxisFieldName","yOpenField","_xOpenField","_yOpenField","addValueField","setCategoryAxisField","setDateAxisField","path_1","getMaskPath","plotContainer","maskBullets","leftAxesContainer","rightAxesContainer","topAxesContainer","bottomAxesContainer","xAxes","setXAxis","oldAxis","yAxes","setYAxis","handleYAxisSet","_baseAxis","scrollbarSeries","workingStartIndex","workingEndIndex","getStackValue","stackX","stackY","xAxisId","yAxisId","stackedSeries","tmin","tmax","_prevTooltipDataItem","getAdjustedXLocation","bulletLocationX","getAdjustedYLocation","bulletLocationY","hideSeriesTooltipsOnSelection","selection","downPoint","tooltipXField","tooltipYField","tooltipPoint","fireEvent","e_2_1","getBulletLocationX","getBulletLocationY","positionX","positionY","openValue","closeValue","middleValue","rightLocation","locationX","leftLocation","openPositionX","topLocation","locationY","bottomLocation","openPositionY","positionBulletReal","bulletLocation","updateStacking","realDuration","axisSeries","field_2","prevSeries","prevDataItem","prevStack","prevRealValue","_tooltipXField","_tooltipYField","xKey","yKey","stackKeyX","stackKeyY","axisBulletsContainer","XYChartScrollbar","scrollbarChart","_scrollbarChart","unselectedOverlay","_unselectedOverlay","thumbBackground","sourceSeries","zoomOutButton","addXAxis","addYAxis","vAxis_1","sourceAxis","minDefined","maxDefined","vAxis_2","vAxis_3","vAxis_4","zoomOutAxes","handleDataChanged","XYChartDataItem","XYChart","_axisRendererX","_axisRendererY","arrangeTooltips","topAxesCont","yAxesAndPlotCont","yAxesAndPlotContainer","bottomAxesCont","leftAxesCont","updateXAxesMargins","plotCont","mouseWheelBehavior","_cursorContainer","rightAxesCont","_bulletMask","updateSeriesLegend","updatePlotElements","leftAxesWidth","rightAxesWidth","handleXAxisChange","updateXAxis","handleYAxisChange","updateYAxis","processXAxis","handleXAxisRangeChange","processAxis","processYAxis","handleYAxisRangeChange","getCommonAxisRange","scrollbarX","zoomAxes","updateScrollbar","show_1","seriesAppeared","scrollbarY","axes","axisStart","axisEnd","updateSeriesMasks","_xAxes","handleAxisRemoval","_yAxes","_cursor","handleCursorPositionChange","handleCursorZoomStart","handleCursorZoomEnd","handleCursorPanStart","handleCursorPanning","handleCursorPanEnd","handleCursorCanceled","handleHideCursor","xPosition_1","yPosition_1","showSeriesTooltip","exceptAxes_1","dataItems_1","snpSeries","closestDataItem_1","getClosest","closestSeries","handleSnap","_cursorXPosition","showAxisTooltip","_cursorYPosition","sortSeriesTooltips","closestDataItem","minDistance","xPos","yPos","dxPosition","dyPosition","hideObjectTooltip","seriesPoints","cursor_1","maxTooltipDistance","nearestSeries_1","nearestPoint_1","cursorPoint_1","smallestDistance_1","seriesPoint","fixedPoint","newSeriesPoints_1","np","topLeft_1","bottomRight_1","filteredSeriesPoints_1","firstSeries","averageY","dropped","nextHeight","pointY","getUpdatedRange","xRange","yRange","_panStartXRange","_panStartYRange","_panEndXRange","panEndRange","panStartRange","snapOnPan","_panEndYRange","maxPanOut","newRange","_scrollbarX","handleXScrollbarChange","_scrollbarY","handleYScrollbarChange","realRange","originalRange","cellWidth","plotPoint","handleWheelReal","handleHorizontalWheel","horizontalMouseWheelBehavior","rangeX","rangeY","shiftStep","singleItemStep","differenceX","newStartX","newEndX","differenceY","newStartY","newEndY","location2X","location2Y","_mouseWheelDisposer2","len_1","len_2","_zoomOutButton","addScrollbarData","removeScrollbarData","LineSeriesSegment","fillSprite","strokeSprite","drawSegment","closePoints","smoothnessX","smoothnessY","smoothing","fillElement","DurationAxisDataItem","DurationAxis","axisDurationFormat","divisors","realDivisor","divisors_1","divisors_1_1","divisor","reducedCount","_tooltipDurationFormat","tooltipDurationFormat","LineSeriesDataItem","LineSeries","createSegment","_segmentsIterator","segmentsContainer","initialY","initialX","openSegmentWrapper","_adjustedStartIndex","findAdjustedIndex","adjustedIndex","openIndex","openSegment","getSegment","addToClose","closeIndex","propertiesChanged","valuesFound","updateSegmentProperties","closeSegment","itemProperties","checkOnly","currentValueStr","hasLabels","RadarSeriesDataItem","RadarSeries","connectEnds","updateRendererRefs","rendererX","rendererY","axisRendererY","AxisFillCircular","GridCircular","AxisLabelCircular","fdx","fdy","locationOnPath","axisRadius","pixelRadiusY","axisRadiusY","fixPosition","relativeRotation","labelRadius","bent","dH","dW","AxisRendererCircular","pixelRadiusReal","useChartAngles","innerRadiusModifyer","angleToPosition","gridInnerRadius","AxisRendererRadial","gridType","axisAngle","gridLocation","tooltipOrientation","bigNum","RadarChartDataItem","RadarChart","radarContainer","wr","hr","maxRadius","diameter","_pixelInnerRadius","ClockHand","pin","startWidth","endWidth","hand","_pin","_hand","showValue","newAngle","currentAngle","rotationDirection","GaugeChartDataItem","GaugeChart","hands","processHand","PercentSeriesDataItem","ticksContainer","labelsContainer","_slice","slice_1","slices","slicesContainer","PercentSeries","alignLabels","createSlice","_slices","initSlice","initTick","initLabel","arrangeLabels","lh","nextLabel","getNextLabel","nextLabelHeight","nextLabelY","arrangeLabels2","previousTop","nextDataItem","handleSliceScale","handleSliceMove","setAlignLabels","PercentChartDataItem","PercentChart","percentSeriesDataItem","PieTick","PieSeriesDataItem","radiusValue","PieSeries","_leftItems","_rightItems","_currentStartAngle","_arcRect","_maxRadiusPercent","radiusValuePercent","aAngle","bAngle","ignoreZeroValues","normalizedMiddleAngle","arcRect","_pixelRadius","_startAngleInternal","_endAngleInternal","PieChartDataItem","PieChart","updateRadius","_chartPixelRadius","updateSeriesAngles","chartCont","chartRadius","chartPixelInnerRadius","seriesRadius","_chartPixelInnerRadius","PieSeries3DDataItem","depthValue","PieSeries3D","depthPercent","PieChart3DDataItem","PieChart3D","SlicedChartDataItem","SlicedChart","FlowDiagramNode","invalidateLinks","outgoingDataItems","toNode","incomingDataItems","fromNode","colorMode","stop_1","stop_2","_incomingDataItems","sortBy","_incomingSorted","_outgoingDataItems","_outgoingSorted","FlowDiagramLink","positionBullets","_bulletsContainer","_bulletsMask","bulletsMask","middleLine","rotationField","_gradient","FlowDiagramDataItem","_link","links","FlowDiagram","nodePadding","minNodeSize","linksContainer","nodesContainer","sortNodes","strNode","getNodeValue","_sorted","incomingTotal","outgoingTotal","totalIncoming","totalOutgoing","changeSorting","_nodes","createNode","_links","createLink","LabelBullet","SankeyNode","nextInCoord","nextOutCoord","nameLabel","orientation_1","linkWidth","valueHeight","SankeyLink","makeBackwards","xt0","yt0","xt1","yt1","xb0","xb1","yb0","yb1","xm0","xm1","ym0","ym1","cpd","kxt0","kyt0","kxt1","kyt1","kxm0","kym0","kxm1","kym1","kxb0","kyb0","kxb1","kyb1","SankeyDiagramDataItem","SankeyDiagram","nodeAlign","_valueHeight","_levelCount","getNodeLevel","levels","checkLoop","calculateValueHeight","_levelSum","_levelNodesCount","maxSum","maxSumLevel","realValue","levelNodeCount","_maxSumLevel","maxSumLevelNodeCount","finalHeight","_heightAnimation","nextCoordinate","levelCoordinate","nodeCount","nodeHeight","ChordNode","updateRotation","arc_1","sliceStartAngle_1","childAngle","childRadius","labelAngle","adjustedTotal","nextAngle","nonRibbon","valueAngle","mAngle","trueStartAngle","QuadraticCurve","cpx","cpy","ChordLink","fromX","fromY","toX","toY","mAngle1","mAngle2","ChordDiagramDataItem","ChordDiagram","chordContainer","newTotal","Column","createAssets","handleKidAdded","ColumnSeriesDataItem","_column","setColumn","_rangesColumns","ColumnSeries","_startLocation","_endLocation","clustered","columnsContainer","_columnsContainer","prevAxisIndex_1","baseAxisSeries","clusterCount_1","sortedByAxis_1","index_2","sortedItem","sortCategoryAxis","disableUnusedColumns","deltaAnimation","validateDataElementReal","getStartLocation","getEndLocation","outOfBounds","diw","dih","fixHorizontalCoordinate","fixVerticalCoordinate","axisLenght","column_1","realX","realY","setColumnStates","rangeColumn","rangesColumns","_dropFromOpenState","_dropFromPreviousState","_riseFromOpenState","_riseFromPreviousState","change","droppedFromOpen","droppedFromPrevious","_columns","createColumnTemplate","fromOpenState_1","fromPreviousState_1","TreeMapSeriesDataItem","treeMapDataItem","TreeMapSeries","TreeMapDataItem","childValue","TreeMap","layoutAlgorithm","squarify","maxLevels","currentLevel","hideParentColumns","sorting","xRenderer","yRenderer","seriesTemplates","zoomToChartDataItem","_homeDataItem","_navigationBar","navigationBar","createTreeSeries","_tempSeries","homeDataItem","_homeText","layoutItems","navigationData","parentDataItem","initSeries","createTreeSeriesReal","currentlyZoomed","zoomToSeriesDataItem","toggleBullets","binaryTree","dice","sliceDice","sums","partition","valueOffset","valueTarget","hi","mid","valueLeft","valueRight","xk","yk","nodeValue","sumValue","newRatio","beta","i0","i1","getLegendLevel","legendParent","AxisRendererX3D","dx3D","dy3D","handle3DChanged","AxisRendererY3D","Column3D","column3D","ColumnSeries3DDataItem","ColumnSeries3D","XYChart3DDataItem","XYChart3D","fixColumns","depthIndex","inversed_1","maskColumns","HeatLegend","markerContainer","markerCount","getMinFromRules","minValue_1","getMaxFromRules","maxValue_1","valueAxis","minColor","maxColor","seriesFill","minOpacity","maxOpacity","minStrokeOpacity","maxStrokeOpacity","minStroke","maxStroke","strokeGradient","color_1","opacity_1","_valueAxis","dataFieldDefined","updateMinMax","seriesId_1","Candlestick","lowLine","highLine","CandlestickSeriesDataItem","lowValueX","lowValueY","highValueX","highValueY","CandlestickSeries","positiveColor","negativeColor","dropFromOpenState","riseFromOpenState","validateCandlestick","lowLine_1","highLine_1","yOpen","yClose","yLow","yLowField","yHigh","yHighField","open_2","close_2","xOpen","xClose","xLow","xLowField","xHigh","xHighField","rangeLowLine","rangehighLine","_xLowField","_yLowField","_xHighField","_yHighField","cw","OHLC","openLine","highLowLine","closeLine","OHLCSeriesDataItem","OHLCSeries","openLine_1","highLowLine_1","closeLine_1","rangeOpenLine","rangeCloseLine","rangeHighLowLine","StepLineSeriesSegment","noRisers","StepLineSeriesDataItem","StepLineSeries","startLocationX","endLocationX","startLocationY","endLocationY","RadarColumn","radarColumn","RadarColumnSeriesDataItem","RadarColumnSeries","lAngle","rAngle","tRadius","bRadius","cellAngle","FunnelSlice","bottomWidth","topWidth","expandDistance","pb","pr","pl","ed","tw","bw","cpr","cpl","qp1","qp2","tickPoint","tb","bt","bb","mlx","mty","FunnelTick","labelsOpposite","FunnelSeriesDataItem","_sliceLink","sliceLink_1","sliceLinks","FunnelSeries","_nextY","bottomRatio","labelTemplate","dItem","_total","_count","getNextValue","nextItem","formDataElement","sliceLink","decorateSlice","linkHeight","getLastLabel","lastLabel","lastX","_sliceLinks","labelAlign","labelValign","PyramidSeriesDataItem","PyramidSeries","pyramidHeight","valueIs","_nextWidth","relValue","_pyramidHeight","_pyramidWidth","absoluteSum","pyramidWidth","sliceTopWidth","sliceHeight","sliceBottomWidth","sliceWidth","PictorialStackedSeriesDataItem","PictorialStackedSeries","_maskSprite","maskSprite","pictureWidth","pictureHeight","hs","ConeColumn","coneColumn","ConeSeriesDataItem","ConeSeries","CurvedColumn","curvedColumn","CurvedColumnSeriesDataItem","CurvedColumnSeries","CircleBullet","ErrorBullet","errorLine","NavigationBarDataItem","NavigationBar","textLink","_linksIterator","triangle","activeLink","Cursor","_stick","handleCursorDown","handleCursorUp","handleCursorMove","_generalBehavior","_stickPoint","triggerMove","stick","triggerMoveReal","getPositions","triggerDown","triggerDownReal","triggerUp","triggerUpReal","updatePoint","upPoint","_upPointOrig","_downPointOrig","updateSelection","shouldPreventGestures","XYCursor","_lineX","_lineY","_snapToDisposers","lineX","lineY","_usesSelection","fixPoint","updateLinePositions","allHidden_1","getPanningRanges","selectionX","selectionY","hasMoved","getRanges","handleXTooltipPosition","handleYTooltipPosition","fullWidthLineX","fullWidthLineY","_selection","snapTo_1","snapError_1","xx","RadarCursor","truePixelRadius","updateLineX","updateLineY","fillStartAngle","downAngle","downRadius","currentRadius","_prevAngle","downSin","downCos","upAngle","upRadius","_button","_buttonGroup","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","functionToString","UNSCOPABLES","ArrayPrototype","IS_INCLUDES","aPossiblePrototype","setter","CORRECT_SETTER","CONSTRUCTOR_NAME","Prototype","aConstructor","defaultConstructor","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","wrappedWellKnownSymbolModule","NAME","$RegExp","MISSED_STICKY","error1","error2","dPs","Empty","createDict","lt","def","LIBRARY","wksExt","pIE","toIObject","gOPD","percentTwenties","Format","formatters","RFC1738","RFC3986","changeConfirmLocale","newLocale","runtimeLocale","getConfirmLocale","$values","_extends3","argumentContainer","getDisplayName","_hoistNonReactStatics2","identity","flattenArray","treeTraverse","flattenFields","maybeNestedFields","isLeafNode","errorMessage","normalizeValidateRules","validateTrigger","validateRules","newItem","getValidateTriggers","pre","getErrorStrs","opt","hasRules","supportRef","nodeOrComponent","_reactIs","_warning2","tree","subTreeKey","wrapperRaf","_raf","delayFrames","myId","restFrames","internalCallback","useFrame","useMemo","generateUUID","performance","Subs","Subscribe","eventEmitter","domObj","unsubs","unsub","unsubAll","subscribeEvent","subscribeDOMEvent","_rcCheckbox","_shallowequal","saveCheckbox","rcCheckbox","radioGroup","renderRadio","_assertThisInitialize","wrapperClassString","inlineCollapsed","SiderContext","_createReactContext","_isNumeric","dimensionMaxMap","xs","sm","md","lg","xl","xxl","generateId","InternalSider","collapsed","responsiveHandler","mql","below","onBreakpoint","setCollapsed","onCollapse","belowShowChange","belowShow","renderSider","collapsible","reverseArrow","collapsedWidth","zeroWidthTriggerStyle","rawWidth","siderWidth","zeroWidthTrigger","defaultTrigger","expanded","triggerDom","divStyle","siderCls","uniqueId","defaultCollapsed","siderHook","addSider","removeSider","siderCollapsed","_super2","LayoutContext","wrapCallback","ne","_EventObject2","useCapture","_EventObject","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","observation","_ResizableTextArea","saveTextArea","resizableTextArea","resizeTextarea","textArea","renderTextArea","_rcMenu","_SubMenu","_MenuItem","_motion","_MenuContext","InternalMenu","handleMouseEnter","restoreModeVerticalFromInline","handleTransitionEnd","widthCollapsed","classNameValue","animVal","iconScaled","handleOpenChange","setOpenKeys","renderMenu","passProps","menuMode","getRealMenuMode","menuOpenMotion","getOpenMotionProps","menuClassName","getInlineCollapsed","menuProps","switchingModeFromInline","inlineOpenKeys","mountRafId","antdMenuTheme","Divider","ItemGroup","defaultGetContainer","defaultCloseIcon","notificationInstance","defaultBottom","defaultPlacement","getPlacementStyle","typeToIcon","outerPrefixCls","autoMarginTag","_ref$placement","_ref$getContainer","_ref$closeIcon","closeIconToRender","getNotificationInstance","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","_Steps2","_Step2","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","attachKeys","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","note","warningOnce","noteOnce","_en_US","_en_US2","_en_US3","_en_US4","Table","filterTitle","filterConfirm","filterReset","selectAll","selectInvert","sortTitle","expand","collapse","justOkText","Popconfirm","Transfer","searchPlaceholder","itemUnit","itemsUnit","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","edit","copied","PageHeader","back","_rcTooltip","_placements","getDisabledCompatibleChildren","elementType","__ANT_BUTTON","__ANT_SWITCH","__ANT_CHECKBOX","_splitObject","picked","omitted","splitObject","spanStyle","isNoTitle","domNode","getPlacements","transformOrigin","renderTooltip","openClassName","childCls","arrowPointAtCenter","verticalArrowShift","regExpFlags","hasIndices","dotAll","unicodeSets","objectKeys","FunctionName","createIteratorConstructor","IteratorsCore","CONFIGURABLE_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$location","defer","channel","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","runner","post","postMessage","port2","port1","onmessage","importScripts","usingIterator","iteratorMethod","innerResult","innerError","newPromiseCapability","promiseCapability","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","$getOwnPropertyNames","windowNames","getWindowNames","keyFor","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","isBuffer","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","nativeEndsWith","endsWith","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","inheritIfRequired","proxyAccessor","enforceInternalState","setSpecies","NativeRegExp","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","rawFlags","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","dummy","Wrapper","NewTargetPrototype","CONFIGURABLE_LENGTH","TEMPLATE","cof","toInteger","$at","_t","redefine","$iterCreate","BUGGY","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","ObjectProto","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","rangePlaceholder","timePickerLocale","GetIntrinsic","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$o","assert","listGet","listHas","listSet","hasPropertyDescriptors","hasArrayLengthDefineBug","formats","hexTable","arrayToObject","plainObjects","combine","compact","compacted","compactQueue","strWithoutPlus","defaultEncoder","maybeMap","mapped","allowPrototypes","mergeTarget","targetItem","getRandomValues","crypto","msCrypto","rnds8","rnds","byteToHex","bth","storeShape","_propTypes","_propTypes2","_RowContext","_responsiveObserve","RowAligns","RowJustify","screens","getGutter","rowStyle","responsiveArray","isFunction","objectOrNumber","renderCol","span","pull","sizeClassObj","_extends2","sizeProps","propSize","renderCheckbox","indeterminate","checkboxGroup","toggleOption","checkboxClass","_ref2$checkboxGroup","registerValue","_ref4$checkboxGroup","cancelValue","_ref5$checkboxGroup","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","fastKey","getWeakData","onFreeze","TO_ENTRIES","ATTRIBUTE_NAMES","BODY","HTML","TITLE","TAG_NAMES","BASE","HEAD","LINK","NOSCRIPT","SCRIPT","STYLE","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","PROPERTY","REL","SRC","accesskey","class","contenteditable","contextmenu","itemprop","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_objectWithoutProperties3","_defineProperty3","_extends6","_toConsumableArray3","_createReactClass2","_unsafeLifecyclesPolyfill2","_asyncValidator2","_get2","_set2","_eq2","_createFieldsStore2","_FieldElemWrapper2","validateMessages","onFieldsChange","onValuesChange","_option$mapProps","mapProps","mapPropsToFields","fieldNameProp","fieldMetaProp","fieldDataProp","_option$formPropName","formPropName","formName","withRef","Form","getInitialState","fieldsStore","instances","cachedBind","clearedFieldMetaCache","renderFields","domFields","_fieldsStore","submitting","cleanUpUselessFields","updateFields","onCollectCommon","fieldMeta","getFieldMeta","originalProps","_fieldMeta$originalPr","getFieldValue","valuesAll","getAllValues","valuesAllSet","getForm","getField","onCollect","name_","_onCollectCommon","setFieldsAsDirty","newField","setFields","onCollectValidate","_onCollectCommon2","validateFieldsInternal","validateFirst","getCacheBind","oriFn","getFieldDecorator","fieldOption","getFieldProps","fieldElem","decoratedFieldElem","getFieldValuePropValue","usersFieldOption","valuePropName","_fieldOption$validate","validateTriggers","setFieldMeta","getFieldInstance","getRules","actionRules","flattenRegisteredFields","changedFields","getNestedAllFields","setFieldsValue","changedValues","fieldsMeta","newFields","_fieldMeta","preserve","clearField","recoverClearedField","removedList","getAllFieldsName","resetFields","_this7","fieldNames","_ref$options","allFields","alreadyErrors","validating","getFieldsValue","validator","errorsGroup","errorFieldName","ruleFieldName","restPath","nowAllFields","fieldErrors","nowField","validateFields","_this8","_getParams","oldCb","getValidFieldsFullName","getValidFieldsName","isSubmitting","submit","_this9","wrappedComponentRef","formProps","util","_classCallCheck3","isFormField","Field","FIELD_DATA_PROP","FIELD_META_PROP","ClearableInputType","ClearableLabeledInput","renderClearIcon","renderSuffix","affixWrapperCls","labeledElement","wrapperClassName","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","mergedGroupClassName","renderTextAreaWithClearIcon","renderInputWithLabel","renderLabeledIcon","renderClearableLabeledInput","__setModuleDefault","__importStar","XEmbed","react_twitter_embed_1","PlaceholderEmbed_1","placeholderImageUrl","placeholderSpinner","placeholderSpinnerDisabled","placeholderProps","embedPlaceholder","placeholderDisabled","twitterTweetEmbedProps","postId","isPercentageWidth","placeholderStyle","TwitterTweetEmbed","tweetId","_Modal","_confirm","modalWarn","okCancel","destroyAll","destroyFns","_rcDialog","mousePosition","handleCancel","handleOk","okType","confirmLoading","cancelButtonProps","okButtonProps","renderModal","centered","defaultFooter","hideAll","globalHide","effectMap","ssrFadeout","fadeOutEnabled","ssr","observerMode","disableSsr","collapseend","ie10","IntersectionObserverEntry","IntersectionObserver","webkitRequestAnimationFrame","mozRequestAnimationFrame","appVersion","timing","domLoading","initEvent","LTS","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","targetFrameTime","snowfallBaseStyle","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","defaultConfig","_reactFastCompare","wind","changeFrequency","rotationSpeed","Snowflake","updateConfig","_this$config","nextSpeed","nextWind","nextRotationSpeed","framesSinceLastUpdate","randomElement","previousConfig","selectImage","framesPassed","_this$params","lerp","updateTargetParams","_sizes$size","HTMLImageElement","offscreenCanvases","_canvas$getContext","getImageOffscreenCanvas","beginPath","getSize","randomNumber","isInteger","BasicComponent","Basic","BasicLayout","siders","currentId","hasSider","getSiderHook","Layout","Content","_ko_KR","_ko_KR2","panelKey","getNewChild","restartCloseTimer","noticeIndex","updatedNotices","twoToneColorPalette","secondaryColor","definitions","touchId","touchX","touchY","touchTime","handleTouchStart","clearTouchData","handleTouchMove","calculateTouchDistanceFromOrigin","handleTouchEnd","timeThreshold","triggerClick","handleTouchCancel","objectOf","checkPropTypes","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","$localOffset","isUTC","generate_1","presetPrimaryColors","volcano","geekblue","presetPalettes","primary","CronExpression","CronParser","_parseEntry","atoms","command","parseExpression","expression","fieldsToExpression","parseString","blocks","variables","expressions","filePath","readFile","ReactComponentWithPureRenderMixin","shallowCompare","isIterable","isReactNative","product","WS","protocols","headers","ws","addEventListeners","_socket","closeEvent","BuiltInEmitter","EventEmitter","CustomEmitter","Events","EE","_events","_eventsCount","clearEvent","eventNames","ee","a3","a4","a5","prefixed","SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG","SUBSCRIPTION_WIDGET_USE_CASE_DEFAULT","SUBSCRIPTION_WIDGET_USE_CASE_NOT_SET","PAGE_VISITED_URL","MANUAL_UNSUBSCRIBE","EVENT_PW_SITE_OPENED","EVENT_GDPR_DELETE","EVENT_GDPR_CONSENT","EVENT_CLICK_SUBSCRIBE_BUTTON","EVENT_SHOW_SUBSCRIBE_BUTTON","EVENT_ON_HIDE_SUBSCRIPTION_WIDGET","EVENT_ON_SHOW_SUBSCRIPTION_WIDGET","EVENT_ON_HIDE_NOTIFICATION_PERMISSION_DIALOG","EVENT_ON_SHOW_NOTIFICATION_PERMISSION_DIALOG","EVENT_ON_UPDATE_INBOX_MESSAGES","EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE","EVENT_ON_CHANGE_COMMUNICATION_ENABLED","EVENT_ON_NOTIFICATION_CLOSE","EVENT_ON_NOTIFICATION_CLICK","EVENT_ON_PUSH_DELIVERY","EVENT_ON_SW_INIT_ERROR","EVENT_ON_PERMISSION_GRANTED","EVENT_ON_PERMISSION_DENIED","EVENT_ON_PERMISSION_PROMPT","EVENT_ON_REGISTER","EVENT_ON_UNSUBSCRIBE","EVENT_ON_SUBSCRIBE","EVENT_ON_READY","EVENT_ON_LOAD","PERMISSION_PROMPT","PERMISSION_GRANTED","PERMISSION_DENIED","DEVICE_REGISTRATION_STATUS_UNREGISTERED","DEVICE_REGISTRATION_STATUS_REGISTERED","MANUAL_SET_LOGGER_LEVEL","KEY_SAFARI_PREVIOUS_PERMISSION","KEY_DEVICE_REGISTRATION_STATUS","KEY_CLICK_SUBSCRIBE_WIDGET","KEY_SHOW_SUBSCRIBE_WIDGET","DEFAULT_NOTIFICATION_IMAGE","DEFAULT_NOTIFICATION_TITLE","PERIOD_GOAL_EVENT","PERIOD_SEND_APP_OPEN","DEFAULT_API_URL","DEFAULT_SERVICE_WORKER_URL","headerText","headerTextColor","subheaderText","subheaderTextColor","buttonAcceptText","buttonAcceptTextColor","buttonAcceptRound","buttonAcceptBackgroundColor","buttonAcceptBorderColor","buttonCancelText","buttonCancelTextColor","buttonCancelRound","buttonCancelBackgroundColor","buttonCancelBorderColor","cappingCount","cappingDelay","throw","Data","storage_1","CONSTANTS","keyValue","clearAll","setApplicationCode","application","getApplicationCode","setHwid","hwid","getHwid","setDeviceType","getDeviceType","setDeviceModel","getDeviceModel","setLanguage","getLanguage","setApiEntrypoint","getApiEntrypoint","setTokens","getTokens","setApplicationServerKey","getApplicationServerKey","setSenderId","senderId","getSenderId","setWebSitePushId","getWebSitePushId","setDefaultNotificationImage","getDefaultNotificationImage","setDefaultNotificationTitle","getDefaultNotificationTitle","setUserId","userId","getUserId","setStatusUserIdWasChanged","getStatusUserIdWasChanged","setLastPermissionStatus","getLastPermissionStatus","setStatusManualUnsubscribed","getStatusManualUnsubscribed","setStatusCommunicationDisabled","getStatusCommunicationDisabled","setStatusDropAllData","getStatusDropAllData","setSdkVersion","getSdkVersion","setServiceWorkerVersion","getServiceWorkerVersion","setServiceWorkerUrl","getServiceWorkerUrl","setServiceWorkerScope","getServiceWorkerScope","setLastOpenMessage","getLastOpenMessage","setLastOpenApplicationTime","getLastOpenApplicationTime","setFeatures","features","getFeatures","setInitParams","getInitParams","setInboxLastRequestCode","lastCode","getInboxLastRequestCode","setInboxLastRequestTime","lastRequestTime","getInboxLastRequestTime","setInboxNewMessagesCount","getInboxNewMessagesCount","setDelayedEvent","getDelayedEvent","setPromptDisplayCount","getPromptDisplayCount","setPromptLastSeenTime","getPromptLastSeenTime","LogMessage","LogLog","LogBase","databasePromise","version_1","MigrationExecutor_1","constants_1","onversionchange","database","indexedDB","onsuccess","onupgradeneeded","applyMigrations","getInstanceWithPromise","executor","_add","transaction","objectStore","getAll","maxItems","openCursor","cursorResult","continue","STORE_NAME_MAIN_LOG","environment","registration","additional","STORE_NAME_MESSAGE_LOG","STORE_NAME_KEY_VALUE","isComplete","isError","oldValues","newValues","put","DateModule","_date","getUtcTimestamp","getTimestamp","setLocal","newDateTimestamp","addDays","getInboxFakeOrder","__spreadArrays","il","jl","Logger","logAndRejectError","logAndThrowError","limitLevel","patchConsole","setLevel","levelName","levelNumber","groupCollapsed","trace","groupEnd","logText","KEY_PATH_BASE_INCREMENT","STORE_NAME_INBOX_MESSAGES","clearLocationHash","parseSerializedNotificationParams","getVersion","Migrations_1","MigrationExecutor","db","migrationsBuilder","applyMigrationsPack","dateSorted","migrationsPack","migration","storeCreatorDecorator","storeCreator","objectStoreNames","DateModule_1","InboxMessages","inboxModel","dateModule","publicMessageBuilder","messageTypeFactory","action_type","actionParams","messageType","updateMessagesStatusWithCodes","codes","updatedMessages","inboxStatusQueries","inbox_id","inboxStatus","putBulkMessages","action_params","send_date","inboxTitle","sendDate","isRead","isActionPerformed","messagesWithNoActionPerformedCount","getDeliveredReadMessagesCount","unreadMessagesCount","getDeliveredMessagesCount","messagesCount","loadMessages","readMessages","unreadMessages","buildMessagePromises","getReadOpenMessages","getDeliveredMessages","msgA","msgB","readMessagesWithCodes","performActionForMessageWithCode","getMessage","putMessage","deleteMessagesWithCodes","syncMessages","updateMessages","ApiClient","Data_1","logger_1","logger","checkDevice","createRequest","getConfig","applicationOpen","registerDevice","unregisterDevice","deleteDevice","messageDeliveryEvent","pushStat","setTags","getTags","registerUser","postEvent","getInboxMessages","pageVisit","setPurchase","customUrl","entrypoint","fetch","checkResponse","base_url","status_code","status_message","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","dt","tmh","EventBus_1","EventBus","uuid_1","addEventHandler","savedEventHandlers","savedEventHandlersMap","removeEventHandler","savedEventHandler","eventId","Api","ApiClient_1","eventBus","apiClient","getRequestParams","checkDeviceSubscribeForPushNotifications","useCache","push_token_exist","localStorage","getItem","setItem","pushToken","push_token","auth_token","authToken","public_key","publicKey","fcm_push_set","fcmPushSet","fcm_token","fcmToken","isTrackingLogOnFailure","metaData","ts_offset","device_type","timestampUTC","timestampCurrent","lastOpenMessage","expiry","msgHash","messageHash","last_code","last_request_time","inbox_code","page_visit","applicationCode","apiParams","initParams","deviceModel","device_model","initial_1","_26_11_2018_1","Migrations","migrations","dateA","dateB","helpers_1","createObjectStore","logStore","autoIncrement","createIndex","multiEntry","PushServiceDefault","getPermission","permission","checkIsPermissionGranted","checkIsPermissionDefault","checkIsManualUnsubscribed","askPermission","requestPermission","subscription","currentSubscription","senderId_1","applicationServerKey","_p256dn","_auth","p256dh","pushSet","trySubscribe","getSenderIdFromManifest","checkIsChangeSenderId","getPushToken","getFcmKeys","endpoint","application_pub_key","encryption_key","encryption_auth","authorized_entity","getServiceWorkerRegistration","pushManager","getSubscription","checkIsRegister","checkIsNeedResubscribe","savedSenderId","isExistSavedSenderId","manifestSenderId","isChangeSenderID","lastPermission","credentials","pushTokenFromSubscription","subscriptionTokensFromStore","pushTokenFromStore","getCredentials","registerServiceWorker","serviceWorker","getRegistration","sdkVersion","serviceWorkerVersion","cleanCache","register","error_1","subscribePushManager","userVisibleOnly","urlBase64ToUint8Array","manifest","currentSenderId","senderIdFromIndexedDB","base64String","rawData","outputArray","Storage_1","InboxMessagesPublic_1","storage","storeName","storeGetInboxMessagesRequestParams","new_inbox","newMessagesCount","putServerMessages","putTransactions","localMessage","deleteMessages","deleteTransactions","deleteExpiredMessages","allMessages","codesToDelete","rt","countByIndex","getReadMessagesCount","readStatus","openStatus","keyRange","IDBKeyRange","bound","deleted","Store_1","Storage","dbVersionChangeHandler","dbRequestSuccessHandler","dbRequestUpgradeNeededHandler","getDB","indexName","Store","indexNames","writeRequestPromise","readRequestPromise","SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE","PlatformChecker_1","PlatformChecker_2","PlatformChecker","platformChecker","functions_1","_isSafari","isSafariBrowser","_isOpera","isOperaBrowser","_isEdge","isEdgeBrowser","_isFirefox","isFirefoxBrowser","_isChrome","isChromeBrowser","_isMacOS","isMacOS","_isAvailablePromise","canUsePromise","_isAvailableServiceWorker","canUseServiceWorkers","_isAvailableNotifications","canReceiveNotifications","_platform","getPlatformType","_browserVersion","getBrowserVersion","matchOperaVersion","matchEdgeVersion","matchEdgVersion","matchIeVersion","appName","SUBSCRIBE_WIDGET_DEFAULT_CONFIG","WIDGET_CONTAINER_ID","BELL_POSITION_TOP_LEFT","BELL_POSITION_TOP_RIGHT","BELL_POSITION_BOTTOM_LEFT","BELL_POSITION_BOTTOM_RIGHT","bgColor","bellColor","bellStrokeColor","bellButtonBorder","shadow","successSubscribe","needSubscribe","blockSubscribe","alreadySubscribed","Pushwoosh_1","Api_1","PushService_1","SubscriptionPromptWidget_1","InboxMessages_1","Pushwoosh","showLog","showKeyValues","showMessages","pwinbox","onServiceWorkerMessage","subscriptionPromptWidget","SubscriptionPromptWidget","initialize","subscribeToLegacyEvents","isForceSubscribe","permission_1","isManualUnsubscribed","isDeviceRegister","isCommunicationDisabled","driver","forceSubscribe","isDeviceRegistered","isDeviceUnregistered","isSubscribed","isCommunicationEnabled","setCommunicationEnabled","isPermissionGranted","removeAllDeviceData","getHWID","isAvailableNotifications","sendStatisticsVisitedPage","url_path","manualDebug","notSavedApplicationCode","isChangeApplicationCode","userIdWasChange","error_2","hashReg","logLevel","pushwooshUrl","onGetConfig","subscribeWidgetConfig","subscribeWidget","inboxWidgetConfig","inboxWidget","subscribePopupConfig","subscribePopup","initPushNotifications","emitLegacyEventsFromServiceWorker","pw","defaultProcess","isDropAllData","isNeedResubscribe","currentPromptUseCase","autoSubscribe","isRegister","widgetConfig","isDefaultUseCase","isNotSetUseCase","subscription_prompt","use_case","getWidgetConfig","checkCanShowByCapping","updateCappingParams","currentConfig","configWithDefaultCapping","subscription_prompt_widget","lastSeenTime","canShowByCapping","canShowByLastTime","isForce","lastApplicationOpenTime","isSendingPeriodExceeded","sendPostEventVisitedPage","vapid_key","error_3","defaultNotificationImage","defaultNotificationTitle","serviceWorkerUrl","initDriver","webSitePushId","safariWebsitePushID","PushServiceSafari","isAvailableServiceWorker","PushServiceDefault_1","PushServiceSafari_1","getPermissionInfo","safari","pushNotification","deviceToken","savedWebSitePushId","isChangeWebSitePushId","SubscriptionPromptWidget_helpers_1","SubscriptionPromptWidget_constants_1","getRootElement","getStyles","rootElement","getRootElementWithCheckExist","getDeclineButtonWithCheckExist","getAcceptButtonWithCheckExist","declineElement","acceptElement","constants_2","positioning_1","bell_1","SubscribeWidget","clickBell","onSubscribeEvent","onUnsubscribeEvent","onPermissionDeniedEvent","clickOutOfPopover","addStylesToElement","st","getBellPosition","createStyle","styleNode","createBell","bell","buttonImage","boxShadow","createTooltip","modification","getTooltipPosition","createTooltipContent","tooltipContent","tooltipTextFactory","isManuallyUnsubscribed","createPopover","popoverContentWrapper","popover","getPopoverPosition","getPopoverArrowPosition","createPopoverContent","getBrowserName","popoverContent","userImageSrc","contentImages","standardImage","mobileChrome","getImageSrc","imageAttrs","widget","toggleHelpPopover","Positioning","positionStyles","bellPosition","bellSize","tooltipModification","increaseIndent","popoverModification","arrowAdditionalStyles","fillColor","strokeColor","pwInboxWidget","pwinboxWidget","PWInboxWidget","isElementFixed","isFixed","getMessageTime","localDate","localTime","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_DAY","MONTHS","getValidColor","COLOR_TEST_REGEXP","compareBySendDate","localDateOne","localTimeOne","localDateTwo","localTimeTwo","CONFIG_STYLES","DEFAULT_CONFIG","triggerId","appendTo","textColor","badgeBgColor","badgeTextColor","widgetWidth","messageTitleColor","timeTextColor","emptyInboxTitle","emptyInboxTitleColor","emptyInboxText","emptyInboxTextColor","emptyInboxIconUrl","arrowBorderColor","InboxWidget_1","widgetTemplates_1","InboxWidget","updateInbox","markVisibleItemsAsRead","onWidgetClickHandler","onTriggerClickHandler","onWindowScrollHandler","initTrigger","addListeners","isOpened","openWidget","closeWidget","defaultMargin","messagesElements","readItems","updateCounter","renderWidget","widgetParent","renderWidgetInner","configureStyle","resultStyles","getStyleFormatter","widgetTemplate","renderMessages","widgetTemplateEmpty","messageElement","messageTemplate","updateInboxMessages","sendDateOne","sendDateTwo","positionWidget","updateReadStatus","defaultPlaceWidget","customPlaceWidget","getDefaultPosition","widgetRect","windowWidth","windowHeight","alignWidgetTop","alignWidgetRight","alignWidgetLeft","alignWidgetBottom","triggerRect","pageXOffset","isUnderLeft","isUnderRight","pageYOffset","alignWidgetElement","topMargin","newTop","isUnderTop","isUnderBottom","rightMargin","leftMargin","newLeft","bottomRange","antiMargins","leastMargin","performMessageAction","removeMessages","itemElement","messageCode","web_push_subscribe_popup_1","popup_1","PWSubscribePopup","initPopup","askLaterButtonText","confirmSubscriptionButtonText","retryOffset","textSize","textWeight","subscribeBtnBgColor","subscribeBtnTextColor","subscribeBtnTextWeight","subscribeBtnBorderColor","subscribeBtnBorderRadius","askLaterBtnBgColor","askLaterBtnTextColor","askLaterBtnTextWeight","askLaterBtnBorderColor","askLaterBtnBorderRadius","viewport","SubscribePopup_1","popupTemplates_1","SubscribePopup","onAskLaterClick","onSubscribeClick","lastPopupOpen","lastPopupOpenTime","renderPopup","appendStyles","isShown","showPopup","closePopup","viewportElement","currentMarginTop","iconUrl","innerTemplate","askLaterButton","subscribeButton","getTheme","outerTheme","createCacheWithTheme","ThemeProvider","resetWarningCache","xmlns","useState","disabledStyle","onSuccess","onAutoLoadFinished","onRequest","onFailure","onScriptLoadFailure","clientId","cookiePolicy","loginHint","hostedDomain","autoLoad","isSignedIn","fetchBasicProfile","redirectUri","discoveryDocs","uxMode","accessType","jsSrc","signIn","getBasicProfile","getAuthResponse","googleId","getId","tokenObj","tokenId","id_token","accessToken","access_token","profileObj","getImageUrl","email","getEmail","getName","givenName","getGivenName","familyName","getFamilyName","gapi","auth2","getAuthInstance","grantOfflineAccess","client_id","cookie_policy","login_hint","hosted_domain","fetch_basic_profile","ux_mode","redirect_uri","access_type","currentUser","onLogoutSuccess","signOut","useCallback","Helmet","_reactSideEffect2","_reactFastCompare2","_HelmetUtils","_HelmetConstants","HelmetSideEffects","reducePropsToState","handleClientStateChange","mapStateOnServer","HelmetExport","HelmetWrapper","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","arrayTypeChildren","mapObjectTypeChildren","_extends4","titleAttributes","bodyAttributes","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","convertReactPropstoHtmlAttributes","defaultTitle","encodeSpecialCharacters","noscript","onChangeClientState","script","titleTemplate","peek","mappedState","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","_Dock","_Dock2","_sister2","_loadYouTubeIframeApi2","_YouTubePlayer2","youtubeIframeAPI","maybeElementId","strictState","proxyEvents","playerAPIReady","playVideo","YT","player","Player","playerApi","promisifyPlayer","punycode","Url","slashes","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","ae","esc","qm","arrayFormat","addQueryPrefix","resolveObject","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","removeAllDots","srcPath","psychotic","authInHost","animatedValue","animateValue","stopAnimation","formatValue","und","fnc","tweens","elasticity","animatable","animatables","seek","began","completed","play","restart","finished","In","Out","InOut","bezier","easings","big","mirror","_globals","Slide","forever","animationFillMode","_wrap2","_wrap","dayOfYear","classCallCheck","VanillaTilt","settings","gammazero","betazero","lastgammazero","lastbetazero","transitionTimeout","updateCall","updateBind","resetBind","extendSettings","resetToStart","isSettingTrue","glare","glarePrerender","fullPageListening","gyroscope","gyroscopeSamples","elementListener","getElementListener","prepareGlare","updateClientSize","setting","mouseEventElement","onMouseEnterBind","onMouseMoveBind","onMouseLeaveBind","onWindowResizeBind","onWindowResize","onDeviceOrientationBind","onDeviceOrientation","removeEventListeners","willChange","resetGlare","vanillaTilt","gamma","updateElementPosition","totalAngleX","gyroscopeMaxAngleX","gyroscopeMinAngleX","totalAngleY","gyroscopeMaxAngleY","gyroscopeMinAngleY","degreesPerPixelX","degreesPerPixelY","posX","posY","backupScale","glareElement","getValues","tiltX","tiltY","percentageX","percentageY","jsTiltGlare","jsTiltGlareInner","glareElementWrapper","updateGlareSize","glareSize","defaultSettings","newSettings","_react","nodeInterop","_config","_hooks","_Snowflake","cacheBabelInterop","cacheNodeInterop","_ref$color","_ref$changeFrequency","_ref$radius","_ref$speed","_ref$wind","_ref$rotationSpeed","_ref$snowflakeCount","snowflakeCount","mergedStyle","useSnowfallStyle","canvasRef","canvasSize","useComponentSize","animationFrame","lastUpdate","useDeepMemo","snowflakes","useSnowflakes","snowflake","clearRect","msPassed","regexpToFunction","whitelist","pathEscaped","endToken","isEndDelimited","maxWait","addedNodes","removedNodes","dataset","aos","WebKitMutationObserver","MozMutationObserver","mobile","ie11","initCustomEvent","animatedClassNames","in","te","useClassNames","animatedClassName","initClassName","anchorPlacement","ie","disableMutationObserver","throttleDelay","debounceDelay","ce","se","de","ue","refreshHard","_debounce","SpinSizes","defaultIndicator","Spin","debouncifyUpdateSpinning","cancelExistingSpin","updateSpinning","originalUpdateSpinning","renderSpin","tip","spinClassName","spinElement","dotClassName","renderIndicator","isNestedPattern","containerClassName","shouldBeDelayed","shouldDelay","_options$getContainer","_options$duration","frameFunc","nextScrollTop","_easings","easeInOutCubic","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","unstable_now","unstable_forceFrameRate","sortIndex","expirationTime","priorityLevel","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_shouldYield","unstable_wrapCallback","___CSS_LOADER_API_IMPORT___","baseUrl","currentDir","fullMatch","origUrl","newUrl","unquotedOrigUrl","ENUMERABLE_NEXT","Internal","OwnPromiseCapability","nativeThen","anInstance","task","microtask","hostReportErrors","perform","Queue","PromiseConstructorDetection","newPromiseCapabilityModule","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","isThenable","callReaction","exited","rejection","onHandleUnhandled","exit","notify","isReject","notified","reactions","onUnhandled","isUnhandled","unwrap","internalReject","internalResolve","onFulfilled","onRejected","PromiseWrapper","passed","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","queueMicrotaskDescriptor","queueMicrotask","Pebble","iterate","capability","$promiseResolve","alreadyCalled","real","race","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","secret","getShim","ReactPropTypes","bigint","$forEach","IS_RIGHT","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","$stringify","tester","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","space","CONVERT_TO_STRING","codeAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","tailPos","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","MODEL","VENDOR","MOBILE","TABLET","SMARTTV","enumerize","enums","str1","str2","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","7","8","8.1","10","RT","regexes","OPERA","FIREFOX","SAMSUNG","CHROME","1.2","1.3","cpu","APPLE","EDGE","UAParser","extensions","getResult","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","standalone","_engine","_os","setUA","BROWSER","CPU","DEVICE","ENGINE","OS","jQuery","Zepto","__webpack_amd_options__","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","ENTRIES","Target","Source","$lastIndexOf","whitespaces","mergeSort","middle","insertionSort","llength","rlength","lindex","rindex","webkit","uncurryThisAccessor","getKeys","gOPS","$assign","aLen","getSymbols","isEnum","TO_STRING","Collection","_k","$fails","wks","wksDefine","enumKeys","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","SymbolRegistry","OPSymbols","USE_NATIVE","setSymbolDesc","protoDesc","IS_OP","es6Symbols","wellKnownSymbols","FAILS_ON_PRIMITIVES","setDesc","FREEZE","preventExtensions","setMeta","NEED","getWeak","buggy","normalViewBox","newViewBox","twotone","getNode","getIcon","AccountBookFill","AlertFill","AlipaySquareFill","AliwangwangFill","AlipayCircleFill","AmazonCircleFill","AndroidFill","AmazonSquareFill","ApiFill","AppstoreFill","AudioFill","AppleFill","BackwardFill","BankFill","BehanceCircleFill","BellFill","BehanceSquareFill","BookFill","BoxPlotFill","BugFill","CalculatorFill","BulbFill","BuildFill","CalendarFill","CameraFill","CarFill","CaretDownFill","CaretLeftFill","CaretRightFill","CarryOutFill","CaretUpFill","CheckCircleFill","CheckSquareFill","ChromeFill","CiCircleFill","ClockCircleFill","CloseCircleFill","CloudFill","CloseSquareFill","CodeSandboxSquareFill","CodeSandboxCircleFill","CodeFill","CompassFill","CodepenCircleFill","CodepenSquareFill","ContactsFill","ControlFill","ContainerFill","CopyFill","CopyrightCircleFill","CreditCardFill","CrownFill","CustomerServiceFill","DashboardFill","DeleteFill","DiffFill","DingtalkCircleFill","DatabaseFill","DingtalkSquareFill","DislikeFill","DollarCircleFill","DownCircleFill","DownSquareFill","DribbbleCircleFill","DribbbleSquareFill","DropboxCircleFill","DropboxSquareFill","EnvironmentFill","EditFill","ExclamationCircleFill","EuroCircleFill","ExperimentFill","EyeInvisibleFill","EyeFill","FacebookFill","FastBackwardFill","FastForwardFill","FileAddFill","FileExcelFill","FileExclamationFill","FileImageFill","FileMarkdownFill","FilePdfFill","FilePptFill","FileTextFill","FileWordFill","FileUnknownFill","FileZipFill","FileFill","FilterFill","FireFill","FlagFill","FolderAddFill","FolderFill","FolderOpenFill","ForwardFill","FrownFill","FundFill","FunnelPlotFill","GiftFill","GithubFill","GitlabFill","GoldenFill","GoogleCircleFill","GooglePlusCircleFill","GooglePlusSquareFill","GoogleSquareFill","HddFill","HeartFill","HighlightFill","HomeFill","HourglassFill","Html5Fill","IdcardFill","IeCircleFill","IeSquareFill","InfoCircleFill","InstagramFill","InsuranceFill","InteractionFill","InterationFill","LayoutFill","LeftCircleFill","LeftSquareFill","LikeFill","LockFill","LinkedinFill","MailFill","MedicineBoxFill","MediumCircleFill","MediumSquareFill","MehFill","MessageFill","MinusCircleFill","MinusSquareFill","MobileFill","MoneyCollectFill","PauseCircleFill","PayCircleFill","NotificationFill","PhoneFill","PictureFill","PieChartFill","PlayCircleFill","PlaySquareFill","PlusCircleFill","PlusSquareFill","PoundCircleFill","PrinterFill","ProfileFill","ProjectFill","PushpinFill","PropertySafetyFill","QqCircleFill","QqSquareFill","QuestionCircleFill","ReadFill","ReconciliationFill","RedEnvelopeFill","RedditCircleFill","RedditSquareFill","RestFill","RightCircleFill","RocketFill","RightSquareFill","SafetyCertificateFill","SaveFill","ScheduleFill","SecurityScanFill","SettingFill","ShopFill","ShoppingFill","SketchCircleFill","SketchSquareFill","SkinFill","SlackCircleFill","SlackSquareFill","SkypeFill","SlidersFill","SmileFill","SnippetsFill","SoundFill","StarFill","StepBackwardFill","StepForwardFill","StopFill","SwitcherFill","TabletFill","TagFill","TagsFill","TaobaoCircleFill","TaobaoSquareFill","ToolFill","ThunderboltFill","TrademarkCircleFill","TwitterCircleFill","TrophyFill","TwitterSquareFill","UnlockFill","UpCircleFill","UpSquareFill","UsbFill","WalletFill","VideoCameraFill","WarningFill","WeiboCircleFill","WechatFill","WindowsFill","YahooFill","WeiboSquareFill","YuqueFill","YoutubeFill","ZhihuSquareFill","ZhihuCircleFill","AccountBookOutline","AlertOutline","AlipayCircleOutline","AliwangwangOutline","AndroidOutline","ApiOutline","AppstoreOutline","AudioOutline","AppleOutline","BackwardOutline","BankOutline","BellOutline","BehanceSquareOutline","BookOutline","BoxPlotOutline","BulbOutline","BugOutline","CalculatorOutline","BuildOutline","CalendarOutline","CameraOutline","CarOutline","CaretDownOutline","CaretLeftOutline","CaretRightOutline","CarryOutOutline","CheckCircleOutline","CaretUpOutline","CheckSquareOutline","ChromeOutline","ClockCircleOutline","CloseCircleOutline","CloudOutline","CloseSquareOutline","CodeOutline","CodepenCircleOutline","CompassOutline","ContactsOutline","ContainerOutline","ControlOutline","CopyOutline","CreditCardOutline","CrownOutline","CustomerServiceOutline","DashboardOutline","DeleteOutline","DiffOutline","DatabaseOutline","DislikeOutline","DownCircleOutline","DownSquareOutline","DribbbleSquareOutline","EnvironmentOutline","EditOutline","ExclamationCircleOutline","ExperimentOutline","EyeInvisibleOutline","EyeOutline","FacebookOutline","FastBackwardOutline","FastForwardOutline","FileAddOutline","FileExcelOutline","FileExclamationOutline","FileImageOutline","FileMarkdownOutline","FilePptOutline","FileTextOutline","FilePdfOutline","FileZipOutline","FileOutline","FilterOutline","FileWordOutline","FireOutline","FileUnknownOutline","FlagOutline","FolderAddOutline","FolderOutline","FolderOpenOutline","ForwardOutline","FrownOutline","FundOutline","FunnelPlotOutline","GiftOutline","GithubOutline","GitlabOutline","HeartOutline","HddOutline","HighlightOutline","HomeOutline","HourglassOutline","Html5Outline","IdcardOutline","InfoCircleOutline","InstagramOutline","InsuranceOutline","InteractionOutline","InterationOutline","LayoutOutline","LeftCircleOutline","LeftSquareOutline","LikeOutline","LinkedinOutline","LockOutline","MedicineBoxOutline","MehOutline","MailOutline","MessageOutline","MinusCircleOutline","MinusSquareOutline","MobileOutline","MoneyCollectOutline","PauseCircleOutline","PayCircleOutline","NotificationOutline","PhoneOutline","PictureOutline","PieChartOutline","PlaySquareOutline","PlayCircleOutline","PlusCircleOutline","PrinterOutline","PlusSquareOutline","ProfileOutline","ProjectOutline","PushpinOutline","PropertySafetyOutline","QuestionCircleOutline","ReadOutline","ReconciliationOutline","RedEnvelopeOutline","RestOutline","RightCircleOutline","RocketOutline","RightSquareOutline","SafetyCertificateOutline","ScheduleOutline","SaveOutline","SecurityScanOutline","SettingOutline","ShoppingOutline","SkinOutline","SkypeOutline","SlackSquareOutline","SlidersOutline","SmileOutline","SnippetsOutline","SoundOutline","StarOutline","StepBackwardOutline","StepForwardOutline","StopOutline","SwitcherOutline","TagOutline","TabletOutline","ShopOutline","TagsOutline","TaobaoCircleOutline","ToolOutline","ThunderboltOutline","TrophyOutline","UnlockOutline","UpCircleOutline","UpSquareOutline","UsbOutline","VideoCameraOutline","WalletOutline","WarningOutline","WechatOutline","WeiboCircleOutline","WindowsOutline","YahooOutline","WeiboSquareOutline","YuqueOutline","YoutubeOutline","AlibabaOutline","AlignCenterOutline","AlignLeftOutline","AlignRightOutline","AlipayOutline","AliyunOutline","AmazonOutline","AntCloudOutline","ApartmentOutline","AntDesignOutline","AreaChartOutline","ArrowLeftOutline","ArrowDownOutline","ArrowUpOutline","ArrowsAltOutline","ArrowRightOutline","AuditOutline","BarChartOutline","BarcodeOutline","BarsOutline","BgColorsOutline","BehanceOutline","BlockOutline","BoldOutline","BorderBottomOutline","BorderLeftOutline","BorderOuterOutline","BorderInnerOutline","BorderRightOutline","BorderHorizontalOutline","BorderTopOutline","BorderVerticleOutline","BorderOutline","BranchesOutline","CheckOutline","CiOutline","CloseOutline","CloudDownloadOutline","CloudServerOutline","CloudSyncOutline","CloudUploadOutline","ClusterOutline","CodepenOutline","CodeSandboxOutline","ColumHeightOutline","ColumnWidthOutline","ColumnHeightOutline","CoffeeOutline","CopyrightOutline","DashOutline","DeploymentUnitOutline","DesktopOutline","DingdingOutline","DisconnectOutline","DollarOutline","DoubleRightOutline","DotChartOutline","DoubleLeftOutline","DownloadOutline","DribbbleOutline","DropboxOutline","EllipsisOutline","EnterOutline","EuroOutline","ExceptionOutline","ExclamationOutline","ExportOutline","FallOutline","FileDoneOutline","FileSyncOutline","FileProtectOutline","FileSearchOutline","FileJpgOutline","FontColorsOutline","FontSizeOutline","ForkOutline","FormOutline","FullscreenExitOutline","FullscreenOutline","GatewayOutline","DownOutline","DragOutline","GlobalOutline","GooglePlusOutline","GoogleOutline","HeatMapOutline","GoldOutline","HistoryOutline","IeOutline","InboxOutline","ImportOutline","InfoOutline","ItalicOutline","IssuesCloseOutline","KeyOutline","LaptopOutline","LeftOutline","LinkOutline","LineChartOutline","LineHeightOutline","LineOutline","Loading3QuartersOutline","LoadingOutline","LoginOutline","LogoutOutline","ManOutline","MediumOutline","MediumWorkmarkOutline","MenuUnfoldOutline","MenuFoldOutline","MenuOutline","MinusOutline","MonitorOutline","MoreOutline","OrderedListOutline","NumberOutline","PauseOutline","PercentageOutline","PaperClipOutline","PicCenterOutline","PicLeftOutline","PlusOutline","PicRightOutline","PoundOutline","PoweroffOutline","PullRequestOutline","QqOutline","QuestionOutline","RadarChartOutline","QrcodeOutline","RadiusBottomleftOutline","RadiusBottomrightOutline","RadiusUpleftOutline","RadiusUprightOutline","RadiusSettingOutline","RedditOutline","RedoOutline","ReloadOutline","RetweetOutline","RightOutline","RiseOutline","RollbackOutline","SafetyOutline","RobotOutline","SearchOutline","ScanOutline","ScissorOutline","SelectOutline","ShakeOutline","ShareAltOutline","ShoppingCartOutline","ShrinkOutline","SlackOutline","SmallDashOutline","SolutionOutline","SketchOutline","SortDescendingOutline","SortAscendingOutline","StockOutline","SwapLeftOutline","SwapRightOutline","StrikethroughOutline","SwapOutline","SyncOutline","TableOutline","TeamOutline","TaobaoOutline","ToTopOutline","TrademarkOutline","TransactionOutline","TwitterOutline","UnderlineOutline","UndoOutline","UnorderedListOutline","UpOutline","UploadOutline","UserAddOutline","UsergroupAddOutline","UserOutline","UserDeleteOutline","UsergroupDeleteOutline","VerticalAlignBottomOutline","VerticalAlignMiddleOutline","VerticalAlignTopOutline","VerticalRightOutline","VerticalLeftOutline","WifiOutline","ZhihuOutline","WeiboOutline","WomanOutline","ZoomInOutline","AccountBookTwoTone","ZoomOutOutline","AlertTwoTone","ApiTwoTone","AppstoreTwoTone","BankTwoTone","AudioTwoTone","BellTwoTone","BookTwoTone","BoxPlotTwoTone","BugTwoTone","BulbTwoTone","CalculatorTwoTone","BuildTwoTone","CalendarTwoTone","CameraTwoTone","CarTwoTone","CarryOutTwoTone","CheckCircleTwoTone","CheckSquareTwoTone","ClockCircleTwoTone","CloseCircleTwoTone","CloudTwoTone","CloseSquareTwoTone","CodeTwoTone","CompassTwoTone","ContactsTwoTone","ContainerTwoTone","ControlTwoTone","CopyTwoTone","CreditCardTwoTone","CrownTwoTone","CustomerServiceTwoTone","DashboardTwoTone","DeleteTwoTone","DiffTwoTone","DatabaseTwoTone","DislikeTwoTone","DownCircleTwoTone","DownSquareTwoTone","EnvironmentTwoTone","EditTwoTone","ExclamationCircleTwoTone","ExperimentTwoTone","EyeInvisibleTwoTone","EyeTwoTone","FileAddTwoTone","FileExclamationTwoTone","FileImageTwoTone","FileExcelTwoTone","FileMarkdownTwoTone","FilePdfTwoTone","FilePptTwoTone","FileTextTwoTone","FileUnknownTwoTone","FileZipTwoTone","FileWordTwoTone","FileTwoTone","FilterTwoTone","FireTwoTone","FolderAddTwoTone","FlagTwoTone","FolderTwoTone","FolderOpenTwoTone","FrownTwoTone","FundTwoTone","FunnelPlotTwoTone","GiftTwoTone","HddTwoTone","HeartTwoTone","HighlightTwoTone","HomeTwoTone","HourglassTwoTone","Html5TwoTone","IdcardTwoTone","InfoCircleTwoTone","InsuranceTwoTone","InteractionTwoTone","InterationTwoTone","LayoutTwoTone","LeftCircleTwoTone","LeftSquareTwoTone","LikeTwoTone","LockTwoTone","MailTwoTone","MedicineBoxTwoTone","MehTwoTone","MessageTwoTone","MinusCircleTwoTone","MinusSquareTwoTone","MobileTwoTone","PauseCircleTwoTone","MoneyCollectTwoTone","NotificationTwoTone","PhoneTwoTone","PictureTwoTone","PlayCircleTwoTone","PlaySquareTwoTone","PieChartTwoTone","PlusCircleTwoTone","PlusSquareTwoTone","PoundCircleTwoTone","PrinterTwoTone","ProfileTwoTone","ProjectTwoTone","PushpinTwoTone","PropertySafetyTwoTone","QuestionCircleTwoTone","ReconciliationTwoTone","RedEnvelopeTwoTone","RestTwoTone","RightCircleTwoTone","RocketTwoTone","RightSquareTwoTone","SafetyCertificateTwoTone","SaveTwoTone","ScheduleTwoTone","SecurityScanTwoTone","SettingTwoTone","ShopTwoTone","ShoppingTwoTone","SkinTwoTone","SlidersTwoTone","SmileTwoTone","SnippetsTwoTone","SoundTwoTone","StarTwoTone","StopTwoTone","SwitcherTwoTone","TabletTwoTone","TagTwoTone","TagsTwoTone","ToolTwoTone","TrademarkCircleTwoTone","UnlockTwoTone","TrophyTwoTone","UpCircleTwoTone","ThunderboltTwoTone","UpSquareTwoTone","UsbTwoTone","VideoCameraTwoTone","WalletTwoTone","WarningTwoTone","CiTwoTone","CopyrightTwoTone","DollarTwoTone","EuroTwoTone","GoldTwoTone","CanlendarTwoTone","tinycolor2_1","getHue","hsv","light","getSaturation","pColor","toHsv","colorString","toHexString","trimLeft","trimRight","tinycolor","matchers","hsla","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsv","allow3Char","rgbaToArgbHex","convertDecimalToHex","_desaturate","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_complement","polyad","_splitcomplement","_analogous","_monochromatic","isDark","getBrightness","getOriginalInput","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","darken","greyscale","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","readability","isReadable","wcag2","wcag2Parms","parms","mostReadable","colorList","includeFallbackColors","bestColor","bestScore","burntsienna","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","scriptUrl","_options$extraCommonP","extraCommonProps","customCache","Iconfont","fillTester","outlineTester","twoToneTester","newType","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","monthBeforeYear","previousMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","setTwoToneColors","getTwoToneColors","getSideChannel","arrayPrefixGenerators","comma","indices","pushToArray","valueOrArray","toISO","defaultFormat","allowDots","charsetSentinel","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","valuesArray","valuesJoined","objKeys","adjustedPrefix","valueSideChannel","normalizeStringifyOptions","joined","origSymbol","hasSymbolSham","symObj","syms","ERROR_MESSAGE","toStr","concatty","slicy","arrLike","joiny","joiner","binder","boundLength","boundArgs","$hasOwn","callBind","setFunctionLength","$apply","$call","$reflectApply","$max","originalFunction","applyBind","define","hasDescriptors","$floor","loose","functionLengthIsConfigurable","functionLengthIsWritable","gopd","nonEnumerable","mapSizeDescriptor","mapSize","mapForEach","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","bigIntValueOf","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","wrapQuotes","quoteChar","quoteStyle","inspect_","seen","maxStringLength","customInspect","numericSeparator","inspectString","trailer","lowbyte","bigIntStr","maxDepth","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","singleLineValues","indentedJoin","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","isBoolean","ys","protoTag","stringTag","9","12","13","lineJoiner","isArr","symMap","allowSparse","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","chain","leaf","cleanRoot","0","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","parseValues","SILENT_ON_NON_WRITABLE_LENGTH_SET","CronDate","stringifyField","_tz","_currentDate","currentDate","_startDate","_endDate","_isIterator","_hasIterated","_nthDayOfWeek","nthDayOfWeek","_freezeFields","predefined","constraints","aliases","jan","feb","mar","apr","may","jun","jul","aug","oct","nov","sun","mon","tue","wed","thu","fri","sat","parseDefaults","standardValidCharacters","dayOfWeekValidCharacters","dayOfMonthValidCharacters","validCharacters","_isValidConstraintChar","_parseField","parseRepeat","parseRange","repeatInterval","repeatIndex","handleResult","numResult","atom","_sortCompareFn","parseSequence","aIsNumber","bIsNumber","localeCompare","_handleMaxDaysInMonth","mappedFields","_applyTimezoneShift","dateMathVerb","prevTime","addHour","subtractHour","previousHour","currentHour","_dstStart","_dstEnd","_findSchedule","matchSchedule","sequence","isNthDayMatch","adjustedDate","isLInExpressions","startTimestamp","dayOfMonthMatch","isLastDayOfMonth","dayOfWeekMatch","isLastWeekdayOfMonth","isDayOfMonthWildcardMatch","isDayOfWeekWildcardMatch","schedule","hasIterated","steps","includeSeconds","resultArr","constraint","parseNthDay","nthValue","validateConstraints","ary","luxon","dateOpts","DateTime","fromJSDate","fromMillis","fromISO","fromRFC2822","fromSQL","fromFormat","zoneName","setZone","addYear","addDay","addMinute","addSecond","subtractYear","subtractMonth","subtractDay","subtractMinute","subtractSecond","_getUTC","toUTC","setDay","setSeconds","toJSDate","_toPrimitive","_construct","Parent","Class","_wrapNativeSuper","_cache","_createForOfIteratorHelperLoose","allowArrayLike","LuxonError","_Error","InvalidDateTimeError","_LuxonError","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hourCycle","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","Zone","offsetName","formatOffset","otherZone","singleton$1","SystemZone","_Zone","parseZoneInfo","resolvedOptions","dtfCache","typeToPos","era","ianaZoneCache","IANAZone","isValidZone","resetCache","isValidSpecifier","dtf","hour12","formatToParts","_formatted$i","isUndefined","partsOffset","fMonth","fDay","hackyOffset","adOrBc","asTS","objToLocalTS","_excluded","_excluded2","intlLFCache","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","sysLocaleCache","listStuff","englishFn","intlFn","listingMode","PolyNumberFormatter","intl","forceSimple","padTo","otherOpts","intlOpts","useGrouping","minimumIntegerDigits","inf","getCachedINF","fixed","padStart","roundTo","PolyDateFormatter","originalZone","gmtOffset","offsetZ","PolyRelFormatter","isEnglish","hasRelative","rtf","cacheKeyOpts","RelativeTimeFormat","getCachedRTF","_proto3","numeric","narrow","quarters","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","Locale","numbering","outputCalendar","specifiedLocale","_parseLocaleString","localeStr","xIndex","selectedStr","uIndex","smaller","numberingSystem","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","intlConfigString","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","Settings","defaultNumberingSystem","defaultOutputCalendar","_proto4","isActuallyEn","hasNoWeirdness","alts","redefaultToEN","redefaultToSystem","mapMonths","extract","mapWeekdays","meridiems","eras","matching","dtFormatter","fastNumbers","relFormatter","listFormatter","ListFormat","getCachedLF","FixedOffsetZone","utcInstance","parseSpecifier","signedOffset","InvalidZone","normalizeZone","defaultZone","lowered","throwOnInvalid","twoDigitCutoffYear","resetCaches","cutoffYear","bestBy","by","best","integerBetween","thing","parseInteger","parseFloating","parseMillis","fraction","towardZero","isLeapYear","daysInYear","modMonth","floorMod","weeksInWeekYear","weekYear","untruncateYear","offsetFormat","modified","offHourStr","offMinuteStr","offHour","offMin","asNumber","numericValue","normalizeObject","normalizer","normalized","timeObject","monthsLong","monthsNarrow","weekdaysLong","weekdaysNarrow","erasLong","erasShort","erasNarrow","stringifyTokens","splits","tokenToString","_iterator","literal","_macroTokenToFormatOpts","DDD","DDDD","ttt","tttt","TTT","TTTT","ff","fff","ffff","FFF","FFFF","Formatter","formatOpts","systemLoc","fmt","currentFull","bracketed","macroTokenToFormatOpts","formatWithSystemDefault","formatDateTime","formatDateTimeParts","formatInterval","formatRange","formatDateTimeFromString","knownEnglish","useDateTimeFormatter","isOffsetFixed","allowZ","meridiemForDateTime","monthForDateTime","weekdayForDateTime","eraForDateTime","weekNumber","quarter","maybeMacro","formatDurationFromString","dur","lildur","tokenToField","realTokens","shiftTo","Invalid","explanation","ianaRegex","combineRegexes","combineExtractors","extractors","mergedVals","mergedZone","_ex","_patterns","_patterns$_i","extractor","simpleParse","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","fallback","extractISOTime","extractISOOffset","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","extractISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","accurateMatrix","daysInYearAccurate","daysInMonthAccurate","orderedUnits$1","reverseUnits","clone$1","conf","conversionAccuracy","Duration","durationToMillis","vals","_vals$milliseconds","normalizeValues","reduceRight","previousVal","conv","rollUp","accurate","isLuxonDuration","normalizeUnit","fromDurationLike","durationLike","parseISODuration","fromISOTime","parseISOTimeOnly","toFormat","fmtOpts","toHuman","unitDisplay","listStyle","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","includeOffset","_orderedUnits","negate","mapUnits","_Object$keys","reconfigure","rescale","newVals","_Object$entries","_Object$entries$_i","removeZeroes","shiftToAll","lastUnit","built","accumulated","_i4","_orderedUnits2","ak","negated","_i5","_Object$keys2","_i6","_orderedUnits3","v2","INVALID$1","validateStartEnd","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","_split","startIsValid","endIsValid","_dur","isInterval","toDuration","hasSame","isEmpty","dateTime","dateTimes","added","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","union","_intervals$sort$reduc","sofar","final","xor","_Array$prototype","ends","toISODate","_temp2","_ref3$separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","isUniversal","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$locObj","locObj","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$locObj","_ref2$outputCalendar","_temp3","_ref3$locale","_ref3$numberingSystem","_ref3$locObj","weekdaysFormat","_temp4","_ref4$locale","_ref4$numberingSystem","_ref4$locObj","_temp5","_ref5$locale","_temp6","_ref6$locale","dayDiff","earlier","later","utcDayStart","keepLocalTime","_highOrderDiffs","lowestOrder","highWater","_differs","_differs$_i","differ","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","intUnit","deser","_numberingSystemsUTF","parseDigits","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","partTypeStyleToTokenVal","short","dayperiod","dayPeriod","hour24","dummyDateTimeCache","expandMacroTokens","formatOptsToTokens","maybeExpandMacroToken","explainFromTokens","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","disqualifyingUnit","_buildRegex","buildRegex","regexString","_match","matchIndex","rawMatches","specificOffset","toField","dateTimeFromMatches","resolvedOpts","isSpace","actualType","tokenForPart","nonLeapLadder","leapLadder","unitOutOfRange","js","computeOrdinal","uncomputeOrdinal","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID","unsupportedZone","possiblyCachedWeekData","inst","fixOffset","localTS","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","_toISODate","extended","longFormat","_toISOTime","extendedZone","ianaName","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","lastOpts","argList","ot","_zone","isLuxonDateTime","_lastOpts","_lastOpts2","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","_step2","foundFirst","validWeek","validWeekday","hasInvalidWeekData","validOrdinal","hasInvalidOrdinalData","_objToTS2","_parseISODate","parseISODate","_parseRFC2822Date","preprocessRFC2822","parseRFC2822Date","fromHTTP","_parseHTTPDate","parseHTTPDate","_opts$locale","_opts$numberingSystem","_parseFromTokens","_explainFromTokens","parseFromTokens","_parseSQL","parseSQL","isDateTime","parseFormatForOpts","localeOpts","tokenList","expandFormat","getPossibleOffsets","oEarlier","oLater","o1","ts1","ts2","resolvedLocaleOptions","_Formatter$create$res","toLocal","_ref2$keepLocalTime","_ref2$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","settingWeekStuff","_objToTS4","normalizedUnit","_this$plus","toLocaleParts","_ref4$format","_ref4$suppressSeconds","_ref4$suppressMillise","_ref4$includeOffset","_ref4$extendedZone","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$includePrefix","_ref6$extendedZone","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7$includeOffset","_ref7$includeZone","includeZone","_ref7$includeOffsetSp","includeOffsetSpace","toSQL","toSeconds","toUnixInteger","toBSON","includeConfig","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","adjustedToZone","toRelative","toRelativeCalendar","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish","compactField","ranges","singleRange","buildRange","completeRangeWithItem","finalizeCurrentRange","currentRange","currentItemRange","currentItem","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","uptime","isArrayIter","getIterFn","ArrayProto","ARG","riter","skipClosing","safe","_EventBaseObject2","_objectAssign2","commonProps","eventNormalizers","fix","wheelDelta","HORIZONTAL_AXIS","VERTICAL_AXIS","eventDoc","fromElement","toElement","retTrue","retFalse","DomEventObject","isNative","cancelBubble","isDefaultPrevented","getPreventDefault","returnValue","fixFns","srcElement","fixFn","EventBaseObjectProto","returnFalse","returnTrue","EventBaseObject","isEventObject","isPropagationStopped","isImmediatePropagationStopped","halt","immediate","$getPrototypeOf","_createClass3","_possibleConstructorReturn3","_inherits3","_a$style","progressDot","filteredChildren","adjustedlabelPlacement","stepNumber","wrapperStyle","iconClassName","iconDot","_a$status","adjustMarginRight","stepItemStyle","renderIconNode","moment","_interopDefault","setMomentLocale","withConfigConsumer","SFC","configProps","basicPrefixCls","cons","_renderEmpty","_gud2","_Component2","_empty","PRESENTED_IMAGE_SIMPLE","_simple","defaultEmptyImg","simpleEmptyImg","_props$image","imageStyle","des","imageNode","PRESENTED_IMAGE_DEFAULT","ry","_rcPagination","_MiniSelect","_select","getIconsProps","prevIcon","nextIcon","jumpPrevIcon","jumpNextIcon","renderPagination","contextLocale","customizeSelectPrefixCls","selectPrefixCls","customLocale","isSmall","mini","selectComponentClass","MiniSelect","_PropTypes","miniStore","mapStateToProps","shouldSubscribe","finnalMapStateToProps","defaultMapStateToProps","Connect","subscribed","tryUnsubscribe","_shallowequal2","wrappedInstance","initialState","attributeNamespace","namespaceURI","mo_id","_period","attributeFilter","attributeOldValue","characterDataOldValue","takeRecords","allowHorizontalScroll","alignWithTop","alignWithLeft","offsetBottom","offsetRight","isWin","elemOffset","eh","ew","containerOffset","containerScroll","diffTop","diffBottom","winScroll","ww","wh","computedStyle_","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","enquire","responsiveMap","subscribers","subUid","pointMap","unregister","unmatch","MediaQueryDispatch","MediaQuery","Util","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","assess","constuctor","qh","deferSetup","setup","initialised","Meta","_reactNode","avatar","getGrid","_this$context","actionsContent","itemChildren","isFlexMode","isItemContainsTextNodeAndNotSingular","restArgs","CheckboxGroup","registeredValues","optionIndex","getOptions","renderGroup","groupPrefixCls","InternalMetadataModule","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","defineBuiltIns","internalStateGetterFor","getEntry","removed","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","ReflectOwnKeys","ReflectApply","NumberIsNaN","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","er","originalListener","rawListeners","flattenIntoArray","flatMap","sourceLen","mapper","elementLen","targetIndex","sourceIndex","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","recordedState","keyList","arrA","arrB","regexpA","regexpB","clock","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","cafPolyfill","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title","_createDOMForm","_createFormField","_FormItem","_constants","FormLayouts","renderForm","hideRequiredMark","_this$props$className","formClassName","wrapperCol","labelCol","colon","createFormField","_reactDom2","_domScrollIntoView2","_has2","_createBaseForm2","_createForm","validateFieldsAndScroll","validNames","firstNode","firstTop","getScrollableContainer","ReactNoopUpdateQueue","emptyObject","_invariant","ReactComponent","injectedMixins","ReactClassInterface","statics","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","spec","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","enqueueReplaceState","isMounted","ReactClassComponent","autoBindKey","bindAutoBindMethods","_util","_validator","_validator2","_messages2","Schema","_messages","newMessages","source_","oc","_errors","getValidationMethod","errorFields","doIt","deep","defaultField","addFullfield","suppressWarning","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","messageIndex","_string2","_method2","_number2","_boolean2","_regexp2","_integer2","_float2","_array2","_object2","_date2","boolean","float","_rule2","_required","types","getYear","ruleType","mismatch","dateObject","cloned","FieldsStore","_createFormField2","partOf","internalFlattenFields","_initialiseProps","validFieldsName","nowFields","nowValues","getValueFromFields","nowValue","maybePartialName","maybePartialNames","fullName","partialName","getValueProps","getNotCollectedFields","member","fullNames","isArrayValue","suffixNameStartIndex","setFieldsInitialValue","initialValues","flattenedInitialValues","getNestedFields","getNestedField","getFieldsError","getFieldError","getFieldMember","isFieldValidating","isFieldsValidating","isFieldTouched","isFieldsTouched","FieldElemWrapper","_createBaseForm","ReactDOM","ValidateStatuses","FormItem","helpShow","onLabelClick","onHelpAnimEnd","renderFormItem","_itemClassName","help","validateStatus","getControls","getOnlyControl","recursively","childrenArray","getChildProp","getMeta","getHelpMessage","c3","onlyControl","getValidateStatus","hasFeedback","contextWrapperCol","mergedWrapperCol","contextLabelAlign","contextLabelCol","contextColon","_this3$props","htmlFor","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","labelClassName","renderLabel","renderWrapper","renderValidateWrapper","renderHelp","renderExtra","_isMobile","onSearch","renderLoading","enterButton","renderAddonAfter","btnClassName","enterButtonAsElement","isAntdButton","renderSearch","customizeInputPrefixCls","inputPrefixCls","inputClassName","mobileRE","tabletRE","featureDetect","_wave","spaceChildren","needInserted","isPrevChildPure","isCurrentChildPure","ButtonShapes","ButtonSizes","ButtonHTMLTypes","saveButtonRef","buttonNode","renderButton","hasTwoCNChar","autoInsertSpace","isNeedInserted","linkButtonRestProps","htmlType","fixTwoCNChar","delayTimeout","styleForPesudo","_Event","isNotGrey","Wave","animationStart","waveColor","insertExtraNode","extraNode","getAttributeName","onTransitionStart","resetEffect","bindAnimationEvent","clickWaveTimeoutId","animationStartId","renderWave","TransitionEvents","_rcResizeObserver","_calculateNodeHeight","ResizableTextArea","resizeOnNextFrame","nextFrameActionId","autoSize","autosize","minRows","maxRows","textareaStyles","resizing","resizeFrameId","fixFirefoxAutoScroll","currentStart","currentEnd","findDOMNode_1","toArray_1","warning_1","ref_1","resize_observer_polyfill_1","util_1","ReactResizeObserver","_target$getBoundingCl","fixedWidth","fixedHeight","setChildNode","onComponentUpdated","destroyObserver","composeRef","fillRef","calculateNodeStyling","uiTextNode","hiddenTextarea","_calculateNodeStyling","paddingSize","borderSize","sizingStyle","HIDDEN_TEXTAREA_STYLE","MIN_SAFE_INTEGER","singleRowHeight","SIZING_STYLE","computedStyleCache","nodeRef","nodeInfo","ActionMap","_iconProps","iconProps","visibilityToggle","_lodash2","_autoprefix2","autoprefixes","dim","dimAppear","dimTransparent","dimHidden","dock","dockHidden","dockResizing","dockContent","resizer","getFullSize","fullWidth","fullHeight","Dock","isTransitionStarted","hideDim","isDimHidden","handleDimClick","dimMode","updateWindowSize","windowResize","sizeState","isResizing","isWindowResizing","debouncedUpdateWindowSizeEnd","updateWindowSizeEnd","handleWrapperLeave","handleMouseDown","handleMouseUp","handleMouseMove","fluid","isControlled","onSizeChange","defaultSize","dimStyles","dimStyle","dimDisappear","getDimStyles","dockStyles","dockStyle","dockHiddenStyle","posStyle","absSize","getRestSize","fullSize","getTransitions","getDockStyles","resizerStyles","resizerStyle","getResizerStyles","getNative","nativeMax","wait","maxTimeoutId","stamp","timeoutId","lastCalled","isCalled","maxDelayed","debounced","reIsHostCtor","objectProto","fnToString","objToString","reIsNative","isObjectLike","vendorSpecificProperties","prefixProp","onFinally","FacebookEmbed","useFrame_1","react_sub_unsub_1","scriptLoadDisabled","retryDelay","retryDisabled","stage","setStage","embedSuccess","uuidRef","processTime","setProcessTime","embedContainerKey","frm","FB","XFBML","scriptElement","createCleanup","fbPostContainerElement","fbPostElem","isPercentageHeight","ShareArrowIcon","ChatBubbleIcon","HeartIcon","borderTop","borderLeft","borderBottom","xmlnsXlink","xmlSpace","InstagramEmbed","captioned","igVersion","instgrm","Embeds","urlWithNoQuery","cleanUrlWithEndingSlash","LinkedInEmbed","postUrl","setReady","PinterestEmbed","postIdMatch","TikTokEmbed","scriptId","prevScript","embedId","cite","TwitterEmbed","XEmbed_1","twitterWidgetJs","TwitterTimelineEmbed","_React$useState","setLoading","isComponentMounted","twttr","widgets","_ref$current","_ref$current$parentNo","linkColor","tweetLimit","ariaPolite","buildOptions","noHeader","noFooter","noBorders","noScrollbar","buildChromeOptions","sourceType","screenName","ownerScreenName","slug","widgetId","TwitterShareButton","TwitterFollowButton","TwitterHashtagButton","TwitterMentionButton","TwitterMomentShare","momentId","TwitterDMButton","TwitterVideoEmbed","methodName$9","TwitterOnAirButton","username","YouTubeEmbed","react_youtube_1","_f","_h","_j","_l","_m","_o","_p","youTubeProps","videoIdMatch","shortsIdMatch","shortLinkMatch","embedLinkMatch","videoId","playerVars","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","filterResetOptions","iframeClassName","onPlay","onStateChange","onPlaybackRateChange","onPlaybackQualityChange","_YouTube","destroyPlayerPromise","onPlayerReady","onPlayerError","onPlayerStateChange","PlayerState","ENDED","PLAYING","PAUSED","onPlayerPlaybackRateChange","onPlayerPlaybackQualityChange","destroyPlayer","internalPlayer","createPlayer","playerOpts","getIframe","resetPlayer","updatePlayer","getInternalPlayer","updateVideo","stopVideo","startSeconds","endSeconds","loadVideoById","cueVideoById","refContainer","__this","__arguments","shouldUpdatePlayer","shouldResetPlayer","prevVars","vars","shouldUpdateVideo","YouTube","UNSTARTED","BUFFERING","CUED","YouTube_default","Sister","sister","_loadScript","_loadScript2","onYouTubeIframeAPIReady","stdOnEnd","ieOnEnd","setAttributes","_debug2","_functionNames2","_eventNames2","_FunctionStateMap2","YouTubePlayer","onEventName","_iteratorNormalCompletion","_didIteratorError","_iteratorError","functions","_loop2","functionName","stateInfo","playerState","getPlayerState","stateChangeRequired","acceptableStates","playerStateAfterChange","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","formatArgs","useColors","lastC","save","namespaces","WebkitAppearance","firebug","localstorage","createDebug","coerce","logFn","selectColor","skips","plural","fmtShort","_PlayerStates","_PlayerStates2","pauseVideo","seekTo","VIDEO_CUED","defineBuiltInAccessor","fallbackDefineProperty","getReplacerFunction","rawLength","keysLength","freeGlobal","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","ucs2encode","digitToBasic","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","getOverflowOptions","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","_config$autoAdjustOve","placementMap","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","unmountResult","triggerCancel","ConfirmDialog","_ActionButton","_props$iconType","contentPrefixCls","autoFocusButton","cancelButton","actionFn","buttonProps","ActionButton","when","_RevealBase2","inEffect","outEffect","inOut","collapseEl","refProp","onReveal","unmountOnExit","mountOnEnter","ssrReveal","collapseOnly","transitionGroup","RevealBase","isOn","getInitialCollapseStyle","savedChild","handleObserve","revealHandler","makeHandler","reveal","resize","childRef","hasExited","animationEndTimeout","getDimensionValue","hasAppeared","getChild","animationEnd","invisible","onRevealTimeout","intersectionRatio","spy","inViewport","isMounting","getTop","onExited","ticking","isListener","_rcCollapse","_CollapsePanel","_openAnimation","renderExpandIcon","panelProps","renderCollapse","expandIconPosition","renderCollapsePanel","_this$props$showArrow","collapsePanelClassName","_cssAnimation","requestAnimationFrameId","getCheckedValue","radio","RadioGroup","onRadioChange","checkedValue","RadioButton","renderRadioButton","getNumberArray","ScrollNumber","onAnimated","renderScrollNumber","_this$props$component","renderNumberElement","animateStarted","lastCount","currentDigit","lastDigit","getPositionByNum","removeTransition","childrenToReturn","renderNumberList","renderCurrentNumber","_clearTimeout","useDeepCompareEffect","_useState6","_useState2","setSnowflakes","sizeDifference","createSnowflakes","_useState4","subMenu","saveSubMenu","menuItem","saveMenuItem","tooltipProps","getCollapsedHeight","getRealHeight","_ko_KR3","_ko_KR4","isSelectOptGroup","propsValueType","basicType","labelInValueShape","labelInValue","_validate","isSelectOption","defaultActiveFirstOption","filterOption","optionFilterProp","defaultOpen","onPopupScroll","onInputKeyDown","dropdownStyle","maxTagTextLength","maxTagCount","maxTagPlaceholder","tokenSeparators","getInputElement","dropdownRender","toTitle","getValuePropValue","getPropValue","isMultipleOrTags","isMultipleOrTagsOrCombobox","isSingleMode","getMapKey","preventDefaultEvent","findIndexInValueBySingleValue","singleValue","getLabelFromPropsValue","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","defaultFilterFn","DropdownMenu","rafInstance","lastVisible","scrollActiveItemToView","itemComponent","firstActiveItem","firstActiveValue","scrollIntoViewOpts","menuRef","menuItems","onMenuSelect","backfillValue","onMenuDeselect","getSelectKeys","itemValue","itemKey","activeKeyProps","clonedMenuItems","lastInputValue","saveMenuRef","dropdownMenuStyle","ariaId","onPopupFocus","onMenuDeSelect","BUILT_IN_PLACEMENTS","SelectTrigger","dropdownMenuRef","setDropdownWidth","cancelRafInstance","dropdownWidth","getInnerMenu","getPopupDOMNode","getDropdownElement","menuNode","saveDropdownMenuRef","getDropdownPrefixCls","getDropdownTransitionName","saveTriggerRef","_popupClassName","dropdownAlign","dropdownClassName","dropdownMatchSelectWidth","dropdownPrefixCls","popupElement","widthProp","onDropdownVisibleChange","chaining","fns","inputMirrorRef","topCtrlRef","selectTriggerRef","selectionRef","dropdownContainer","blurTimer","focusTimer","comboboxTimer","_focused","_mouseDown","includesSeparators","getValueByInput","fireChange","setOpenState","needFocus","setInputValue","clearBlurTime","timeoutFocus","updateFocusClassName","getInputDOMNode","isRealOpen","getRealOpenState","openIfHasChildren","handleBackfill","removeSelected","skipTrigger","fireSearch","fireSelect","autoClearSearchValue","menuItemDomNode","onArrowClick","onPlaceholderClick","onOuterFocus","inputNode","maybeFocus","onOuterBlur","firstOption","findFirstMenuItem","tmpValue","getVLForOnChange","onClearSelection","onChoiceAnimationLeave","getOptionInfoBySingleValue","optionsInfo","defaultLabel","defaultValueLabel","getOptionBySingleValue","getOptionsBySingleValue","getValueByLabel","oldLable","getVLBySingleValue","getLabelBySingleValue","vlsS","vls","vl","getDropdownContainer","getPlaceholderElement","defaultInput","inputElement","inputCls","saveInputRef","saveInputMirrorRef","getInputMirrorDOMNode","getPopupMenuComponent","hasNewValue","splitBySeparators","_open","markMouseDown","markMouseLeave","backfill","defaultFilter","clearFocusTime","clearComboboxTime","isChildDisabled","renderFilterOptions","renderFilterOptionsFromChildren","sel","innerItems","subChild","childValueSub","_innerItems","isMultiple","validateOptionValue","renderTopControlNode","innerNode","showSelectedValue","_this$getOptionInfoBy3","maxTagPlaceholderEl","selectedValueNodes","limitedCountValue","omittedValues","choiceClassName","saveTopCtrlRef","getOptionsInfoFromProps","isDisabledExist","getValueFromProps","getInputValueForCombobox","skipBuildOptionsInfo","saveSelectTriggerRef","saveRootRef","saveSelectionRef","mirrorNode","_this$props4$showArro","defaultIcon","_props$showArrow","ctrlNode","filterOptions","realOpen","dataOrAriaAttributeProps","extraSelectionProps","renderClear","renderArrow","getOptionsFromChildren","useDefaultValue","getLabelFromOption","preState","oldOptionsInfo","useClassName","setTransformOrigin","inTransition","switchScrollingEffect","onDialogMouseDown","dialogMouseDown","onMaskMouseUp","sentinelStart","sentinelEnd","dest","sentinelStyle","bodyProps","destroyOnClose","focusTriggerAfterClose","tryFocus","dialogNode","dialog","elOffset","lastOutSideFocusNode","getOpenCount","_options$element","oldStyle","styleKeys","cacheStyle","scrollingEffectClassNameReg","bodyClassName","scrollBarSize","fresh","outer","outerStyle","widthContained","widthScroll","getScrollBarSize","addClassName","openCount","windowIsUndefined","cacheOverflow","PortalWrapper","setWrapperClassName","savePortal","removeCurrentContainer","_self","prevVisible","prevGetContainer","showTitle","itemRender","Options","goInputText","buildOptionText","changeSize","goButton","quickGo","pageSizeOptions","changeSelect","goInput","gotoButton","calculatePage","hasOnChange","currentInputValue","paginationNode","lastCurrentNode","allPages","hideOnSinglePage","pagerList","jumpPrev","jumpNext","firstPager","lastPager","showQuickJumper","pageBufferSize","showLessItems","prevPage","nextPage","handleGoTO","savePaginationNode","runIfEnterPrev","getItemIcon","handleKeyUp","runIfEnterNext","pagerProps","runIfEnter","prevItemTitle","nextItemTitle","showPrevNextJumpers","jumpPrevClassString","runIfEnterJumpPrev","getJumpPrevPage","jumpNextClassString","runIfEnterJumpNext","getJumpNextPage","_active","totalText","showTotal","prevDisabled","nextDisabled","showSizeChanger","changePageSize","shouldDisplayQuickJumper","newCurrent","currentPage","restParams"],"mappings":"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ACNqe,UAGN,CACD32C,IAAK,eACLimB,IAAK,WACH,OAAO06a,GAAWlhc,KAAK47B,QASxB,CACDr7B,IAAK,cACLimB,IAAK,WACH,OAAOo3E,GAAY59F,KAAK47B,KAAM57B,KAAK64B,SASpC,CACDt4B,IAAK,aACLimB,IAAK,WACH,OAAOxmB,KAAK+8F,QAAUokW,GAAWnhc,KAAK47B,MAAQygE,MAU/C,CACD97F,IAAK,kBACLimB,IAAK,WACH,OAAOxmB,KAAK+8F,QAAUukW,GAAgBthc,KAAKuhc,UAAYllW,OAEvD,CAAC,CACH97F,IAAK,aACLimB,IAAK,WACH,OAAOkwa,IAOR,CACDn2b,IAAK,WACLimB,IAAK,WACH,OAAOmwa,IAOR,CACDp2b,IAAK,wBACLimB,IAAK,WACH,OAAOowa,IAOR,CACDr2b,IAAK,YACLimB,IAAK,WACH,OAAOqwa,IAOR,CACDt2b,IAAK,YACLimB,IAAK,WACH,OAAOswa,IAOR,CACDv2b,IAAK,cACLimB,IAAK,WACH,OAAOuwa,IAOR,CACDx2b,IAAK,oBACLimB,IAAK,WACH,OAAOwwa,IAOR,CACDz2b,IAAK,yBACLimB,IAAK,WACH,OAAOywa,IAOR,CACD12b,IAAK,wBACLimB,IAAK,WACH,OAAO0wa,IAOR,CACD32b,IAAK,iBACLimB,IAAK,WACH,OAAO2wa,IAOR,CACD52b,IAAK,uBACLimB,IAAK,WACH,OAAO6wa,IAOR,CACD92b,IAAK,4BACLimB,IAAK,WACH,OAAO8wa,IAOR,CACD/2b,IAAK,2BACLimB,IAAK,WACH,OAAO+wa,IAOR,CACDh3b,IAAK,iBACLimB,IAAK,WACH,OAAOgxa,IAOR,CACDj3b,IAAK,8BACLimB,IAAK,WACH,OAAOixa,IAOR,CACDl3b,IAAK,eACLimB,IAAK,WACH,OAAOkxa,IAOR,CACDn3b,IAAK,4BACLimB,IAAK,WACH,OAAOmxa,IAOR,CACDp3b,IAAK,4BACLimB,IAAK,WACH,OAAOoxa,IAOR,CACDr3b,IAAK,gBACLimB,IAAK,WACH,OAAOqxa,IAOR,CACDt3b,IAAK,6BACLimB,IAA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","file":"static/js/buildup~app.2.77603d4c3ce41d0de6a2.js","sourcesContent":["/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-04d85134.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-04d85134.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","/**\r\n * A collection of utility functions for various type checks and conversion\r\n * @todo Review unused functions for removal\r\n * @hidden\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { percent, isPercent } from \"./Percent\";\r\n/**\r\n * ============================================================================\r\n * TYPE CHECK\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns `true` if value is not a number (NaN).\r\n *\r\n * @param value Input value\r\n * @return Is NaN?\r\n * @deprecated Is not used anywhere. JS built-in isNaN is used everywhere. Maybe we don't need this, or if we do, then we should use it everywhere\r\n */\r\nexport function isNaN(value) {\r\n return Number(value) !== value;\r\n}\r\n/**\r\n * Returns a type of the value.\r\n *\r\n * @param value Input value\r\n * @return Type of the value\r\n */\r\nexport function getType(value) {\r\n return ({}).toString.call(value);\r\n}\r\n/**\r\n * Returns a default value if the passed in value is empty.\r\n *\r\n * @param value Input value\r\n * @param optional Default value\r\n * @return Value or default value whichever is available\r\n * @deprecated Not used anywhere\r\n */\r\nexport function getDefault(value, optional) {\r\n return value || optional;\r\n}\r\n/**\r\n * Checks if the passed in value is a string.\r\n *\r\n * @param value Value\r\n * @return Is string?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkString(value) {\r\n if (typeof value === \"string\") {\r\n return true;\r\n }\r\n else {\r\n throw new Error(\"Expected a string but got \" + getType(value));\r\n }\r\n}\r\n/**\r\n * Checks if the passed in value is a boolean.\r\n *\r\n * @param value Value\r\n * @return Is boolean?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkBoolean(value) {\r\n if (typeof value === \"boolean\") {\r\n return true;\r\n }\r\n else {\r\n throw new Error(\"Expected a boolean but got \" + getType(value));\r\n }\r\n}\r\n/**\r\n * Checks if the passed in value is a number.\r\n *\r\n * @param value Value\r\n * @return Is number?\r\n * @throws {Error}\r\n */\r\nexport function checkNumber(value) {\r\n if (typeof value === \"number\") {\r\n if (isNaN(value)) {\r\n throw new Error(\"Expected a number but got NaN\");\r\n }\r\n }\r\n else {\r\n throw new Error(\"Expected a number but got \" + getType(value));\r\n }\r\n return true;\r\n}\r\n/**\r\n * Checks if the passed in value is an object.\r\n *\r\n * @param value Value\r\n * @return Is object?\r\n * @throws {Error}\r\n * @todo Is the input type correct?\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkObject(value) {\r\n var t = getType(value);\r\n if (t === \"[object Object]\") {\r\n return true;\r\n }\r\n else {\r\n throw new Error(\"Expected an object but got \" + t);\r\n }\r\n}\r\n/**\r\n * Checks if the passed in value is an array.\r\n *\r\n * @param value Value\r\n * @return Is array?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkArray(value) {\r\n if (Array.isArray(value)) {\r\n return true;\r\n }\r\n else {\r\n throw new Error(\"Expected an array but got \" + getType(value));\r\n }\r\n}\r\n/**\r\n * Checks if the passed in value is a Date object.\r\n *\r\n * @param value Value\r\n * @return Is Date object?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkDate(value) {\r\n var t = getType(value);\r\n if (t === \"[object Date]\") {\r\n return true;\r\n }\r\n else {\r\n throw new Error(\"Expected a date but got \" + t);\r\n }\r\n}\r\n/**\r\n * ============================================================================\r\n * TYPE CASTING\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Casts string or a number into string.\r\n *\r\n * @param value Input\r\n * @return String value\r\n * @deprecated Not used anywhere\r\n */\r\nexport function castString(value) {\r\n if (typeof value === \"string\") {\r\n return value;\r\n }\r\n else if (typeof value === \"number\") {\r\n return \"\" + value;\r\n }\r\n else {\r\n throw new Error(\"Expected a string or number but got \" + getType(value));\r\n }\r\n}\r\n/**\r\n * Casts string or a number into a number.\r\n *\r\n * @param value Input value\r\n * @return Number value\r\n * @throws {Error}\r\n */\r\nexport function castNumber(value) {\r\n if (typeof value === \"string\") {\r\n var number = +value;\r\n if (isNaN(number)) {\r\n throw new Error(\"Cannot cast string \" + JSON.stringify(value) + \" to a number\");\r\n }\r\n else {\r\n return number;\r\n }\r\n }\r\n else if (typeof value === \"number\") {\r\n if (isNaN(value)) {\r\n throw new Error(\"Expected a number but got NaN\");\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n else {\r\n var t = getType(value);\r\n if (t === \"[object Date]\") {\r\n return value.getTime();\r\n }\r\n else {\r\n throw new Error(\"Expected a string, number, or date but got \" + t);\r\n }\r\n }\r\n}\r\n/**\r\n * Casts number, string or Date into a Date object.\r\n *\r\n * @param value Input value\r\n * @return Date object\r\n * @deprecated Not used anywhere\r\n * @throws {Error}\r\n * @hidden\r\n * @deprecated\r\n */\r\n/*export function castDate(value: string | number | Date, formatter?: DateFormatter): Date {\r\n if (typeof value === \"string\") {\r\n if (formatter) {\r\n return formatter.parse(value);\r\n }\r\n return new Date(value);\r\n\r\n } else if (typeof value === \"number\") {\r\n return new Date(value);\r\n\r\n } else {\r\n const t = getType(value);\r\n\r\n if (t === \"[object Date]\") {\r\n return value;\r\n\r\n } else {\r\n throw new Error(\"Expected a string, number, or date but got \" + t);\r\n }\r\n }\r\n}*/\r\n/**\r\n * ============================================================================\r\n * QUICK CONVERSION\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Converts any value into `boolean`.\r\n *\r\n * @param value Source value\r\n * @return `true` or `false`\r\n */\r\nexport function toBoolean(value) {\r\n return value ? true : false;\r\n}\r\n/**\r\n * Converts any value into a `number`.\r\n *\r\n * @param value Source value\r\n * @return Number representation of value\r\n */\r\nexport function toNumber(value) {\r\n if (hasValue(value) && !isNumber(value)) {\r\n var converted = Number(value);\r\n if (isNaN(converted) && isString(value) && value != \"\") {\r\n return toNumber(value.replace(/[^0-9.\\-]+/g, ''));\r\n }\r\n return converted;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Converts any value into a string (text).\r\n *\r\n * @param value Source value\r\n * @return String representation of the input\r\n */\r\nexport function toText(value) {\r\n if (hasValue(value) && !isString(value)) {\r\n if (isNumber(value)) {\r\n return castString(value);\r\n }\r\n else if (isObject(value)) {\r\n return value.toString();\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * Converts any value to a number or [[Percent]].\r\n *\r\n * If the parameter is a string and contains \"%\", it will\r\n * convert it into a [[Percent]].\r\n *\r\n * Otherwise, it will convert into a number.\r\n *\r\n * @param value Number or percent\r\n * @return Percent object\r\n */\r\nexport function toNumberOrPercent(value) {\r\n if (!hasValue(value) || isNumber(value) || isPercent(value)) {\r\n return value;\r\n }\r\n if (isString(value) && value.indexOf(\"%\") != -1) {\r\n return percent(toNumber(value));\r\n }\r\n return toNumber(value);\r\n}\r\n/**\r\n * Checks if a variable has a value.\r\n *\r\n * @param a Input value\r\n * @returns Has value?\r\n */\r\nexport function hasValue(a) {\r\n return a != null;\r\n}\r\n/**\r\n * Returns a value or throws an {Error} exception if the variable has not\r\n * value.\r\n *\r\n * @param a Input value\r\n * @returns Value\r\n */\r\nexport function getValue(a) {\r\n if (hasValue(a)) {\r\n return a;\r\n }\r\n else {\r\n throw new Error(\"Value doesn't exist\");\r\n }\r\n}\r\n/**\r\n * Returns a value, or returns the default value if it doesn't have a value.\r\n *\r\n * @param a Input value\r\n * @returns Value\r\n */\r\nexport function getValueDefault(a, defaultValue) {\r\n if (hasValue(a)) {\r\n return a;\r\n }\r\n else {\r\n return defaultValue;\r\n }\r\n}\r\n/**\r\n * ============================================================================\r\n * TYPE CHECK\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Checks if parameter is `Date`.\r\n *\r\n * @param value Input value\r\n * @return Is Date?\r\n */\r\nexport function isDate(value) {\r\n return getType(value) === \"[object Date]\";\r\n}\r\n/**\r\n * Checks if parameter is `string`.\r\n *\r\n * @param value Input value\r\n * @return Is string?\r\n */\r\nexport function isString(value) {\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if parameter is `number`.\r\n *\r\n * @param value Input value\r\n * @return Is number?\r\n */\r\nexport function isNumber(value) {\r\n return typeof value === \"number\" && Number(value) == value;\r\n}\r\n/**\r\n * Checks if parameter is `object`.\r\n *\r\n * @param value Input value\r\n * @return Is object?\r\n */\r\nexport function isObject(value) {\r\n return typeof value === \"object\" && value != null;\r\n}\r\n/**\r\n * Checks if parameter is `Array`.\r\n *\r\n * @param value Input value\r\n * @return Is Array?\r\n */\r\nexport function isArray(value) {\r\n return Array.isArray(value);\r\n}\r\n//# sourceMappingURL=Type.js.map","/**\r\n * A collection of Math-related functions\r\n *\r\n * @todo Comment trigonometric functions?\r\n */\r\nimport * as $type from \"./Type\";\r\n/**\r\n * ============================================================================\r\n * CONSTANTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nexport var PI = Math.PI;\r\nexport var HALFPI = PI / 2;\r\nexport var RADIANS = PI / 180;\r\nexport var DEGREES = 180 / PI;\r\n/**\r\n * Converts any value and fits it into a specific value range.\r\n *\r\n * @param value Source value\r\n * @param min Minimum allowable value\r\n * @param max Maximum allowable value\r\n * @return Number\r\n */\r\nexport function toNumberRange(value, min, max) {\r\n if ($type.hasValue(value)) {\r\n value = $type.toNumber(value);\r\n return fitToRange(value, min, max);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Rounds the numeric value to whole number or specific precision of set.\r\n *\r\n * @param value Value\r\n * @param precision Precision (number of decimal points)\r\n * @param floor In case value ends with 0.5 and precision is 0, we might need to floor the value instead of ceiling it.\r\n * @return Rounded value\r\n */\r\nexport function round(value, precision, floor) {\r\n if (!$type.isNumber(precision) || precision <= 0) {\r\n var rounded = Math.round(value);\r\n if (floor) {\r\n if (rounded - value == 0.5) {\r\n rounded--;\r\n }\r\n }\r\n return rounded;\r\n }\r\n else {\r\n var d = Math.pow(10, precision);\r\n return Math.round(value * d) / d;\r\n }\r\n}\r\n/**\r\n * Ceils the numeric value to whole number or specific precision of set.\r\n *\r\n * @param value Value\r\n * @param precision Precision (number of decimal points)\r\n * @return Rounded value\r\n */\r\nexport function ceil(value, precision) {\r\n if (!$type.isNumber(precision) || precision <= 0) {\r\n return Math.ceil(value);\r\n }\r\n else {\r\n var d = Math.pow(10, precision);\r\n return Math.ceil(value * d) / d;\r\n }\r\n}\r\n/**\r\n * Stretches `t` so that it will always be between `from` and `to`.\r\n *\r\n * @param t Number from 0 to 1\r\n * @param from Lowest possible value\r\n * @param to Highest possible value\r\n * @return Adjusted value\r\n */\r\nexport function stretch(t, from, to) {\r\n return (t * (to - from)) + from;\r\n}\r\n/**\r\n * Adjust numeric value so it fits to specific value range.\r\n *\r\n * @param value Value\r\n * @param minValue Lowest possible value\r\n * @param maxValue Highest possible value\r\n * @return Adjusted value\r\n */\r\nexport function fitToRange(value, minValue, maxValue) {\r\n if ($type.isNumber(minValue)) {\r\n if ($type.isNumber(maxValue) && maxValue < minValue) {\r\n var temp = maxValue;\r\n maxValue = minValue;\r\n minValue = temp;\r\n }\r\n if (value < minValue) {\r\n value = minValue;\r\n }\r\n }\r\n if ($type.isNumber(maxValue)) {\r\n if (value > maxValue) {\r\n value = maxValue;\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * Returns sine of a number.\r\n *\r\n * @param value Value\r\n * @return Sine\r\n */\r\nexport function sin(value) {\r\n return round(Math.sin(RADIANS * value), 10);\r\n}\r\n/**\r\n * Returns tan of a number.\r\n *\r\n * @param value Value\r\n * @return Sine\r\n */\r\nexport function tan(value) {\r\n return round(Math.tan(RADIANS * value), 10);\r\n}\r\n/**\r\n * Returns cosine of a number.\r\n *\r\n * @param value Value\r\n * @return Cosine\r\n */\r\nexport function cos(value) {\r\n return round(Math.cos(RADIANS * value), 10);\r\n}\r\nexport function max(left, right) {\r\n if ($type.isNumber(left)) {\r\n if ($type.isNumber(right)) {\r\n if (right > left) {\r\n return right;\r\n }\r\n else {\r\n return left;\r\n }\r\n }\r\n else {\r\n return left;\r\n }\r\n }\r\n else if ($type.isNumber(right)) {\r\n return right;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\nexport function min(left, right) {\r\n if ($type.isNumber(left)) {\r\n if ($type.isNumber(right)) {\r\n if (right < left) {\r\n return right;\r\n }\r\n else {\r\n return left;\r\n }\r\n }\r\n else {\r\n return left;\r\n }\r\n }\r\n else if ($type.isNumber(right)) {\r\n return right;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n/**\r\n * Returns the closest value from the array of values to the reference value.\r\n *\r\n * @param values Array of values\r\n * @param value Reference value\r\n * @return Closes value from the array\r\n */\r\nexport function closest(values, referenceValue) {\r\n return values.reduce(function (prev, curr) {\r\n return (Math.abs(curr - referenceValue) < Math.abs(prev - referenceValue) ? curr : prev);\r\n });\r\n}\r\n/**\r\n * Checks whether two ranges of values intersect.\r\n *\r\n * @param range1 Range 1\r\n * @param range2 Range 2\r\n * @return Any intersecting numbers?\r\n */\r\nexport function intersect(range1, range2) {\r\n var start1 = $type.getValue(range1.start);\r\n var start2 = $type.getValue(range2.start);\r\n var end1 = $type.getValue(range1.end);\r\n var end2 = $type.getValue(range2.end);\r\n return Math.max(start1, start2) <= Math.min(end1, end2);\r\n}\r\n/**\r\n * Inverts the range of values.\r\n *\r\n * @param range Range\r\n */\r\nexport function invertRange(range) {\r\n var start = $type.getValue(range.start);\r\n var end = $type.getValue(range.end);\r\n return { start: 1 - end, end: 1 - start };\r\n}\r\n/**\r\n * Returns an intersection range between two ranges of values.\r\n *\r\n * @param range1 Range 1\r\n * @param range2 Range 2\r\n * @return Intersecting value range\r\n */\r\nexport function intersection(range1, range2) {\r\n var start1 = $type.getValue(range1.start);\r\n var start2 = $type.getValue(range2.start);\r\n var end1 = $type.getValue(range1.end);\r\n var end2 = $type.getValue(range2.end);\r\n var startMax = Math.max(start1, start2);\r\n var endMin = Math.min(end1, end2);\r\n if (endMin < startMax) {\r\n return undefined;\r\n }\r\n else {\r\n return { start: startMax, end: endMin };\r\n }\r\n}\r\n/**\r\n * Returns pixel \"distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getDistance(point1, point2) {\r\n if (!point1) {\r\n return 0;\r\n }\r\n if (!point2) {\r\n point2 = { x: 0, y: 0 };\r\n }\r\n return Math.sqrt(Math.pow(Math.abs(point1.x - point2.x), 2) + Math.pow(Math.abs(point1.y - point2.y), 2));\r\n}\r\n/**\r\n * Returns pixel \"horizontal distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getHorizontalDistance(point1, point2) {\r\n if (!point1) {\r\n return 0;\r\n }\r\n if (!point2) {\r\n point2 = { x: 0, y: 0 };\r\n }\r\n return Math.abs(point1.x - point2.x);\r\n}\r\n/**\r\n * Returns pixel \"vertical distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getVerticalDistance(point1, point2) {\r\n if (!point1) {\r\n return 0;\r\n }\r\n if (!point2) {\r\n point2 = { x: 0, y: 0 };\r\n }\r\n return Math.abs(point1.y - point2.y);\r\n}\r\n/**\r\n * Returns approximate pixel \"distance\" between two points of cubic curve\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @param controlPointA Control Point 1\r\n * @param controlPointB Control Point 2\r\n * @param stepCount number of steps (the more, the more accurate result)\r\n * @return Distance in relative pixels\r\n */\r\nexport function getCubicCurveDistance(point1, point2, controlPointA, controlPointB, stepCount) {\r\n if (!point1) {\r\n return 0;\r\n }\r\n if (!point2) {\r\n point2 = { x: 0, y: 0 };\r\n }\r\n var distance = 0;\r\n var prevPoint = point1;\r\n if (stepCount > 0) {\r\n for (var s = 0; s <= stepCount; s++) {\r\n var point = getPointOnCubicCurve(point1, point2, controlPointA, controlPointB, s / stepCount);\r\n distance += getDistance(prevPoint, point);\r\n prevPoint = point;\r\n }\r\n }\r\n return distance;\r\n}\r\n/**\r\n * Returns scale based on original and end position of the two points.\r\n *\r\n * @param point1 Current position of point 1\r\n * @param startPoint1 Start position of point 1\r\n * @param point2 Current position of point 1\r\n * @param startPoint2 Start position of point 2\r\n * @return Scale Calculated scale\r\n */\r\nexport function getScale(point1, startPoint1, point2, startPoint2) {\r\n var initialDistance = getDistance(startPoint1, startPoint2);\r\n var currentDistance = getDistance(point1, point2);\r\n return Math.abs(currentDistance / initialDistance);\r\n}\r\n/**\r\n * Returns an exact mid point between two points.\r\n *\r\n * @param point1 Position of point 1\r\n * @param point2 Position of point 2\r\n * @return Mid point Position of mid-point\r\n */\r\nexport function getMidPoint(point1, point2, position) {\r\n if (!$type.isNumber(position)) {\r\n position = 0.5;\r\n }\r\n return {\r\n \"x\": (point1.x + (point2.x - point1.x) * position),\r\n \"y\": (point1.y + (point2.y - point1.y) * position)\r\n };\r\n}\r\n/**\r\n * Returns difference in angles between starting and ending position of two\r\n * vectors.\r\n *\r\n * @param point1 Current position of point 1\r\n * @param startPoint1 Start position of point 1\r\n * @param point2 Current position of point 1\r\n * @param startPoint2 Start position of point 2\r\n * @return Angle difference in degrees\r\n */\r\nexport function getRotation(point1, startPoint1, point2, startPoint2) {\r\n // Get start and end angles\r\n var startAngle = getAngle(startPoint1, startPoint2);\r\n var angle = getAngle(point1, point2);\r\n // Calculate angle\r\n var diff = startAngle - angle;\r\n if (diff < 0) {\r\n diff += 360;\r\n }\r\n return diff;\r\n}\r\n/**\r\n * Calculates angle of the vector based on two or one point.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Angle in degrees\r\n */\r\nexport function getAngle(point1, point2) {\r\n if (!point2) {\r\n point2 = { x: point1.x * 2, y: point1.y * 2 };\r\n }\r\n var diffX = point2.x - point1.x;\r\n var diffY = point2.y - point1.y;\r\n var angle = Math.atan2(diffY, diffX) * DEGREES;\r\n if (angle < 0) {\r\n angle += 360;\r\n }\r\n return normalizeAngle(angle);\r\n}\r\n/**\r\n * Returns the shift in coordinates of the center when item is rotated, moved\r\n * and scaled at the same time.\r\n *\r\n * @param center Current center\r\n * @param point1 Frst reference point\r\n * @param startPoint1 Original position of the first reference point\r\n * @param point2 Second reference point\r\n * @param startPoint2 Original position of the first reference point\r\n * @return Shift in center point coordinates\r\n */\r\nexport function getCenterShift(center, point1, startPoint1, point2, startPoint2) {\r\n // Get angle\r\n var angle = getRotation(point1, startPoint1, point2, startPoint2) - 90;\r\n if (angle < 0) {\r\n angle += 360;\r\n }\r\n // Get distance between new position\r\n var distance = getDistance(point1, point2);\r\n // Calculate new X\r\n var x = Math.cos(angle) / distance + point1.x;\r\n var y = Math.cos(angle) / distance + point1.y;\r\n var shift = {\r\n \"x\": x - center.x,\r\n \"y\": y - center.y\r\n };\r\n return shift;\r\n}\r\n/**\r\n * Converts an array of points into a bounding box rectangle.\r\n *\r\n * Array can contain any number of points.\r\n *\r\n * @param points Points\r\n * @return Bounding box rectangle\r\n */\r\nexport function getBBox(points) {\r\n if (points) {\r\n var length_1 = points.length;\r\n if (length_1 !== 0) {\r\n var left = void 0;\r\n var right = void 0;\r\n var top_1;\r\n var bottom = void 0;\r\n for (var i = 0; i < length_1; i++) {\r\n var point = points[i];\r\n if (!$type.isNumber(right) || (point.x > right)) {\r\n right = point.x;\r\n }\r\n if (!$type.isNumber(left) || (point.x < left)) {\r\n left = point.x;\r\n }\r\n if (!$type.isNumber(top_1) || (point.y < top_1)) {\r\n top_1 = point.y;\r\n }\r\n if (!$type.isNumber(bottom) || (point.y > bottom)) {\r\n bottom = point.y;\r\n }\r\n }\r\n return { x: left, y: top_1, width: right - left, height: bottom - top_1 };\r\n }\r\n }\r\n return { x: 0, y: 0, width: 0, height: 0 };\r\n}\r\n/**\r\n * Returns a [[IRectangle]] object representing a common rectangle that fits\r\n * all passed in rectangles in it.\r\n *\r\n * @param rectangles An array of rectangles\r\n * @return Common rectangle\r\n */\r\nexport function getCommonRectangle(rectangles) {\r\n var length = rectangles.length;\r\n if (length !== 0) {\r\n var minX = void 0;\r\n var minY = void 0;\r\n var maxX = void 0;\r\n var maxY = void 0;\r\n for (var i = 0; i < length; i++) {\r\n var rectangle = rectangles[i];\r\n minX = min(rectangle.x, minX);\r\n minY = min(rectangle.y, minY);\r\n maxX = max(rectangle.x + rectangle.width, maxX);\r\n maxY = max(rectangle.y + rectangle.height, maxY);\r\n }\r\n return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };\r\n }\r\n}\r\n/**\r\n * [getPointOnQuadraticCurve description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param pointA [description]\r\n * @param pointB [description]\r\n * @param controlPoint [description]\r\n * @param position [description]\r\n * @return [description]\r\n */\r\nexport function getPointOnQuadraticCurve(pointA, pointB, controlPoint, position) {\r\n var x = (1 - position) * (1 - position) * pointA.x + 2 * (1 - position) * position * controlPoint.x + position * position * pointB.x;\r\n var y = (1 - position) * (1 - position) * pointA.y + 2 * (1 - position) * position * controlPoint.y + position * position * pointB.y;\r\n return { x: x, y: y };\r\n}\r\n/**\r\n * [getPointOnCubicCurve description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param pointA [description]\r\n * @param pointB [description]\r\n * @param controlPointA [description]\r\n * @param controlPointB [description]\r\n * @param position [description]\r\n * @return [description]\r\n */\r\nexport function getPointOnCubicCurve(pointA, pointB, controlPointA, controlPointB, position) {\r\n var point = { x: 0, y: 0 };\r\n var mt1 = 1 - position;\r\n var mt2 = mt1 * mt1;\r\n var mt3 = mt2 * mt1;\r\n point.x = pointA.x * mt3 + controlPointA.x * 3 * mt2 * position + controlPointB.x * 3 * mt1 * position * position + pointB.x * position * position * position;\r\n point.y = pointA.y * mt3 + controlPointA.y * 3 * mt2 * position + controlPointB.y * 3 * mt1 * position * position + pointB.y * position * position * position;\r\n return point;\r\n}\r\n/**\r\n * [getCubicControlPointA description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param p0 [description]\r\n * @param p1 [description]\r\n * @param p2 [description]\r\n * @param p3 [description]\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n * @return [description]\r\n */\r\nexport function getCubicControlPointA(p0, p1, p2, p3, tensionX, tensionY) {\r\n tensionX = adjustTension(tensionX);\r\n tensionY = adjustTension(tensionY);\r\n return { x: ((-p0.x + p1.x / tensionX + p2.x) * tensionX), y: ((-p0.y + p1.y / tensionY + p2.y) * tensionY) };\r\n}\r\n/**\r\n * [getCubicControlPointB description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param p0 [description]\r\n * @param p1 [description]\r\n * @param p2 [description]\r\n * @param p3 [description]\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n * @return [description]\r\n */\r\nexport function getCubicControlPointB(p0, p1, p2, p3, tensionX, tensionY) {\r\n tensionX = adjustTension(tensionX);\r\n tensionY = adjustTension(tensionY);\r\n return { x: ((p1.x + p2.x / tensionX - p3.x) * tensionX), y: ((p1.y + p2.y / tensionY - p3.y) * tensionY) };\r\n}\r\n/**\r\n * [adjustTension description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param tension [description]\r\n * @return [description]\r\n */\r\nexport function adjustTension(tension) {\r\n return 1 - tension + 0.00001;\r\n}\r\n/**\r\n * [normalizeAngle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n * @return [description]\r\n */\r\nexport function normalizeAngle(value) {\r\n if (value == 360) {\r\n return 360;\r\n }\r\n return value % 360;\r\n}\r\n/**\r\n * [normalizeAngleToRange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @todo review this with various angles, can be tested on radar chart with custom start/end angles\r\n * @param value [description]\r\n * @param startAngle [description]\r\n * @param endAngle [description]\r\n * @return [description]\r\n */\r\nexport function fitAngleToRange(value, startAngle, endAngle) {\r\n if (startAngle > endAngle) {\r\n var temp = startAngle;\r\n startAngle = endAngle;\r\n endAngle = temp;\r\n }\r\n value = normalizeAngle(value);\r\n var count = (startAngle - normalizeAngle(startAngle)) / 360;\r\n if (value < startAngle) {\r\n value += 360 * (count + 1);\r\n }\r\n var maxEnd = startAngle + (endAngle - startAngle) / 2 + 180;\r\n var maxStart = startAngle + (endAngle - startAngle) / 2 - 180;\r\n if (value > endAngle) {\r\n if (value - 360 > startAngle) {\r\n value -= 360;\r\n }\r\n else {\r\n if (value < maxEnd) {\r\n value = endAngle;\r\n }\r\n else {\r\n value = startAngle;\r\n }\r\n }\r\n }\r\n if (value < startAngle) {\r\n if (value > maxStart) {\r\n value = startAngle;\r\n }\r\n else {\r\n value = endAngle;\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * Returns [[IRectangle]] of an arc in relative values, assuming that the\r\n * center is at the circle center.\r\n *\r\n * Used to find out max radius of an arc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param startAngle Start angle\r\n * @param endAngle End angle\r\n * @param radius \t Relative radius\r\n * @return Rectangle\r\n */\r\nexport function getArcRect(startAngle, endAngle, radius) {\r\n var minX = Number.MAX_VALUE;\r\n var minY = Number.MAX_VALUE;\r\n var maxX = -Number.MAX_VALUE;\r\n var maxY = -Number.MAX_VALUE;\r\n var bpoints = [];\r\n if (!$type.isNumber(radius)) {\r\n radius = 1;\r\n }\r\n bpoints.push(getArcPoint(radius, startAngle));\r\n bpoints.push(getArcPoint(radius, endAngle));\r\n var fromAngle = Math.min(Math.floor(startAngle / 90) * 90, Math.floor(endAngle / 90) * 90);\r\n var toAngle = Math.max(Math.ceil(startAngle / 90) * 90, Math.ceil(endAngle / 90) * 90);\r\n for (var angle = fromAngle; angle <= toAngle; angle += 90) {\r\n if (angle >= startAngle && angle <= endAngle) {\r\n bpoints.push(getArcPoint(radius, angle));\r\n }\r\n }\r\n for (var i = 0; i < bpoints.length; i++) {\r\n var pt = bpoints[i];\r\n if (pt.x < minX) {\r\n minX = pt.x;\r\n }\r\n if (pt.y < minY) {\r\n minY = pt.y;\r\n }\r\n if (pt.x > maxX) {\r\n maxX = pt.x;\r\n }\r\n if (pt.y > maxY) {\r\n maxY = pt.y;\r\n }\r\n }\r\n return ({ x: minX, y: minY, width: maxX - minX, height: maxY - minY });\r\n}\r\n/**\r\n * Returns point on arc\r\n *\r\n * @param center point\r\n * @param radius\r\n * @param arc\r\n * @return {boolean}\r\n */\r\nexport function getArcPoint(radius, arc) {\r\n return ({ x: radius * cos(arc), y: radius * sin(arc) });\r\n}\r\n/**\r\n * Returns true if a point is within rectangle\r\n *\r\n * @param point\r\n * @param rectangle\r\n * @return {boolean}\r\n */\r\nexport function isInRectangle(point, rectangle) {\r\n if (point.x >= rectangle.x && point.x <= rectangle.x + rectangle.width && point.y >= rectangle.y && point.y <= rectangle.y + rectangle.height) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function getLineIntersection(pointA1, pointA2, pointB1, pointB2) {\r\n var x = ((pointA1.x * pointA2.y - pointA2.x * pointA1.y) * (pointB1.x - pointB2.x) - (pointA1.x - pointA2.x) * (pointB1.x * pointB2.y - pointB1.y * pointB2.x)) / ((pointA1.x - pointA2.x) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x - pointB2.x));\r\n var y = ((pointA1.x * pointA2.y - pointA2.x * pointA1.y) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x * pointB2.y - pointB1.y * pointB2.x)) / ((pointA1.x - pointA2.x) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x - pointB2.x));\r\n return { x: x, y: y };\r\n}\r\n//# sourceMappingURL=Math.js.map","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: \"Firefox\",\n Opera: \"Opera\",\n Yandex: \"Yandex\",\n Safari: \"Safari\",\n InternetExplorer: \"Internet Explorer\",\n Edge: \"Edge\",\n Chromium: \"Chromium\",\n Ie: 'IE',\n MobileSafari: \"Mobile Safari\",\n EdgeChromium: \"Edge Chromium\",\n MIUI: \"MIUI Browser\",\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: \"Android\",\n WindowsPhone: \"Windows Phone\",\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\nvar checkType = function checkType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DeviceTypes.Mobile;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DeviceTypes.Tablet;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DeviceTypes.Mobile:\n case DeviceTypes.Tablet:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DeviceTypes.SmartTv;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DeviceTypes.Browser;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DeviceTypes.Wearable;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DeviceTypes.Console;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OsTypes.Android;\n};\n\nvar isWindowsType = function isWindowsType() {\n return os.name === OsTypes.Windows;\n};\n\nvar isMacOsType = function isMacOsType() {\n return os.name === OsTypes.MAC_OS;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OsTypes.WindowsPhone;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OsTypes.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BrowserTypes.Chrome;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BrowserTypes.Firefox;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BrowserTypes.Chromium;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BrowserTypes.Edge;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BrowserTypes.Yandex;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BrowserTypes.Opera;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;\n};\n\nvar isMIUIType = function isMIUIType() {\n return browser.name === BrowserTypes.MIUI;\n};\n\nvar isSamsungBrowserType = function isSamsungBrowserType() {\n return browser.name === BrowserTypes.SamsungBrowser;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isDesktop = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType() && !isEdgeChromiumType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\nvar isMIUI = isMIUIType();\nvar isSamsungBrowser = isSamsungBrowserType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\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 (g && (g = 0, op[0] && (_ = 0)), _) 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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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: false } : 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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { EventDispatcher } from \"./utils/EventDispatcher\";\r\nimport { Dictionary } from \"./utils/Dictionary\";\r\nimport { cache } from \"./utils/Cache\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $string from \"./utils/String\";\r\nimport * as $array from \"./utils/Array\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Registry is used to store miscellaneous system-wide information, like ids,\r\n * maps, themes, and registered classes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar Registry = /** @class */ (function () {\r\n function Registry() {\r\n var _this = this;\r\n /**\r\n * Event dispacther.\r\n */\r\n this.events = new EventDispatcher();\r\n /**\r\n * All currently applied themes. All new chart instances created will\r\n * automatically inherit and retain System's themes.\r\n */\r\n this.themes = [];\r\n /**\r\n * List of all loaded available themes.\r\n *\r\n * Whenever a theme loads, it registers itself in System's `loadedThemes`\r\n * collection.\r\n */\r\n this.loadedThemes = {};\r\n /**\r\n * An indeternal counter used to generate unique IDs.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this._uidCount = 0;\r\n /**\r\n * Keeps register of class references so that they can be instnatiated using\r\n * string key.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.registeredClasses = {};\r\n /**\r\n * Holds all generated placeholders.\r\n */\r\n this._placeholders = {};\r\n /**\r\n * A list of invalid(ated) [[Sprite]] objects that need to be re-validated\r\n * during next cycle.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidSprites = {};\r\n /**\r\n * Components are added to this list when their data provider changes to\r\n * a new one or data is added/removed from their data provider.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidDatas = {};\r\n /**\r\n * Components are added to this list when values of their raw data change.\r\n * Used when we want a smooth animation from one set of values to another.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidRawDatas = [];\r\n /**\r\n * Components are added to this list when values of their data changes\r\n * (but not data provider itself).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidDataItems = [];\r\n /**\r\n * Components are added to this list when their data range (selection) is\r\n * changed, e.g. zoomed.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidDataRange = [];\r\n /**\r\n * A list of [[Sprite]] objects that have invalid(ated) positions, that need\r\n * to be recalculated.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidPositions = {};\r\n /**\r\n * A list of [[Container]] objects with invalid(ated) layouts.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.invalidLayouts = {};\r\n /**\r\n * An array holding all active (non-disposed) top level elemens.\r\n *\r\n * When, for example, a new chart is created, its instance will be added to\r\n * this array, and will be removed when the chart is disposed.\r\n */\r\n this.baseSprites = [];\r\n /**\r\n * An UID-based map of base sprites (top-level charts).\r\n */\r\n this.baseSpritesByUid = {};\r\n /**\r\n * Queued charts (waiting for their turn) to initialize.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/performance/#Daisy_chaining_multiple_charts} for more information\r\n */\r\n this.queue = [];\r\n /**\r\n * An array of deferred charts that haven't been created yet.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/performance/#Deferred_daisy_chained_instantiation} for more information\r\n * @since 4.10.0\r\n */\r\n this.deferred = [];\r\n this.uid = this.getUniqueId();\r\n this.invalidSprites.noBase = [];\r\n this.invalidDatas.noBase = [];\r\n this.invalidLayouts.noBase = [];\r\n this.invalidPositions.noBase = [];\r\n // This is needed for Angular Universal SSR\r\n if (typeof addEventListener !== \"undefined\") {\r\n // This is needed to prevent charts from being cut off when printing\r\n addEventListener(\"beforeprint\", function () {\r\n $array.each(_this.baseSprites, function (sprite) {\r\n var svg = sprite.paper.svg;\r\n svg.setAttribute(\"viewBox\", \"0 0 \" + svg.clientWidth + \" \" + svg.clientHeight);\r\n });\r\n });\r\n addEventListener(\"afterprint\", function () {\r\n $array.each(_this.baseSprites, function (sprite) {\r\n var svg = sprite.paper.svg;\r\n svg.removeAttribute(\"viewBox\");\r\n });\r\n });\r\n }\r\n }\r\n /**\r\n * Generates a unique chart system-wide ID.\r\n *\r\n * @return Generated ID\r\n */\r\n Registry.prototype.getUniqueId = function () {\r\n var uid = this._uidCount;\r\n this._uidCount += 1;\r\n return \"id-\" + uid;\r\n };\r\n Object.defineProperty(Registry.prototype, \"map\", {\r\n /**\r\n * Returns a universal collection for mapping ids with objects.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Map collection\r\n */\r\n get: function () {\r\n if (!this._map) {\r\n this._map = new Dictionary();\r\n }\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Caches value in object's cache.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key Key\r\n * @param value Value\r\n * @param ttl TTL in seconds\r\n */\r\n Registry.prototype.setCache = function (key, value, ttl) {\r\n cache.set(this.uid, key, value, ttl);\r\n };\r\n /**\r\n * Retrieves cached value.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key Key\r\n * @param value Value to return if cache is not available\r\n * @return Value\r\n */\r\n Registry.prototype.getCache = function (key, value) {\r\n if (value === void 0) { value = undefined; }\r\n return cache.get(this.uid, key, value);\r\n };\r\n /**\r\n * Dispatches an event using own event dispatcher. Will automatically\r\n * populate event data object with event type and target (this element).\r\n * It also checks if there are any handlers registered for this sepecific\r\n * event.\r\n *\r\n * @param eventType Event type (name)\r\n * @param data Data to pass into event handler(s)\r\n */\r\n Registry.prototype.dispatch = function (eventType, data) {\r\n // @todo Implement proper type check\r\n if (this.events.isEnabled(eventType)) {\r\n if (data) {\r\n data.type = eventType;\r\n data.target = data.target || this;\r\n this.events.dispatch(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n else {\r\n this.events.dispatch(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Works like `dispatch`, except event is triggered immediately, without\r\n * waiting for the next frame cycle.\r\n *\r\n * @param eventType Event type (name)\r\n * @param data Data to pass into event handler(s)\r\n */\r\n Registry.prototype.dispatchImmediately = function (eventType, data) {\r\n // @todo Implement proper type check\r\n if (this.events.isEnabled(eventType)) {\r\n if (data) {\r\n data.type = eventType;\r\n data.target = data.target || this;\r\n this.events.dispatchImmediately(eventType, data);\r\n }\r\n else {\r\n this.events.dispatchImmediately(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Returns a unique placeholder suitable for the key.\r\n *\r\n * @param key Key\r\n * @return Random string to be used as placeholder\r\n */\r\n Registry.prototype.getPlaceholder = function (key) {\r\n if ($type.hasValue(this._placeholders[key])) {\r\n return this._placeholders[key];\r\n }\r\n this._placeholders[key] = \"__amcharts_\" + key + \"_\" + $string.random(8) + \"__\";\r\n return this._placeholders[key];\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.addToInvalidComponents = function (component) {\r\n if (component.baseId) {\r\n $array.move(this.invalidDatas[component.baseId], component);\r\n }\r\n else {\r\n $array.move(this.invalidDatas[\"noBase\"], component);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.removeFromInvalidComponents = function (component) {\r\n if (component.baseId) {\r\n $array.remove(this.invalidDatas[component.baseId], component);\r\n }\r\n $array.remove(this.invalidDatas[\"noBase\"], component);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.addToInvalidSprites = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.add(this.invalidSprites[sprite.baseId], sprite);\r\n }\r\n else {\r\n $array.add(this.invalidSprites[\"noBase\"], sprite);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.removeFromInvalidSprites = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.remove(this.invalidSprites[sprite.baseId], sprite);\r\n }\r\n $array.remove(this.invalidSprites[\"noBase\"], sprite);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.addToInvalidPositions = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.add(this.invalidPositions[sprite.baseId], sprite);\r\n }\r\n else {\r\n $array.add(this.invalidPositions[\"noBase\"], sprite);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.removeFromInvalidPositions = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.remove(this.invalidPositions[sprite.baseId], sprite);\r\n }\r\n $array.remove(this.invalidPositions[\"noBase\"], sprite);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.addToInvalidLayouts = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.add(this.invalidLayouts[sprite.baseId], sprite);\r\n }\r\n else {\r\n $array.add(this.invalidLayouts[\"noBase\"], sprite);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Registry.prototype.removeFromInvalidLayouts = function (sprite) {\r\n if (sprite.baseId) {\r\n $array.remove(this.invalidLayouts[sprite.baseId], sprite);\r\n }\r\n $array.remove(this.invalidLayouts[\"noBase\"], sprite);\r\n };\r\n return Registry;\r\n}());\r\nexport { Registry };\r\n/**\r\n * A singleton global instance of [[Registry]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var registry = new Registry();\r\n/**\r\n * Returns `true` if object is an instance of the class. It's the same as `instanceof` except it doesn't need to import the class.\r\n *\r\n * @param object Object\r\n * @param name Class name\r\n * @return Is instance of class\r\n */\r\nexport function is(object, name) {\r\n var x = registry.registeredClasses[name];\r\n return x != null && object instanceof x;\r\n}\r\n//# sourceMappingURL=Registry.js.map","/**\r\n * A collection of functions that deals with path calculations.\r\n */\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { getGhostPaper } from \"../rendering/Paper\";\r\nimport { options } from \"../Options\";\r\n/**\r\n * ============================================================================\r\n * PATH FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns an SVG path from a number of points.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points An array of line elbow points\r\n * @return SVG path\r\n */\r\nexport function polyline(points) {\r\n var path = lineTo(points[0]);\r\n var prevPoint = { x: 0, y: 0 };\r\n var minStep = options.minPolylineStep;\r\n if (!$type.isNumber(minStep)) {\r\n minStep = 0.5;\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if ($math.getDistance(point, prevPoint) > minStep) {\r\n path += lineTo(point);\r\n prevPoint = point;\r\n }\r\n }\r\n return path;\r\n}\r\n/**\r\n * Returns a starting point of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Starting point\r\n * @return SVG path\r\n */\r\nexport function moveTo(point) {\r\n return \" M\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n/**\r\n * Returns a line part of SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point SVG path\r\n * @return SVG path\r\n */\r\nexport function lineTo(point) {\r\n return \" L\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n/**\r\n * Returns a quadratic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPoint Control point\r\n * @return SVG path\r\n */\r\nexport function quadraticCurveTo(point, controlPoint) {\r\n return \" Q\" + $math.round(controlPoint.x, 4)\r\n + \",\" + $math.round(controlPoint.y, 4) + \" \" + $math.round(point.x, 4)\r\n + \",\" + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Returns a cubic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPointA Control point A\r\n * @param controlPointB Control point B\r\n * @return SVG path\r\n */\r\nexport function cubicCurveTo(point, controlPointA, controlPointB) {\r\n return \" C\" + $math.round(controlPointA.x, 4)\r\n + \",\" + $math.round(controlPointA.y, 4) + \" \" + $math.round(controlPointB.x, 4)\r\n + \",\" + $math.round(controlPointB.y, 4) + \" \" + $math.round(point.x, 4)\r\n + \",\" + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Returns a terminator for an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @return SVG path\r\n */\r\nexport function closePath() {\r\n return \" Z\";\r\n}\r\n/**\r\n * Returns an arc part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Better parameter descriptions\r\n * @param startAngle Starting angle\r\n * @param arc Arc\r\n * @param radius Radius\r\n * @param radiusY Vertical radius\r\n * @return SVG path\r\n */\r\nexport function arcTo(startAngle, arc, radius, radiusY) {\r\n if (arc == 0) {\r\n return \"\";\r\n }\r\n if (!$type.isNumber(radiusY)) {\r\n radiusY = radius;\r\n }\r\n var path = \"\";\r\n var c = \",\";\r\n var segments = Math.ceil(Math.abs(arc) / 180);\r\n var l = 1;\r\n if (arc < 0) {\r\n l = 0;\r\n }\r\n // previous, as we use a not A\r\n var pax = 0;\r\n var pay = 0;\r\n // center\r\n var cx = -$math.cos(startAngle) * radius;\r\n var cy = -$math.sin(startAngle) * radiusY;\r\n // foir very short angles and big radius, solves artefacts\r\n if (arc < 0.5 && radius > 3000) {\r\n var endAngle = startAngle + arc;\r\n var ax = $math.round($math.cos(endAngle) * radius, 4);\r\n var ay = $math.round($math.sin(endAngle) * radiusY, 4);\r\n return lineTo({ x: ax, y: ay });\r\n }\r\n for (var i = 0; i < segments; i++) {\r\n var endAngle = startAngle + arc / segments * (i + 1);\r\n var ax = $math.round($math.cos(endAngle) * radius + cx - pax, 4);\r\n var ay = $math.round($math.sin(endAngle) * radiusY + cy - pay, 4);\r\n path += \" a\" + radius + c + radiusY + c + 0 + c + 0 + c + l + c + ax + c + ay;\r\n pax = ax;\r\n pay = ay;\r\n }\r\n return path;\r\n}\r\n/**\r\n * Creates an arc path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startAngle [description]\r\n * @param arc [description]\r\n * @param radius [description]\r\n * @param innerRadius [description]\r\n * @param radiusY [description]\r\n * @param cornerRadius [description]\r\n * @param innerCornerRadius [description]\r\n * @return SVG path\r\n */\r\nexport function arc(startAngle, arc, radius, innerRadius, radiusY, cornerRadius, innerCornerRadius) {\r\n if (arc == 0) {\r\n return \"\";\r\n }\r\n if (!$type.isNumber(innerRadius)) {\r\n innerRadius = 0;\r\n }\r\n if (radius == 0 && innerRadius <= 0) {\r\n return \"\";\r\n }\r\n if (radius < innerRadius) {\r\n var temp = radius;\r\n radius = innerRadius;\r\n innerRadius = temp;\r\n if ($type.isNumber(radiusY)) {\r\n radiusY = radiusY / innerRadius * radius;\r\n }\r\n }\r\n arc = $math.min(arc, 360);\r\n if (arc == 360) {\r\n cornerRadius = 0;\r\n innerCornerRadius = 0;\r\n }\r\n var endAngle = startAngle + arc;\r\n var crSin = $math.sin($math.min(arc, 45) / 2);\r\n radiusY = $type.isNumber(radiusY) ? radiusY : radius;\r\n cornerRadius = cornerRadius || 0;\r\n innerCornerRadius = $type.isNumber(innerCornerRadius) ? innerCornerRadius : cornerRadius;\r\n var innerRadiusY = (radiusY / radius) * innerRadius;\r\n var cornerRadiusY = (radiusY / radius) * cornerRadius;\r\n var innerCornerRadiusY = (radiusY / radius) * innerCornerRadius;\r\n cornerRadius = $math.fitToRange(cornerRadius, 0, (radius - innerRadius) / 2);\r\n cornerRadiusY = $math.fitToRange(cornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n innerCornerRadius = $math.fitToRange(innerCornerRadius, 0, (radius - innerRadius) / 2);\r\n innerCornerRadiusY = $math.fitToRange(innerCornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n cornerRadius = $math.round($math.fitToRange(cornerRadius, 0, radius * crSin), 4);\r\n cornerRadiusY = $math.round($math.fitToRange(cornerRadiusY, 0, radiusY * crSin), 4);\r\n innerCornerRadius = $math.round($math.fitToRange(innerCornerRadius, 0, innerRadius * crSin), 4);\r\n innerCornerRadiusY = $math.round($math.fitToRange(innerCornerRadiusY, 0, innerRadiusY * crSin), 4);\r\n var crAngle = Math.asin(cornerRadius / radius / 2) * $math.DEGREES * 2;\r\n var crAngleY = Math.asin(cornerRadiusY / radiusY / 2) * $math.DEGREES * 2;\r\n if (innerRadius < innerCornerRadius) {\r\n innerRadius = innerCornerRadius;\r\n }\r\n if (innerRadiusY < innerCornerRadiusY) {\r\n innerRadiusY = innerCornerRadiusY;\r\n }\r\n var crInnerAngle = Math.asin(innerCornerRadius / innerRadius / 2) * $math.DEGREES * 2;\r\n var crInnerAngleY = Math.asin(innerCornerRadiusY / innerRadiusY / 2) * $math.DEGREES * 2;\r\n if (!$type.isNumber(crInnerAngle)) {\r\n crInnerAngle = 0;\r\n }\r\n if (!$type.isNumber(crInnerAngleY)) {\r\n crInnerAngleY = 0;\r\n }\r\n var middleAngle = startAngle + arc / 2;\r\n var mPoint = { x: $math.round($math.cos(middleAngle) * innerRadius, 4), y: $math.sin(middleAngle) * innerRadiusY };\r\n var a0 = { x: $math.cos(startAngle) * (innerRadius + innerCornerRadius), y: $math.sin(startAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n var b0 = { x: $math.cos(startAngle) * (radius - cornerRadius), y: $math.sin(startAngle) * (radiusY - cornerRadiusY) };\r\n var c0 = { x: $math.cos(endAngle) * (radius - cornerRadius), y: $math.sin(endAngle) * (radiusY - cornerRadiusY) };\r\n var d0 = { x: $math.cos(endAngle) * (innerRadius + innerCornerRadius), y: $math.sin(endAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n var b1 = { x: $math.cos(startAngle + crAngle) * radius, y: $math.sin(startAngle + crAngleY) * radiusY };\r\n var d1 = { x: $math.cos(endAngle - crInnerAngle) * innerRadius, y: $math.sin(endAngle - crInnerAngleY) * innerRadiusY };\r\n // some magic math\r\n innerCornerRadius += innerCornerRadius * $math.sin(crInnerAngle / 2);\r\n innerCornerRadiusY += innerCornerRadiusY * $math.sin(crInnerAngleY / 2);\r\n if (crInnerAngle > (endAngle - startAngle) / 2) {\r\n d1 = mPoint;\r\n }\r\n var path = \"\";\r\n // start from b if this is full circle\r\n if (arc == 360) {\r\n path = moveTo(b0);\r\n }\r\n // otherwise start from a\r\n else {\r\n path = moveTo(a0);\r\n path += lineTo(b0);\r\n path += arcToPoint(b1, cornerRadius, cornerRadiusY, true);\r\n }\r\n // draw arc\r\n path += arcTo(startAngle + crAngle, arc - 2 * crAngle, radius, radiusY);\r\n // draw inner arc\r\n if ($type.isNumber(innerRadius) && innerRadius != 0) {\r\n // move to B if this is full circle\r\n if (arc == 360 && cornerRadius == 0) {\r\n path += moveTo(d0);\r\n }\r\n // draw line otherwise\r\n else {\r\n path += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n path += lineTo(d0);\r\n path += arcToPoint(d1, innerCornerRadius, innerCornerRadiusY, true);\r\n }\r\n path += arcTo(endAngle - crInnerAngle, -(arc - 2 * crInnerAngle), innerRadius, innerRadiusY);\r\n if (arc < 360 || cornerRadius > 0) {\r\n path += arcToPoint(a0, innerCornerRadius, innerCornerRadiusY, true);\r\n }\r\n path += lineTo(a0);\r\n }\r\n else {\r\n path += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n if (arc < 360) {\r\n path += lineTo(a0);\r\n }\r\n }\r\n return path;\r\n}\r\n/**\r\n * Creates a path for an arc to specific coordinate.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param point Reference point\r\n * @param radius Radius\r\n * @param radiusY Vertical radius (for skewed arcs)\r\n * @param sweepFlag [description]\r\n * @param largeArcFlag [description]\r\n * @param xAxisRotation [description]\r\n * @return Arc path\r\n */\r\nexport function arcToPoint(point, radius, radiusY, sweepFlag, largeArcFlag, xAxisRotation) {\r\n if (radius == 0) {\r\n return \"\";\r\n }\r\n xAxisRotation = xAxisRotation || 0;\r\n largeArcFlag = Boolean(largeArcFlag);\r\n sweepFlag = Boolean(sweepFlag);\r\n var c = \",\";\r\n var sweepFlagValue = +sweepFlag; // converts to 1 or 0\r\n var largeArcFlagValue = +largeArcFlag; // converts to 1 or 0\r\n return \" A\" + radius + c + radiusY + c + xAxisRotation + c + largeArcFlagValue + c + sweepFlagValue + c + $math.round(point.x, 4) + c + $math.round(point.y, 4);\r\n}\r\n/**\r\n * Creates a new rectangle.\r\n *\r\n * @ignore Exclude from docs\r\n * @param width Width (px)\r\n * @param height Height (px)\r\n * @param x X position\r\n * @param y Y position\r\n * @return Rectangle\r\n */\r\nexport function rectangle(width, height, x, y) {\r\n if (!$type.isNumber(x)) {\r\n x = 0;\r\n }\r\n if (!$type.isNumber(y)) {\r\n y = 0;\r\n }\r\n return moveTo({ x: x, y: y }) + lineTo({ x: x + width, y: y }) + lineTo({ x: x + width, y: y + height }) + lineTo({ x: x, y: y + height }) + closePath();\r\n}\r\n/**\r\n * Converts a rectangle to an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rect Rectangle\r\n * @param ccw Counter-clockwise?\r\n * @return SVG path\r\n */\r\nexport function rectToPath(rect, ccw) {\r\n var c = \",\";\r\n var L = \" L\";\r\n if (ccw) {\r\n return \"M\" + rect.x\r\n + c + rect.y + L + rect.x\r\n + c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n + c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n + c + rect.y + L + rect.x\r\n + c + rect.y;\r\n }\r\n else {\r\n return \"M\" + rect.x\r\n + c + rect.y + L + (rect.x + rect.width)\r\n + c + rect.y + L + (rect.x + rect.width)\r\n + c + (rect.y + rect.height) + L + rect.x\r\n + c + (rect.y + rect.height) + L + rect.x\r\n + c + rect.y;\r\n }\r\n}\r\n/**\r\n * Converts SVG path to array of points.\r\n *\r\n * Note, this is experimental feature based on method which is deprecated\r\n * on some browsers and some browsers do not support it at all.\r\n *\r\n * You can save the output of this function, but not rely on it completely.\r\n */\r\nexport function pathToPoints(path, pointCount) {\r\n var paper = getGhostPaper();\r\n var svgPath = paper.add(\"path\").node;\r\n svgPath.setAttribute(\"d\", path);\r\n if (svgPath.getPointAtLength && svgPath.getTotalLength) {\r\n var length_1 = svgPath.getTotalLength();\r\n var toPoints = [];\r\n for (var i = 0; i < pointCount; i++) {\r\n var point = svgPath.getPointAtLength(i / pointCount * length_1);\r\n toPoints.push({ x: point.x, y: point.y });\r\n }\r\n return toPoints;\r\n }\r\n svgPath.remove();\r\n}\r\nexport function spiralPoints(cx, cy, radius, radiusY, innerRadius, step, radiusStep, startAngle, endAngle) {\r\n if (!$type.isNumber(startAngle)) {\r\n startAngle = 0;\r\n }\r\n if (!$type.isNumber(startAngle)) {\r\n endAngle = startAngle;\r\n }\r\n var r = innerRadius + 0.01;\r\n var angle = startAngle * $math.RADIANS;\r\n var points = [];\r\n while (r < radius + radiusStep) {\r\n var stepSize = step;\r\n if (stepSize / 2 > r) {\r\n stepSize = 2 * r;\r\n }\r\n angle += 2 * Math.asin(stepSize / 2 / r);\r\n if (angle * $math.DEGREES > endAngle + ((radius - innerRadius) / radiusStep) * 360) {\r\n break;\r\n }\r\n var degrees = angle * $math.DEGREES;\r\n var point = { x: cx + r * Math.cos(angle), y: cy + r * radiusY / radius * Math.sin(angle) };\r\n points.push(point);\r\n r = innerRadius + degrees / 360 * radiusStep;\r\n }\r\n points.shift();\r\n return points;\r\n}\r\nexport function pointsToPath(points) {\r\n if (!points || points.length == 0) {\r\n return \"\";\r\n }\r\n var path = moveTo(points[0]);\r\n if (points && points.length > 0) {\r\n for (var i = 1; i < points.length; i++) {\r\n path += lineTo(points[i]);\r\n }\r\n }\r\n return path;\r\n}\r\n//# sourceMappingURL=Path.js.map","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nvar PanelContent = function (_Component) {\n _inherits(PanelContent, _Component);\n\n function PanelContent() {\n _classCallCheck(this, PanelContent);\n\n return _possibleConstructorReturn(this, (PanelContent.__proto__ || Object.getPrototypeOf(PanelContent)).apply(this, arguments));\n }\n\n _createClass(PanelContent, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return this.props.forceRender || this.props.isActive || nextProps.isActive;\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n this._isActived = this.props.forceRender || this._isActived || this.props.isActive;\n if (!this._isActived) {\n return null;\n }\n var _props = this.props,\n prefixCls = _props.prefixCls,\n isActive = _props.isActive,\n children = _props.children,\n destroyInactivePanel = _props.destroyInactivePanel,\n forceRender = _props.forceRender,\n role = _props.role;\n\n var contentCls = classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-content', true), _defineProperty(_classnames, prefixCls + '-content-active', isActive), _defineProperty(_classnames, prefixCls + '-content-inactive', !isActive), _classnames));\n var child = !forceRender && !isActive && destroyInactivePanel ? null : React.createElement(\n 'div',\n { className: prefixCls + '-content-box' },\n children\n );\n return React.createElement(\n 'div',\n {\n className: contentCls,\n role: role\n },\n child\n );\n }\n }]);\n\n return PanelContent;\n}(Component);\n\nPanelContent.propTypes = {\n prefixCls: PropTypes.string,\n isActive: PropTypes.bool,\n children: PropTypes.any,\n destroyInactivePanel: PropTypes.bool,\n forceRender: PropTypes.bool,\n role: PropTypes.string\n};\n\nexport default PanelContent;","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport PanelContent from './PanelContent';\nimport Animate from 'rc-animate';\n\nvar CollapsePanel = function (_Component) {\n _inherits(CollapsePanel, _Component);\n\n function CollapsePanel() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, CollapsePanel);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CollapsePanel.__proto__ || Object.getPrototypeOf(CollapsePanel)).call.apply(_ref, [this].concat(args))), _this), _this.handleItemClick = function () {\n if (_this.props.onItemClick) {\n _this.props.onItemClick();\n }\n }, _this.handleKeyPress = function (e) {\n if (e.key === 'Enter' || e.keyCode === 13 || e.which === 13) {\n _this.handleItemClick();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(CollapsePanel, [{\n key: 'render',\n value: function render() {\n var _classNames2;\n\n var _props = this.props,\n className = _props.className,\n id = _props.id,\n style = _props.style,\n prefixCls = _props.prefixCls,\n header = _props.header,\n headerClass = _props.headerClass,\n children = _props.children,\n isActive = _props.isActive,\n showArrow = _props.showArrow,\n destroyInactivePanel = _props.destroyInactivePanel,\n disabled = _props.disabled,\n accordion = _props.accordion,\n forceRender = _props.forceRender;\n\n var headerCls = classNames(prefixCls + '-header', _defineProperty({}, headerClass, headerClass));\n var itemCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-item', true), _defineProperty(_classNames2, prefixCls + '-item-active', isActive), _defineProperty(_classNames2, prefixCls + '-item-disabled', disabled), _classNames2), className);\n return React.createElement(\n 'div',\n { className: itemCls, style: style, id: id },\n React.createElement(\n 'div',\n {\n className: headerCls,\n onClick: this.handleItemClick,\n role: accordion ? 'tab' : 'button',\n tabIndex: disabled ? -1 : 0,\n 'aria-expanded': '' + isActive,\n onKeyPress: this.handleKeyPress\n },\n showArrow && React.createElement('i', { className: 'arrow' }),\n header\n ),\n React.createElement(\n Animate,\n {\n showProp: 'isActive',\n exclusive: true,\n component: '',\n animation: this.props.openAnimation\n },\n React.createElement(\n PanelContent,\n {\n prefixCls: prefixCls,\n isActive: isActive,\n destroyInactivePanel: destroyInactivePanel,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : null\n },\n children\n )\n )\n );\n }\n }]);\n\n return CollapsePanel;\n}(Component);\n\nCollapsePanel.propTypes = {\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n id: PropTypes.string,\n children: PropTypes.any,\n openAnimation: PropTypes.object,\n prefixCls: PropTypes.string,\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n headerClass: PropTypes.string,\n showArrow: PropTypes.bool,\n isActive: PropTypes.bool,\n onItemClick: PropTypes.func,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool,\n disabled: PropTypes.bool,\n accordion: PropTypes.bool,\n forceRender: PropTypes.bool\n};\n\nCollapsePanel.defaultProps = {\n showArrow: true,\n isActive: false,\n destroyInactivePanel: false,\n onItemClick: function onItemClick() {},\n\n headerClass: '',\n forceRender: false\n};\n\nexport default CollapsePanel;","import cssAnimation from 'css-animation';\n\nfunction animate(node, show, transitionName, done) {\n var height = void 0;\n return cssAnimation(node, transitionName, {\n start: function start() {\n if (!show) {\n node.style.height = node.offsetHeight + 'px';\n } else {\n height = node.offsetHeight;\n node.style.height = 0;\n }\n },\n active: function active() {\n node.style.height = (show ? height : 0) + 'px';\n },\n end: function end() {\n node.style.height = '';\n done();\n }\n });\n}\n\nfunction animation(prefixCls) {\n return {\n enter: function enter(node, done) {\n return animate(node, true, prefixCls + '-anim', done);\n },\n leave: function leave(node, done) {\n return animate(node, false, prefixCls + '-anim', done);\n }\n };\n}\n\nexport default animation;","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport CollapsePanel from './Panel';\nimport openAnimationFactory from './openAnimationFactory';\nimport classNames from 'classnames';\n\nfunction toArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n currentActiveKey = currentActiveKey ? [currentActiveKey] : [];\n }\n return currentActiveKey;\n}\n\nvar Collapse = function (_Component) {\n _inherits(Collapse, _Component);\n\n function Collapse(props) {\n _classCallCheck(this, Collapse);\n\n var _this = _possibleConstructorReturn(this, (Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call(this, props));\n\n var _this$props = _this.props,\n activeKey = _this$props.activeKey,\n defaultActiveKey = _this$props.defaultActiveKey;\n\n var currentActiveKey = defaultActiveKey;\n if ('activeKey' in _this.props) {\n currentActiveKey = activeKey;\n }\n\n _this.state = {\n openAnimation: _this.props.openAnimation || openAnimationFactory(_this.props.prefixCls),\n activeKey: toArray(currentActiveKey)\n };\n return _this;\n }\n\n _createClass(Collapse, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('activeKey' in nextProps) {\n this.setState({\n activeKey: toArray(nextProps.activeKey)\n });\n }\n if ('openAnimation' in nextProps) {\n this.setState({\n openAnimation: nextProps.openAnimation\n });\n }\n }\n }, {\n key: 'onClickItem',\n value: function onClickItem(key) {\n var activeKey = this.state.activeKey;\n if (this.props.accordion) {\n activeKey = activeKey[0] === key ? [] : [key];\n } else {\n activeKey = [].concat(_toConsumableArray(activeKey));\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n // remove active state\n activeKey.splice(index, 1);\n } else {\n activeKey.push(key);\n }\n }\n this.setActiveKey(activeKey);\n }\n }, {\n key: 'getItems',\n value: function getItems() {\n var _this2 = this;\n\n var activeKey = this.state.activeKey;\n var _props = this.props,\n prefixCls = _props.prefixCls,\n accordion = _props.accordion,\n destroyInactivePanel = _props.destroyInactivePanel;\n\n var newChildren = [];\n\n Children.forEach(this.props.children, function (child, index) {\n if (!child) return;\n // If there is no key provide, use the panel order as default key\n var key = child.key || String(index);\n var _child$props = child.props,\n header = _child$props.header,\n headerClass = _child$props.headerClass,\n disabled = _child$props.disabled;\n\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n\n var props = {\n key: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: destroyInactivePanel,\n openAnimation: _this2.state.openAnimation,\n accordion: accordion,\n children: child.props.children,\n onItemClick: disabled ? null : function () {\n return _this2.onClickItem(key);\n }\n };\n\n newChildren.push(React.cloneElement(child, props));\n });\n\n return newChildren;\n }\n }, {\n key: 'setActiveKey',\n value: function setActiveKey(activeKey) {\n if (!('activeKey' in this.props)) {\n this.setState({ activeKey: activeKey });\n }\n this.props.onChange(this.props.accordion ? activeKey[0] : activeKey);\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n className = _props2.className,\n style = _props2.style,\n accordion = _props2.accordion;\n\n var collapseClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, className, !!className), _classNames));\n return React.createElement(\n 'div',\n { className: collapseClassName, style: style, role: accordion ? 'tablist' : null },\n this.getItems()\n );\n }\n }]);\n\n return Collapse;\n}(Component);\n\nCollapse.propTypes = {\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n defaultActiveKey: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n openAnimation: PropTypes.object,\n onChange: PropTypes.func,\n accordion: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool\n};\n\nCollapse.defaultProps = {\n prefixCls: 'rc-collapse',\n onChange: function onChange() {},\n\n accordion: false,\n destroyInactivePanel: false\n};\n\nCollapse.Panel = CollapsePanel;\n\nexport default Collapse;","import Collapse from './Collapse';\n\nexport default Collapse;\nexport var Panel = Collapse.Panel;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport RcCollapse, { Panel } from 'rc-collapse';\nimport * as React from 'react';\n\nvar Accordion = function (_React$Component) {\n _inherits(Accordion, _React$Component);\n\n function Accordion() {\n _classCallCheck(this, Accordion);\n\n return _possibleConstructorReturn(this, (Accordion.__proto__ || Object.getPrototypeOf(Accordion)).apply(this, arguments));\n }\n\n _createClass(Accordion, [{\n key: 'render',\n value: function render() {\n return React.createElement(RcCollapse, this.props);\n }\n }]);\n\n return Accordion;\n}(React.Component);\n\nexport default Accordion;\n\nAccordion.Panel = Panel;\nAccordion.defaultProps = {\n prefixCls: 'am-accordion'\n};","import _extends from \"babel-runtime/helpers/extends\";\nimport _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _createClass from \"babel-runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nimport React from 'react';\n\nvar LazyRenderBox = function (_React$Component) {\n _inherits(LazyRenderBox, _React$Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, (LazyRenderBox.__proto__ || Object.getPrototypeOf(LazyRenderBox)).apply(this, arguments));\n }\n\n _createClass(LazyRenderBox, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !!nextProps.hiddenClassName || !!nextProps.visible;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = this.props.className;\n if (!!this.props.hiddenClassName && !this.props.visible) {\n className += \" \" + this.props.hiddenClassName;\n }\n var props = _extends({}, this.props);\n delete props.hiddenClassName;\n delete props.visible;\n props.className = className;\n return React.createElement(\"div\", _extends({}, props));\n }\n }]);\n\n return LazyRenderBox;\n}(React.Component);\n\nexport default LazyRenderBox;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport Animate from 'rc-animate';\nimport LazyRenderBox from './LazyRenderBox';\nfunction noop() {}\n\nvar Dialog = function (_React$Component) {\n _inherits(Dialog, _React$Component);\n\n function Dialog() {\n _classCallCheck(this, Dialog);\n\n var _this = _possibleConstructorReturn(this, (Dialog.__proto__ || Object.getPrototypeOf(Dialog)).apply(this, arguments));\n\n _this.getDialogElement = function () {\n var props = _this.props;\n var closable = props.closable;\n var prefixCls = props.prefixCls;\n var footer = void 0;\n if (props.footer) {\n footer = React.createElement(\"div\", { className: prefixCls + '-footer', ref: function ref(el) {\n return _this.footerRef = el;\n } }, props.footer);\n }\n var header = void 0;\n if (props.title) {\n header = React.createElement(\"div\", { className: prefixCls + '-header', ref: function ref(el) {\n return _this.headerRef = el;\n } }, React.createElement(\"div\", { className: prefixCls + '-title' }, props.title));\n }\n var closer = void 0;\n if (closable) {\n closer = React.createElement(\"button\", { onClick: _this.close, \"aria-label\": \"Close\", className: prefixCls + '-close' }, React.createElement(\"span\", { className: prefixCls + '-close-x' }));\n }\n var transitionName = _this.getTransitionName();\n var dialogElement = React.createElement(LazyRenderBox, { key: \"dialog-element\", role: \"document\", ref: function ref(el) {\n return _this.dialogRef = el;\n }, style: props.style || {}, className: prefixCls + ' ' + (props.className || ''), visible: props.visible }, React.createElement(\"div\", { className: prefixCls + '-content' }, closer, header, React.createElement(\"div\", { className: prefixCls + '-body', style: props.bodyStyle, ref: function ref(el) {\n return _this.bodyRef = el;\n } }, props.children), footer));\n return React.createElement(Animate, { key: \"dialog\", showProp: \"visible\", onAppear: _this.onAnimateAppear, onLeave: _this.onAnimateLeave, transitionName: transitionName, component: \"\", transitionAppear: true }, dialogElement);\n };\n _this.onAnimateAppear = function () {\n document.body.style.overflow = 'hidden';\n };\n _this.onAnimateLeave = function () {\n document.body.style.overflow = '';\n if (_this.wrapRef) {\n _this.wrapRef.style.display = 'none';\n }\n if (_this.props.onAnimateLeave) {\n _this.props.onAnimateLeave();\n }\n if (_this.props.afterClose) {\n _this.props.afterClose();\n }\n };\n _this.close = function (e) {\n if (_this.props.onClose) {\n _this.props.onClose(e);\n }\n };\n _this.onMaskClick = function (e) {\n if (e.target === e.currentTarget) {\n _this.close(e);\n }\n };\n return _this;\n }\n\n _createClass(Dialog, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // fix: react@16 no dismissing animation\n document.body.style.overflow = '';\n if (this.wrapRef) {\n this.wrapRef.style.display = 'none';\n }\n }\n }, {\n key: 'getZIndexStyle',\n value: function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n }\n }, {\n key: 'getWrapStyle',\n value: function getWrapStyle() {\n var wrapStyle = this.props.wrapStyle || {};\n return _extends({}, this.getZIndexStyle(), wrapStyle);\n }\n }, {\n key: 'getMaskStyle',\n value: function getMaskStyle() {\n var maskStyle = this.props.maskStyle || {};\n return _extends({}, this.getZIndexStyle(), maskStyle);\n }\n }, {\n key: 'getMaskTransitionName',\n value: function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n }\n }, {\n key: 'getTransitionName',\n value: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n }\n }, {\n key: 'getMaskElement',\n value: function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, _extends({ style: this.getMaskStyle(), key: \"mask-element\", className: props.prefixCls + '-mask', hiddenClassName: props.prefixCls + '-mask-hidden', visible: props.visible }, props.maskProps));\n if (maskTransition) {\n maskElement = React.createElement(Animate, { key: \"mask\", showProp: \"visible\", transitionAppear: true, component: \"\", transitionName: maskTransition }, maskElement);\n }\n }\n return maskElement;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = this.props;\n var prefixCls = props.prefixCls,\n maskClosable = props.maskClosable;\n\n var style = this.getWrapStyle();\n if (props.visible) {\n style.display = null;\n }\n return React.createElement(\"div\", null, this.getMaskElement(), React.createElement(\"div\", _extends({ className: prefixCls + '-wrap ' + (props.wrapClassName || ''), ref: function ref(el) {\n return _this2.wrapRef = el;\n }, onClick: maskClosable ? this.onMaskClick : undefined, role: \"dialog\", \"aria-labelledby\": props.title, style: style }, props.wrapProps), this.getDialogElement()));\n }\n }]);\n\n return Dialog;\n}(React.Component);\n\nexport default Dialog;\n\nDialog.defaultProps = {\n afterClose: noop,\n className: '',\n mask: true,\n visible: false,\n closable: true,\n maskClosable: true,\n prefixCls: 'rmc-dialog',\n onClose: noop\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Dialog from './Dialog';\nfunction noop() {}\nvar IS_REACT_16 = !!ReactDOM.createPortal;\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar DialogWrap = function (_React$Component) {\n _inherits(DialogWrap, _React$Component);\n\n function DialogWrap() {\n _classCallCheck(this, DialogWrap);\n\n var _this = _possibleConstructorReturn(this, (DialogWrap.__proto__ || Object.getPrototypeOf(DialogWrap)).apply(this, arguments));\n\n _this.saveRef = function (node) {\n if (IS_REACT_16) {\n _this._component = node;\n }\n };\n _this.getComponent = function (visible) {\n var props = _extends({}, _this.props);\n ['visible', 'onAnimateLeave'].forEach(function (key) {\n if (props.hasOwnProperty(key)) {\n delete props[key];\n }\n });\n return React.createElement(Dialog, _extends({}, props, { visible: visible, onAnimateLeave: _this.removeContainer, ref: _this.saveRef }));\n };\n _this.removeContainer = function () {\n if (_this.container) {\n if (!IS_REACT_16) {\n ReactDOM.unmountComponentAtNode(_this.container);\n }\n _this.container.parentNode.removeChild(_this.container);\n _this.container = null;\n }\n };\n _this.getContainer = function () {\n if (!_this.container) {\n var container = document.createElement('div');\n var containerId = _this.props.prefixCls + '-container-' + new Date().getTime();\n container.setAttribute('id', containerId);\n document.body.appendChild(container);\n _this.container = container;\n }\n return _this.container;\n };\n return _this;\n }\n\n _createClass(DialogWrap, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.visible) {\n this.componentDidUpdate();\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(_ref) {\n var visible = _ref.visible;\n\n return !!(this.props.visible || visible);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.visible) {\n if (!IS_REACT_16) {\n this.renderDialog(false);\n } else {\n // TODO for react@16 createPortal animation\n this.removeContainer();\n }\n } else {\n this.removeContainer();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (!IS_REACT_16) {\n this.renderDialog(this.props.visible);\n }\n }\n }, {\n key: 'renderDialog',\n value: function renderDialog(visible) {\n ReactDOM.unstable_renderSubtreeIntoContainer(this, this.getComponent(visible), this.getContainer());\n }\n }, {\n key: 'render',\n value: function render() {\n if (!CAN_USE_DOM) {\n return null;\n }\n var visible = this.props.visible;\n\n if (IS_REACT_16 && (visible || this._component)) {\n return ReactDOM.createPortal(this.getComponent(visible), this.getContainer());\n }\n return null;\n }\n }]);\n\n return DialogWrap;\n}(React.Component);\n\nexport default DialogWrap;\n\nDialogWrap.defaultProps = {\n visible: false,\n prefixCls: 'rmc-dialog',\n onClose: noop\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar TouchFeedback = function (_React$Component) {\n _inherits(TouchFeedback, _React$Component);\n\n function TouchFeedback() {\n _classCallCheck(this, TouchFeedback);\n\n var _this = _possibleConstructorReturn(this, (TouchFeedback.__proto__ || Object.getPrototypeOf(TouchFeedback)).apply(this, arguments));\n\n _this.state = {\n active: false\n };\n _this.onTouchStart = function (e) {\n _this.triggerEvent('TouchStart', true, e);\n };\n _this.onTouchMove = function (e) {\n _this.triggerEvent('TouchMove', false, e);\n };\n _this.onTouchEnd = function (e) {\n _this.triggerEvent('TouchEnd', false, e);\n };\n _this.onTouchCancel = function (e) {\n _this.triggerEvent('TouchCancel', false, e);\n };\n _this.onMouseDown = function (e) {\n // pc simulate mobile\n _this.triggerEvent('MouseDown', true, e);\n };\n _this.onMouseUp = function (e) {\n _this.triggerEvent('MouseUp', false, e);\n };\n _this.onMouseLeave = function (e) {\n _this.triggerEvent('MouseLeave', false, e);\n };\n return _this;\n }\n\n _createClass(TouchFeedback, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.disabled && this.state.active) {\n this.setState({\n active: false\n });\n }\n }\n }, {\n key: 'triggerEvent',\n value: function triggerEvent(type, isActive, ev) {\n var eventType = 'on' + type;\n var children = this.props.children;\n\n if (children.props[eventType]) {\n children.props[eventType](ev);\n }\n if (isActive !== this.state.active) {\n this.setState({\n active: isActive\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n disabled = _props.disabled,\n activeClassName = _props.activeClassName,\n activeStyle = _props.activeStyle;\n\n var events = disabled ? undefined : {\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd,\n onTouchCancel: this.onTouchCancel,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n onMouseLeave: this.onMouseLeave\n };\n var child = React.Children.only(children);\n if (!disabled && this.state.active) {\n var _child$props = child.props,\n style = _child$props.style,\n className = _child$props.className;\n\n if (activeStyle !== false) {\n if (activeStyle) {\n style = _extends({}, style, activeStyle);\n }\n className = classNames(className, activeClassName);\n }\n return React.cloneElement(child, _extends({ className: className,\n style: style }, events));\n }\n return React.cloneElement(child, events);\n }\n }]);\n\n return TouchFeedback;\n}(React.Component);\n\nexport default TouchFeedback;\n\nTouchFeedback.defaultProps = {\n disabled: false\n};","export default (function (props) {\n return Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n});","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar Badge = function (_React$Component) {\n _inherits(Badge, _React$Component);\n\n function Badge() {\n _classCallCheck(this, Badge);\n\n return _possibleConstructorReturn(this, (Badge.__proto__ || Object.getPrototypeOf(Badge)).apply(this, arguments));\n }\n\n _createClass(Badge, [{\n key: 'render',\n value: function render() {\n var _classnames, _classnames2;\n\n // tslint:disable:prefer-const\n var _a = this.props,\n className = _a.className,\n prefixCls = _a.prefixCls,\n children = _a.children,\n text = _a.text,\n size = _a.size,\n overflowCount = _a.overflowCount,\n dot = _a.dot,\n corner = _a.corner,\n hot = _a.hot,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"children\", \"text\", \"size\", \"overflowCount\", \"dot\", \"corner\", \"hot\"]);\n overflowCount = overflowCount;\n text = typeof text === 'number' && text > overflowCount ? overflowCount + '+' : text;\n // dot mode don't need text\n if (dot) {\n text = '';\n }\n var scrollNumberCls = classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-dot', dot), _defineProperty(_classnames, prefixCls + '-dot-large', dot && size === 'large'), _defineProperty(_classnames, prefixCls + '-text', !dot && !corner), _defineProperty(_classnames, prefixCls + '-corner', corner), _defineProperty(_classnames, prefixCls + '-corner-large', corner && size === 'large'), _classnames));\n var badgeCls = classnames(prefixCls, className, (_classnames2 = {}, _defineProperty(_classnames2, prefixCls + '-not-a-wrapper', !children), _defineProperty(_classnames2, prefixCls + '-corner-wrapper', corner), _defineProperty(_classnames2, prefixCls + '-hot', !!hot), _defineProperty(_classnames2, prefixCls + '-corner-wrapper-large', corner && size === 'large'), _classnames2));\n return React.createElement(\n 'span',\n { className: badgeCls },\n children,\n (text || dot) &&\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'sup',\n _extends({ className: scrollNumberCls }, restProps),\n text\n )\n );\n }\n }]);\n\n return Badge;\n}(React.Component);\n\nexport default Badge;\n\nBadge.defaultProps = {\n prefixCls: 'am-badge',\n size: 'small',\n overflowCount: 99,\n dot: false,\n corner: false\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Dialog from 'rmc-dialog';\nimport TouchFeedback from 'rmc-feedback';\nimport getDataAttr from '../_util/getDataAttr';\nimport Badge from '../badge';\nvar NORMAL = 'NORMAL';\nvar SHARE = 'SHARE';\n// tslint:disable-next-line:no-empty\nfunction noop() {}\nvar queue = [];\nfunction createActionSheet(flag, config, callback) {\n var props = _extends({ prefixCls: 'am-action-sheet', cancelButtonText: '取消' }, config);\n var prefixCls = props.prefixCls,\n className = props.className,\n transitionName = props.transitionName,\n maskTransitionName = props.maskTransitionName,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === undefined ? true : _props$maskClosable;\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n queue.push(close);\n function close() {\n if (div) {\n ReactDOM.unmountComponentAtNode(div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n var index = queue.indexOf(close);\n if (index !== -1) {\n queue.splice(index, 1);\n }\n }\n }\n function cb(index) {\n var rowIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var res = callback(index, rowIndex);\n if (res && res.then) {\n res.then(function () {\n close();\n });\n } else {\n close();\n }\n }\n var title = props.title,\n message = props.message,\n options = props.options,\n destructiveButtonIndex = props.destructiveButtonIndex,\n cancelButtonIndex = props.cancelButtonIndex,\n cancelButtonText = props.cancelButtonText,\n _props$badges = props.badges,\n badges = _props$badges === undefined ? [] : _props$badges;\n\n var titleMsg = [title ? React.createElement(\n 'h3',\n { key: '0', className: prefixCls + '-title' },\n title\n ) : null, message ? React.createElement(\n 'div',\n { key: '1', className: prefixCls + '-message' },\n message\n ) : null];\n var children = null;\n var mode = 'normal';\n switch (flag) {\n case NORMAL:\n mode = 'normal';\n var normalOptions = options;\n var badgesMap = {};\n if (badges && badges.length > 0) {\n badges.forEach(function (element) {\n if (element.index >= 0) {\n badgesMap[element.index] = React.createElement(Badge, element);\n }\n });\n }\n children = React.createElement(\n 'div',\n getDataAttr(props),\n titleMsg,\n React.createElement(\n 'div',\n { className: prefixCls + '-button-list', role: 'group' },\n normalOptions.map(function (item, index) {\n var _classnames;\n\n var itemProps = {\n className: classnames(prefixCls + '-button-list-item', (_classnames = {}, _defineProperty(_classnames, prefixCls + '-destructive-button', destructiveButtonIndex === index), _defineProperty(_classnames, prefixCls + '-cancel-button', cancelButtonIndex === index), _classnames)),\n onClick: function onClick() {\n return cb(index);\n },\n role: 'button'\n };\n var bContent = React.createElement(\n 'div',\n itemProps,\n item\n );\n // 仅在设置徽标的情况下修改dom结构\n if (badgesMap[index]) {\n bContent = React.createElement(\n 'div',\n _extends({}, itemProps, { className: itemProps.className + ' ' + prefixCls + '-button-list-badge' }),\n React.createElement(\n 'span',\n { className: prefixCls + '-button-list-item-content' },\n item\n ),\n badgesMap[index]\n );\n }\n var bItem = React.createElement(\n TouchFeedback,\n { key: index, activeClassName: prefixCls + '-button-list-item-active' },\n bContent\n );\n if (cancelButtonIndex === index || destructiveButtonIndex === index) {\n bItem = React.createElement(\n TouchFeedback,\n { key: index, activeClassName: prefixCls + '-button-list-item-active' },\n React.createElement(\n 'div',\n itemProps,\n item,\n cancelButtonIndex === index ? React.createElement('span', { className: prefixCls + '-cancel-button-mask' }) : null\n )\n );\n }\n return bItem;\n })\n )\n );\n break;\n case SHARE:\n mode = 'share';\n var multipleLine = options.length && Array.isArray(options[0]) || false;\n var createList = function createList(item, index) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return React.createElement(\n 'div',\n { className: prefixCls + '-share-list-item', role: 'button', key: index, onClick: function onClick() {\n return cb(index, rowIndex);\n } },\n React.createElement(\n 'div',\n { className: prefixCls + '-share-list-item-icon' },\n item.icon\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-share-list-item-title' },\n item.title\n )\n );\n };\n children = React.createElement(\n 'div',\n getDataAttr(props),\n titleMsg,\n React.createElement(\n 'div',\n { className: prefixCls + '-share' },\n multipleLine ? options.map(function (item, index) {\n return React.createElement(\n 'div',\n { key: index, className: prefixCls + '-share-list' },\n item.map(function (ii, ind) {\n return createList(ii, ind, index);\n })\n );\n }) : React.createElement(\n 'div',\n { className: prefixCls + '-share-list' },\n options.map(function (item, index) {\n return createList(item, index);\n })\n ),\n React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-share-cancel-button-active' },\n React.createElement(\n 'div',\n { className: prefixCls + '-share-cancel-button', role: 'button', onClick: function onClick() {\n return cb(-1);\n } },\n cancelButtonText\n )\n )\n )\n );\n break;\n default:\n break;\n }\n var rootCls = classnames(prefixCls + '-' + mode, className);\n ReactDOM.render(React.createElement(\n Dialog,\n { visible: true, title: '', footer: '', prefixCls: prefixCls, className: rootCls, transitionName: transitionName || 'am-slide-up', maskTransitionName: maskTransitionName || 'am-fade', onClose: function onClose() {\n return cb(cancelButtonIndex || -1);\n }, maskClosable: maskClosable, wrapProps: props.wrapProps || {} },\n children\n ), div);\n return {\n close: close\n };\n}\nexport default {\n showActionSheetWithOptions: function showActionSheetWithOptions(config) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n createActionSheet(NORMAL, config, callback);\n },\n showShareActionSheetWithOptions: function showShareActionSheetWithOptions(config) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n createActionSheet(SHARE, config, callback);\n },\n close: function close() {\n queue.forEach(function (q) {\n return q();\n });\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar ActivityIndicator = function (_React$Component) {\n _inherits(ActivityIndicator, _React$Component);\n\n function ActivityIndicator() {\n _classCallCheck(this, ActivityIndicator);\n\n return _possibleConstructorReturn(this, (ActivityIndicator.__proto__ || Object.getPrototypeOf(ActivityIndicator)).apply(this, arguments));\n }\n\n _createClass(ActivityIndicator, [{\n key: 'render',\n value: function render() {\n var _classnames;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n animating = _props.animating,\n toast = _props.toast,\n size = _props.size,\n text = _props.text;\n\n var wrapClass = classnames(prefixCls, className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-lg', size === 'large'), _defineProperty(_classnames, prefixCls + '-sm', size === 'small'), _defineProperty(_classnames, prefixCls + '-toast', !!toast), _classnames));\n var spinnerClass = classnames(prefixCls + '-spinner', _defineProperty({}, prefixCls + '-spinner-lg', !!toast || size === 'large'));\n if (animating) {\n if (toast) {\n return React.createElement(\n 'div',\n { className: wrapClass },\n text ? React.createElement(\n 'div',\n { className: prefixCls + '-content' },\n React.createElement('span', { className: spinnerClass, 'aria-hidden': 'true' }),\n React.createElement(\n 'span',\n { className: prefixCls + '-toast' },\n text\n )\n ) : React.createElement(\n 'div',\n { className: prefixCls + '-content' },\n React.createElement('span', { className: spinnerClass, 'aria-label': 'Loading' })\n )\n );\n } else {\n return text ? React.createElement(\n 'div',\n { className: wrapClass },\n React.createElement('span', { className: spinnerClass, 'aria-hidden': 'true' }),\n React.createElement(\n 'span',\n { className: prefixCls + '-tip' },\n text\n )\n ) : React.createElement(\n 'div',\n { className: wrapClass },\n React.createElement('span', { className: spinnerClass, 'aria-label': 'loading' })\n );\n }\n } else {\n return null;\n }\n }\n }]);\n\n return ActivityIndicator;\n}(React.Component);\n\nexport default ActivityIndicator;\n\nActivityIndicator.defaultProps = {\n prefixCls: 'am-activity-indicator',\n animating: true,\n size: 'small',\n panelColor: 'rgba(34,34,34,0.6)',\n toast: false\n};","/* tslint:disable:max-line-length */\n// inspried by https://github.com/kisenka/svg-sprite-loader/blob/master/runtime/browser-sprite.js\n// Much simplified, do make sure run this after document ready\nvar svgSprite = function svgSprite(contents) {\n return '\\n \\n \\n ' + contents + '\\n \\n \\n';\n};\n// both minified by https://github.com/svg/svgo\nvar icons = {\n check: '',\n 'check-circle': '',\n 'check-circle-o': '',\n cross: '',\n 'cross-circle': '',\n 'cross-circle-o': '',\n // Todo: simplify direction to 2, use css transform\n left: '',\n right: '',\n down: '',\n up: '',\n loading: '',\n search: '',\n ellipsis: '',\n 'ellipsis-circle': '',\n 'exclamation-circle': '',\n 'info-circle': '',\n 'question-circle': '',\n voice: '',\n plus: '',\n minus: '',\n dislike: '',\n fail: '',\n success: ''\n};\nvar renderSvgSprite = function renderSvgSprite() {\n var symbols = Object.keys(icons).map(function (iconName) {\n var svgContent = icons[iconName].split('svg')[1];\n return '';\n }).join('');\n return svgSprite(symbols);\n};\nvar loadSprite = function loadSprite() {\n if (!document) {\n return;\n }\n var existing = document.getElementById('__ANTD_MOBILE_SVG_SPRITE_NODE__');\n var mountNode = document.body;\n if (!existing) {\n mountNode.insertAdjacentHTML('afterbegin', renderSvgSprite());\n }\n};\nexport default loadSprite;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport loadSprite from './loadSprite';\n\nvar Icon = function (_React$Component) {\n _inherits(Icon, _React$Component);\n\n function Icon() {\n _classCallCheck(this, Icon);\n\n return _possibleConstructorReturn(this, (Icon.__proto__ || Object.getPrototypeOf(Icon)).apply(this, arguments));\n }\n\n _createClass(Icon, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n loadSprite();\n }\n }, {\n key: 'render',\n value: function render() {\n var _a = this.props,\n type = _a.type,\n className = _a.className,\n size = _a.size,\n restProps = __rest(_a, [\"type\", \"className\", \"size\"]);\n var cls = classnames(className, 'am-icon', 'am-icon-' + type, 'am-icon-' + size);\n return React.createElement(\n 'svg',\n _extends({ className: cls }, restProps),\n React.createElement('use', { xlinkHref: '#' + type })\n );\n }\n }]);\n\n return Icon;\n}(React.Component);\n\nexport default Icon;\n\nIcon.defaultProps = {\n size: 'md'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport Icon from '../icon';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nfunction isString(str) {\n return typeof str === 'string';\n}\n// Insert one space between two chinese characters automatically.\nfunction insertSpace(child) {\n if (isString(child.type) && isTwoCNChar(child.props.children)) {\n return React.cloneElement(child, {}, child.props.children.split('').join(' '));\n }\n if (isString(child)) {\n if (isTwoCNChar(child)) {\n child = child.split('').join(' ');\n }\n return React.createElement(\n 'span',\n null,\n child\n );\n }\n return child;\n}\n\nvar Button = function (_React$Component) {\n _inherits(Button, _React$Component);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).apply(this, arguments));\n }\n\n _createClass(Button, [{\n key: 'render',\n value: function render() {\n var _classnames;\n\n var _a = this.props,\n children = _a.children,\n className = _a.className,\n prefixCls = _a.prefixCls,\n type = _a.type,\n size = _a.size,\n inline = _a.inline,\n disabled = _a.disabled,\n icon = _a.icon,\n loading = _a.loading,\n activeStyle = _a.activeStyle,\n activeClassName = _a.activeClassName,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"children\", \"className\", \"prefixCls\", \"type\", \"size\", \"inline\", \"disabled\", \"icon\", \"loading\", \"activeStyle\", \"activeClassName\", \"onClick\"]);\n var iconType = loading ? 'loading' : icon;\n var wrapCls = classnames(prefixCls, className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-primary', type === 'primary'), _defineProperty(_classnames, prefixCls + '-ghost', type === 'ghost'), _defineProperty(_classnames, prefixCls + '-warning', type === 'warning'), _defineProperty(_classnames, prefixCls + '-small', size === 'small'), _defineProperty(_classnames, prefixCls + '-inline', inline), _defineProperty(_classnames, prefixCls + '-disabled', disabled), _defineProperty(_classnames, prefixCls + '-loading', loading), _defineProperty(_classnames, prefixCls + '-icon', !!iconType), _classnames));\n var kids = React.Children.map(children, insertSpace);\n var iconEl = void 0;\n if (typeof iconType === 'string') {\n iconEl = React.createElement(Icon, { 'aria-hidden': 'true', type: iconType, size: size === 'small' ? 'xxs' : 'md', className: prefixCls + '-icon' });\n } else if (iconType) {\n var rawCls = iconType.props && iconType.props.className;\n var cls = classnames('am-icon', prefixCls + '-icon', size === 'small' ? 'am-icon-xxs' : 'am-icon-md');\n iconEl = React.cloneElement(iconType, {\n className: rawCls ? rawCls + ' ' + cls : cls\n });\n }\n // use div, button native is buggy @yiminghe\n return React.createElement(\n TouchFeedback\n // tslint:disable-next-line:jsx-no-multiline-js\n ,\n { activeClassName: activeClassName || (activeStyle ? prefixCls + '-active' : undefined), disabled: disabled, activeStyle: activeStyle },\n React.createElement(\n 'a',\n _extends({ role: 'button', className: wrapCls }, restProps, { onClick: disabled ? undefined : onClick, 'aria-disabled': disabled }),\n iconEl,\n kids\n )\n );\n }\n }]);\n\n return Button;\n}(React.Component);\n\nButton.defaultProps = {\n prefixCls: 'am-button',\n size: 'large',\n inline: false,\n disabled: false,\n loading: false,\n activeStyle: {}\n};\nexport default Button;","function _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport * as React from 'react';\nexport default function (ComposedComponent) {\n var _a;\n\n return _a =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_a, _React$Component);\n\n function _a() {\n var _this;\n\n _classCallCheck(this, _a);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_a).apply(this, arguments));\n\n _this.getValue = function () {\n var _this$props = _this.props,\n children = _this$props.children,\n selectedValue = _this$props.selectedValue;\n\n if (selectedValue && selectedValue.length) {\n return selectedValue;\n } else {\n if (!children) {\n return [];\n }\n\n return React.Children.map(children, function (c) {\n var cc = React.Children.toArray(c.children || c.props.children);\n return cc && cc[0] && cc[0].props.value;\n });\n }\n };\n\n _this.onChange = function (i, v, cb) {\n var value = _this.getValue().concat();\n\n value[i] = v;\n\n if (cb) {\n cb(value, i);\n }\n };\n\n _this.onValueChange = function (i, v) {\n _this.onChange(i, v, _this.props.onValueChange);\n };\n\n _this.onScrollChange = function (i, v) {\n _this.onChange(i, v, _this.props.onScrollChange);\n };\n\n return _this;\n }\n\n _createClass(_a, [{\n key: \"render\",\n value: function render() {\n return React.createElement(ComposedComponent, _extends({}, this.props, {\n getValue: this.getValue,\n onValueChange: this.onValueChange,\n onScrollChange: this.props.onScrollChange && this.onScrollChange\n }));\n }\n }]);\n\n return _a;\n }(React.Component), _a.defaultProps = {\n prefixCls: 'rmc-multi-picker',\n onValueChange: function onValueChange() {}\n }, _a;\n}\n;","function _extends() { _extends = Object.assign || 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); }\n\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport MultiPickerMixin from './MultiPickerMixin';\n\nvar MultiPicker = function MultiPicker(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n rootNativeProps = props.rootNativeProps,\n children = props.children,\n style = props.style;\n var selectedValue = props.getValue();\n var colElements = React.Children.map(children, function (col, i) {\n return React.cloneElement(col, {\n selectedValue: selectedValue[i],\n onValueChange: function onValueChange() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return props.onValueChange.apply(props, [i].concat(args));\n },\n onScrollChange: props.onScrollChange && function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return props.onScrollChange.apply(props, [i].concat(args));\n }\n });\n });\n return React.createElement(\"div\", _extends({}, rootNativeProps, {\n style: style,\n className: classnames(className, prefixCls)\n }), colElements);\n};\n\nexport default MultiPickerMixin(MultiPicker);","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport MultiPicker from 'rmc-picker/es/MultiPicker';\nimport Picker from 'rmc-picker/lib/Picker';\nimport defaultLocale from './locale/en_US';\nfunction getDaysInMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n}\nfunction pad(n) {\n return n < 10 ? '0' + n : n + '';\n}\nfunction cloneDate(date) {\n return new Date(+date);\n}\nfunction setMonth(date, month) {\n date.setDate(Math.min(date.getDate(), getDaysInMonth(new Date(date.getFullYear(), month))));\n date.setMonth(month);\n}\nvar DATETIME = 'datetime';\nvar DATE = 'date';\nvar TIME = 'time';\nvar MONTH = 'month';\nvar YEAR = 'year';\nvar ONE_DAY = 24 * 60 * 60 * 1000;\n\nvar DatePicker = function (_React$Component) {\n _inherits(DatePicker, _React$Component);\n\n function DatePicker() {\n _classCallCheck(this, DatePicker);\n\n var _this = _possibleConstructorReturn(this, (DatePicker.__proto__ || Object.getPrototypeOf(DatePicker)).apply(this, arguments));\n\n _this.state = {\n date: _this.props.date || _this.props.defaultDate\n };\n _this.getNewDate = function (values, index) {\n var value = parseInt(values[index], 10);\n var props = _this.props;\n var mode = props.mode;\n\n var newValue = cloneDate(_this.getDate());\n if (mode === DATETIME || mode === DATE || mode === YEAR || mode === MONTH) {\n switch (index) {\n case 0:\n newValue.setFullYear(value);\n break;\n case 1:\n setMonth(newValue, value);\n break;\n case 2:\n newValue.setDate(value);\n break;\n case 3:\n _this.setHours(newValue, value);\n break;\n case 4:\n newValue.setMinutes(value);\n break;\n case 5:\n _this.setAmPm(newValue, value);\n break;\n default:\n break;\n }\n } else if (mode === TIME) {\n switch (index) {\n case 0:\n _this.setHours(newValue, value);\n break;\n case 1:\n newValue.setMinutes(value);\n break;\n case 2:\n _this.setAmPm(newValue, value);\n break;\n default:\n break;\n }\n }\n return _this.clipDate(newValue);\n };\n _this.onValueChange = function (values, index) {\n var props = _this.props;\n var newValue = _this.getNewDate(values, index);\n if (!('date' in props)) {\n _this.setState({\n date: newValue\n });\n }\n if (props.onDateChange) {\n props.onDateChange(newValue);\n }\n if (props.onValueChange) {\n props.onValueChange(values, index);\n }\n };\n _this.onScrollChange = function (values, index) {\n var props = _this.props;\n if (props.onScrollChange) {\n var newValue = _this.getNewDate(values, index);\n props.onScrollChange(newValue, values, index);\n }\n };\n return _this;\n }\n\n _createClass(DatePicker, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('date' in nextProps) {\n this.setState({\n date: nextProps.date || nextProps.defaultDate\n });\n }\n }\n }, {\n key: 'setHours',\n value: function setHours(date, hour) {\n if (this.props.use12Hours) {\n var dh = date.getHours();\n var nhour = hour;\n nhour = dh >= 12 ? hour + 12 : hour;\n nhour = nhour >= 24 ? 0 : nhour; date.setHours(nhour);\n } else {\n date.setHours(hour);\n }\n }\n }, {\n key: 'setAmPm',\n value: function setAmPm(date, index) {\n if (index === 0) {\n date.setTime(+date - ONE_DAY / 2);\n } else {\n date.setTime(+date + ONE_DAY / 2);\n }\n }\n }, {\n key: 'getDefaultMinDate',\n value: function getDefaultMinDate() {\n if (!this.defaultMinDate) {\n this.defaultMinDate = new Date(2000, 1, 1, 0, 0, 0);\n }\n return this.defaultMinDate;\n }\n }, {\n key: 'getDefaultMaxDate',\n value: function getDefaultMaxDate() {\n if (!this.defaultMaxDate) {\n this.defaultMaxDate = new Date(2030, 1, 1, 23, 59, 59);\n }\n return this.defaultMaxDate;\n }\n }, {\n key: 'getDate',\n value: function getDate() {\n return this.clipDate(this.state.date || this.getDefaultMinDate());\n }\n \n }, {\n key: 'getValue',\n value: function getValue() {\n return this.getDate();\n }\n }, {\n key: 'getMinYear',\n value: function getMinYear() {\n return this.getMinDate().getFullYear();\n }\n }, {\n key: 'getMaxYear',\n value: function getMaxYear() {\n return this.getMaxDate().getFullYear();\n }\n }, {\n key: 'getMinMonth',\n value: function getMinMonth() {\n return this.getMinDate().getMonth();\n }\n }, {\n key: 'getMaxMonth',\n value: function getMaxMonth() {\n return this.getMaxDate().getMonth();\n }\n }, {\n key: 'getMinDay',\n value: function getMinDay() {\n return this.getMinDate().getDate();\n }\n }, {\n key: 'getMaxDay',\n value: function getMaxDay() {\n return this.getMaxDate().getDate();\n }\n }, {\n key: 'getMinHour',\n value: function getMinHour() {\n return this.getMinDate().getHours();\n }\n }, {\n key: 'getMaxHour',\n value: function getMaxHour() {\n return this.getMaxDate().getHours();\n }\n }, {\n key: 'getMinMinute',\n value: function getMinMinute() {\n return this.getMinDate().getMinutes();\n }\n }, {\n key: 'getMaxMinute',\n value: function getMaxMinute() {\n return this.getMaxDate().getMinutes();\n }\n }, {\n key: 'getMinDate',\n value: function getMinDate() {\n return this.props.minDate || this.getDefaultMinDate();\n }\n }, {\n key: 'getMaxDate',\n value: function getMaxDate() {\n return this.props.maxDate || this.getDefaultMaxDate();\n }\n }, {\n key: 'getDateData',\n value: function getDateData() {\n var _props = this.props,\n locale = _props.locale,\n formatMonth = _props.formatMonth,\n formatDay = _props.formatDay,\n mode = _props.mode;\n\n var date = this.getDate();\n var selYear = date.getFullYear();\n var selMonth = date.getMonth();\n var minDateYear = this.getMinYear();\n var maxDateYear = this.getMaxYear();\n var minDateMonth = this.getMinMonth();\n var maxDateMonth = this.getMaxMonth();\n var minDateDay = this.getMinDay();\n var maxDateDay = this.getMaxDay();\n var years = [];\n for (var i = minDateYear; i <= maxDateYear; i++) {\n years.push({\n value: i + '',\n label: i + locale.year + ''\n });\n }\n var yearCol = { key: 'year', props: { children: years } };\n if (mode === YEAR) {\n return [yearCol];\n }\n var months = [];\n var minMonth = 0;\n var maxMonth = 11;\n if (minDateYear === selYear) {\n minMonth = minDateMonth;\n }\n if (maxDateYear === selYear) {\n maxMonth = maxDateMonth;\n }\n for (var _i = minMonth; _i <= maxMonth; _i++) {\n var label = formatMonth ? formatMonth(_i, date) : _i + 1 + locale.month + '';\n months.push({\n value: _i + '',\n label: label\n });\n }\n var monthCol = { key: 'month', props: { children: months } };\n if (mode === MONTH) {\n return [yearCol, monthCol];\n }\n var days = [];\n var minDay = 1;\n var maxDay = getDaysInMonth(date);\n if (minDateYear === selYear && minDateMonth === selMonth) {\n minDay = minDateDay;\n }\n if (maxDateYear === selYear && maxDateMonth === selMonth) {\n maxDay = maxDateDay;\n }\n for (var _i2 = minDay; _i2 <= maxDay; _i2++) {\n var _label = formatDay ? formatDay(_i2, date) : _i2 + locale.day + '';\n days.push({\n value: _i2 + '',\n label: _label\n });\n }\n return [yearCol, monthCol, { key: 'day', props: { children: days } }];\n }\n }, {\n key: 'getDisplayHour',\n value: function getDisplayHour(rawHour) {\n if (this.props.use12Hours) {\n if (rawHour === 0) {\n rawHour = 12;\n }\n if (rawHour > 12) {\n rawHour -= 12;\n }\n return rawHour;\n }\n return rawHour;\n }\n }, {\n key: 'getTimeData',\n value: function getTimeData(date) {\n var _props2 = this.props,\n _props2$minHour = _props2.minHour,\n minHour = _props2$minHour === undefined ? 0 : _props2$minHour,\n _props2$maxHour = _props2.maxHour,\n maxHour = _props2$maxHour === undefined ? 23 : _props2$maxHour,\n _props2$minMinute = _props2.minMinute,\n minMinute = _props2$minMinute === undefined ? 0 : _props2$minMinute,\n _props2$maxMinute = _props2.maxMinute,\n maxMinute = _props2$maxMinute === undefined ? 59 : _props2$maxMinute;\n var _props3 = this.props,\n mode = _props3.mode,\n locale = _props3.locale,\n minuteStep = _props3.minuteStep,\n use12Hours = _props3.use12Hours;\n\n var minDateMinute = this.getMinMinute();\n var maxDateMinute = this.getMaxMinute();\n var minDateHour = this.getMinHour();\n var maxDateHour = this.getMaxHour();\n var hour = date.getHours();\n if (mode === DATETIME) {\n var year = date.getFullYear();\n var month = date.getMonth();\n var day = date.getDate();\n var minDateYear = this.getMinYear();\n var maxDateYear = this.getMaxYear();\n var minDateMonth = this.getMinMonth();\n var maxDateMonth = this.getMaxMonth();\n var minDateDay = this.getMinDay();\n var maxDateDay = this.getMaxDay();\n if (minDateYear === year && minDateMonth === month && minDateDay === day) {\n minHour = minDateHour;\n if (minDateHour === hour) {\n minMinute = minDateMinute;\n }\n }\n if (maxDateYear === year && maxDateMonth === month && maxDateDay === day) {\n maxHour = maxDateHour;\n if (maxDateHour === hour) {\n maxMinute = maxDateMinute;\n }\n }\n } else {\n minHour = minDateHour;\n if (minDateHour === hour) {\n minMinute = minDateMinute;\n }\n maxHour = maxDateHour;\n if (maxDateHour === hour) {\n maxMinute = maxDateMinute;\n }\n }\n var hours = [];\n if (minHour === 0 && maxHour === 0 || minHour !== 0 && maxHour !== 0) {\n minHour = this.getDisplayHour(minHour);\n } else if (minHour === 0 && use12Hours) {\n minHour = 1;\n hours.push({ value: '0', label: locale.hour ? '12' + locale.hour : '12' });\n }\n maxHour = this.getDisplayHour(maxHour);\n for (var i = minHour; i <= maxHour; i++) {\n hours.push({\n value: i + '',\n label: locale.hour ? i + locale.hour + '' : pad(i)\n });\n }\n var minutes = [];\n var selMinute = date.getMinutes();\n for (var _i3 = minMinute; _i3 <= maxMinute; _i3 += minuteStep) {\n minutes.push({\n value: _i3 + '',\n label: locale.minute ? _i3 + locale.minute + '' : pad(_i3)\n });\n if (selMinute > _i3 && selMinute < _i3 + minuteStep) {\n minutes.push({\n value: selMinute + '',\n label: locale.minute ? selMinute + locale.minute + '' : pad(selMinute)\n });\n }\n }\n var cols = [{ key: 'hours', props: { children: hours } }, { key: 'minutes', props: { children: minutes } }].concat(use12Hours ? [{\n key: 'ampm',\n props: { children: [{ value: '0', label: locale.am }, { value: '1', label: locale.pm }] }\n }] : []);\n return { cols: cols, selMinute: selMinute };\n }\n }, {\n key: 'clipDate',\n value: function clipDate(date) {\n var mode = this.props.mode;\n\n var minDate = this.getMinDate();\n var maxDate = this.getMaxDate();\n if (mode === DATETIME) {\n if (date < minDate) {\n return cloneDate(minDate);\n }\n if (date > maxDate) {\n return cloneDate(maxDate);\n }\n } else if (mode === DATE || mode === YEAR || mode === MONTH) {\n if (+date + ONE_DAY <= minDate) {\n return cloneDate(minDate);\n }\n if (date >= +maxDate + ONE_DAY) {\n return cloneDate(maxDate);\n }\n } else if (mode === TIME) {\n var maxHour = maxDate.getHours();\n var maxMinutes = maxDate.getMinutes();\n var minHour = minDate.getHours();\n var minMinutes = minDate.getMinutes();\n var hour = date.getHours();\n var minutes = date.getMinutes();\n if (hour < minHour || hour === minHour && minutes < minMinutes) {\n return cloneDate(minDate);\n }\n if (hour > maxHour || hour === maxHour && minutes > maxMinutes) {\n return cloneDate(maxDate);\n }\n }\n return date;\n }\n }, {\n key: 'getValueCols',\n value: function getValueCols() {\n var _props4 = this.props,\n mode = _props4.mode,\n use12Hours = _props4.use12Hours;\n\n var date = this.getDate();\n var cols = [];\n var value = [];\n if (mode === YEAR) {\n return {\n cols: this.getDateData(),\n value: [date.getFullYear() + '']\n };\n }\n if (mode === MONTH) {\n return {\n cols: this.getDateData(),\n value: [date.getFullYear() + '', date.getMonth() + '']\n };\n }\n if (mode === DATETIME || mode === DATE) {\n cols = this.getDateData();\n value = [date.getFullYear() + '', date.getMonth() + '', date.getDate() + ''];\n }\n if (mode === DATETIME || mode === TIME) {\n var time = this.getTimeData(date);\n cols = cols.concat(time.cols);\n var hour = date.getHours();\n var dtValue = [hour + '', time.selMinute + ''];\n var nhour = hour;\n if (use12Hours) {\n nhour = hour > 12 ? hour - 12 : hour;\n dtValue = [nhour + '', time.selMinute + '', (hour >= 12 ? 1 : 0) + ''];\n }\n value = value.concat(dtValue);\n }\n return {\n value: value,\n cols: cols\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _getValueCols = this.getValueCols(),\n value = _getValueCols.value,\n cols = _getValueCols.cols;\n\n var _props5 = this.props,\n disabled = _props5.disabled,\n pickerPrefixCls = _props5.pickerPrefixCls,\n prefixCls = _props5.prefixCls,\n rootNativeProps = _props5.rootNativeProps,\n className = _props5.className,\n style = _props5.style,\n itemStyle = _props5.itemStyle;\n\n var multiStyle = _extends({ flexDirection: 'row', alignItems: 'center' }, style);\n return React.createElement(MultiPicker, { style: multiStyle, rootNativeProps: rootNativeProps, className: className, prefixCls: prefixCls, selectedValue: value, onValueChange: this.onValueChange, onScrollChange: this.onScrollChange }, cols.map(function (p) {\n return React.createElement(Picker, { style: { flex: 1 }, key: p.key, disabled: disabled, prefixCls: pickerPrefixCls, itemStyle: itemStyle }, p.props.children.map(function (item) {\n return React.createElement(Picker.Item, { key: item.value, value: item.value }, item.label);\n }));\n }));\n }\n }]);\n\n return DatePicker;\n}(React.Component);\n\nDatePicker.defaultProps = {\n prefixCls: 'rmc-date-picker',\n pickerPrefixCls: 'rmc-picker',\n locale: defaultLocale,\n mode: DATE,\n disabled: false,\n minuteStep: 1,\n onDateChange: function onDateChange() {},\n\n use12Hours: false\n};\nexport default DatePicker;","export default {\n year: '',\n month: '',\n day: '',\n hour: '',\n minute: '',\n am: 'AM',\n pm: 'PM'\n};","export var Models;\n(function (Models) {\n var SelectType = void 0;\n (function (SelectType) {\n SelectType[SelectType[\"None\"] = 0] = \"None\";\n /** 单选 */\n SelectType[SelectType[\"Single\"] = 1] = \"Single\";\n /** 起/止 */\n SelectType[SelectType[\"All\"] = 2] = \"All\";\n /** 区间仅选择了 起 */\n SelectType[SelectType[\"Only\"] = 3] = \"Only\";\n /** 区间起 */\n SelectType[SelectType[\"Start\"] = 4] = \"Start\";\n /** 区间中 */\n SelectType[SelectType[\"Middle\"] = 5] = \"Middle\";\n /** 区间止 */\n SelectType[SelectType[\"End\"] = 6] = \"End\";\n })(SelectType = Models.SelectType || (Models.SelectType = {}));\n})(Models || (Models = {}));","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport DateTimePicker from 'rmc-date-picker';\n\nvar TimePicker = function (_React$PureComponent) {\n _inherits(TimePicker, _React$PureComponent);\n\n function TimePicker() {\n _classCallCheck(this, TimePicker);\n\n var _this = _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n\n _this.onDateChange = function (date) {\n var onValueChange = _this.props.onValueChange;\n\n onValueChange && onValueChange(date);\n };\n return _this;\n }\n\n TimePicker.prototype.getMinTime = function getMinTime(date) {\n var minDate = this.props.minDate;\n if (!date || date.getFullYear() > minDate.getFullYear() || date.getMonth() > minDate.getMonth() || date.getDate() > minDate.getDate()) {\n return TimePicker.defaultProps.minDate;\n }\n return minDate;\n };\n\n TimePicker.prototype.getMaxTime = function getMaxTime(date) {\n var maxDate = this.props.maxDate;\n if (!date || date.getFullYear() < maxDate.getFullYear() || date.getMonth() < maxDate.getMonth() || date.getDate() < maxDate.getDate()) {\n return TimePicker.defaultProps.maxDate;\n }\n return maxDate;\n };\n\n TimePicker.prototype.render = function render() {\n var _props = this.props,\n locale = _props.locale,\n title = _props.title,\n value = _props.value,\n defaultValue = _props.defaultValue,\n prefixCls = _props.prefixCls,\n pickerPrefixCls = _props.pickerPrefixCls,\n clientHeight = _props.clientHeight;\n\n var date = value || defaultValue || undefined;\n var height = clientHeight && clientHeight * 3 / 8 - 52 || Number.POSITIVE_INFINITY;\n return React.createElement(\n 'div',\n { className: 'time-picker' },\n React.createElement(\n 'div',\n { className: 'title' },\n title\n ),\n React.createElement(DateTimePicker, { prefixCls: prefixCls, pickerPrefixCls: pickerPrefixCls, style: {\n height: height > 164 || height < 0 ? 164 : height,\n overflow: 'hidden'\n }, mode: 'time', date: date, locale: locale, minDate: this.getMinTime(date), maxDate: this.getMaxTime(date), onDateChange: this.onDateChange, use12Hours: true })\n );\n };\n\n return TimePicker;\n}(React.PureComponent);\n\nexport default TimePicker;\n\nTimePicker.defaultProps = {\n minDate: new Date(0, 0, 0, 0, 0),\n maxDate: new Date(9999, 11, 31, 23, 59, 59),\n defaultValue: new Date(2000, 1, 1, 8)\n};","export var mergeDateTime = function mergeDateTime(date, time) {\n date = date || new Date();\n if (!time) return date;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());\n};\nexport var formatDate = function formatDate(date, format, locale) {\n var week = locale && locale.week;\n var o = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours(),\n 'm+': date.getMinutes(),\n 's+': date.getSeconds(),\n 'q+': Math.floor((date.getMonth() + 3) / 3),\n 'w+': week && week[date.getDay()],\n 'S': date.getMilliseconds()\n };\n if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));\n for (var k in o) {\n if (new RegExp('(' + k + ')').test(format)) {\n format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));\n }\n }\n return format;\n};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nexport function shallowEqual(objA, objB) {\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (var i = 0; i < keysA.length; i++) {\n if (exclude.indexOf(keysA[i]) >= 0) continue;\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { Models } from './date/DataTypes';\nimport { formatDate, shallowEqual } from './util';\nimport defaultLocale from './locale/zh_CN';\n\nvar DatePicker = function (_React$Component) {\n _inherits(DatePicker, _React$Component);\n\n function DatePicker(props) {\n _classCallCheck(this, DatePicker);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.visibleMonth = [];\n _this.getDateWithoutTime = function (date) {\n if (!date) return 0;\n return +new Date(date.getFullYear(), date.getMonth(), date.getDate());\n };\n _this.genWeekData = function (firstDate) {\n var minDateTime = _this.getDateWithoutTime(_this.props.minDate);\n var maxDateTime = _this.getDateWithoutTime(_this.props.maxDate) || Number.POSITIVE_INFINITY;\n var weeks = [];\n var nextMonth = _this.getMonthDate(firstDate, 1).firstDate;\n var currentDay = firstDate;\n var currentWeek = [];\n weeks.push(currentWeek);\n var startWeekday = currentDay.getDay();\n if (startWeekday > 0) {\n for (var i = 0; i < startWeekday; i++) {\n currentWeek.push({});\n }\n }\n while (currentDay < nextMonth) {\n if (currentWeek.length === 7) {\n currentWeek = [];\n weeks.push(currentWeek);\n }\n var dayOfMonth = currentDay.getDate();\n var tick = +currentDay;\n currentWeek.push({\n tick: tick,\n dayOfMonth: dayOfMonth,\n selected: Models.SelectType.None,\n isFirstOfMonth: dayOfMonth === 1,\n isLastOfMonth: false,\n outOfDate: tick < minDateTime || tick > maxDateTime\n });\n currentDay = new Date(currentDay.getTime() + 3600 * 24 * 1000);\n }\n currentWeek[currentWeek.length - 1].isLastOfMonth = true;\n return weeks;\n };\n _this.selectDateRange = function (startDate, endDate) {\n var clear = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$props = _this.props,\n getDateExtra = _this$props.getDateExtra,\n type = _this$props.type,\n onSelectHasDisableDate = _this$props.onSelectHasDisableDate;\n\n if (type === 'one') {\n endDate = undefined;\n }\n var time1 = _this.getDateWithoutTime(startDate),\n time2 = _this.getDateWithoutTime(endDate);\n var startDateTick = !time2 || time1 < time2 ? time1 : time2;\n var endDateTick = time2 && time1 > time2 ? time1 : time2;\n var startMonthDate = _this.getMonthDate(new Date(startDateTick)).firstDate;\n var endMonthDate = endDateTick ? new Date(endDateTick) : _this.getMonthDate(new Date(startDateTick)).lastDate;\n var unuseable = [],\n needUpdate = false;\n _this.state.months.filter(function (m) {\n return m.firstDate >= startMonthDate && m.firstDate <= endMonthDate;\n }).forEach(function (m) {\n m.weeks.forEach(function (w) {\n return w.filter(function (d) {\n if (!endDateTick) {\n return d.tick && _this.inDate(startDateTick, d.tick);\n } else {\n return d.tick && d.tick >= startDateTick && d.tick <= endDateTick;\n }\n }).forEach(function (d) {\n var oldValue = d.selected;\n if (clear) {\n d.selected = Models.SelectType.None;\n } else {\n var info = getDateExtra && getDateExtra(new Date(d.tick)) || {};\n if (d.outOfDate || info.disable) {\n unuseable.push(d.tick);\n }\n if (_this.inDate(startDateTick, d.tick)) {\n if (type === 'one') {\n d.selected = Models.SelectType.Single;\n } else if (!endDateTick) {\n d.selected = Models.SelectType.Only;\n } else if (startDateTick !== endDateTick) {\n d.selected = Models.SelectType.Start;\n } else {\n d.selected = Models.SelectType.All;\n }\n } else if (_this.inDate(endDateTick, d.tick)) {\n d.selected = Models.SelectType.End;\n } else {\n d.selected = Models.SelectType.Middle;\n }\n }\n needUpdate = needUpdate || d.selected !== oldValue;\n });\n });\n if (needUpdate && m.componentRef) {\n m.componentRef.updateWeeks();\n m.componentRef.forceUpdate();\n }\n ;\n });\n if (unuseable.length > 0) {\n if (onSelectHasDisableDate) {\n onSelectHasDisableDate(unuseable.map(function (tick) {\n return new Date(tick);\n }));\n } else {\n console.warn('Unusable date. You can handle by onSelectHasDisableDate.', unuseable);\n }\n }\n };\n _this.computeVisible = function (clientHeight, scrollTop) {\n var needUpdate = false;\n var MAX_VIEW_PORT = clientHeight * 2;\n var MIN_VIEW_PORT = clientHeight;\n // 大缓冲区外过滤规则\n var filterFunc = function filterFunc(vm) {\n return vm.y && vm.height && vm.y + vm.height > scrollTop - MAX_VIEW_PORT && vm.y < scrollTop + clientHeight + MAX_VIEW_PORT;\n };\n if (_this.props.infiniteOpt && _this.visibleMonth.length > 12) {\n _this.visibleMonth = _this.visibleMonth.filter(filterFunc).sort(function (a, b) {\n return +a.firstDate - +b.firstDate;\n });\n }\n // 当小缓冲区不满时填充\n if (_this.visibleMonth.length > 0) {\n var last = _this.visibleMonth[_this.visibleMonth.length - 1];\n if (last.y !== undefined && last.height && last.y + last.height < scrollTop + clientHeight + MIN_VIEW_PORT) {\n var lastIndex = _this.state.months.indexOf(last);\n for (var i = 1; i <= 2; i++) {\n var index = lastIndex + i;\n if (index < _this.state.months.length && _this.visibleMonth.indexOf(_this.state.months[index]) < 0) {\n _this.visibleMonth.push(_this.state.months[index]);\n } else {\n _this.canLoadNext() && _this.genMonthData(undefined, 1);\n }\n }\n needUpdate = true;\n }\n var first = _this.visibleMonth[0];\n if (first.y !== undefined && first.height && first.y > scrollTop - MIN_VIEW_PORT) {\n var firstIndex = _this.state.months.indexOf(first);\n for (var _i = 1; _i <= 2; _i++) {\n var _index = firstIndex - _i;\n if (_index >= 0 && _this.visibleMonth.indexOf(_this.state.months[_index]) < 0) {\n _this.visibleMonth.unshift(_this.state.months[_index]);\n needUpdate = true;\n }\n }\n }\n } else if (_this.state.months.length > 0) {\n _this.visibleMonth = _this.state.months.filter(filterFunc);\n needUpdate = true;\n }\n return needUpdate;\n };\n _this.createOnScroll = function () {\n var timer = void 0;\n var clientHeight = 0,\n scrollTop = 0;\n return function (data) {\n var client = data.client,\n top = data.top;\n\n clientHeight = client;\n scrollTop = top;\n if (timer) {\n return;\n }\n timer = setTimeout(function () {\n timer = undefined;\n if (_this.computeVisible(clientHeight, scrollTop)) {\n _this.forceUpdate();\n }\n }, 64);\n };\n };\n _this.onCellClick = function (day) {\n if (!day.tick) return;\n _this.props.onCellClick && _this.props.onCellClick(new Date(day.tick));\n };\n _this.state = {\n months: []\n };\n return _this;\n }\n\n DatePicker.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {\n return !shallowEqual(this.props, nextProps, ['startDate', 'endDate']) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);\n };\n\n DatePicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var oldValue = this.props;\n var newValue = nextProps;\n if (oldValue.startDate !== newValue.startDate || oldValue.endDate !== newValue.endDate) {\n if (oldValue.startDate) {\n this.selectDateRange(oldValue.startDate, oldValue.endDate, true);\n }\n if (newValue.startDate) {\n this.selectDateRange(newValue.startDate, newValue.endDate);\n }\n }\n };\n\n DatePicker.prototype.componentWillMount = function componentWillMount() {\n var _props = this.props,\n _props$initalMonths = _props.initalMonths,\n initalMonths = _props$initalMonths === undefined ? 6 : _props$initalMonths,\n defaultDate = _props.defaultDate;\n\n for (var i = 0; i < initalMonths; i++) {\n this.canLoadNext() && this.genMonthData(defaultDate, i);\n }\n this.visibleMonth = [].concat(this.state.months);\n };\n\n DatePicker.prototype.getMonthDate = function getMonthDate() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n var addMonth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var y = date.getFullYear(),\n m = date.getMonth();\n return {\n firstDate: new Date(y, m + addMonth, 1),\n lastDate: new Date(y, m + 1 + addMonth, 0)\n };\n };\n\n DatePicker.prototype.canLoadPrev = function canLoadPrev() {\n var minDate = this.props.minDate;\n\n return !minDate || this.state.months.length <= 0 || +this.getMonthDate(minDate).firstDate < +this.state.months[0].firstDate;\n };\n\n DatePicker.prototype.canLoadNext = function canLoadNext() {\n var maxDate = this.props.maxDate;\n\n return !maxDate || this.state.months.length <= 0 || +this.getMonthDate(maxDate).firstDate > +this.state.months[this.state.months.length - 1].firstDate;\n };\n\n DatePicker.prototype.genMonthData = function genMonthData(date) {\n var addMonth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (!date) {\n date = addMonth >= 0 ? this.state.months[this.state.months.length - 1].firstDate : this.state.months[0].firstDate;\n }\n if (!date) {\n date = new Date();\n }\n var locale = this.props.locale;\n\n var _getMonthDate = this.getMonthDate(date, addMonth),\n firstDate = _getMonthDate.firstDate,\n lastDate = _getMonthDate.lastDate;\n\n var weeks = this.genWeekData(firstDate);\n var title = formatDate(firstDate, locale ? locale.monthTitle : 'yyyy/MM', this.props.locale);\n var data = {\n title: title,\n firstDate: firstDate,\n lastDate: lastDate,\n weeks: weeks\n };\n data.component = this.genMonthComponent(data);\n if (addMonth >= 0) {\n this.state.months.push(data);\n } else {\n this.state.months.unshift(data);\n }\n var _props2 = this.props,\n startDate = _props2.startDate,\n endDate = _props2.endDate;\n\n if (startDate) {\n this.selectDateRange(startDate, endDate);\n }\n return data;\n };\n\n DatePicker.prototype.inDate = function inDate(date, tick) {\n return date <= tick && tick < date + 24 * 3600000;\n };\n\n return DatePicker;\n}(React.Component);\n\nexport default DatePicker;\n\nDatePicker.defaultProps = {\n prefixCls: 'rmc-calendar',\n infinite: false,\n infiniteOpt: false,\n defaultDate: new Date(),\n initalMonths: 6,\n locale: defaultLocale\n};","import _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nimport * as React from 'react';\n\nvar WeekPanel = function (_React$PureComponent) {\n _inherits(WeekPanel, _React$PureComponent);\n\n function WeekPanel(props) {\n _classCallCheck(this, WeekPanel);\n\n return _possibleConstructorReturn(this, _React$PureComponent.call(this, props));\n }\n\n WeekPanel.prototype.render = function render() {\n var locale = this.props.locale;\n var week = locale.week;\n\n return React.createElement(\n \"div\",\n { className: \"week-panel\" },\n React.createElement(\n \"div\",\n { className: \"cell cell-grey\" },\n week[0]\n ),\n React.createElement(\n \"div\",\n { className: \"cell\" },\n week[1]\n ),\n React.createElement(\n \"div\",\n { className: \"cell\" },\n week[2]\n ),\n React.createElement(\n \"div\",\n { className: \"cell\" },\n week[3]\n ),\n React.createElement(\n \"div\",\n { className: \"cell\" },\n week[4]\n ),\n React.createElement(\n \"div\",\n { className: \"cell\" },\n week[5]\n ),\n React.createElement(\n \"div\",\n { className: \"cell cell-grey\" },\n week[6]\n )\n );\n };\n\n return WeekPanel;\n}(React.PureComponent);\n\nexport default WeekPanel;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { Models } from './DataTypes';\n\nvar SingleMonth = function (_React$PureComponent) {\n _inherits(SingleMonth, _React$PureComponent);\n\n function SingleMonth(props) {\n _classCallCheck(this, SingleMonth);\n\n var _this = _possibleConstructorReturn(this, _React$PureComponent.call(this, props));\n\n _this.genWeek = function (weeksData, index) {\n var _this$props = _this.props,\n getDateExtra = _this$props.getDateExtra,\n monthData = _this$props.monthData,\n onCellClick = _this$props.onCellClick,\n locale = _this$props.locale,\n rowSize = _this$props.rowSize;\n\n var rowCls = 'row';\n if (rowSize === 'xl') {\n rowCls += ' row-xl';\n }\n _this.state.weekComponents[index] = React.createElement(\n 'div',\n { key: index, className: rowCls },\n weeksData.map(function (day, dayOfWeek) {\n var extra = getDateExtra && getDateExtra(new Date(day.tick)) || {};\n var info = extra.info;\n var disable = extra.disable || day.outOfDate;\n var cls = 'date';\n var lCls = 'left';\n var rCls = 'right';\n var infoCls = 'info';\n if (dayOfWeek === 0 || dayOfWeek === 6) {\n cls += ' grey';\n }\n if (disable) {\n cls += ' disable';\n } else if (info) {\n cls += ' important';\n }\n if (day.selected) {\n cls += ' date-selected';\n var styleType = day.selected;\n switch (styleType) {\n case Models.SelectType.Only:\n info = locale.begin;\n infoCls += ' date-selected';\n break;\n case Models.SelectType.All:\n info = locale.begin_over;\n infoCls += ' date-selected';\n break;\n case Models.SelectType.Start:\n info = locale.begin;\n infoCls += ' date-selected';\n if (dayOfWeek === 6 || day.isLastOfMonth) {\n styleType = Models.SelectType.All;\n }\n break;\n case Models.SelectType.Middle:\n if (dayOfWeek === 0 || day.isFirstOfMonth) {\n if (day.isLastOfMonth || dayOfWeek === 6) {\n styleType = Models.SelectType.All;\n } else {\n styleType = Models.SelectType.Start;\n }\n } else if (dayOfWeek === 6 || day.isLastOfMonth) {\n styleType = Models.SelectType.End;\n }\n break;\n case Models.SelectType.End:\n info = locale.over;\n infoCls += ' date-selected';\n if (dayOfWeek === 0 || day.isFirstOfMonth) {\n styleType = Models.SelectType.All;\n }\n break;\n }\n switch (styleType) {\n case Models.SelectType.Single:\n case Models.SelectType.Only:\n case Models.SelectType.All:\n cls += ' selected-single';\n break;\n case Models.SelectType.Start:\n cls += ' selected-start';\n rCls += ' date-selected';\n break;\n case Models.SelectType.Middle:\n cls += ' selected-middle';\n lCls += ' date-selected';\n rCls += ' date-selected';\n break;\n case Models.SelectType.End:\n cls += ' selected-end';\n lCls += ' date-selected';\n break;\n }\n }\n var defaultContent = [React.createElement(\n 'div',\n { key: 'wrapper', className: 'date-wrapper' },\n React.createElement('span', { className: lCls }),\n React.createElement(\n 'div',\n { className: cls },\n day.dayOfMonth\n ),\n React.createElement('span', { className: rCls })\n ), React.createElement(\n 'div',\n { key: 'info', className: infoCls },\n info\n )];\n return React.createElement(\n 'div',\n { key: dayOfWeek, className: 'cell ' + (extra.cellCls || ''), onClick: function onClick() {\n !disable && onCellClick && onCellClick(day, monthData);\n } },\n extra.cellRender ? extra.cellRender(new Date(day.tick)) : defaultContent\n );\n })\n );\n };\n _this.updateWeeks = function (monthData) {\n (monthData || _this.props.monthData).weeks.forEach(function (week, index) {\n _this.genWeek(week, index);\n });\n };\n _this.setWarpper = function (dom) {\n _this.wrapperDivDOM = dom;\n };\n _this.state = {\n weekComponents: []\n };\n return _this;\n }\n\n SingleMonth.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n this.props.monthData.weeks.forEach(function (week, index) {\n _this2.genWeek(week, index);\n });\n };\n\n SingleMonth.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.monthData !== nextProps.monthData) {\n this.updateWeeks(nextProps.monthData);\n }\n };\n\n SingleMonth.prototype.render = function render() {\n var title = this.props.monthData.title;\n var weekComponents = this.state.weekComponents;\n\n return React.createElement(\n 'div',\n { className: 'single-month', ref: this.setWarpper },\n React.createElement(\n 'div',\n { className: 'month-title' },\n title\n ),\n React.createElement(\n 'div',\n { className: 'date' },\n weekComponents\n )\n );\n };\n\n return SingleMonth;\n}(React.PureComponent);\n\nexport default SingleMonth;\n\nSingleMonth.defaultProps = {\n rowSize: 'normal'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport Component from './DatePicker.base';\nimport WeekPanel from './date/WeekPanel';\nimport SingleMonth from './date/SingleMonth';\n\nvar DatePicker = function (_Component) {\n _inherits(DatePicker, _Component);\n\n function DatePicker() {\n _classCallCheck(this, DatePicker);\n\n var _this = _possibleConstructorReturn(this, _Component.apply(this, arguments));\n\n _this.transform = '';\n _this.genMonthComponent = function (data) {\n if (!data) return;\n return React.createElement(SingleMonth, { key: data.title, locale: _this.props.locale || {}, monthData: data, rowSize: _this.props.rowSize, onCellClick: _this.onCellClick, getDateExtra: _this.props.getDateExtra, ref: function ref(dom) {\n // FIXME?: sometimes will callback twice, and the second is null, when use preact.\n data.componentRef = dom || data.componentRef || undefined;\n data.updateLayout = function () {\n _this.computeHeight(data, dom);\n };\n data.updateLayout();\n } });\n };\n _this.computeHeight = function (data, singleMonth) {\n if (singleMonth && singleMonth.wrapperDivDOM) {\n // preact, ref时dom有可能无height, offsetTop数据。\n if (!data.height && !singleMonth.wrapperDivDOM.clientHeight) {\n setTimeout(function () {\n return _this.computeHeight(data, singleMonth);\n }, 500);\n return;\n }\n data.height = singleMonth.wrapperDivDOM.clientHeight || data.height || 0;\n data.y = singleMonth.wrapperDivDOM.offsetTop || data.y || 0;\n }\n };\n _this.setLayout = function (dom) {\n if (dom) {\n var onLayout = _this.props.onLayout;\n\n onLayout && onLayout(dom.clientHeight);\n var scrollHandler = _this.createOnScroll();\n dom.onscroll = function (evt) {\n scrollHandler({\n client: dom.clientHeight,\n full: evt.currentTarget.clientHeight,\n top: evt.currentTarget.scrollTop\n });\n };\n }\n };\n _this.setPanel = function (dom) {\n _this.panel = dom;\n };\n // tslint:disable-next-line:member-ordering\n _this.touchHandler = function () {\n var initDelta = 0;\n var lastY = 0;\n var delta = initDelta;\n return {\n onTouchStart: function onTouchStart(evt) {\n lastY = evt.touches[0].screenY;\n delta = initDelta;\n },\n onTouchMove: function onTouchMove(evt) {\n var ele = evt.currentTarget;\n var isReachTop = ele.scrollTop === 0;\n if (isReachTop) {\n delta = evt.touches[0].screenY - lastY;\n if (delta > 0) {\n evt.preventDefault();\n if (delta > 80) {\n delta = 80;\n }\n } else {\n delta = 0;\n }\n _this.setTransform(_this.panel.style, 'translate3d(0,' + delta + 'px,0)');\n }\n },\n onTouchEnd: function onTouchEnd() {\n _this.touchHandler.onFinish();\n },\n onTouchCancel: function onTouchCancel() {\n _this.touchHandler.onFinish();\n },\n onFinish: function onFinish() {\n if (delta > 40 && _this.canLoadPrev()) {\n _this.genMonthData(_this.state.months[0].firstDate, -1);\n _this.visibleMonth = _this.state.months.slice(0, _this.props.initalMonths);\n _this.state.months.forEach(function (m) {\n m.updateLayout && m.updateLayout();\n });\n _this.forceUpdate();\n }\n _this.setTransform(_this.panel.style, 'translate3d(0,0,0)');\n _this.setTransition(_this.panel.style, '.3s');\n setTimeout(function () {\n _this.panel && _this.setTransition(_this.panel.style, '');\n }, 300);\n }\n };\n }();\n return _this;\n }\n\n DatePicker.prototype.setTransform = function setTransform(nodeStyle, value) {\n this.transform = value;\n nodeStyle.transform = value;\n nodeStyle.webkitTransform = value;\n };\n\n DatePicker.prototype.setTransition = function setTransition(nodeStyle, value) {\n nodeStyle.transition = value;\n nodeStyle.webkitTransition = value;\n };\n\n DatePicker.prototype.render = function render() {\n var _this2 = this;\n\n var _props = this.props,\n _props$prefixCls = _props.prefixCls,\n prefixCls = _props$prefixCls === undefined ? '' : _props$prefixCls,\n _props$locale = _props.locale,\n locale = _props$locale === undefined ? {} : _props$locale;\n\n var style = {\n transform: this.transform\n };\n return React.createElement(\n 'div',\n { className: prefixCls + ' date-picker' },\n React.createElement(WeekPanel, { locale: locale }),\n React.createElement(\n 'div',\n { className: 'wrapper', style: {\n overflowX: 'hidden',\n overflowY: 'visible'\n }, ref: this.setLayout, onTouchStart: this.touchHandler.onTouchStart, onTouchMove: this.touchHandler.onTouchMove, onTouchEnd: this.touchHandler.onTouchEnd, onTouchCancel: this.touchHandler.onTouchCancel },\n React.createElement(\n 'div',\n { style: style, ref: this.setPanel },\n this.canLoadPrev() && React.createElement(\n 'div',\n { className: 'load-tip' },\n locale.loadPrevMonth\n ),\n React.createElement(\n 'div',\n { className: 'months' },\n this.state.months.map(function (m) {\n var hidden = m.height && _this2.visibleMonth.indexOf(m) < 0;\n if (hidden) {\n return React.createElement('div', { key: m.title + '_shallow', style: { height: m.height } });\n }\n return m.component;\n })\n )\n )\n )\n );\n };\n\n return DatePicker;\n}(Component);\n\nexport default DatePicker;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { formatDate as _formatDate } from '../util';\n\nvar ConfirmPanel = function (_React$PureComponent) {\n _inherits(ConfirmPanel, _React$PureComponent);\n\n function ConfirmPanel() {\n _classCallCheck(this, ConfirmPanel);\n\n var _this = _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n\n _this.onConfirm = function () {\n var _this$props = _this.props,\n onConfirm = _this$props.onConfirm,\n disableBtn = _this$props.disableBtn;\n\n !disableBtn && onConfirm();\n };\n return _this;\n }\n\n ConfirmPanel.prototype.formatDate = function formatDate(date) {\n var _props = this.props,\n _props$formatStr = _props.formatStr,\n formatStr = _props$formatStr === undefined ? '' : _props$formatStr,\n locale = _props.locale;\n\n return _formatDate(date, formatStr, locale);\n };\n\n ConfirmPanel.prototype.render = function render() {\n var _props2 = this.props,\n type = _props2.type,\n locale = _props2.locale,\n disableBtn = _props2.disableBtn;\n var _props3 = this.props,\n startDateTime = _props3.startDateTime,\n endDateTime = _props3.endDateTime;\n\n if (startDateTime && endDateTime && +startDateTime > +endDateTime) {\n var tmp = startDateTime;\n startDateTime = endDateTime;\n endDateTime = tmp;\n }\n var startTimeStr = startDateTime ? this.formatDate(startDateTime) : locale.noChoose;\n var endTimeStr = endDateTime ? this.formatDate(endDateTime) : locale.noChoose;\n var btnCls = disableBtn ? 'button button-disable' : 'button';\n if (type === 'one') {\n btnCls += ' button-full';\n }\n return React.createElement(\n 'div',\n { className: 'confirm-panel' },\n type === 'range' && React.createElement(\n 'div',\n { className: 'info' },\n React.createElement(\n 'p',\n null,\n locale.start,\n ': ',\n React.createElement(\n 'span',\n { className: !startDateTime ? 'grey' : '' },\n startTimeStr\n )\n ),\n React.createElement(\n 'p',\n null,\n locale.end,\n ': ',\n React.createElement(\n 'span',\n { className: !endDateTime ? 'grey' : '' },\n endTimeStr\n )\n )\n ),\n React.createElement(\n 'div',\n { className: btnCls, onClick: this.onConfirm },\n locale.confirm\n )\n );\n };\n\n return ConfirmPanel;\n}(React.PureComponent);\n\nexport default ConfirmPanel;\n\nConfirmPanel.defaultProps = {\n formatStr: 'yyyy-MM-dd hh:mm'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\n\nvar ShortcutPanel = function (_React$PureComponent) {\n _inherits(ShortcutPanel, _React$PureComponent);\n\n function ShortcutPanel() {\n _classCallCheck(this, ShortcutPanel);\n\n var _this = _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n\n _this.onClick = function (type) {\n var onSelect = _this.props.onSelect;\n\n var today = new Date();\n switch (type) {\n case 'today':\n onSelect(new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0), new Date(today.getFullYear(), today.getMonth(), today.getDate(), 12));\n break;\n case 'yesterday':\n onSelect(new Date(today.getFullYear(), today.getMonth(), today.getDate() - 1, 0), new Date(today.getFullYear(), today.getMonth(), today.getDate() - 1, 12));\n break;\n case 'lastweek':\n onSelect(new Date(today.getFullYear(), today.getMonth(), today.getDate() - 6, 0), new Date(today.getFullYear(), today.getMonth(), today.getDate(), 12));\n break;\n case 'lastmonth':\n onSelect(new Date(today.getFullYear(), today.getMonth(), today.getDate() - 29, 0), new Date(today.getFullYear(), today.getMonth(), today.getDate(), 12));\n break;\n }\n };\n return _this;\n }\n\n ShortcutPanel.prototype.render = function render() {\n var _this2 = this;\n\n var locale = this.props.locale;\n\n return React.createElement(\n 'div',\n { className: 'shortcut-panel' },\n React.createElement(\n 'div',\n { className: 'item', onClick: function onClick() {\n return _this2.onClick('today');\n } },\n locale.today\n ),\n React.createElement(\n 'div',\n { className: 'item', onClick: function onClick() {\n return _this2.onClick('yesterday');\n } },\n locale.yesterday\n ),\n React.createElement(\n 'div',\n { className: 'item', onClick: function onClick() {\n return _this2.onClick('lastweek');\n } },\n locale.lastWeek\n ),\n React.createElement(\n 'div',\n { className: 'item', onClick: function onClick() {\n return _this2.onClick('lastmonth');\n } },\n locale.lastMonth\n )\n );\n };\n\n return ShortcutPanel;\n}(React.PureComponent);\n\nexport default ShortcutPanel;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\n\nvar AnimateWrapper = function (_React$PureComponent) {\n _inherits(AnimateWrapper, _React$PureComponent);\n\n function AnimateWrapper() {\n _classCallCheck(this, AnimateWrapper);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n AnimateWrapper.prototype.render = function render() {\n var _props = this.props,\n className = _props.className,\n displayType = _props.displayType,\n visible = _props.visible;\n\n return React.createElement(\n 'div',\n { className: className + ' animate', style: { display: visible ? displayType : 'none' } },\n visible && this.props.children\n );\n };\n\n return AnimateWrapper;\n}(React.PureComponent);\n\nexport default AnimateWrapper;\n\nAnimateWrapper.defaultProps = {\n className: '',\n displayType: 'flex'\n};","import _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nimport * as React from 'react';\n\nvar Header = function (_React$PureComponent) {\n _inherits(Header, _React$PureComponent);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n Header.prototype.render = function render() {\n var _props = this.props,\n title = _props.title,\n _props$locale = _props.locale,\n locale = _props$locale === undefined ? {} : _props$locale,\n onCancel = _props.onCancel,\n onClear = _props.onClear,\n showClear = _props.showClear,\n closeIcon = _props.closeIcon,\n clearIcon = _props.clearIcon;\n\n return React.createElement(\n \"div\",\n { className: \"header\" },\n React.createElement(\n \"span\",\n { className: \"left\", onClick: function onClick() {\n return onCancel && onCancel();\n } },\n closeIcon\n ),\n React.createElement(\n \"span\",\n { className: \"title\" },\n title || locale.title\n ),\n showClear && React.createElement(\n \"span\",\n { className: \"right\", onClick: function onClick() {\n return onClear && onClear();\n } },\n clearIcon || locale.clear\n )\n );\n };\n\n return Header;\n}(React.PureComponent);\n\nexport default Header;\n\nHeader.defaultProps = {\n closeIcon: 'X'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport React from 'react';\nimport Animate from 'rc-animate';\nimport TimePicker from './TimePicker';\nimport DatePicker from './DatePicker';\nimport ConfirmPanel from './calendar/ConfirmPanel';\nimport ShortcutPanel from './calendar/ShortcutPanel';\nimport AnimateWrapper from './calendar/AnimateWrapper';\nimport Header from './calendar/Header';\nimport { mergeDateTime } from './util';\nimport defaultLocale from './locale/zh_CN';\nexport var StateType = function StateType() {\n _classCallCheck(this, StateType);\n\n this.showTimePicker = false;\n this.startDate = undefined;\n this.endDate = undefined;\n this.disConfirmBtn = true;\n this.clientHight = 0;\n};\n\nvar Calendar = function (_React$PureComponent) {\n _inherits(Calendar, _React$PureComponent);\n\n function Calendar(props) {\n _classCallCheck(this, Calendar);\n\n var _this = _possibleConstructorReturn(this, _React$PureComponent.call(this, props));\n\n _this.selectDate = function (date) {\n var useDateTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var oldState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _this.props;\n\n if (!date) return {};\n var newState = {};\n var type = props.type,\n pickTime = props.pickTime,\n defaultTimeValue = props.defaultTimeValue,\n _props$locale = props.locale,\n locale = _props$locale === undefined ? {} : _props$locale;\n\n var newDate = pickTime && !useDateTime ? mergeDateTime(date, defaultTimeValue) : date;\n var startDate = oldState.startDate,\n endDate = oldState.endDate;\n\n switch (type) {\n case 'one':\n newState = _extends({}, newState, { startDate: newDate, disConfirmBtn: false });\n if (pickTime) {\n newState = _extends({}, newState, { timePickerTitle: locale.selectTime, showTimePicker: true });\n }\n break;\n case 'range':\n if (!startDate || endDate) {\n newState = _extends({}, newState, { startDate: newDate, endDate: undefined, disConfirmBtn: true });\n if (pickTime) {\n newState = _extends({}, newState, { timePickerTitle: locale.selectStartTime, showTimePicker: true });\n }\n } else {\n newState = _extends({}, newState, { timePickerTitle: +newDate >= +startDate ? locale.selectEndTime : locale.selectStartTime, disConfirmBtn: false, endDate: pickTime && !useDateTime && +newDate >= +startDate ? new Date(+mergeDateTime(newDate, startDate) + 3600000) : newDate });\n }\n break;\n }\n return newState;\n };\n _this.onSelectedDate = function (date) {\n var _this$state = _this.state,\n startDate = _this$state.startDate,\n endDate = _this$state.endDate;\n var onSelect = _this.props.onSelect;\n\n if (onSelect) {\n var value = onSelect(date, [startDate, endDate]);\n if (value) {\n _this.shortcutSelect(value[0], value[1]);\n return;\n }\n }\n _this.setState(_this.selectDate(date, false, { startDate: startDate, endDate: endDate }));\n };\n _this.onSelectHasDisableDate = function (date) {\n _this.onClear();\n if (_this.props.onSelectHasDisableDate) {\n _this.props.onSelectHasDisableDate(date);\n }\n };\n _this.onClose = function () {\n _this.setState(new StateType());\n };\n _this.onCancel = function () {\n _this.props.onCancel && _this.props.onCancel();\n _this.onClose();\n };\n _this.onConfirm = function () {\n var onConfirm = _this.props.onConfirm;\n var _this$state2 = _this.state,\n startDate = _this$state2.startDate,\n endDate = _this$state2.endDate;\n\n if (startDate && endDate && +startDate > +endDate) {\n return onConfirm && onConfirm(endDate, startDate);\n }\n onConfirm && onConfirm(startDate, endDate);\n _this.onClose();\n };\n _this.onTimeChange = function (date) {\n var _this$state3 = _this.state,\n startDate = _this$state3.startDate,\n endDate = _this$state3.endDate;\n\n if (endDate) {\n _this.setState({\n endDate: date\n });\n } else if (startDate) {\n _this.setState({\n startDate: date\n });\n }\n };\n _this.onClear = function () {\n _this.setState({\n startDate: undefined,\n endDate: undefined,\n showTimePicker: false\n });\n _this.props.onClear && _this.props.onClear();\n };\n _this.shortcutSelect = function (startDate, endDate) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _this.props;\n\n _this.setState(_extends({ startDate: startDate }, _this.selectDate(endDate, true, { startDate: startDate }, props), { showTimePicker: false }));\n };\n _this.setClientHeight = function (height) {\n _this.setState({\n clientHight: height\n });\n };\n _this.state = new StateType();\n if (props.defaultValue) {\n var defaultValue = props.defaultValue;\n _this.state = _extends({}, _this.state, _this.selectDate(defaultValue[1], true, { startDate: defaultValue[0] }, props));\n }\n return _this;\n }\n\n Calendar.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!this.props.visible && nextProps.visible && nextProps.defaultValue) {\n this.shortcutSelect(nextProps.defaultValue[0], nextProps.defaultValue[1], nextProps);\n }\n };\n\n Calendar.prototype.render = function render() {\n var _props = this.props,\n type = _props.type,\n _props$locale2 = _props.locale,\n locale = _props$locale2 === undefined ? {} : _props$locale2,\n prefixCls = _props.prefixCls,\n visible = _props.visible,\n pickTime = _props.pickTime,\n showShortcut = _props.showShortcut,\n renderHeader = _props.renderHeader,\n infiniteOpt = _props.infiniteOpt,\n initalMonths = _props.initalMonths,\n defaultDate = _props.defaultDate,\n minDate = _props.minDate,\n maxDate = _props.maxDate,\n getDateExtra = _props.getDateExtra,\n rowSize = _props.rowSize,\n defaultTimeValue = _props.defaultTimeValue,\n renderShortcut = _props.renderShortcut,\n enterDirection = _props.enterDirection,\n timePickerPrefixCls = _props.timePickerPrefixCls,\n timePickerPickerPrefixCls = _props.timePickerPickerPrefixCls,\n style = _props.style;\n var _state = this.state,\n showTimePicker = _state.showTimePicker,\n timePickerTitle = _state.timePickerTitle,\n startDate = _state.startDate,\n endDate = _state.endDate,\n disConfirmBtn = _state.disConfirmBtn,\n clientHight = _state.clientHight;\n\n var headerProps = {\n locale: locale,\n showClear: !!startDate,\n onCancel: this.onCancel,\n onClear: this.onClear\n };\n return React.createElement(\n 'div',\n { className: '' + prefixCls, style: style },\n React.createElement(\n Animate,\n { showProp: 'visible', transitionName: 'fade' },\n React.createElement(AnimateWrapper, { className: 'mask', visible: !!visible })\n ),\n React.createElement(\n Animate,\n { showProp: 'visible', transitionName: enterDirection === 'horizontal' ? 'slideH' : 'slideV' },\n React.createElement(\n AnimateWrapper,\n { className: 'content', visible: !!visible },\n renderHeader ? renderHeader(headerProps) : React.createElement(Header, headerProps),\n React.createElement(DatePicker, { locale: locale, type: type, prefixCls: prefixCls, infiniteOpt: infiniteOpt, initalMonths: initalMonths, defaultDate: defaultDate, minDate: minDate, maxDate: maxDate, getDateExtra: getDateExtra, onCellClick: this.onSelectedDate, onSelectHasDisableDate: this.onSelectHasDisableDate, onLayout: this.setClientHeight, startDate: startDate, endDate: endDate, rowSize: rowSize }),\n showTimePicker && React.createElement(TimePicker, { prefixCls: timePickerPrefixCls, pickerPrefixCls: timePickerPickerPrefixCls, locale: locale, title: timePickerTitle, defaultValue: defaultTimeValue, value: endDate ? endDate : startDate, onValueChange: this.onTimeChange, minDate: minDate, maxDate: maxDate, clientHeight: clientHight }),\n showShortcut && !showTimePicker && (renderShortcut ? renderShortcut(this.shortcutSelect) : React.createElement(ShortcutPanel, { locale: locale, onSelect: this.shortcutSelect })),\n startDate && React.createElement(ConfirmPanel, { type: type, locale: locale, startDateTime: startDate, endDateTime: endDate, onConfirm: this.onConfirm, disableBtn: disConfirmBtn, formatStr: pickTime ? locale.dateTimeFormat : locale.dateFormat })\n )\n )\n );\n };\n\n return Calendar;\n}(React.PureComponent);\n\nexport default Calendar;\n\nCalendar.DefaultHeader = Header;\nCalendar.DefaultShortcut = ShortcutPanel;\nCalendar.defaultProps = {\n visible: false,\n showHeader: true,\n locale: defaultLocale,\n pickTime: false,\n showShortcut: false,\n prefixCls: 'rmc-calendar',\n type: 'range',\n defaultTimeValue: new Date(2000, 0, 1, 8)\n};","export { default as Calendar } from './Calendar';\nexport { default as DatePicker } from './DatePicker';\nimport zhCN from './locale/zh_CN';\nimport enUS from './locale/en_US';\nvar Locale = { zhCN: zhCN, enUS: enUS };\nexport { Locale };","import _extends from 'babel-runtime/helpers/extends';\nexport function getComponentLocale(props, context, componentName, getDefaultLocale) {\n var locale = {};\n if (context && context.antLocale && context.antLocale[componentName]) {\n locale = context.antLocale[componentName];\n } else {\n var defaultLocale = getDefaultLocale();\n // TODO: make default lang of antd be English\n // https://github.com/ant-design/ant-design/issues/6334\n locale = defaultLocale['default'] || defaultLocale;\n }\n var result = _extends({}, locale);\n if (props.locale) {\n result = _extends({}, result, props.locale);\n if (props.locale.lang) {\n result.lang = _extends({}, locale.lang, props.locale.lang);\n }\n }\n return result;\n}\nexport function getLocaleCode(context) {\n var localeCode = context.antLocale && context.antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (context.antLocale && context.antLocale.exist && !localeCode) {\n return 'zh-cn';\n }\n return localeCode;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { Calendar as RMCalendar } from 'rmc-calendar';\nimport { getComponentLocale } from '../_util/getLocale';\nimport Icon from '../icon';\n\nvar Calendar = function (_React$Component) {\n _inherits(Calendar, _React$Component);\n\n function Calendar() {\n _classCallCheck(this, Calendar);\n\n return _possibleConstructorReturn(this, (Calendar.__proto__ || Object.getPrototypeOf(Calendar)).apply(this, arguments));\n }\n\n _createClass(Calendar, [{\n key: 'render',\n value: function render() {\n // tslint:disable-next-line:no-this-assignment\n var props = this.props,\n context = this.context;\n\n var locale = getComponentLocale(props, context, 'Calendar', function () {\n return require('./locale/zh_CN');\n });\n var Header = RMCalendar.DefaultHeader;\n return React.createElement(RMCalendar, _extends({ locale: locale\n // tslint:disable-next-line:jsx-no-multiline-js\n , renderHeader: function renderHeader(headerProps) {\n return React.createElement(Header, _extends({}, headerProps, { closeIcon: React.createElement(Icon, { type: 'cross' }) }));\n } }, props));\n }\n }]);\n\n return Calendar;\n}(React.Component);\n\nexport default Calendar;\n\nCalendar.defaultProps = {\n prefixCls: 'am-calendar',\n timePickerPrefixCls: 'am-picker',\n timePickerPickerPrefixCls: 'am-picker-col'\n};\nCalendar.contextTypes = {\n antLocale: PropTypes.object\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar CardBody = function (_React$Component) {\n _inherits(CardBody, _React$Component);\n\n function CardBody() {\n _classCallCheck(this, CardBody);\n\n return _possibleConstructorReturn(this, (CardBody.__proto__ || Object.getPrototypeOf(CardBody)).apply(this, arguments));\n }\n\n _createClass(CardBody, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n restProps = __rest(_a, [\"prefixCls\", \"className\"]);\n var wrapCls = classnames(prefixCls + '-body', className);\n return React.createElement('div', _extends({ className: wrapCls }, restProps));\n }\n }]);\n\n return CardBody;\n}(React.Component);\n\nexport default CardBody;\n\nCardBody.defaultProps = {\n prefixCls: 'am-card'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar CardFooter = function (_React$Component) {\n _inherits(CardFooter, _React$Component);\n\n function CardFooter() {\n _classCallCheck(this, CardFooter);\n\n return _possibleConstructorReturn(this, (CardFooter.__proto__ || Object.getPrototypeOf(CardFooter)).apply(this, arguments));\n }\n\n _createClass(CardFooter, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n content = _a.content,\n className = _a.className,\n extra = _a.extra,\n restProps = __rest(_a, [\"prefixCls\", \"content\", \"className\", \"extra\"]);\n var wrapCls = classnames(prefixCls + '-footer', className);\n return React.createElement(\n 'div',\n _extends({ className: wrapCls }, restProps),\n React.createElement(\n 'div',\n { className: prefixCls + '-footer-content' },\n content\n ),\n extra && React.createElement(\n 'div',\n { className: prefixCls + '-footer-extra' },\n extra\n )\n );\n }\n }]);\n\n return CardFooter;\n}(React.Component);\n\nexport default CardFooter;\n\nCardFooter.defaultProps = {\n prefixCls: 'am-card'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar CardHeader = function (_React$Component) {\n _inherits(CardHeader, _React$Component);\n\n function CardHeader() {\n _classCallCheck(this, CardHeader);\n\n return _possibleConstructorReturn(this, (CardHeader.__proto__ || Object.getPrototypeOf(CardHeader)).apply(this, arguments));\n }\n\n _createClass(CardHeader, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n title = _a.title,\n thumb = _a.thumb,\n thumbStyle = _a.thumbStyle,\n extra = _a.extra,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"title\", \"thumb\", \"thumbStyle\", \"extra\"]);\n var wrapCls = classnames(prefixCls + '-header', className);\n return React.createElement(\n 'div',\n _extends({ className: wrapCls }, restProps),\n React.createElement(\n 'div',\n { className: prefixCls + '-header-content' },\n typeof thumb === 'string' ?\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement('img', { style: thumbStyle, src: thumb }) : thumb,\n title\n ),\n extra ?\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'div',\n { className: prefixCls + '-header-extra' },\n extra\n ) : null\n );\n }\n }]);\n\n return CardHeader;\n}(React.Component);\n\nexport default CardHeader;\n\nCardHeader.defaultProps = {\n prefixCls: 'am-card',\n thumbStyle: {}\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardHeader from './CardHeader';\n\nvar Card = function (_React$Component) {\n _inherits(Card, _React$Component);\n\n function Card() {\n _classCallCheck(this, Card);\n\n return _possibleConstructorReturn(this, (Card.__proto__ || Object.getPrototypeOf(Card)).apply(this, arguments));\n }\n\n _createClass(Card, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n full = _a.full,\n className = _a.className,\n resetProps = __rest(_a, [\"prefixCls\", \"full\", \"className\"]);\n var wrapCls = classnames(prefixCls, className, _defineProperty({}, prefixCls + '-full', full));\n return React.createElement('div', _extends({ className: wrapCls }, resetProps));\n }\n }]);\n\n return Card;\n}(React.Component);\n\nexport default Card;\n\nCard.defaultProps = {\n prefixCls: 'am-card',\n full: false\n};\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;","'use strict';\n\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nvar DefaultDecorators = [{\n component: function (_React$Component) {\n _inherits(component, _React$Component);\n\n function component() {\n _classCallCheck(this, component);\n\n var _this = _possibleConstructorReturn(this, (component.__proto__ || Object.getPrototypeOf(component)).apply(this, arguments));\n\n _this.handleClick = function (e) {\n e.preventDefault();\n _this.props.previousSlide();\n };\n return _this;\n }\n\n _createClass(component, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n 'button',\n { style: this.getButtonStyles(this.props.currentSlide === 0 && !this.props.wrapAround), onClick: this.handleClick },\n 'PREV'\n );\n }\n }, {\n key: 'getButtonStyles',\n value: function getButtonStyles(disabled) {\n return {\n border: 0,\n background: 'rgba(0,0,0,0.4)',\n color: 'white',\n padding: 10,\n outline: 0,\n opacity: disabled ? 0.3 : 1,\n cursor: 'pointer'\n };\n }\n }]);\n\n return component;\n }(React.Component),\n position: 'CenterLeft'\n}, {\n component: function (_React$Component2) {\n _inherits(component, _React$Component2);\n\n function component() {\n _classCallCheck(this, component);\n\n var _this2 = _possibleConstructorReturn(this, (component.__proto__ || Object.getPrototypeOf(component)).apply(this, arguments));\n\n _this2.handleClick = function (e) {\n e.preventDefault();\n if (_this2.props.nextSlide) {\n _this2.props.nextSlide();\n }\n };\n return _this2;\n }\n\n _createClass(component, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n 'button',\n { style: this.getButtonStyles(this.props.currentSlide + this.props.slidesToScroll >= this.props.slideCount && !this.props.wrapAround), onClick: this.handleClick },\n 'NEXT'\n );\n }\n }, {\n key: 'getButtonStyles',\n value: function getButtonStyles(disabled) {\n return {\n border: 0,\n background: 'rgba(0,0,0,0.4)',\n color: 'white',\n padding: 10,\n outline: 0,\n opacity: disabled ? 0.3 : 1,\n cursor: 'pointer'\n };\n }\n }]);\n\n return component;\n }(React.Component),\n position: 'CenterRight'\n}, {\n component: function (_React$Component3) {\n _inherits(component, _React$Component3);\n\n function component() {\n _classCallCheck(this, component);\n\n return _possibleConstructorReturn(this, (component.__proto__ || Object.getPrototypeOf(component)).apply(this, arguments));\n }\n\n _createClass(component, [{\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var indexes = this.getIndexes(this.props.slideCount, this.props.slidesToScroll);\n return React.createElement(\n 'ul',\n { style: this.getListStyles() },\n indexes.map(function (index) {\n return React.createElement(\n 'li',\n { style: _this4.getListItemStyles(), key: index },\n React.createElement(\n 'button',\n { style: _this4.getButtonStyles(_this4.props.currentSlide === index), onClick: _this4.props.goToSlide && _this4.props.goToSlide.bind(null, index) },\n '\\u2022'\n )\n );\n })\n );\n }\n }, {\n key: 'getIndexes',\n value: function getIndexes(count, inc) {\n var arr = [];\n for (var i = 0; i < count; i += inc) {\n arr.push(i);\n }\n return arr;\n }\n }, {\n key: 'getListStyles',\n value: function getListStyles() {\n return {\n position: 'relative',\n margin: 0,\n top: -10,\n padding: 0\n };\n }\n }, {\n key: 'getListItemStyles',\n value: function getListItemStyles() {\n return {\n listStyleType: 'none',\n display: 'inline-block'\n };\n }\n }, {\n key: 'getButtonStyles',\n value: function getButtonStyles(active) {\n return {\n border: 0,\n background: 'transparent',\n color: 'black',\n cursor: 'pointer',\n padding: 10,\n outline: 0,\n fontSize: 24,\n opacity: active ? 1 : 0.5\n };\n }\n }]);\n\n return component;\n }(React.Component),\n position: 'BottomCenter'\n}];\nexport default DefaultDecorators;","'use strict';\n\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport decorators from './decorators';\nimport ExecutionEnvironment from 'exenv';\nimport requestAnimationFrame from 'raf';\n// from https://github.com/chenglou/tween-functions\nfunction easeOutCirc(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n}\nfunction linear(t, b, _c, d) {\n var c = _c - b;\n return c * t / d + b;\n}\nvar DEFAULT_STACK_BEHAVIOR = 'ADDITIVE';\nvar DEFAULT_DURATION = 300;\nvar DEFAULT_DELAY = 0;\nvar stackBehavior = {\n ADDITIVE: 'ADDITIVE',\n DESTRUCTIVE: 'DESTRUCTIVE'\n};\nvar addEvent = function addEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, eventHandle);\n } else {\n elem['on' + type] = eventHandle;\n }\n};\nvar removeEvent = function removeEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n if (elem.removeEventListener) {\n elem.removeEventListener(type, eventHandle, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, eventHandle);\n } else {\n elem['on' + type] = null;\n }\n};\n\nvar Carousel = function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n function Carousel(props) {\n _classCallCheck(this, Carousel);\n\n var _this = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, props));\n\n _this._rafCb = function () {\n var state = _this.state;\n if (state.tweenQueue.length === 0) {\n return;\n }\n var now = Date.now();\n var newTweenQueue = [];\n for (var i = 0; i < state.tweenQueue.length; i++) {\n var item = state.tweenQueue[i];\n var initTime = item.initTime,\n config = item.config;\n\n if (now - initTime < config.duration) {\n newTweenQueue.push(item);\n } else {\n if (config.onEnd) {\n config.onEnd();\n }\n }\n }\n // onEnd might trigger a parent callback that removes this component\n // -1 means we've canceled it in componentWillUnmount\n if (_this._rafID === -1) {\n return;\n }\n _this.setState({\n tweenQueue: newTweenQueue\n });\n _this._rafID = requestAnimationFrame(_this._rafCb);\n };\n _this.handleClick = function (e) {\n if (_this.clickSafe === true) {\n e.preventDefault();\n e.stopPropagation();\n if (e.nativeEvent) {\n e.nativeEvent.stopPropagation();\n }\n }\n };\n _this.autoplayIterator = function () {\n if (_this.props.wrapAround) {\n return _this.nextSlide();\n }\n if (_this.state.currentSlide !== _this.state.slideCount - _this.state.slidesToShow) {\n _this.nextSlide();\n } else {\n _this.stopAutoplay();\n }\n };\n // Action Methods\n _this.goToSlide = function (index) {\n var _this$props = _this.props,\n beforeSlide = _this$props.beforeSlide,\n afterSlide = _this$props.afterSlide;\n\n if (index >= React.Children.count(_this.props.children) || index < 0) {\n if (!_this.props.wrapAround) {\n return;\n }\n ;\n if (index >= React.Children.count(_this.props.children)) {\n beforeSlide(_this.state.currentSlide, 0);\n return _this.setState({\n currentSlide: 0\n }, function () {\n _this.animateSlide(null, null, _this.getTargetLeft(null, index), function () {\n _this.animateSlide(null, 0.01);\n afterSlide(0);\n _this.resetAutoplay();\n _this.setExternalData();\n });\n });\n } else {\n var endSlide = React.Children.count(_this.props.children) - _this.state.slidesToScroll;\n beforeSlide(_this.state.currentSlide, endSlide);\n return _this.setState({\n currentSlide: endSlide\n }, function () {\n _this.animateSlide(null, null, _this.getTargetLeft(null, index), function () {\n _this.animateSlide(null, 0.01);\n afterSlide(endSlide);\n _this.resetAutoplay();\n _this.setExternalData();\n });\n });\n }\n }\n beforeSlide(_this.state.currentSlide, index);\n _this.setState({\n currentSlide: index\n }, function () {\n _this.animateSlide();\n _this.props.afterSlide(index);\n _this.resetAutoplay();\n _this.setExternalData();\n });\n };\n _this.nextSlide = function () {\n var childrenCount = React.Children.count(_this.props.children);\n var slidesToShow = _this.props.slidesToShow;\n if (_this.props.slidesToScroll === 'auto') {\n slidesToShow = _this.state.slidesToScroll;\n }\n if (_this.state.currentSlide >= childrenCount - slidesToShow && !_this.props.wrapAround) {\n return;\n }\n if (_this.props.wrapAround) {\n _this.goToSlide(_this.state.currentSlide + _this.state.slidesToScroll);\n } else {\n if (_this.props.slideWidth !== 1) {\n return _this.goToSlide(_this.state.currentSlide + _this.state.slidesToScroll);\n }\n _this.goToSlide(Math.min(_this.state.currentSlide + _this.state.slidesToScroll, childrenCount - slidesToShow));\n }\n };\n _this.previousSlide = function () {\n if (_this.state.currentSlide <= 0 && !_this.props.wrapAround) {\n return;\n }\n if (_this.props.wrapAround) {\n _this.goToSlide(_this.state.currentSlide - _this.state.slidesToScroll);\n } else {\n _this.goToSlide(Math.max(0, _this.state.currentSlide - _this.state.slidesToScroll));\n }\n };\n _this.onResize = function () {\n _this.setDimensions();\n };\n _this.onReadyStateChange = function () {\n _this.setDimensions();\n };\n _this.state = {\n currentSlide: _this.props.slideIndex,\n dragging: false,\n frameWidth: 0,\n left: 0,\n slideCount: 0,\n slidesToScroll: _this.props.slidesToScroll,\n slideWidth: 0,\n top: 0,\n tweenQueue: []\n };\n _this.touchObject = {};\n _this.clickSafe = true;\n return _this;\n }\n\n _createClass(Carousel, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.setInitialDimensions();\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setDimensions();\n this.bindEvents();\n this.setExternalData();\n if (this.props.autoplay) {\n this.startAutoplay();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({\n slideCount: nextProps.children.length\n });\n this.setDimensions(nextProps);\n if (this.props.slideIndex !== nextProps.slideIndex && nextProps.slideIndex !== this.state.currentSlide) {\n this.goToSlide(nextProps.slideIndex);\n }\n if (this.props.autoplay !== nextProps.autoplay) {\n if (nextProps.autoplay) {\n this.startAutoplay();\n } else {\n this.stopAutoplay();\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEvents();\n this.stopAutoplay();\n requestAnimationFrame.cancel(this._rafID);\n this._rafID = -1;\n }\n // react-tween-state\n\n }, {\n key: 'tweenState',\n value: function tweenState(path, _ref) {\n var _this2 = this;\n\n var easing = _ref.easing,\n duration = _ref.duration,\n delay = _ref.delay,\n beginValue = _ref.beginValue,\n endValue = _ref.endValue,\n onEnd = _ref.onEnd,\n configSB = _ref.stackBehavior;\n\n this.setState(function (state) {\n var cursor = state;\n var stateName = void 0;\n // see comment below on pash hash\n var pathHash = void 0;\n if (typeof path === 'string') {\n stateName = path;\n pathHash = path;\n } else {\n for (var i = 0; i < path.length - 1; i++) {\n cursor = cursor[path[i]];\n }\n stateName = path[path.length - 1];\n pathHash = path.join('|');\n }\n // see the reasoning for these defaults at the top of file\n var newConfig = {\n easing: easing,\n duration: duration == null ? DEFAULT_DURATION : duration,\n delay: delay == null ? DEFAULT_DELAY : delay,\n beginValue: beginValue == null ? cursor[stateName] : beginValue,\n endValue: endValue,\n onEnd: onEnd,\n stackBehavior: configSB || DEFAULT_STACK_BEHAVIOR\n };\n var newTweenQueue = state.tweenQueue;\n if (newConfig.stackBehavior === stackBehavior.DESTRUCTIVE) {\n newTweenQueue = state.tweenQueue.filter(function (item) {\n return item.pathHash !== pathHash;\n });\n }\n // we store path hash, so that during value retrieval we can use hash\n // comparison to find the path. See the kind of shitty thing you have to\n // do when you don't have value comparison for collections?\n newTweenQueue.push({\n pathHash: pathHash,\n config: newConfig,\n initTime: Date.now() + newConfig.delay\n });\n // sorry for mutating. For perf reasons we don't want to deep clone.\n // guys, can we please all start using persistent collections so that\n // we can stop worrying about nonesense like this\n cursor[stateName] = newConfig.endValue;\n if (newTweenQueue.length === 1) {\n _this2._rafID = requestAnimationFrame(_this2._rafCb);\n }\n // this will also include the above mutated update\n return { tweenQueue: newTweenQueue };\n });\n }\n }, {\n key: 'getTweeningValue',\n value: function getTweeningValue(path) {\n var state = this.state;\n var tweeningValue = void 0;\n var pathHash = void 0;\n if (typeof path === 'string') {\n tweeningValue = state[path];\n pathHash = path;\n } else {\n tweeningValue = state;\n for (var i = 0; i < path.length; i++) {\n tweeningValue = tweeningValue[path[i]];\n }\n pathHash = path.join('|');\n }\n var now = Date.now();\n for (var _i = 0; _i < state.tweenQueue.length; _i++) {\n var _state$tweenQueue$_i = state.tweenQueue[_i],\n itemPathHash = _state$tweenQueue$_i.pathHash,\n initTime = _state$tweenQueue$_i.initTime,\n config = _state$tweenQueue$_i.config;\n\n if (itemPathHash !== pathHash) {\n continue;\n }\n var progressTime = now - initTime > config.duration ? config.duration : Math.max(0, now - initTime);\n // `now - initTime` can be negative if initTime is scheduled in the\n // future by a delay. In this case we take 0\n // if duration is 0, consider that as jumping to endValue directly. This\n // is needed because the easing functino might have undefined behavior for\n // duration = 0\n var easeValue = config.duration === 0 ? config.endValue : config.easing(progressTime, config.beginValue, config.endValue, config.duration);\n var contrib = easeValue - config.endValue;\n tweeningValue += contrib;\n }\n return tweeningValue;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var children = React.Children.count(this.props.children) > 1 ? this.formatChildren(this.props.children) : this.props.children;\n return React.createElement(\n 'div',\n { className: ['slider', this.props.className || ''].join(' '), ref: 'slider', style: _extends({}, this.getSliderStyles(), this.props.style) },\n React.createElement(\n 'div',\n _extends({ className: 'slider-frame', ref: 'frame', style: this.getFrameStyles() }, this.getTouchEvents(), this.getMouseEvents(), { onClick: this.handleClick }),\n React.createElement(\n 'ul',\n { className: 'slider-list', ref: 'list', style: this.getListStyles() },\n children\n )\n ),\n this.props.decorators ? this.props.decorators.map(function (Decorator, index) {\n return React.createElement(\n 'div',\n { style: _extends({}, _this3.getDecoratorStyles(Decorator.position), Decorator.style || {}), className: 'slider-decorator-' + index, key: index },\n React.createElement(Decorator.component, { currentSlide: _this3.state.currentSlide, slideCount: _this3.state.slideCount, frameWidth: _this3.state.frameWidth, slideWidth: _this3.state.slideWidth, slidesToScroll: _this3.state.slidesToScroll, cellSpacing: _this3.props.cellSpacing, slidesToShow: _this3.props.slidesToShow, wrapAround: _this3.props.wrapAround, nextSlide: _this3.nextSlide, previousSlide: _this3.previousSlide, goToSlide: _this3.goToSlide })\n );\n }) : null,\n React.createElement('style', { type: 'text/css', dangerouslySetInnerHTML: { __html: this.getStyleTagStyles() } })\n );\n }\n // Touch Events\n\n }, {\n key: 'getTouchEvents',\n value: function getTouchEvents() {\n var self = this;\n if (this.props.swiping === false) {\n return null;\n }\n return {\n onTouchStart: function onTouchStart(e) {\n self.touchObject = {\n startX: e.touches[0].pageX,\n startY: e.touches[0].pageY\n };\n self.handleMouseOver();\n },\n onTouchMove: function onTouchMove(e) {\n var direction = self.swipeDirection(self.touchObject.startX, e.touches[0].pageX, self.touchObject.startY, e.touches[0].pageY);\n if (direction !== 0) {\n e.preventDefault();\n }\n var length = self.props.vertical ? Math.round(Math.sqrt(Math.pow(e.touches[0].pageY - self.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.touches[0].pageX - self.touchObject.startX, 2)));\n self.touchObject = {\n startX: self.touchObject.startX,\n startY: self.touchObject.startY,\n endX: e.touches[0].pageX,\n endY: e.touches[0].pageY,\n length: length,\n direction: direction\n };\n self.setState({\n left: self.props.vertical ? 0 : self.getTargetLeft(self.touchObject.length * self.touchObject.direction),\n top: self.props.vertical ? self.getTargetLeft(self.touchObject.length * self.touchObject.direction) : 0\n });\n },\n onTouchEnd: function onTouchEnd(e) {\n self.handleSwipe(e);\n self.handleMouseOut();\n },\n onTouchCancel: function onTouchCancel(e) {\n self.handleSwipe(e);\n }\n };\n }\n }, {\n key: 'getMouseEvents',\n value: function getMouseEvents() {\n var self = this;\n if (this.props.dragging === false) {\n return null;\n }\n return {\n onMouseOver: function onMouseOver() {\n self.handleMouseOver();\n },\n onMouseOut: function onMouseOut() {\n self.handleMouseOut();\n },\n onMouseDown: function onMouseDown(e) {\n self.touchObject = {\n startX: e.clientX,\n startY: e.clientY\n };\n self.setState({\n dragging: true\n });\n },\n onMouseMove: function onMouseMove(e) {\n if (!self.state.dragging) {\n return;\n }\n var direction = self.swipeDirection(self.touchObject.startX, e.clientX, self.touchObject.startY, e.clientY);\n if (direction !== 0) {\n e.preventDefault();\n }\n var length = self.props.vertical ? Math.round(Math.sqrt(Math.pow(e.clientY - self.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.clientX - self.touchObject.startX, 2)));\n self.touchObject = {\n startX: self.touchObject.startX,\n startY: self.touchObject.startY,\n endX: e.clientX,\n endY: e.clientY,\n length: length,\n direction: direction\n };\n self.setState({\n left: self.props.vertical ? 0 : self.getTargetLeft(self.touchObject.length * self.touchObject.direction),\n top: self.props.vertical ? self.getTargetLeft(self.touchObject.length * self.touchObject.direction) : 0\n });\n },\n onMouseUp: function onMouseUp(e) {\n if (!self.state.dragging) {\n return;\n }\n self.handleSwipe(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n if (!self.state.dragging) {\n return;\n }\n self.handleSwipe(e);\n }\n };\n }\n }, {\n key: 'handleMouseOver',\n value: function handleMouseOver() {\n if (this.props.autoplay) {\n this.autoplayPaused = true;\n this.stopAutoplay();\n }\n }\n }, {\n key: 'handleMouseOut',\n value: function handleMouseOut() {\n if (this.props.autoplay && this.autoplayPaused) {\n this.startAutoplay();\n this.autoplayPaused = null;\n }\n }\n }, {\n key: 'handleSwipe',\n value: function handleSwipe(_) {\n if (typeof this.touchObject.length !== 'undefined' && this.touchObject.length > 44) {\n this.clickSafe = true;\n } else {\n this.clickSafe = false;\n }\n var _props = this.props,\n slidesToShow = _props.slidesToShow,\n slidesToScroll = _props.slidesToScroll,\n swipeSpeed = _props.swipeSpeed;\n // var slidesToShow = this.props.slidesToShow;\n\n if (slidesToScroll === 'auto') {\n slidesToShow = this.state.slidesToScroll;\n }\n if (React.Children.count(this.props.children) > 1 && this.touchObject.length > this.state.slideWidth / slidesToShow / swipeSpeed) {\n if (this.touchObject.direction === 1) {\n if (this.state.currentSlide >= React.Children.count(this.props.children) - slidesToShow && !this.props.wrapAround) {\n this.animateSlide(this.props.edgeEasing);\n } else {\n this.nextSlide();\n }\n } else if (this.touchObject.direction === -1) {\n if (this.state.currentSlide <= 0 && !this.props.wrapAround) {\n this.animateSlide(this.props.edgeEasing);\n } else {\n this.previousSlide();\n }\n }\n } else {\n this.goToSlide(this.state.currentSlide);\n }\n this.touchObject = {};\n this.setState({\n dragging: false\n });\n }\n }, {\n key: 'swipeDirection',\n value: function swipeDirection(x1, x2, y1, y2) {\n var xDist = x1 - x2;\n var yDist = y1 - y2;\n var r = Math.atan2(yDist, xDist);\n var swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0) {\n return 1;\n }\n if (swipeAngle <= 360 && swipeAngle >= 315) {\n return 1;\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return -1;\n }\n if (this.props.vertical === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return 1;\n } else {\n return -1;\n }\n }\n return 0;\n }\n }, {\n key: 'startAutoplay',\n value: function startAutoplay() {\n if (React.Children.count(this.props.children) <= 1) {\n return;\n }\n this.autoplayID = setInterval(this.autoplayIterator, this.props.autoplayInterval);\n }\n }, {\n key: 'resetAutoplay',\n value: function resetAutoplay() {\n if (this.props.resetAutoplay && this.props.autoplay && !this.autoplayPaused) {\n this.stopAutoplay();\n this.startAutoplay();\n }\n }\n }, {\n key: 'stopAutoplay',\n value: function stopAutoplay() {\n if (this.autoplayID) {\n clearInterval(this.autoplayID);\n }\n }\n // Animation\n\n }, {\n key: 'animateSlide',\n value: function animateSlide(easing, duration, endValue, callback) {\n this.tweenState(this.props.vertical ? 'top' : 'left', {\n easing: easing || this.props.easing,\n duration: duration || this.props.speed,\n endValue: endValue || this.getTargetLeft(),\n delay: null,\n beginValue: null,\n onEnd: callback || null,\n stackBehavior: stackBehavior\n });\n }\n }, {\n key: 'getTargetLeft',\n value: function getTargetLeft(touchOffset, slide) {\n var offset = void 0;\n var target = slide || this.state.currentSlide;\n var cellSpacing = this.props.cellSpacing;\n switch (this.props.cellAlign) {\n case 'left':\n {\n offset = 0;\n offset -= cellSpacing * target;\n break;\n }\n case 'center':\n {\n offset = (this.state.frameWidth - this.state.slideWidth) / 2;\n offset -= cellSpacing * target;\n break;\n }\n case 'right':\n {\n offset = this.state.frameWidth - this.state.slideWidth;\n offset -= cellSpacing * target;\n break;\n }\n default:\n break;\n }\n var left = this.state.slideWidth * target;\n var lastSlide = this.state.currentSlide > 0 && target + this.state.slidesToScroll >= this.state.slideCount;\n if (lastSlide && this.props.slideWidth !== 1 && !this.props.wrapAround && this.props.slidesToScroll === 'auto') {\n left = this.state.slideWidth * this.state.slideCount - this.state.frameWidth;\n offset = 0;\n offset -= cellSpacing * (this.state.slideCount - 1);\n }\n offset -= touchOffset || 0;\n return (left - offset) * -1;\n }\n // Bootstrapping\n\n }, {\n key: 'bindEvents',\n value: function bindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n addEvent(window, 'resize', this.onResize);\n addEvent(document, 'readystatechange', this.onReadyStateChange);\n }\n }\n }, {\n key: 'unbindEvents',\n value: function unbindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n removeEvent(window, 'resize', this.onResize);\n removeEvent(document, 'readystatechange', this.onReadyStateChange);\n }\n }\n }, {\n key: 'formatChildren',\n value: function formatChildren(children) {\n var _this4 = this;\n\n var positionValue = this.props.vertical ? this.getTweeningValue('top') : this.getTweeningValue('left');\n return React.Children.map(children, function (child, index) {\n return React.createElement(\n 'li',\n { className: 'slider-slide', style: _this4.getSlideStyles(index, positionValue), key: index },\n child\n );\n });\n }\n }, {\n key: 'setInitialDimensions',\n value: function setInitialDimensions() {\n var _this5 = this;\n\n var _props2 = this.props,\n vertical = _props2.vertical,\n initialSlideHeight = _props2.initialSlideHeight,\n initialSlideWidth = _props2.initialSlideWidth,\n slidesToShow = _props2.slidesToShow,\n cellSpacing = _props2.cellSpacing,\n children = _props2.children;\n\n var slideWidth = vertical ? initialSlideHeight || 0 : initialSlideWidth || 0;\n var slideHeight = initialSlideHeight ? initialSlideHeight * slidesToShow : 0;\n var frameHeight = slideHeight + cellSpacing * (slidesToShow - 1);\n this.setState({\n slideHeight: slideHeight,\n frameWidth: vertical ? frameHeight : '100%',\n slideCount: React.Children.count(children),\n slideWidth: slideWidth\n }, function () {\n _this5.setLeft();\n _this5.setExternalData();\n });\n }\n }, {\n key: 'setDimensions',\n value: function setDimensions(props) {\n var _this6 = this;\n\n props = props || this.props;\n var frameWidth = void 0;\n var frameHeight = void 0;\n var slideHeight = void 0;\n var slideWidth = void 0;\n var slidesToScroll = props.slidesToScroll;\n var frame = this.refs.frame;\n var firstSlide = frame.childNodes[0].childNodes[0];\n if (firstSlide) {\n firstSlide.style.height = 'auto';\n slideHeight = this.props.vertical ? firstSlide.offsetHeight * props.slidesToShow : firstSlide.offsetHeight;\n } else {\n slideHeight = 100;\n }\n if (typeof props.slideWidth !== 'number') {\n slideWidth = parseInt(props.slideWidth, 10);\n } else {\n if (props.vertical) {\n slideWidth = slideHeight / props.slidesToShow * props.slideWidth;\n } else {\n slideWidth = frame.offsetWidth / props.slidesToShow * props.slideWidth;\n }\n }\n if (!props.vertical) {\n slideWidth -= props.cellSpacing * ((100 - 100 / props.slidesToShow) / 100);\n }\n frameHeight = slideHeight + props.cellSpacing * (props.slidesToShow - 1);\n frameWidth = props.vertical ? frameHeight : frame.offsetWidth;\n if (props.slidesToScroll === 'auto') {\n slidesToScroll = Math.floor(frameWidth / (slideWidth + props.cellSpacing));\n }\n this.setState({\n slideHeight: slideHeight,\n frameWidth: frameWidth,\n slideWidth: slideWidth,\n slidesToScroll: slidesToScroll,\n left: props.vertical ? 0 : this.getTargetLeft(),\n top: props.vertical ? this.getTargetLeft() : 0\n }, function () {\n _this6.setLeft();\n });\n }\n }, {\n key: 'setLeft',\n value: function setLeft() {\n this.setState({\n left: this.props.vertical ? 0 : this.getTargetLeft(),\n top: this.props.vertical ? this.getTargetLeft() : 0\n });\n }\n // Data\n\n }, {\n key: 'setExternalData',\n value: function setExternalData() {\n if (this.props.data) {\n this.props.data();\n }\n }\n // Styles\n\n }, {\n key: 'getListStyles',\n value: function getListStyles() {\n var listWidth = this.state.slideWidth * React.Children.count(this.props.children);\n var cellSpacing = this.props.cellSpacing;\n var spacingOffset = cellSpacing * React.Children.count(this.props.children);\n var transform = 'translate3d(' + this.getTweeningValue('left') + 'px, ' + this.getTweeningValue('top') + 'px, 0)';\n return {\n transform: transform,\n WebkitTransform: transform,\n msTransform: 'translate(' + this.getTweeningValue('left') + 'px, ' + this.getTweeningValue('top') + 'px)',\n position: 'relative',\n display: 'block',\n margin: this.props.vertical ? cellSpacing / 2 * -1 + 'px 0px' : '0px ' + cellSpacing / 2 * -1 + 'px',\n padding: 0,\n height: this.props.vertical ? listWidth + spacingOffset : this.state.slideHeight,\n width: this.props.vertical ? 'auto' : listWidth + spacingOffset,\n cursor: this.state.dragging === true ? 'pointer' : 'inherit',\n boxSizing: 'border-box',\n MozBoxSizing: 'border-box'\n };\n }\n }, {\n key: 'getFrameStyles',\n value: function getFrameStyles() {\n return {\n position: 'relative',\n display: 'block',\n overflow: this.props.frameOverflow,\n height: this.props.vertical ? this.state.frameWidth || 'initial' : 'auto',\n margin: this.props.framePadding,\n padding: 0,\n transform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)',\n msTransform: 'translate(0, 0)',\n boxSizing: 'border-box',\n MozBoxSizing: 'border-box'\n };\n }\n }, {\n key: 'getSlideStyles',\n value: function getSlideStyles(index, positionValue) {\n var targetPosition = this.getSlideTargetPosition(index, positionValue);\n var cellSpacing = this.props.cellSpacing;\n return {\n position: 'absolute',\n left: this.props.vertical ? 0 : targetPosition,\n top: this.props.vertical ? targetPosition : 0,\n display: this.props.vertical ? 'block' : 'inline-block',\n listStyleType: 'none',\n verticalAlign: 'top',\n width: this.props.vertical ? '100%' : this.state.slideWidth,\n height: 'auto',\n boxSizing: 'border-box',\n MozBoxSizing: 'border-box',\n marginLeft: this.props.vertical ? 'auto' : cellSpacing / 2,\n marginRight: this.props.vertical ? 'auto' : cellSpacing / 2,\n marginTop: this.props.vertical ? cellSpacing / 2 : 'auto',\n marginBottom: this.props.vertical ? cellSpacing / 2 : 'auto'\n };\n }\n }, {\n key: 'getSlideTargetPosition',\n value: function getSlideTargetPosition(index, positionValue) {\n var slidesToShow = this.state.frameWidth / this.state.slideWidth;\n var targetPosition = (this.state.slideWidth + this.props.cellSpacing) * index;\n var end = (this.state.slideWidth + this.props.cellSpacing) * slidesToShow * -1;\n if (this.props.wrapAround) {\n var slidesBefore = Math.ceil(positionValue / this.state.slideWidth);\n if (this.state.slideCount - slidesBefore <= index) {\n return (this.state.slideWidth + this.props.cellSpacing) * (this.state.slideCount - index) * -1;\n }\n var slidesAfter = Math.ceil((Math.abs(positionValue) - Math.abs(end)) / this.state.slideWidth);\n if (this.state.slideWidth !== 1) {\n slidesAfter = Math.ceil((Math.abs(positionValue) - this.state.slideWidth) / this.state.slideWidth);\n }\n if (index <= slidesAfter - 1) {\n return (this.state.slideWidth + this.props.cellSpacing) * (this.state.slideCount + index);\n }\n }\n return targetPosition;\n }\n }, {\n key: 'getSliderStyles',\n value: function getSliderStyles() {\n return {\n position: 'relative',\n display: 'block',\n width: this.props.width,\n height: 'auto',\n boxSizing: 'border-box',\n MozBoxSizing: 'border-box',\n visibility: this.state.slideWidth ? 'visible' : 'hidden'\n };\n }\n }, {\n key: 'getStyleTagStyles',\n value: function getStyleTagStyles() {\n return '.slider-slide > img {width: 100%; display: block;}';\n }\n }, {\n key: 'getDecoratorStyles',\n value: function getDecoratorStyles(position) {\n switch (position) {\n case 'TopLeft':\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n case 'TopCenter':\n {\n return {\n position: 'absolute',\n top: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n WebkitTransform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n };\n }\n case 'TopRight':\n {\n return {\n position: 'absolute',\n top: 0,\n right: 0\n };\n }\n case 'CenterLeft':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n case 'CenterCenter':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n WebkitTransform: 'translate(-50%, -50%)',\n msTransform: 'translate(-50%, -50%)'\n };\n }\n case 'CenterRight':\n {\n return {\n position: 'absolute',\n top: '50%',\n right: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n case 'BottomLeft':\n {\n return {\n position: 'absolute',\n bottom: 0,\n left: 0\n };\n }\n case 'BottomCenter':\n {\n return {\n position: 'absolute',\n bottom: 0,\n width: '100%',\n textAlign: 'center'\n };\n }\n case 'BottomRight':\n {\n return {\n position: 'absolute',\n bottom: 0,\n right: 0\n };\n }\n default:\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n }\n }\n }]);\n\n return Carousel;\n}(React.Component);\n\nCarousel.defaultProps = {\n afterSlide: function afterSlide() {},\n autoplay: false,\n resetAutoplay: true,\n swipeSpeed: 12,\n autoplayInterval: 3000,\n beforeSlide: function beforeSlide() {},\n cellAlign: 'left',\n cellSpacing: 0,\n data: function data() {},\n decorators: decorators,\n dragging: true,\n easing: easeOutCirc,\n edgeEasing: linear,\n framePadding: '0px',\n frameOverflow: 'hidden',\n slideIndex: 0,\n slidesToScroll: 1,\n slidesToShow: 1,\n slideWidth: 1,\n speed: 500,\n swiping: true,\n vertical: false,\n width: '100%',\n wrapAround: false,\n style: {}\n};\nexport default Carousel;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport ReactCarousel from 'rmc-nuka-carousel';\n\nvar Carousel = function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n function Carousel(props) {\n _classCallCheck(this, Carousel);\n\n var _this = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, props));\n\n _this.onChange = function (index) {\n _this.setState({\n selectedIndex: index\n }, function () {\n if (_this.props.afterChange) {\n _this.props.afterChange(index);\n }\n });\n };\n _this.state = {\n selectedIndex: _this.props.selectedIndex\n };\n return _this;\n }\n\n _createClass(Carousel, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n infinite = _a.infinite,\n selectedIndex = _a.selectedIndex,\n beforeChange = _a.beforeChange,\n afterChange = _a.afterChange,\n dots = _a.dots,\n restProps = __rest(_a, [\"infinite\", \"selectedIndex\", \"beforeChange\", \"afterChange\", \"dots\"]);var prefixCls = restProps.prefixCls,\n dotActiveStyle = restProps.dotActiveStyle,\n dotStyle = restProps.dotStyle,\n className = restProps.className,\n vertical = restProps.vertical;\n\n var newProps = _extends({}, restProps, { wrapAround: infinite, slideIndex: selectedIndex, beforeSlide: beforeChange });\n var Decorators = [];\n if (dots) {\n Decorators = [{\n component: function component(_ref) {\n var slideCount = _ref.slideCount,\n slidesToScroll = _ref.slidesToScroll,\n currentSlide = _ref.currentSlide;\n\n var arr = [];\n for (var i = 0; i < slideCount; i += slidesToScroll) {\n arr.push(i);\n }\n var dotDom = arr.map(function (index) {\n var dotCls = classnames(prefixCls + '-wrap-dot', _defineProperty({}, prefixCls + '-wrap-dot-active', index === currentSlide));\n var currentDotStyle = index === currentSlide ? dotActiveStyle : dotStyle;\n return React.createElement(\n 'div',\n { className: dotCls, key: index },\n React.createElement('span', { style: currentDotStyle })\n );\n });\n return React.createElement(\n 'div',\n { className: prefixCls + '-wrap' },\n dotDom\n );\n },\n position: 'BottomCenter'\n }];\n }\n var wrapCls = classnames(prefixCls, className, _defineProperty({}, prefixCls + '-vertical', vertical));\n return React.createElement(ReactCarousel, _extends({}, newProps, { className: wrapCls, decorators: Decorators, afterSlide: this.onChange }));\n }\n }]);\n\n return Carousel;\n}(React.Component);\n\nexport default Carousel;\n\nCarousel.defaultProps = {\n prefixCls: 'am-carousel',\n dots: true,\n arrows: false,\n autoplay: false,\n infinite: false,\n cellAlign: 'center',\n selectedIndex: 0,\n dotStyle: {},\n dotActiveStyle: {}\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PureRenderMixin from 'rc-util/es/PureRenderMixin';\nimport classNames from 'classnames';\n\nvar Checkbox = function (_React$Component) {\n _inherits(Checkbox, _React$Component);\n\n function Checkbox(props) {\n _classCallCheck(this, Checkbox);\n\n var _this = _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var checked = 'checked' in props ? props.checked : props.defaultChecked;\n\n _this.state = {\n checked: checked\n };\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('checked' in nextProps) {\n this.setState({\n checked: nextProps.checked\n });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return PureRenderMixin.shouldComponentUpdate.apply(this, args);\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n style = _props.style,\n name = _props.name,\n type = _props.type,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n tabIndex = _props.tabIndex,\n onClick = _props.onClick,\n onFocus = _props.onFocus,\n onBlur = _props.onBlur,\n others = _objectWithoutProperties(_props, ['prefixCls', 'className', 'style', 'name', 'type', 'disabled', 'readOnly', 'tabIndex', 'onClick', 'onFocus', 'onBlur']);\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 prev[key] = others[key];\n }\n return prev;\n }, {});\n\n var checked = this.state.checked;\n\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-checked', checked), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n\n return React.createElement(\n 'span',\n { className: classString, style: style },\n React.createElement('input', _extends({\n name: name,\n type: type,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n className: prefixCls + '-input',\n checked: !!checked,\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onChange: this.handleChange\n }, globalProps)),\n React.createElement('span', { className: prefixCls + '-inner' })\n );\n }\n }]);\n\n return Checkbox;\n}(React.Component);\n\nCheckbox.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n name: PropTypes.string,\n type: PropTypes.string,\n defaultChecked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n checked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n disabled: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n tabIndex: PropTypes.string,\n readOnly: PropTypes.bool\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};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.handleChange = function (e) {\n var props = _this2.props;\n\n if (props.disabled) {\n return;\n }\n if (!('checked' in props)) {\n _this2.setState({\n checked: e.target.checked\n });\n }\n props.onChange({\n target: _extends({}, props, {\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n }\n });\n };\n};\n\nexport default Checkbox;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\n\nvar Checkbox = function (_React$Component) {\n _inherits(Checkbox, _React$Component);\n\n function Checkbox() {\n _classCallCheck(this, Checkbox);\n\n return _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).apply(this, arguments));\n }\n\n _createClass(Checkbox, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n className = _a.className,\n style = _a.style,\n restProps = __rest(_a, [\"className\", \"style\"]);var prefixCls = restProps.prefixCls,\n children = restProps.children;\n\n var wrapCls = classnames(prefixCls + '-wrapper', className);\n // Todo: wait for https://github.com/developit/preact-compat/issues/422, then we can remove class below\n if ('class' in restProps) {\n /* tslint:disable:no-string-literal */\n delete restProps['class'];\n }\n var mark = React.createElement(\n 'label',\n { className: wrapCls, style: style },\n React.createElement(RcCheckbox, restProps),\n children\n );\n if (this.props.wrapLabel) {\n return mark;\n }\n return React.createElement(RcCheckbox, this.props);\n }\n }]);\n\n return Checkbox;\n}(React.Component);\n\nexport default Checkbox;\n\nCheckbox.defaultProps = {\n prefixCls: 'am-checkbox',\n wrapLabel: true\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport getDataAttr from '../_util/getDataAttr';\nimport Checkbox from './Checkbox';\n\nvar AgreeItem = function (_React$Component) {\n _inherits(AgreeItem, _React$Component);\n\n function AgreeItem() {\n _classCallCheck(this, AgreeItem);\n\n return _possibleConstructorReturn(this, (AgreeItem.__proto__ || Object.getPrototypeOf(AgreeItem)).apply(this, arguments));\n }\n\n _createClass(AgreeItem, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n style = _a.style,\n restProps = __rest(_a, [\"style\"]);var prefixCls = restProps.prefixCls,\n className = restProps.className;\n\n var wrapCls = classnames(prefixCls + '-agree', className);\n return React.createElement(\n 'div',\n _extends({}, getDataAttr(restProps), { className: wrapCls, style: style }),\n React.createElement(Checkbox, _extends({}, restProps, { className: prefixCls + '-agree-label' }))\n );\n }\n }]);\n\n return AgreeItem;\n}(React.Component);\n\nexport default AgreeItem;\n\nAgreeItem.defaultProps = {\n prefixCls: 'am-checkbox'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nexport var Brief = function (_React$Component) {\n _inherits(Brief, _React$Component);\n\n function Brief() {\n _classCallCheck(this, Brief);\n\n return _possibleConstructorReturn(this, (Brief.__proto__ || Object.getPrototypeOf(Brief)).apply(this, arguments));\n }\n\n _createClass(Brief, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n 'div',\n { className: 'am-list-brief', style: this.props.style },\n this.props.children\n );\n }\n }]);\n\n return Brief;\n}(React.Component);\n\nvar ListItem = function (_React$Component2) {\n _inherits(ListItem, _React$Component2);\n\n function ListItem(props) {\n _classCallCheck(this, ListItem);\n\n var _this2 = _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).call(this, props));\n\n _this2.onClick = function (ev) {\n var _this2$props = _this2.props,\n onClick = _this2$props.onClick,\n platform = _this2$props.platform;\n\n var isAndroid = platform === 'android';\n if (!!onClick && isAndroid) {\n if (_this2.debounceTimeout) {\n clearTimeout(_this2.debounceTimeout);\n _this2.debounceTimeout = null;\n }\n var Item = ev.currentTarget;\n var RippleWidth = Math.max(Item.offsetHeight, Item.offsetWidth);\n var ClientRect = ev.currentTarget.getBoundingClientRect();\n var pointX = ev.clientX - ClientRect.left - Item.offsetWidth / 2;\n var pointY = ev.clientY - ClientRect.top - Item.offsetWidth / 2;\n var coverRippleStyle = {\n width: RippleWidth + 'px',\n height: RippleWidth + 'px',\n left: pointX + 'px',\n top: pointY + 'px'\n };\n _this2.setState({\n coverRippleStyle: coverRippleStyle,\n RippleClicked: true\n }, function () {\n _this2.debounceTimeout = setTimeout(function () {\n _this2.setState({\n coverRippleStyle: { display: 'none' },\n RippleClicked: false\n });\n }, 1000);\n });\n }\n if (onClick) {\n onClick(ev);\n }\n };\n _this2.state = {\n coverRippleStyle: { display: 'none' },\n RippleClicked: false\n };\n return _this2;\n }\n\n _createClass(ListItem, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames,\n _classnames3,\n _classnames4,\n _this3 = this;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n activeStyle = _a.activeStyle,\n error = _a.error,\n align = _a.align,\n wrap = _a.wrap,\n disabled = _a.disabled,\n children = _a.children,\n multipleLine = _a.multipleLine,\n thumb = _a.thumb,\n extra = _a.extra,\n arrow = _a.arrow,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"activeStyle\", \"error\", \"align\", \"wrap\", \"disabled\", \"children\", \"multipleLine\", \"thumb\", \"extra\", \"arrow\", \"onClick\"]);var platform = restProps.platform,\n otherProps = __rest(restProps, [\"platform\"]);var _state = this.state,\n coverRippleStyle = _state.coverRippleStyle,\n RippleClicked = _state.RippleClicked;\n\n var wrapCls = classnames(prefixCls + '-item', className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-item-disabled', disabled), _defineProperty(_classnames, prefixCls + '-item-error', error), _defineProperty(_classnames, prefixCls + '-item-top', align === 'top'), _defineProperty(_classnames, prefixCls + '-item-middle', align === 'middle'), _defineProperty(_classnames, prefixCls + '-item-bottom', align === 'bottom'), _classnames));\n var rippleCls = classnames(prefixCls + '-ripple', _defineProperty({}, prefixCls + '-ripple-animate', RippleClicked));\n var lineCls = classnames(prefixCls + '-line', (_classnames3 = {}, _defineProperty(_classnames3, prefixCls + '-line-multiple', multipleLine), _defineProperty(_classnames3, prefixCls + '-line-wrap', wrap), _classnames3));\n var arrowCls = classnames(prefixCls + '-arrow', (_classnames4 = {}, _defineProperty(_classnames4, prefixCls + '-arrow-horizontal', arrow === 'horizontal'), _defineProperty(_classnames4, prefixCls + '-arrow-vertical', arrow === 'down' || arrow === 'up'), _defineProperty(_classnames4, prefixCls + '-arrow-vertical-up', arrow === 'up'), _classnames4));\n var content = React.createElement(\n 'div',\n _extends({}, otherProps, { onClick: function onClick(ev) {\n _this3.onClick(ev);\n }, className: wrapCls }),\n thumb ? React.createElement(\n 'div',\n { className: prefixCls + '-thumb' },\n typeof thumb === 'string' ? React.createElement('img', { src: thumb }) : thumb\n ) : null,\n React.createElement(\n 'div',\n { className: lineCls },\n children !== undefined && React.createElement(\n 'div',\n { className: prefixCls + '-content' },\n children\n ),\n extra !== undefined && React.createElement(\n 'div',\n { className: prefixCls + '-extra' },\n extra\n ),\n arrow && React.createElement('div', { className: arrowCls, 'aria-hidden': 'true' })\n ),\n React.createElement('div', { style: coverRippleStyle, className: rippleCls })\n );\n var touchProps = {};\n Object.keys(otherProps).forEach(function (key) {\n if (/onTouch/i.test(key)) {\n touchProps[key] = otherProps[key];\n delete otherProps[key];\n }\n });\n return React.createElement(\n TouchFeedback,\n _extends({}, touchProps, { disabled: disabled || !onClick, activeStyle: activeStyle, activeClassName: prefixCls + '-item-active' }),\n content\n );\n }\n }]);\n\n return ListItem;\n}(React.Component);\n\nListItem.defaultProps = {\n prefixCls: 'am-list',\n align: 'middle',\n error: false,\n multipleLine: false,\n wrap: false,\n platform: 'ios'\n};\nListItem.Brief = Brief;\nexport default ListItem;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Item from './ListItem';\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n children = _a.children,\n className = _a.className,\n style = _a.style,\n renderHeader = _a.renderHeader,\n renderFooter = _a.renderFooter,\n restProps = __rest(_a, [\"prefixCls\", \"children\", \"className\", \"style\", \"renderHeader\", \"renderFooter\"]);\n var wrapCls = classnames(prefixCls, className);\n return React.createElement(\n 'div',\n _extends({ className: wrapCls, style: style }, restProps),\n renderHeader ? React.createElement(\n 'div',\n { className: prefixCls + '-header' },\n typeof renderHeader === 'function' ? renderHeader() : renderHeader\n ) : null,\n children ? React.createElement(\n 'div',\n { className: prefixCls + '-body' },\n children\n ) : null,\n renderFooter ? React.createElement(\n 'div',\n { className: prefixCls + '-footer' },\n typeof renderFooter === 'function' ? renderFooter() : renderFooter\n ) : null\n );\n }\n }]);\n\n return List;\n}(React.Component);\n\nexport default List;\n\nList.Item = Item;\nList.defaultProps = {\n prefixCls: 'am-list'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport List from '../list';\nimport Checkbox from './Checkbox';\nvar ListItem = List.Item;\n// tslint:disable-next-line:no-empty\nfunction noop() {}\n\nvar CheckboxItem = function (_React$Component) {\n _inherits(CheckboxItem, _React$Component);\n\n function CheckboxItem() {\n _classCallCheck(this, CheckboxItem);\n\n return _possibleConstructorReturn(this, (CheckboxItem.__proto__ || Object.getPrototypeOf(CheckboxItem)).apply(this, arguments));\n }\n\n _createClass(CheckboxItem, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _a = this.props,\n listPrefixCls = _a.listPrefixCls,\n onChange = _a.onChange,\n disabled = _a.disabled,\n checkboxProps = _a.checkboxProps,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"listPrefixCls\", \"onChange\", \"disabled\", \"checkboxProps\", \"onClick\"]);var prefixCls = restProps.prefixCls,\n className = restProps.className,\n children = restProps.children;\n\n var wrapCls = classnames(prefixCls + '-item', className, _defineProperty({}, prefixCls + '-item-disabled', disabled === true));\n // Note: if not omit `onChange`, it will trigger twice on check listitem\n if (!disabled) {\n restProps.onClick = onClick || noop;\n }\n var extraProps = {};\n ['name', 'defaultChecked', 'checked', 'onChange', 'disabled'].forEach(function (i) {\n if (i in _this2.props) {\n extraProps[i] = _this2.props[i];\n }\n });\n return React.createElement(\n ListItem,\n _extends({}, restProps, { prefixCls: listPrefixCls, className: wrapCls, thumb: React.createElement(Checkbox, _extends({}, checkboxProps, extraProps)) }),\n children\n );\n }\n }]);\n\n return CheckboxItem;\n}(React.Component);\n\nexport default CheckboxItem;\n\nCheckboxItem.defaultProps = {\n prefixCls: 'am-checkbox',\n listPrefixCls: 'am-list',\n checkboxProps: {}\n};","import AgreeItem from './AgreeItem';\nimport Checkbox from './Checkbox';\nimport CheckboxItem from './CheckboxItem';\nCheckbox.CheckboxItem = CheckboxItem;\nCheckbox.AgreeItem = AgreeItem;\nexport default Checkbox;","function _extends() { _extends = Object.assign || 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); }\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\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport * as React from 'react';\nexport default function PopupMixin(getModal, platformProps) {\n var _a;\n\n return _a =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_a, _React$Component);\n\n function _a(props) {\n var _this;\n\n _classCallCheck(this, _a);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_a).call(this, props));\n\n _this.onPickerChange = function (pickerValue) {\n if (_this.state.pickerValue !== pickerValue) {\n _this.setState({\n pickerValue: pickerValue\n });\n\n var _this$props = _this.props,\n picker = _this$props.picker,\n pickerValueChangeProp = _this$props.pickerValueChangeProp;\n\n if (picker && picker.props[pickerValueChangeProp]) {\n picker.props[pickerValueChangeProp](pickerValue);\n }\n }\n };\n\n _this.saveRef = function (picker) {\n _this.picker = picker;\n };\n\n _this.onTriggerClick = function (e) {\n var child = _this.props.children;\n var childProps = child.props || {};\n\n if (childProps[_this.props.triggerType]) {\n childProps[_this.props.triggerType](e);\n }\n\n _this.fireVisibleChange(!_this.state.visible);\n };\n\n _this.onOk = function () {\n _this.props.onOk(_this.picker && _this.picker.getValue());\n\n _this.fireVisibleChange(false);\n };\n\n _this.getContent = function () {\n if (_this.props.picker) {\n var _React$cloneElement;\n\n var pickerValue = _this.state.pickerValue;\n\n if (pickerValue === null) {\n pickerValue = _this.props.value;\n }\n\n return React.cloneElement(_this.props.picker, (_React$cloneElement = {}, _defineProperty(_React$cloneElement, _this.props.pickerValueProp, pickerValue), _defineProperty(_React$cloneElement, _this.props.pickerValueChangeProp, _this.onPickerChange), _defineProperty(_React$cloneElement, \"ref\", _this.saveRef), _React$cloneElement));\n } else {\n return _this.props.content;\n }\n };\n\n _this.onDismiss = function () {\n _this.props.onDismiss();\n\n _this.fireVisibleChange(false);\n };\n\n _this.hide = function () {\n _this.fireVisibleChange(false);\n };\n\n _this.state = {\n pickerValue: 'value' in _this.props ? _this.props.value : null,\n visible: _this.props.visible || false\n };\n return _this;\n }\n\n _createClass(_a, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n pickerValue: nextProps.value\n });\n }\n\n if ('visible' in nextProps) {\n this.setVisibleState(nextProps.visible);\n }\n }\n }, {\n key: \"setVisibleState\",\n value: function setVisibleState(visible) {\n this.setState({\n visible: visible\n });\n\n if (!visible) {\n this.setState({\n pickerValue: null\n });\n }\n }\n }, {\n key: \"fireVisibleChange\",\n value: function fireVisibleChange(visible) {\n if (this.state.visible !== visible) {\n if (!('visible' in this.props)) {\n this.setVisibleState(visible);\n }\n\n this.props.onVisibleChange(visible);\n }\n }\n }, {\n key: \"getRender\",\n value: function getRender() {\n var props = this.props;\n var children = props.children;\n\n if (!children) {\n return getModal(props, this.state.visible, {\n getContent: this.getContent,\n onOk: this.onOk,\n hide: this.hide,\n onDismiss: this.onDismiss\n });\n }\n\n var _this$props2 = this.props,\n WrapComponent = _this$props2.WrapComponent,\n disabled = _this$props2.disabled;\n var child = children;\n var newChildProps = {};\n\n if (!disabled) {\n newChildProps[props.triggerType] = this.onTriggerClick;\n }\n\n return React.createElement(WrapComponent, {\n style: props.wrapStyle\n }, React.cloneElement(child, newChildProps), getModal(props, this.state.visible, {\n getContent: this.getContent,\n onOk: this.onOk,\n hide: this.hide,\n onDismiss: this.onDismiss\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.getRender();\n }\n }]);\n\n return _a;\n }(React.Component), _a.defaultProps = _extends({\n onVisibleChange: function onVisibleChange(_) {},\n okText: 'Ok',\n dismissText: 'Dismiss',\n title: '',\n onOk: function onOk(_) {},\n onDismiss: function onDismiss() {}\n }, platformProps), _a;\n}","import * as React from 'react';\nimport Modal from 'rmc-dialog';\nimport PopupMixin from './PopupMixin';\nimport Touchable from 'rmc-feedback';\n\nvar getModal = function getModal(props, visible, _ref) {\n var getContent = _ref.getContent,\n hide = _ref.hide,\n onDismiss = _ref.onDismiss,\n onOk = _ref.onOk;\n\n if (!visible) {\n return null;\n }\n\n var prefixCls = props.prefixCls;\n return React.createElement(Modal, {\n prefixCls: \"\".concat(prefixCls),\n className: props.className || '',\n visible: true,\n closable: false,\n transitionName: props.transitionName || props.popupTransitionName,\n maskTransitionName: props.maskTransitionName,\n onClose: hide,\n style: props.style\n }, React.createElement(\"div\", null, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, React.createElement(Touchable, {\n activeClassName: \"\".concat(prefixCls, \"-item-active\")\n }, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item \").concat(prefixCls, \"-header-left\"),\n onClick: onDismiss\n }, props.dismissText)), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item \").concat(prefixCls, \"-title\")\n }, props.title), React.createElement(Touchable, {\n activeClassName: \"\".concat(prefixCls, \"-item-active\")\n }, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item \").concat(prefixCls, \"-header-right\"),\n onClick: onOk\n }, props.okText))), getContent()));\n};\n\nexport default PopupMixin(getModal, {\n prefixCls: 'rmc-picker-popup',\n WrapComponent: 'span',\n triggerType: 'onClick',\n pickerValueProp: 'selectedValue',\n pickerValueChangeProp: 'onValueChange'\n});","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PopupPicker from 'rmc-picker/es/Popup';\n\nvar PopupDatePicker = function (_React$Component) {\n _inherits(PopupDatePicker, _React$Component);\n\n function PopupDatePicker() {\n _classCallCheck(this, PopupDatePicker);\n\n var _this = _possibleConstructorReturn(this, (PopupDatePicker.__proto__ || Object.getPrototypeOf(PopupDatePicker)).apply(this, arguments));\n\n _this.onOk = function (v) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n onOk = _this$props.onOk;\n\n if (onChange) {\n onChange(v);\n }\n if (onOk) {\n onOk(v);\n }\n };\n return _this;\n }\n\n _createClass(PopupDatePicker, [{\n key: 'render',\n value: function render() {\n return React.createElement(PopupPicker, _extends({ picker: this.props.datePicker, value: this.props.date }, this.props, { onOk: this.onOk }));\n }\n }]);\n\n return PopupDatePicker;\n}(React.Component);\n\nPopupDatePicker.defaultProps = {\n pickerValueProp: 'date',\n pickerValueChangeProp: 'onDateChange'\n};\nexport default PopupDatePicker;","import _typeof from 'babel-runtime/helpers/typeof';\nfunction formatIt(date, form) {\n var pad = function pad(n) {\n return n < 10 ? '0' + n : n;\n };\n var dateStr = date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate());\n var timeStr = pad(date.getHours()) + ':' + pad(date.getMinutes());\n if (form === 'YYYY-MM-DD') {\n return dateStr;\n }\n if (form === 'HH:mm') {\n return timeStr;\n }\n return dateStr + ' ' + timeStr;\n}\nexport function formatFn(instance, value) {\n var formatsEnum = {\n date: 'YYYY-MM-DD',\n time: 'HH:mm',\n datetime: 'YYYY-MM-DD HH:mm'\n };\n var format = instance.props.format;\n\n var type = typeof format === 'undefined' ? 'undefined' : _typeof(format);\n if (type === 'string') {\n return formatIt(value, format);\n }\n if (type === 'function') {\n return format(value);\n }\n return formatIt(value, formatsEnum[instance.props.mode]);\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RCDatePicker from 'rmc-date-picker/es/DatePicker';\nimport PopupDatePicker from 'rmc-date-picker/es/Popup';\nimport { getComponentLocale } from '../_util/getLocale';\nimport { formatFn } from './utils';\n\nvar DatePicker = function (_React$Component) {\n _inherits(DatePicker, _React$Component);\n\n function DatePicker() {\n _classCallCheck(this, DatePicker);\n\n var _this = _possibleConstructorReturn(this, (DatePicker.__proto__ || Object.getPrototypeOf(DatePicker)).apply(this, arguments));\n\n _this.setScrollValue = function (v) {\n _this.scrollValue = v;\n };\n _this.onOk = function (v) {\n if (_this.scrollValue !== undefined) {\n v = _this.scrollValue;\n }\n if (_this.props.onChange) {\n _this.props.onChange(v);\n }\n if (_this.props.onOk) {\n _this.props.onOk(v);\n }\n };\n _this.onVisibleChange = function (visible) {\n _this.scrollValue = undefined;\n if (_this.props.onVisibleChange) {\n _this.props.onVisibleChange(visible);\n }\n };\n _this.fixOnOk = function (picker) {\n if (picker) {\n picker.onOk = _this.onOk;\n }\n };\n return _this;\n }\n\n _createClass(DatePicker, [{\n key: 'render',\n value: function render() {\n // tslint:disable-next-line:no-this-assignment\n var props = this.props,\n context = this.context;\n var children = props.children,\n value = props.value,\n popupPrefixCls = props.popupPrefixCls;\n\n var locale = getComponentLocale(props, context, 'DatePicker', function () {\n return require('./locale/zh_CN');\n });\n var okText = locale.okText,\n dismissText = locale.dismissText,\n extra = locale.extra,\n DatePickerLocale = locale.DatePickerLocale;\n /**\n * 注意:\n * 受控 表示 通过设置 value 属性、组件的最终状态跟 value 设置值一致。\n * 默认不设置 value 或 只设置 defaultValue 表示非受控。\n *\n * DatePickerView 对外通过 value “只支持 受控” 模式(可以使用 defaultDate 支持 非受控 模式,但不对外)\n * PickerView 对外通过 value “只支持 受控” 模式\n *\n * DatePicker / Picker 对外只有 value 属性 (没有 defaultValue),\n * 其中 List 展示部分 “只支持 受控” 模式,\n * 弹出的 选择器部分 会随外部 value 改变而变、同时能自由滚动\n * (即不会因为传入的 value 不变而不能滚动 (不像原生 input 的受控行为))\n *\n */\n\n var datePicker = React.createElement(RCDatePicker, { minuteStep: props.minuteStep, locale: DatePickerLocale, minDate: props.minDate, maxDate: props.maxDate, mode: props.mode, pickerPrefixCls: props.pickerPrefixCls, prefixCls: props.prefixCls, defaultDate: value || new Date(), use12Hours: props.use12Hours, onValueChange: props.onValueChange, onScrollChange: this.setScrollValue });\n return React.createElement(\n PopupDatePicker,\n _extends({ datePicker: datePicker, WrapComponent: 'div', transitionName: 'am-slide-up', maskTransitionName: 'am-fade' }, props, { prefixCls: popupPrefixCls, date: value || new Date(), dismissText: this.props.dismissText || dismissText, okText: this.props.okText || okText, ref: this.fixOnOk, onVisibleChange: this.onVisibleChange }),\n children && React.isValidElement(children) && React.cloneElement(children, {\n extra: value ? formatFn(this, value) : this.props.extra || extra\n })\n );\n }\n }]);\n\n return DatePicker;\n}(React.Component);\n\nexport default DatePicker;\n\nDatePicker.defaultProps = {\n mode: 'datetime',\n prefixCls: 'am-picker',\n pickerPrefixCls: 'am-picker-col',\n popupPrefixCls: 'am-picker-popup',\n minuteStep: 1,\n use12Hours: false\n};\nDatePicker.contextTypes = {\n antLocale: PropTypes.object\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RCDatePicker from 'rmc-date-picker/es/DatePicker';\nimport { getComponentLocale } from '../_util/getLocale';\n\nvar DatePickerView = function (_React$Component) {\n _inherits(DatePickerView, _React$Component);\n\n function DatePickerView() {\n _classCallCheck(this, DatePickerView);\n\n return _possibleConstructorReturn(this, (DatePickerView.__proto__ || Object.getPrototypeOf(DatePickerView)).apply(this, arguments));\n }\n\n _createClass(DatePickerView, [{\n key: 'render',\n value: function render() {\n // tslint:disable-next-line:no-this-assignment\n var props = this.props,\n context = this.context;\n\n var locale = getComponentLocale(props, context, 'DatePickerView', function () {\n return require('./locale/zh_CN');\n });\n // DatePicker use `defaultDate`, maybe because there are PopupDatePicker inside? @yiminghe\n // Here Use `date` instead of `defaultDate`, make it controlled fully.\n return React.createElement(RCDatePicker, _extends({}, props, { locale: locale, date: props.value, onDateChange: props.onChange, onValueChange: props.onValueChange, onScrollChange: props.onScrollChange }));\n }\n }]);\n\n return DatePickerView;\n}(React.Component);\n\nexport default DatePickerView;\n\nDatePickerView.defaultProps = {\n mode: 'datetime',\n extra: '请选择',\n prefixCls: 'am-picker',\n pickerPrefixCls: 'am-picker-col',\n minuteStep: 1,\n use12Hours: false\n};\nDatePickerView.contextTypes = {\n antLocale: PropTypes.object\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\n\nfunction getOffset(ele) {\n var el = ele;\n var _x = 0;\n var _y = 0;\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n _x += el.offsetLeft - el.scrollLeft;\n _y += el.offsetTop - el.scrollTop;\n el = el.offsetParent;\n }\n return { top: _y, left: _x };\n}\n\nvar CANCEL_DISTANCE_ON_SCROLL = 20;\n\nvar Drawer = function (_React$Component) {\n _inherits(Drawer, _React$Component);\n\n function Drawer(props) {\n _classCallCheck(this, Drawer);\n\n var _this = _possibleConstructorReturn(this, (Drawer.__proto__ || Object.getPrototypeOf(Drawer)).call(this, props));\n\n _this.onOverlayClicked = function () {\n if (_this.props.open) {\n // see https://github.com/react-component/drawer/issues/9\n setTimeout(function () {\n _this.props.onOpenChange(false, { overlayClicked: true });\n }, 0);\n }\n };\n\n _this.onTouchStart = function (ev) {\n // filter out if a user starts swiping with a second finger\n if (!_this.isTouching()) {\n var touch = ev.targetTouches[0];\n _this.setState({\n touchIdentifier: !_this.notTouch ? touch.identifier : null,\n touchStartX: touch.clientX,\n touchStartY: touch.clientY,\n touchCurrentX: touch.clientX,\n touchCurrentY: touch.clientY\n });\n }\n };\n\n _this.onTouchMove = function (ev) {\n // ev.preventDefault(); // cannot touchmove with FastClick\n if (_this.isTouching()) {\n for (var ind = 0; ind < ev.targetTouches.length; ind++) {\n // we only care about the finger that we are tracking\n if (ev.targetTouches[ind].identifier === _this.state.touchIdentifier) {\n _this.setState({\n touchCurrentX: ev.targetTouches[ind].clientX,\n touchCurrentY: ev.targetTouches[ind].clientY\n });\n break;\n }\n }\n }\n };\n\n _this.onTouchEnd = function () {\n _this.notTouch = false;\n if (_this.isTouching()) {\n // trigger a change to open if sidebar has been dragged beyond dragToggleDistance\n var touchWidth = _this.touchSidebarWidth();\n\n if (_this.props.open && touchWidth < _this.state.sidebarWidth - _this.props.dragToggleDistance || !_this.props.open && touchWidth > _this.props.dragToggleDistance) {\n _this.props.onOpenChange(!_this.props.open);\n }\n\n var touchHeight = _this.touchSidebarHeight();\n\n if (_this.props.open && touchHeight < _this.state.sidebarHeight - _this.props.dragToggleDistance || !_this.props.open && touchHeight > _this.props.dragToggleDistance) {\n _this.props.onOpenChange(!_this.props.open);\n }\n\n _this.setState({\n touchIdentifier: null,\n touchStartX: null,\n touchStartY: null,\n touchCurrentX: null,\n touchCurrentY: null\n });\n }\n };\n\n _this.onScroll = function () {\n if (_this.isTouching() && _this.inCancelDistanceOnScroll()) {\n _this.setState({\n touchIdentifier: null,\n touchStartX: null,\n touchStartY: null,\n touchCurrentX: null,\n touchCurrentY: null\n });\n }\n };\n\n _this.inCancelDistanceOnScroll = function () {\n var cancelDistanceOnScroll = void 0;\n switch (_this.props.position) {\n case 'right':\n cancelDistanceOnScroll = Math.abs(_this.state.touchCurrentX - _this.state.touchStartX) < CANCEL_DISTANCE_ON_SCROLL;\n break;\n case 'bottom':\n cancelDistanceOnScroll = Math.abs(_this.state.touchCurrentY - _this.state.touchStartY) < CANCEL_DISTANCE_ON_SCROLL;\n break;\n case 'top':\n cancelDistanceOnScroll = Math.abs(_this.state.touchStartY - _this.state.touchCurrentY) < CANCEL_DISTANCE_ON_SCROLL;\n break;\n case 'left':\n default:\n cancelDistanceOnScroll = Math.abs(_this.state.touchStartX - _this.state.touchCurrentX) < CANCEL_DISTANCE_ON_SCROLL;\n }\n return cancelDistanceOnScroll;\n };\n\n _this.isTouching = function () {\n return _this.state.touchIdentifier !== null;\n };\n\n _this.saveSidebarSize = function () {\n var sidebar = ReactDOM.findDOMNode(_this.refs.sidebar);\n var width = sidebar.offsetWidth;\n var height = sidebar.offsetHeight;\n var sidebarTop = getOffset(ReactDOM.findDOMNode(_this.refs.sidebar)).top;\n var dragHandleTop = getOffset(ReactDOM.findDOMNode(_this.refs.dragHandle)).top;\n\n if (width !== _this.state.sidebarWidth) {\n _this.setState({ sidebarWidth: width });\n }\n if (height !== _this.state.sidebarHeight) {\n _this.setState({ sidebarHeight: height });\n }\n if (sidebarTop !== _this.state.sidebarTop) {\n _this.setState({ sidebarTop: sidebarTop });\n }\n if (dragHandleTop !== _this.state.dragHandleTop) {\n _this.setState({ dragHandleTop: dragHandleTop });\n }\n };\n\n _this.touchSidebarWidth = function () {\n // if the sidebar is open and start point of drag is inside the sidebar\n // we will only drag the distance they moved their finger\n // otherwise we will move the sidebar to be below the finger.\n if (_this.props.position === 'right') {\n if (_this.props.open && window.innerWidth - _this.state.touchStartX < _this.state.sidebarWidth) {\n if (_this.state.touchCurrentX > _this.state.touchStartX) {\n return _this.state.sidebarWidth + _this.state.touchStartX - _this.state.touchCurrentX;\n }\n return _this.state.sidebarWidth;\n }\n return Math.min(window.innerWidth - _this.state.touchCurrentX, _this.state.sidebarWidth);\n }\n\n if (_this.props.position === 'left') {\n if (_this.props.open && _this.state.touchStartX < _this.state.sidebarWidth) {\n if (_this.state.touchCurrentX > _this.state.touchStartX) {\n return _this.state.sidebarWidth;\n }\n return _this.state.sidebarWidth - _this.state.touchStartX + _this.state.touchCurrentX;\n }\n return Math.min(_this.state.touchCurrentX, _this.state.sidebarWidth);\n }\n };\n\n _this.touchSidebarHeight = function () {\n // if the sidebar is open and start point of drag is inside the sidebar\n // we will only drag the distance they moved their finger\n // otherwise we will move the sidebar to be below the finger.\n if (_this.props.position === 'bottom') {\n if (_this.props.open && window.innerHeight - _this.state.touchStartY < _this.state.sidebarHeight) {\n if (_this.state.touchCurrentY > _this.state.touchStartY) {\n return _this.state.sidebarHeight + _this.state.touchStartY - _this.state.touchCurrentY;\n }\n return _this.state.sidebarHeight;\n }\n return Math.min(window.innerHeight - _this.state.touchCurrentY, _this.state.sidebarHeight);\n }\n\n if (_this.props.position === 'top') {\n var touchStartOffsetY = _this.state.touchStartY - _this.state.sidebarTop;\n if (_this.props.open && touchStartOffsetY < _this.state.sidebarHeight) {\n if (_this.state.touchCurrentY > _this.state.touchStartY) {\n return _this.state.sidebarHeight;\n }\n return _this.state.sidebarHeight - _this.state.touchStartY + _this.state.touchCurrentY;\n }\n return Math.min(_this.state.touchCurrentY - _this.state.dragHandleTop, _this.state.sidebarHeight);\n }\n };\n\n _this.renderStyle = function (_ref) {\n var sidebarStyle = _ref.sidebarStyle,\n isTouching = _ref.isTouching,\n overlayStyle = _ref.overlayStyle,\n contentStyle = _ref.contentStyle;\n\n if (_this.props.position === 'right' || _this.props.position === 'left') {\n sidebarStyle.transform = 'translateX(0%)';\n sidebarStyle.WebkitTransform = 'translateX(0%)';\n if (isTouching) {\n var percentage = _this.touchSidebarWidth() / _this.state.sidebarWidth;\n // slide open to what we dragged\n if (_this.props.position === 'right') {\n sidebarStyle.transform = 'translateX(' + (1 - percentage) * 100 + '%)';\n sidebarStyle.WebkitTransform = 'translateX(' + (1 - percentage) * 100 + '%)';\n }\n if (_this.props.position === 'left') {\n sidebarStyle.transform = 'translateX(-' + (1 - percentage) * 100 + '%)';\n sidebarStyle.WebkitTransform = 'translateX(-' + (1 - percentage) * 100 + '%)';\n }\n // fade overlay to match distance of drag\n overlayStyle.opacity = percentage;\n overlayStyle.visibility = 'visible';\n }\n if (contentStyle) {\n contentStyle[_this.props.position] = _this.state.sidebarWidth + 'px';\n }\n }\n if (_this.props.position === 'top' || _this.props.position === 'bottom') {\n sidebarStyle.transform = 'translateY(0%)';\n sidebarStyle.WebkitTransform = 'translateY(0%)';\n if (isTouching) {\n var _percentage = _this.touchSidebarHeight() / _this.state.sidebarHeight;\n // slide open to what we dragged\n if (_this.props.position === 'bottom') {\n sidebarStyle.transform = 'translateY(' + (1 - _percentage) * 100 + '%)';\n sidebarStyle.WebkitTransform = 'translateY(' + (1 - _percentage) * 100 + '%)';\n }\n if (_this.props.position === 'top') {\n sidebarStyle.transform = 'translateY(-' + (1 - _percentage) * 100 + '%)';\n sidebarStyle.WebkitTransform = 'translateY(-' + (1 - _percentage) * 100 + '%)';\n }\n // fade overlay to match distance of drag\n overlayStyle.opacity = _percentage;\n overlayStyle.visibility = 'visible';\n }\n if (contentStyle) {\n contentStyle[_this.props.position] = _this.state.sidebarHeight + 'px';\n }\n }\n };\n\n _this.state = {\n // the detected width of the sidebar in pixels\n sidebarWidth: 0,\n sidebarHeight: 0,\n sidebarTop: 0,\n dragHandleTop: 0,\n\n // keep track of touching params\n touchIdentifier: null,\n touchStartX: null,\n touchStartY: null,\n touchCurrentX: null,\n touchCurrentY: null,\n\n // if touch is supported by the browser\n touchSupported: (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && 'ontouchstart' in window\n };\n return _this;\n }\n\n _createClass(Drawer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.saveSidebarSize();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n // filter out the updates when we're touching\n if (!this.isTouching()) {\n this.saveSidebarSize();\n }\n }\n\n // This logic helps us prevents the user from sliding the sidebar horizontally\n // while scrolling the sidebar vertically. When a scroll event comes in, we're\n // cancelling the ongoing gesture if it did not move horizontally much.\n\n\n // True if the on going gesture X distance is less than the cancel distance\n\n\n // calculate the sidebarWidth based on current touch info\n\n // calculate the sidebarHeight based on current touch info\n\n }, {\n key: 'render',\n value: function render() {\n var _rootCls,\n _this2 = this;\n\n var _props = this.props,\n className = _props.className,\n style = _props.style,\n prefixCls = _props.prefixCls,\n position = _props.position,\n transitions = _props.transitions,\n touch = _props.touch,\n enableDragHandle = _props.enableDragHandle,\n sidebar = _props.sidebar,\n children = _props.children,\n docked = _props.docked,\n open = _props.open;\n\n\n var sidebarStyle = _extends({}, this.props.sidebarStyle);\n var contentStyle = _extends({}, this.props.contentStyle);\n var overlayStyle = _extends({}, this.props.overlayStyle);\n\n var rootCls = (_rootCls = {}, _defineProperty(_rootCls, className, !!className), _defineProperty(_rootCls, prefixCls, true), _defineProperty(_rootCls, prefixCls + '-' + position, true), _rootCls);\n\n var rootProps = { style: style };\n var isTouching = this.isTouching();\n\n if (isTouching) {\n this.renderStyle({ sidebarStyle: sidebarStyle, isTouching: true, overlayStyle: overlayStyle });\n } else if (docked) {\n if (this.state.sidebarWidth !== 0) {\n rootCls[prefixCls + '-docked'] = true;\n this.renderStyle({ sidebarStyle: sidebarStyle, contentStyle: contentStyle });\n }\n } else if (open) {\n rootCls[prefixCls + '-open'] = true;\n this.renderStyle({ sidebarStyle: sidebarStyle });\n overlayStyle.opacity = 1;\n overlayStyle.visibility = 'visible';\n }\n\n if (isTouching || !transitions) {\n sidebarStyle.transition = 'none';\n sidebarStyle.WebkitTransition = 'none';\n contentStyle.transition = 'none';\n overlayStyle.transition = 'none';\n }\n\n var dragHandle = null;\n\n if (this.state.touchSupported && touch) {\n if (open) {\n rootProps.onTouchStart = function (ev) {\n _this2.notTouch = true;\n _this2.onTouchStart(ev);\n };\n rootProps.onTouchMove = this.onTouchMove;\n rootProps.onTouchEnd = this.onTouchEnd;\n rootProps.onTouchCancel = this.onTouchEnd;\n rootProps.onScroll = this.onScroll;\n } else if (enableDragHandle) {\n dragHandle = React.createElement('div', { className: prefixCls + '-draghandle', style: this.props.dragHandleStyle,\n onTouchStart: this.onTouchStart, onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd, onTouchCancel: this.onTouchEnd,\n ref: 'dragHandle'\n });\n }\n }\n\n // const evt = {};\n // // FastClick use touchstart instead of click\n // if (this.state.touchSupported) {\n // evt.onTouchStart = () => {\n // this.notTouch = true;\n // this.onOverlayClicked();\n // };\n // evt.onTouchEnd = () => {\n // this.notTouch = false;\n // this.setState({\n // touchIdentifier: null,\n // });\n // };\n // } else {\n // evt.onClick = this.onOverlayClicked;\n // }\n\n return React.createElement(\n 'div',\n _extends({ className: classNames(rootCls) }, rootProps),\n React.createElement(\n 'div',\n { className: prefixCls + '-sidebar', style: sidebarStyle,\n ref: 'sidebar'\n },\n sidebar\n ),\n React.createElement('div', { className: prefixCls + '-overlay',\n style: overlayStyle,\n role: 'presentation',\n ref: 'overlay',\n onClick: this.onOverlayClicked\n }),\n React.createElement(\n 'div',\n { className: prefixCls + '-content', style: contentStyle,\n ref: 'content'\n },\n dragHandle,\n children\n )\n );\n }\n }]);\n\n return Drawer;\n}(React.Component);\n\nDrawer.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n // main content to render\n children: PropTypes.node.isRequired,\n\n // styles\n // styles: PropTypes.shape({\n // dragHandle: PropTypes.object,\n // }),\n style: PropTypes.object,\n sidebarStyle: PropTypes.object,\n contentStyle: PropTypes.object,\n overlayStyle: PropTypes.object,\n dragHandleStyle: PropTypes.object,\n\n // sidebar content to render\n sidebar: PropTypes.node.isRequired,\n\n // boolean if sidebar should be docked\n docked: PropTypes.bool,\n\n // boolean if sidebar should slide open\n open: PropTypes.bool,\n\n // boolean if transitions should be disabled\n transitions: PropTypes.bool,\n\n // boolean if touch gestures are enabled\n touch: PropTypes.bool,\n enableDragHandle: PropTypes.bool,\n\n // where to place the sidebar\n position: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\n\n // distance we have to drag the sidebar to toggle open state\n dragToggleDistance: PropTypes.number,\n\n // callback called when the overlay is clicked\n onOpenChange: PropTypes.func\n};\nDrawer.defaultProps = {\n prefixCls: 'rmc-drawer',\n sidebarStyle: {},\n contentStyle: {},\n overlayStyle: {},\n dragHandleStyle: {},\n docked: false,\n open: false,\n transitions: true,\n touch: true,\n enableDragHandle: true,\n position: 'left',\n dragToggleDistance: 30,\n onOpenChange: function onOpenChange() {}\n};\nexport default Drawer;","// export this package's api\nimport Drawer from './Drawer';\nexport default Drawer;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport RmcDrawer from 'rmc-drawer';\nimport * as React from 'react';\n\nvar Drawer = function (_React$Component) {\n _inherits(Drawer, _React$Component);\n\n function Drawer() {\n _classCallCheck(this, Drawer);\n\n return _possibleConstructorReturn(this, (Drawer.__proto__ || Object.getPrototypeOf(Drawer)).apply(this, arguments));\n }\n\n _createClass(Drawer, [{\n key: 'render',\n value: function render() {\n return React.createElement(RmcDrawer, this.props);\n }\n }]);\n\n return Drawer;\n}(React.Component);\n\nexport default Drawer;\n\nDrawer.defaultProps = {\n prefixCls: 'am-drawer',\n enableDragHandle: false\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar Flex = function (_React$Component) {\n _inherits(Flex, _React$Component);\n\n function Flex() {\n _classCallCheck(this, Flex);\n\n return _possibleConstructorReturn(this, (Flex.__proto__ || Object.getPrototypeOf(Flex)).apply(this, arguments));\n }\n\n _createClass(Flex, [{\n key: 'render',\n value: function render() {\n var _classnames;\n\n var _a = this.props,\n direction = _a.direction,\n wrap = _a.wrap,\n justify = _a.justify,\n align = _a.align,\n alignContent = _a.alignContent,\n className = _a.className,\n children = _a.children,\n prefixCls = _a.prefixCls,\n style = _a.style,\n restProps = __rest(_a, [\"direction\", \"wrap\", \"justify\", \"align\", \"alignContent\", \"className\", \"children\", \"prefixCls\", \"style\"]);\n var wrapCls = classnames(prefixCls, className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-dir-row', direction === 'row'), _defineProperty(_classnames, prefixCls + '-dir-row-reverse', direction === 'row-reverse'), _defineProperty(_classnames, prefixCls + '-dir-column', direction === 'column'), _defineProperty(_classnames, prefixCls + '-dir-column-reverse', direction === 'column-reverse'), _defineProperty(_classnames, prefixCls + '-nowrap', wrap === 'nowrap'), _defineProperty(_classnames, prefixCls + '-wrap', wrap === 'wrap'), _defineProperty(_classnames, prefixCls + '-wrap-reverse', wrap === 'wrap-reverse'), _defineProperty(_classnames, prefixCls + '-justify-start', justify === 'start'), _defineProperty(_classnames, prefixCls + '-justify-end', justify === 'end'), _defineProperty(_classnames, prefixCls + '-justify-center', justify === 'center'), _defineProperty(_classnames, prefixCls + '-justify-between', justify === 'between'), _defineProperty(_classnames, prefixCls + '-justify-around', justify === 'around'), _defineProperty(_classnames, prefixCls + '-align-start', align === 'start'), _defineProperty(_classnames, prefixCls + '-align-center', align === 'center'), _defineProperty(_classnames, prefixCls + '-align-end', align === 'end'), _defineProperty(_classnames, prefixCls + '-align-baseline', align === 'baseline'), _defineProperty(_classnames, prefixCls + '-align-stretch', align === 'stretch'), _defineProperty(_classnames, prefixCls + '-align-content-start', alignContent === 'start'), _defineProperty(_classnames, prefixCls + '-align-content-end', alignContent === 'end'), _defineProperty(_classnames, prefixCls + '-align-content-center', alignContent === 'center'), _defineProperty(_classnames, prefixCls + '-align-content-between', alignContent === 'between'), _defineProperty(_classnames, prefixCls + '-align-content-around', alignContent === 'around'), _defineProperty(_classnames, prefixCls + '-align-content-stretch', alignContent === 'stretch'), _classnames));\n return React.createElement(\n 'div',\n _extends({ className: wrapCls, style: style }, restProps),\n children\n );\n }\n }]);\n\n return Flex;\n}(React.Component);\n\nexport default Flex;\n\nFlex.defaultProps = {\n prefixCls: 'am-flexbox',\n align: 'center'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar FlexItem = function (_React$Component) {\n _inherits(FlexItem, _React$Component);\n\n function FlexItem() {\n _classCallCheck(this, FlexItem);\n\n return _possibleConstructorReturn(this, (FlexItem.__proto__ || Object.getPrototypeOf(FlexItem)).apply(this, arguments));\n }\n\n _createClass(FlexItem, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n children = _a.children,\n className = _a.className,\n prefixCls = _a.prefixCls,\n style = _a.style,\n restProps = __rest(_a, [\"children\", \"className\", \"prefixCls\", \"style\"]);\n var wrapCls = classnames(prefixCls + '-item', className);\n return React.createElement(\n 'div',\n _extends({ className: wrapCls, style: style }, restProps),\n children\n );\n }\n }]);\n\n return FlexItem;\n}(React.Component);\n\nexport default FlexItem;\n\nFlexItem.defaultProps = {\n prefixCls: 'am-flexbox'\n};","import Flex from './Flex';\nimport FlexItem from './FlexItem';\nFlex.Item = FlexItem;\nexport default Flex;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport Carousel from '../carousel';\nimport Flex from '../flex';\n\nvar Grid = function (_React$Component) {\n _inherits(Grid, _React$Component);\n\n function Grid() {\n _classCallCheck(this, Grid);\n\n var _this = _possibleConstructorReturn(this, (Grid.__proto__ || Object.getPrototypeOf(Grid)).apply(this, arguments));\n\n _this.state = {\n initialSlideWidth: 0\n };\n _this.renderCarousel = function (rowsArr, pageCount, rowCount) {\n var prefixCls = _this.props.prefixCls;\n\n var carouselMaxRow = _this.props.carouselMaxRow;\n var pagesArr = [];\n for (var pageIndex = 0; pageIndex < pageCount; pageIndex++) {\n var pageRows = [];\n for (var ii = 0; ii < carouselMaxRow; ii++) {\n var rowIndex = pageIndex * carouselMaxRow + ii;\n if (rowIndex < rowCount) {\n pageRows.push(rowsArr[rowIndex]);\n } else {\n // 空节点为了确保末尾页的最后未到底的行有底线(样式中last-child会没线)\n pageRows.push(React.createElement('div', { key: 'gridline-' + rowIndex }));\n }\n }\n pagesArr.push(React.createElement(\n 'div',\n { key: 'pageitem-' + pageIndex, className: prefixCls + '-carousel-page' },\n pageRows\n ));\n }\n return pagesArr;\n };\n _this.renderItem = function (dataItem, index, columnNum, renderItem) {\n var prefixCls = _this.props.prefixCls;\n\n var itemEl = null;\n if (renderItem) {\n itemEl = renderItem(dataItem, index);\n } else {\n if (dataItem) {\n var icon = dataItem.icon,\n text = dataItem.text;\n\n itemEl = React.createElement(\n 'div',\n { className: prefixCls + '-item-inner-content column-num-' + columnNum },\n React.isValidElement(icon) ? icon : React.createElement('img', { className: prefixCls + '-icon', src: icon }),\n React.createElement(\n 'div',\n { className: prefixCls + '-text' },\n text\n )\n );\n }\n }\n return React.createElement(\n 'div',\n { className: prefixCls + '-item-content' },\n itemEl\n );\n };\n _this.getRows = function (rowCount, dataLength) {\n // tslint:disable:prefer-const\n var _this$props = _this.props,\n columnNum = _this$props.columnNum,\n data = _this$props.data,\n renderItem = _this$props.renderItem,\n prefixCls = _this$props.prefixCls,\n _onClick = _this$props.onClick,\n activeStyle = _this$props.activeStyle,\n activeClassName = _this$props.activeClassName,\n itemStyle = _this$props.itemStyle;\n\n var rowsArr = [];\n columnNum = columnNum;\n var rowWidth = 100 / columnNum + '%';\n var colStyle = _extends({ width: rowWidth }, itemStyle);\n for (var i = 0; i < rowCount; i++) {\n var rowArr = [];\n\n var _loop = function _loop(j) {\n var dataIndex = i * columnNum + j;\n var itemEl = void 0;\n if (dataIndex < dataLength) {\n var el = data && data[dataIndex];\n itemEl = React.createElement(\n TouchFeedback,\n { key: 'griditem-' + dataIndex, activeClassName: activeClassName ? activeClassName : prefixCls + '-item-active', activeStyle: activeStyle },\n React.createElement(\n Flex.Item,\n { className: prefixCls + '-item', onClick: function onClick() {\n return _onClick && _onClick(el, dataIndex);\n }, style: colStyle },\n _this.renderItem(el, dataIndex, columnNum, renderItem)\n )\n );\n } else {\n itemEl = React.createElement(Flex.Item, { key: 'griditem-' + dataIndex, className: prefixCls + '-item ' + prefixCls + '-null-item', style: colStyle });\n }\n rowArr.push(itemEl);\n };\n\n for (var j = 0; j < columnNum; j++) {\n _loop(j);\n }\n rowsArr.push(React.createElement(\n Flex,\n { justify: 'center', align: 'stretch', key: 'gridline-' + i },\n rowArr\n ));\n }\n return rowsArr;\n };\n return _this;\n }\n\n _createClass(Grid, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setState({\n initialSlideWidth: document.documentElement.clientWidth\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n data = _a.data,\n hasLine = _a.hasLine,\n isCarousel = _a.isCarousel,\n square = _a.square,\n activeStyle = _a.activeStyle,\n activeClassName = _a.activeClassName,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"data\", \"hasLine\", \"isCarousel\", \"square\", \"activeStyle\", \"activeClassName\"]);\n var columnNum = restProps.columnNum,\n carouselMaxRow = restProps.carouselMaxRow,\n onClick = restProps.onClick,\n renderItem = restProps.renderItem,\n restPropsForCarousel = __rest(restProps, [\"columnNum\", \"carouselMaxRow\", \"onClick\", \"renderItem\"]);\n\n var initialSlideWidth = this.state.initialSlideWidth;\n\n columnNum = columnNum;\n carouselMaxRow = carouselMaxRow;\n var dataLength = data && data.length || 0;\n var rowCount = Math.ceil(dataLength / columnNum);\n var rowsArr = void 0;\n var renderEl = void 0;\n if (isCarousel) {\n if (initialSlideWidth < 0) {\n // carousel server render. because carousel dependes on document\n return null;\n }\n if (rowCount % carouselMaxRow !== 0) {\n rowCount = rowCount + carouselMaxRow - rowCount % carouselMaxRow;\n }\n var pageCount = Math.ceil(rowCount / carouselMaxRow);\n rowsArr = this.getRows(rowCount, dataLength);\n var carouselProps = {};\n if (pageCount <= 1) {\n carouselProps = {\n dots: false,\n dragging: false,\n swiping: false\n };\n }\n renderEl = React.createElement(\n Carousel,\n _extends({ initialSlideWidth: initialSlideWidth }, restPropsForCarousel, carouselProps),\n this.renderCarousel(rowsArr, pageCount, rowCount)\n );\n } else {\n rowsArr = this.getRows(rowCount, dataLength);\n renderEl = rowsArr;\n }\n var cls = classnames(prefixCls, className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-square', square), _defineProperty(_classnames, prefixCls + '-line', hasLine), _defineProperty(_classnames, prefixCls + '-carousel', isCarousel), _classnames));\n return React.createElement(\n 'div',\n { className: cls },\n renderEl\n );\n }\n }]);\n\n return Grid;\n}(React.Component);\n\nexport default Grid;\n\nGrid.defaultProps = {\n data: [],\n hasLine: true,\n isCarousel: false,\n columnNum: 4,\n carouselMaxRow: 2,\n prefixCls: 'am-grid',\n square: true,\n itemStyle: {}\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:no-bitwise */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport Flex from '../flex';\nfunction noop() {}\n\nvar ImagePicker = function (_React$Component) {\n _inherits(ImagePicker, _React$Component);\n\n function ImagePicker() {\n _classCallCheck(this, ImagePicker);\n\n // http://stackoverflow.com/questions/7584794/accessing-jpeg-exif-rotation-data-in-javascript-on-the-client-side\n var _this = _possibleConstructorReturn(this, (ImagePicker.__proto__ || Object.getPrototypeOf(ImagePicker)).apply(this, arguments));\n\n _this.getOrientation = function (file, callback) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var view = new DataView(e.target.result);\n if (view.getUint16(0, false) !== 0xffd8) {\n return callback(-2);\n }\n var length = view.byteLength;\n var offset = 2;\n while (offset < length) {\n var marker = view.getUint16(offset, false);\n offset += 2;\n if (marker === 0xffe1) {\n var tmp = view.getUint32(offset += 2, false);\n if (tmp !== 0x45786966) {\n return callback(-1);\n }\n var little = view.getUint16(offset += 6, false) === 0x4949;\n offset += view.getUint32(offset + 4, little);\n var tags = view.getUint16(offset, little);\n offset += 2;\n for (var i = 0; i < tags; i++) {\n if (view.getUint16(offset + i * 12, little) === 0x0112) {\n return callback(view.getUint16(offset + i * 12 + 8, little));\n }\n }\n } else if ((marker & 0xff00) !== 0xff00) {\n break;\n } else {\n offset += view.getUint16(offset, false);\n }\n }\n return callback(-1);\n };\n reader.readAsArrayBuffer(file.slice(0, 64 * 1024));\n };\n _this.getRotation = function () {\n var orientation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n var imgRotation = 0;\n switch (orientation) {\n case 3:\n imgRotation = 180;\n break;\n case 6:\n imgRotation = 90;\n break;\n case 8:\n imgRotation = 270;\n break;\n default:\n }\n return imgRotation;\n };\n _this.removeImage = function (index) {\n var newImages = [];\n var _this$props$files = _this.props.files,\n files = _this$props$files === undefined ? [] : _this$props$files;\n\n files.forEach(function (image, idx) {\n if (index !== idx) {\n newImages.push(image);\n }\n });\n if (_this.props.onChange) {\n _this.props.onChange(newImages, 'remove', index);\n }\n };\n _this.addImage = function (imgItem) {\n var _this$props$files2 = _this.props.files,\n files = _this$props$files2 === undefined ? [] : _this$props$files2;\n\n var newImages = files.concat(imgItem);\n if (_this.props.onChange) {\n _this.props.onChange(newImages, 'add');\n }\n };\n _this.onImageClick = function (index) {\n if (_this.props.onImageClick) {\n _this.props.onImageClick(index, _this.props.files);\n }\n };\n _this.onFileChange = function () {\n var fileSelectorEl = _this.fileSelectorInput;\n if (fileSelectorEl && fileSelectorEl.files && fileSelectorEl.files.length) {\n var files = fileSelectorEl.files;\n var imageParsePromiseList = [];\n for (var i = 0; i < files.length; i++) {\n imageParsePromiseList.push(_this.parseFile(files[i], i));\n }\n Promise.all(imageParsePromiseList).then(function (imageItems) {\n return _this.addImage(imageItems);\n })['catch'](function (error) {\n if (_this.props.onFail) {\n _this.props.onFail(error);\n }\n });\n }\n if (fileSelectorEl) {\n fileSelectorEl.value = '';\n }\n };\n _this.parseFile = function (file, index) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var dataURL = e.target.result;\n if (!dataURL) {\n reject('Fail to get the ' + index + ' image');\n return;\n }\n var orientation = 1;\n _this.getOrientation(file, function (res) {\n // -2: not jpeg , -1: not defined\n if (res > 0) {\n orientation = res;\n }\n resolve({\n url: dataURL,\n orientation: orientation,\n file: file\n });\n });\n };\n reader.readAsDataURL(file);\n });\n };\n return _this;\n }\n\n _createClass(ImagePicker, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n style = _props.style,\n className = _props.className,\n _props$files = _props.files,\n files = _props$files === undefined ? [] : _props$files,\n selectable = _props.selectable,\n onAddImageClick = _props.onAddImageClick,\n multiple = _props.multiple,\n accept = _props.accept,\n capture = _props.capture,\n disableDelete = _props.disableDelete;\n\n var imgItemList = [];\n var count = parseInt('' + this.props.length, 10);\n if (count <= 0) {\n count = 4;\n }\n var wrapCls = classnames('' + prefixCls, className);\n files.forEach(function (image, index) {\n var imgStyle = {\n backgroundImage: 'url(\"' + image.url + '\")',\n transform: 'rotate(' + _this2.getRotation(image.orientation) + 'deg)'\n };\n var itemStyle = {};\n imgItemList.push(React.createElement(\n Flex.Item,\n { key: 'item-' + index, style: itemStyle },\n React.createElement(\n 'div',\n { key: index, className: prefixCls + '-item' },\n !disableDelete && React.createElement('div', { className: prefixCls + '-item-remove', role: 'button', 'aria-label': 'Click and Remove this image'\n // tslint:disable-next-line:jsx-no-multiline-js\n , onClick: function onClick() {\n _this2.removeImage(index);\n } }),\n React.createElement('div', { className: prefixCls + '-item-content', role: 'button', 'aria-label': 'Image can be clicked'\n // tslint:disable-next-line:jsx-no-multiline-js\n , onClick: function onClick() {\n _this2.onImageClick(index);\n }, style: imgStyle })\n )\n ));\n });\n var selectEl = React.createElement(\n Flex.Item,\n { key: 'select' },\n React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-upload-btn-active' },\n React.createElement(\n 'div',\n { className: prefixCls + '-item ' + prefixCls + '-upload-btn', onClick: onAddImageClick, role: 'button', 'aria-label': 'Choose and add image' },\n React.createElement('input', { ref: function ref(input) {\n if (input) {\n _this2.fileSelectorInput = input;\n }\n }, type: 'file', accept: accept\n // tslint:disable-next-line:jsx-no-multiline-js\n , onChange: function onChange() {\n _this2.onFileChange();\n }, multiple: multiple, capture: capture })\n )\n )\n );\n var allEl = selectable ? imgItemList.concat([selectEl]) : imgItemList;\n var length = allEl.length;\n if (length !== 0 && length % count !== 0) {\n var blankCount = count - length % count;\n var fillBlankEl = [];\n for (var i = 0; i < blankCount; i++) {\n fillBlankEl.push(React.createElement(Flex.Item, { key: 'blank-' + i }));\n }\n allEl = allEl.concat(fillBlankEl);\n }\n var flexEl = [];\n for (var _i = 0; _i < allEl.length / count; _i++) {\n var rowEl = allEl.slice(_i * count, _i * count + count);\n flexEl.push(rowEl);\n }\n var renderEl = flexEl.map(function (item, index) {\n return React.createElement(\n Flex,\n { key: 'flex-' + index },\n item\n );\n });\n return React.createElement(\n 'div',\n { className: wrapCls, style: style },\n React.createElement(\n 'div',\n { className: prefixCls + '-list', role: 'group' },\n renderEl\n )\n );\n }\n }]);\n\n return ImagePicker;\n}(React.Component);\n\nexport default ImagePicker;\n\nImagePicker.defaultProps = {\n prefixCls: 'am-image-picker',\n files: [],\n onChange: noop,\n onImageClick: noop,\n onAddImageClick: noop,\n onFail: noop,\n selectable: true,\n multiple: false,\n accept: 'image/*',\n length: 4,\n disableDelete: false\n};","export function hasClass(node, className) {\n if (node.classList) {\n return node.classList.contains(className);\n }\n var originClass = node.className;\n return (' ' + originClass + ' ').indexOf(' ' + className + ' ') > -1;\n}\nexport function addClass(node, className) {\n if (node.classList) {\n node.classList.add(className);\n } else {\n if (!hasClass(node, className)) {\n node.className = node.className + ' ' + className;\n }\n }\n}\nexport function removeClass(node, className) {\n if (node.classList) {\n node.classList.remove(className);\n } else {\n if (hasClass(node, className)) {\n var originClass = node.className;\n node.className = (' ' + originClass + ' ').replace(' ' + className + ' ', '');\n }\n }\n}","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport var IS_IOS = canUseDOM && /iphone|ipad|ipod/i.test(window.navigator.userAgent);","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport { IS_IOS } from '../_util/exenv';\n/**\n * determines whether an array includes a certain value among its entries, returning true or false as appropriate.\n * @param {array} arr The array to search in\n * @param {any} item The value to search for\n */\nfunction includes(arr, item) {\n if (!arr || !arr.length || !item) {\n return false;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n return true;\n }\n }\n return false;\n}\nexport var KeyboardItem = function (_React$Component) {\n _inherits(KeyboardItem, _React$Component);\n\n function KeyboardItem() {\n _classCallCheck(this, KeyboardItem);\n\n return _possibleConstructorReturn(this, (KeyboardItem.__proto__ || Object.getPrototypeOf(KeyboardItem)).apply(this, arguments));\n }\n\n _createClass(KeyboardItem, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n _onClick = _a.onClick,\n className = _a.className,\n disabled = _a.disabled,\n children = _a.children,\n tdRef = _a.tdRef,\n label = _a.label,\n iconOnly = _a.iconOnly,\n restProps = __rest(_a, [\"prefixCls\", \"onClick\", \"className\", \"disabled\", \"children\", \"tdRef\", \"label\", \"iconOnly\"]);\n var value = children;\n if (className === 'keyboard-delete') {\n value = 'delete';\n } else if (className === 'keyboard-hide') {\n value = 'hide';\n } else if (className === 'keyboard-confirm') {\n value = 'confirm';\n }\n var extraCls = _defineProperty({}, prefixCls + '-item-disabled', disabled);\n var wrapCls = classnames(prefixCls + '-item', className, extraCls);\n return React.createElement(\n TouchFeedback,\n { disabled: disabled, activeClassName: prefixCls + '-item-active' },\n React.createElement(\n 'td',\n _extends({ ref: tdRef\n // tslint:disable-next-line:jsx-no-multiline-js\n , onClick: function onClick(e) {\n _onClick(e, value);\n }, className: wrapCls }, restProps),\n children,\n iconOnly && React.createElement(\n 'i',\n { className: 'sr-only' },\n label\n )\n )\n );\n }\n }]);\n\n return KeyboardItem;\n}(React.Component);\nKeyboardItem.defaultProps = {\n prefixCls: 'am-number-keyboard',\n onClick: function onClick() {},\n disabled: false\n};\n\nvar CustomKeyboard = function (_React$Component2) {\n _inherits(CustomKeyboard, _React$Component2);\n\n function CustomKeyboard() {\n _classCallCheck(this, CustomKeyboard);\n\n var _this2 = _possibleConstructorReturn(this, (CustomKeyboard.__proto__ || Object.getPrototypeOf(CustomKeyboard)).apply(this, arguments));\n\n _this2.onKeyboardClick = function (e) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n e.nativeEvent.stopImmediatePropagation();\n if (_this2.props.disabledKeys && includes(_this2.props.disabledKeys, value)) {\n return null;\n }\n if (value === 'confirm' && _this2.confirmDisabled) {\n return null;\n } else {\n if (_this2.linkedInput) {\n _this2.linkedInput.onKeyboardClick(value);\n }\n }\n };\n _this2.renderKeyboardItem = function (item, index) {\n var disabled = false;\n if (_this2.props.disabledKeys && includes(_this2.props.disabledKeys, item)) {\n disabled = true;\n }\n return React.createElement(\n KeyboardItem,\n { onClick: _this2.onKeyboardClick, key: 'item-' + item + '-' + index, disabled: disabled },\n item\n );\n };\n return _this2;\n }\n\n _createClass(CustomKeyboard, [{\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n confirmLabel = _props.confirmLabel,\n backspaceLabel = _props.backspaceLabel,\n cancelKeyboardLabel = _props.cancelKeyboardLabel,\n wrapProps = _props.wrapProps,\n header = _props.header;\n\n var wrapperCls = classnames(prefixCls + '-wrapper', prefixCls + '-wrapper-hide');\n return React.createElement(\n 'div',\n _extends({ className: wrapperCls, ref: function ref(el) {\n return _this3.antmKeyboard = el;\n } }, wrapProps),\n header && React.cloneElement(header, { onClick: this.onKeyboardClick }),\n React.createElement(\n 'table',\n null,\n React.createElement(\n 'tbody',\n null,\n React.createElement(\n 'tr',\n null,\n ['1', '2', '3'].map(function (item, index) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderKeyboardItem(item, index)\n );\n }),\n React.createElement(KeyboardItem, _extends({ className: 'keyboard-delete', rowSpan: 2, onClick: this.onKeyboardClick }, this.getAriaAttr(backspaceLabel)))\n ),\n React.createElement(\n 'tr',\n null,\n ['4', '5', '6'].map(function (item, index) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderKeyboardItem(item, index)\n );\n })\n ),\n React.createElement(\n 'tr',\n null,\n ['7', '8', '9'].map(function (item, index) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderKeyboardItem(item, index)\n );\n }),\n React.createElement(\n KeyboardItem,\n { className: 'keyboard-confirm', rowSpan: 2, onClick: this.onKeyboardClick, tdRef: function tdRef(el) {\n return _this3.confirmKeyboardItem = el;\n } },\n confirmLabel\n )\n ),\n React.createElement(\n 'tr',\n null,\n ['.', '0'].map(function (item, index) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderKeyboardItem(item, index)\n );\n }),\n React.createElement(KeyboardItem, _extends({ className: 'keyboard-hide', onClick: this.onKeyboardClick }, this.getAriaAttr(cancelKeyboardLabel)))\n )\n )\n )\n );\n }\n }, {\n key: 'getAriaAttr',\n value: function getAriaAttr(label) {\n if (IS_IOS) {\n return { label: label, iconOnly: true };\n } else {\n return { role: 'button', 'aria-label': label };\n }\n }\n }]);\n\n return CustomKeyboard;\n}(React.Component);\n\nCustomKeyboard.defaultProps = {\n prefixCls: 'am-number-keyboard',\n disabledKeys: null\n};\nexport default CustomKeyboard;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar createPortal = ReactDOM.createPortal;\n\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal(props) {\n _classCallCheck(this, Portal);\n\n var _this = _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).call(this, props));\n\n _this.container = _this.props.getContainer();\n return _this;\n }\n\n _createClass(Portal, [{\n key: 'render',\n value: function render() {\n if (this.props.children) {\n return createPortal(this.props.children, this.container);\n }\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nexport default Portal;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { addClass, removeClass } from '../_util/class';\nimport CustomKeyboard from './CustomKeyboard';\nimport Portal from './Portal';\nimport { canUseDOM } from '../_util/exenv';\nvar customNumberKeyboard = null;\nvar IS_REACT_16 = !!ReactDOM.createPortal;\nfunction getBodyScrollTop() {\n var el = document.scrollingElement || document.documentElement;\n return el && el.scrollTop || 0;\n}\nfunction setBodyScrollTop(scrollTop) {\n var el = document.scrollingElement || document.documentElement;\n el.scrollTop = scrollTop;\n}\n\nvar NumberInput = function (_React$Component) {\n _inherits(NumberInput, _React$Component);\n\n function NumberInput(props) {\n _classCallCheck(this, NumberInput);\n\n var _this = _possibleConstructorReturn(this, (NumberInput.__proto__ || Object.getPrototypeOf(NumberInput)).call(this, props));\n\n _this.onChange = function (value) {\n if (!('value' in _this.props)) {\n _this.setState({ value: value.target.value });\n }\n _this.props.onChange(value);\n };\n _this.onConfirm = function (value) {\n _this.props.onVirtualKeyboardConfirm(value);\n };\n _this.addBlurListener = function () {\n document.addEventListener('click', _this.doBlur, false);\n };\n _this.removeBlurListener = function () {\n document.removeEventListener('click', _this.doBlur, false);\n };\n _this.saveRef = function (el) {\n if (IS_REACT_16 && el) {\n customNumberKeyboard = el;\n }\n };\n _this.doBlur = function (ev) {\n var value = _this.state.value;\n\n if (ev.target !== _this.inputRef) {\n _this.onInputBlur(value);\n }\n };\n _this.unLinkInput = function () {\n if (customNumberKeyboard && customNumberKeyboard.antmKeyboard && customNumberKeyboard.linkedInput && customNumberKeyboard.linkedInput === _this) {\n customNumberKeyboard.linkedInput = null;\n if (_this.props.autoAdjustHeight) {\n _this.getContainer().style.height = '0';\n }\n addClass(customNumberKeyboard.antmKeyboard, _this.props.keyboardPrefixCls + '-wrapper-hide');\n }\n // for unmount\n _this.removeBlurListener();\n };\n _this.onInputBlur = function (value) {\n if (IS_REACT_16) {\n _this.keyBoard = null;\n }\n var focus = _this.state.focus;\n\n if (focus) {\n _this.setState({\n focus: false\n });\n _this.props.onBlur(value);\n setTimeout(function () {\n _this.unLinkInput();\n }, 50);\n }\n };\n _this.onInputFocus = function () {\n var value = _this.state.value;\n\n _this.props.onFocus(value);\n _this.setState({\n focus: true\n }, function () {\n if (customNumberKeyboard) {\n customNumberKeyboard.linkedInput = _this;\n if (customNumberKeyboard.antmKeyboard) {\n if (_this.props.autoAdjustHeight) {\n var keyBoardHeight = customNumberKeyboard.antmKeyboard.offsetHeight;\n _this.getContainer().style.height = keyBoardHeight + 'px';\n if (_this.inputRef) {\n var _this$inputRef$getBou = _this.inputRef.getBoundingClientRect(),\n bottom = _this$inputRef$getBou.bottom;\n\n var clientHeight = window.innerHeight;\n // 计算输入框距离视窗的底部距离\n var distance = clientHeight - bottom;\n if (distance < keyBoardHeight) {\n setBodyScrollTop(getBodyScrollTop() + keyBoardHeight - distance);\n }\n }\n }\n removeClass(customNumberKeyboard.antmKeyboard, _this.props.keyboardPrefixCls + '-wrapper-hide');\n }\n customNumberKeyboard.confirmDisabled = value === '';\n if (customNumberKeyboard.confirmKeyboardItem) {\n if (value === '') {\n addClass(customNumberKeyboard.confirmKeyboardItem, _this.props.keyboardPrefixCls + '-item-disabled');\n } else {\n removeClass(customNumberKeyboard.confirmKeyboardItem, _this.props.keyboardPrefixCls + '-item-disabled');\n }\n }\n }\n });\n };\n _this.onKeyboardClick = function (KeyboardItemValue) {\n var maxLength = _this.props.maxLength;\n var value = _this.state.value;\n // tslint:disable-next-line:no-this-assignment\n\n var onChange = _this.onChange;\n\n var valueAfterChange = void 0;\n // 删除键\n if (KeyboardItemValue === 'delete') {\n valueAfterChange = value.substring(0, value.length - 1);\n onChange({ target: { value: valueAfterChange } });\n // 确认键\n } else if (KeyboardItemValue === 'confirm') {\n valueAfterChange = value;\n onChange({ target: { value: valueAfterChange } });\n _this.onInputBlur(value);\n _this.onConfirm(value);\n // 收起键\n } else if (KeyboardItemValue === 'hide') {\n valueAfterChange = value;\n _this.onInputBlur(valueAfterChange);\n } else {\n if (maxLength !== undefined && +maxLength >= 0 && (value + KeyboardItemValue).length > maxLength) {\n valueAfterChange = (value + KeyboardItemValue).substr(0, maxLength);\n onChange({ target: { value: valueAfterChange } });\n } else {\n valueAfterChange = value + KeyboardItemValue;\n onChange({ target: { value: valueAfterChange } });\n }\n }\n if (customNumberKeyboard) {\n customNumberKeyboard.confirmDisabled = valueAfterChange === '';\n if (customNumberKeyboard.confirmKeyboardItem) {\n if (valueAfterChange === '') {\n addClass(customNumberKeyboard.confirmKeyboardItem, _this.props.keyboardPrefixCls + '-item-disabled');\n } else {\n removeClass(customNumberKeyboard.confirmKeyboardItem, _this.props.keyboardPrefixCls + '-item-disabled');\n }\n }\n }\n };\n _this.onFakeInputClick = function () {\n _this.focus();\n };\n _this.focus = function () {\n // this focus may invocked by users page button click, so this click may trigger blurEventListener at the same time\n _this.renderCustomKeyboard();\n _this.removeBlurListener();\n var focus = _this.state.focus;\n\n if (!focus) {\n _this.onInputFocus();\n }\n setTimeout(function () {\n _this.addBlurListener();\n }, 50);\n };\n _this.state = {\n focus: false,\n value: props.value || ''\n };\n return _this;\n }\n\n _createClass(NumberInput, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n value: nextProps.value\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // focus:true unmount 不能触发 blur\n if (this.state.focus) {\n this.props.onBlur(this.state.value);\n }\n this.unLinkInput();\n }\n }, {\n key: 'getComponent',\n value: function getComponent() {\n var _props = this.props,\n confirmLabel = _props.confirmLabel,\n backspaceLabel = _props.backspaceLabel,\n cancelKeyboardLabel = _props.cancelKeyboardLabel,\n keyboardPrefixCls = _props.keyboardPrefixCls,\n moneyKeyboardWrapProps = _props.moneyKeyboardWrapProps,\n moneyKeyboardHeader = _props.moneyKeyboardHeader,\n disabledKeys = _props.disabledKeys;\n\n return React.createElement(CustomKeyboard, { ref: this.saveRef, onClick: this.onKeyboardClick, prefixCls: keyboardPrefixCls, confirmLabel: confirmLabel, backspaceLabel: backspaceLabel, cancelKeyboardLabel: cancelKeyboardLabel, wrapProps: moneyKeyboardWrapProps, header: moneyKeyboardHeader, disabledKeys: disabledKeys });\n }\n }, {\n key: 'getContainer',\n value: function getContainer() {\n var keyboardPrefixCls = this.props.keyboardPrefixCls;\n\n var container = document.querySelector('#' + keyboardPrefixCls + '-container');\n if (!container) {\n container = document.createElement('div');\n container.setAttribute('id', keyboardPrefixCls + '-container');\n document.body.appendChild(container);\n }\n this.container = container;\n return this.container;\n }\n }, {\n key: 'renderCustomKeyboard',\n value: function renderCustomKeyboard() {\n var _this2 = this;\n\n if (IS_REACT_16) {\n this.keyBoard = React.createElement(\n Portal,\n { getContainer: function getContainer() {\n return _this2.getContainer();\n } },\n this.getComponent()\n );\n } else {\n customNumberKeyboard = ReactDOM.unstable_renderSubtreeIntoContainer(this, this.getComponent(), this.getContainer());\n }\n }\n }, {\n key: 'renderPortal',\n value: function renderPortal() {\n if (!IS_REACT_16 || !canUseDOM) {\n return null;\n }\n return this.keyBoard;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props2 = this.props,\n placeholder = _props2.placeholder,\n disabled = _props2.disabled,\n editable = _props2.editable,\n moneyKeyboardAlign = _props2.moneyKeyboardAlign;\n var _state = this.state,\n focus = _state.focus,\n value = _state.value;\n\n var preventKeyboard = disabled || !editable;\n var fakeInputCls = classnames('fake-input', {\n focus: focus,\n 'fake-input-disabled': disabled\n });\n var fakeInputContainerCls = classnames('fake-input-container', {\n 'fake-input-container-left': moneyKeyboardAlign === 'left'\n });\n return React.createElement(\n 'div',\n { className: fakeInputContainerCls },\n value === '' &&\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'div',\n { className: 'fake-input-placeholder' },\n placeholder\n ),\n React.createElement(\n 'div',\n { role: 'textbox', 'aria-label': value || placeholder, className: fakeInputCls, ref: function ref(el) {\n return _this3.inputRef = el;\n }, onClick: preventKeyboard ? function () {} : this.onFakeInputClick },\n value\n ),\n this.renderPortal()\n );\n }\n }]);\n\n return NumberInput;\n}(React.Component);\n\nNumberInput.defaultProps = {\n onChange: function onChange() {},\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onVirtualKeyboardConfirm: function onVirtualKeyboardConfirm() {},\n placeholder: '',\n disabled: false,\n editable: true,\n prefixCls: 'am-input',\n keyboardPrefixCls: 'am-number-keyboard',\n autoAdjustHeight: false\n};\nexport default NumberInput;","import _extends from \"babel-runtime/helpers/extends\";\nimport _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _createClass from \"babel-runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport * as React from 'react';\n\nvar Input = function (_React$Component) {\n _inherits(Input, _React$Component);\n\n function Input() {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).apply(this, arguments));\n\n _this.onInputBlur = function (e) {\n var value = e.target.value;\n if (_this.props.onBlur) {\n _this.props.onBlur(value);\n }\n };\n _this.onInputFocus = function (e) {\n // here should have a value definition but none.\n var value = e.target.value;\n if (_this.props.onFocus) {\n _this.props.onFocus(value);\n }\n };\n _this.focus = function () {\n if (_this.inputRef) {\n _this.inputRef.focus();\n }\n };\n return _this;\n }\n\n _createClass(Input, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _a = this.props,\n onBlur = _a.onBlur,\n onFocus = _a.onFocus,\n restProps = __rest(_a, [\"onBlur\", \"onFocus\"]);\n return React.createElement(\"input\", _extends({ ref: function ref(el) {\n return _this2.inputRef = el;\n }, onBlur: this.onInputBlur, onFocus: this.onInputFocus }, restProps));\n }\n }]);\n\n return Input;\n}(React.Component);\n\nexport default Input;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport { getComponentLocale } from '../_util/getLocale';\nimport CustomInput from './CustomInput';\nimport Input from './Input';\nfunction noop() {}\nfunction normalizeValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return value + '';\n}\n\nvar InputItem = function (_React$Component) {\n _inherits(InputItem, _React$Component);\n\n function InputItem(props) {\n _classCallCheck(this, InputItem);\n\n var _this = _possibleConstructorReturn(this, (InputItem.__proto__ || Object.getPrototypeOf(InputItem)).call(this, props));\n\n _this.onInputChange = function (e) {\n var el = e.target;\n var rawVal = el.value;\n\n var prePos = 0;\n try {\n // some input type do not support selection, see https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n prePos = el.selectionEnd || 0;\n } catch (error) {\n console.warn('Get selection error:', error);\n }\n var _this$state$value = _this.state.value,\n preCtrlVal = _this$state$value === undefined ? '' : _this$state$value;\n var type = _this.props.type;\n\n var ctrlValue = rawVal;\n switch (type) {\n case 'bankCard':\n ctrlValue = rawVal.replace(/\\D/g, '').replace(/(....)(?=.)/g, '$1 ');\n break;\n case 'phone':\n ctrlValue = rawVal.replace(/\\D/g, '').substring(0, 11);\n var valueLen = ctrlValue.length;\n if (valueLen > 3 && valueLen < 8) {\n ctrlValue = ctrlValue.substr(0, 3) + ' ' + ctrlValue.substr(3);\n } else if (valueLen >= 8) {\n ctrlValue = ctrlValue.substr(0, 3) + ' ' + ctrlValue.substr(3, 4) + ' ' + ctrlValue.substr(7);\n }\n break;\n case 'number':\n ctrlValue = rawVal.replace(/\\D/g, '');\n break;\n case 'text':\n case 'password':\n default:\n break;\n }\n _this.handleOnChange(ctrlValue, ctrlValue !== rawVal, function () {\n switch (type) {\n case 'bankCard':\n case 'phone':\n case 'number':\n // controlled input type needs to adjust the position of the caret\n try {\n // some input type do not support selection, see https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n var pos = _this.calcPos(prePos, preCtrlVal, rawVal, ctrlValue, [' '], /\\D/g);\n if (type === 'phone' && (pos === 4 || pos === 9) || type === 'bankCard' && pos > 0 && pos % 5 === 0) {\n pos -= 1;\n }\n el.selectionStart = el.selectionEnd = pos;\n } catch (error) {\n console.warn('Set selection error:', error);\n }\n break;\n default:\n break;\n }\n });\n };\n _this.handleOnChange = function (value) {\n var isMutated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var adjustPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop;\n var onChange = _this.props.onChange;\n\n if (!('value' in _this.props)) {\n _this.setState({ value: value });\n } else {\n _this.setState({ value: _this.props.value });\n }\n if (onChange) {\n if (isMutated) {\n setTimeout(function () {\n onChange(value);\n adjustPos();\n });\n } else {\n onChange(value);\n adjustPos();\n }\n } else {\n adjustPos();\n }\n };\n _this.onInputFocus = function (value) {\n if (_this.debounceTimeout) {\n clearTimeout(_this.debounceTimeout);\n _this.debounceTimeout = null;\n }\n _this.setState({\n focus: true\n });\n if (_this.props.onFocus) {\n _this.props.onFocus(value);\n }\n };\n _this.onInputBlur = function (value) {\n if (_this.inputRef) {\n // this.inputRef may be null if customKeyboard unmount\n _this.debounceTimeout = window.setTimeout(function () {\n if (document.activeElement !== (_this.inputRef && _this.inputRef.inputRef)) {\n _this.setState({\n focus: false\n });\n }\n }, 200);\n }\n if (_this.props.onBlur) {\n // fix autoFocus item blur with flash\n setTimeout(function () {\n // fix ios12 wechat browser click failure after input\n if (document.body) {\n document.body.scrollTop = document.body.scrollTop;\n }\n }, 100);\n _this.props.onBlur(value);\n }\n };\n _this.clearInput = function () {\n if (_this.props.type !== 'password' && _this.props.updatePlaceholder) {\n _this.setState({\n placeholder: _this.props.value\n });\n }\n _this.setState({\n value: ''\n });\n if (_this.props.onChange) {\n _this.props.onChange('');\n }\n _this.focus();\n };\n // this is instance method for user to use\n _this.focus = function () {\n if (_this.inputRef) {\n _this.inputRef.focus();\n }\n };\n // calculate the position of the caret\n _this.calcPos = function (prePos, preCtrlVal, rawVal, ctrlVal, placeholderChars, maskReg) {\n var editLength = rawVal.length - preCtrlVal.length;\n var isAddition = editLength > 0;\n var pos = prePos;\n if (isAddition) {\n var additionStr = rawVal.substr(pos - editLength, editLength);\n var ctrlCharCount = additionStr.replace(maskReg, '').length;\n pos -= editLength - ctrlCharCount;\n var placeholderCharCount = 0;\n while (ctrlCharCount > 0) {\n if (placeholderChars.indexOf(ctrlVal.charAt(pos - ctrlCharCount + placeholderCharCount)) === -1) {\n ctrlCharCount--;\n } else {\n placeholderCharCount++;\n }\n }\n pos += placeholderCharCount;\n }\n return pos;\n };\n _this.state = {\n placeholder: props.placeholder,\n value: normalizeValue(props.value || props.defaultValue)\n };\n return _this;\n }\n\n _createClass(InputItem, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('placeholder' in nextProps && !nextProps.updatePlaceholder) {\n this.setState({\n placeholder: nextProps.placeholder\n });\n }\n if ('value' in nextProps) {\n this.setState({\n value: nextProps.value\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.debounceTimeout) {\n window.clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames,\n _classnames2,\n _this2 = this;\n\n var props = _extends({}, this.props);\n delete props.updatePlaceholder;\n\n var prefixCls = props.prefixCls,\n prefixListCls = props.prefixListCls,\n editable = props.editable,\n style = props.style,\n clear = props.clear,\n children = props.children,\n error = props.error,\n className = props.className,\n extra = props.extra,\n labelNumber = props.labelNumber,\n type = props.type,\n onExtraClick = props.onExtraClick,\n onErrorClick = props.onErrorClick,\n moneyKeyboardAlign = props.moneyKeyboardAlign,\n moneyKeyboardWrapProps = props.moneyKeyboardWrapProps,\n moneyKeyboardHeader = props.moneyKeyboardHeader,\n onVirtualKeyboardConfirm = props.onVirtualKeyboardConfirm,\n autoAdjustHeight = props.autoAdjustHeight,\n disabledKeys = props.disabledKeys,\n restProps = __rest(props, [\"prefixCls\", \"prefixListCls\", \"editable\", \"style\", \"clear\", \"children\", \"error\", \"className\", \"extra\", \"labelNumber\", \"type\", \"onExtraClick\", \"onErrorClick\", \"moneyKeyboardAlign\", \"moneyKeyboardWrapProps\", \"moneyKeyboardHeader\", \"onVirtualKeyboardConfirm\", \"autoAdjustHeight\", \"disabledKeys\"]);\n\n var name = restProps.name,\n disabled = restProps.disabled,\n maxLength = restProps.maxLength;\n var value = this.state.value;\n // tslint:disable-next-line:variable-name\n\n var _locale = getComponentLocale(this.props, this.context, 'InputItem', function () {\n return require('./locale/zh_CN');\n });\n var confirmLabel = _locale.confirmLabel,\n backspaceLabel = _locale.backspaceLabel,\n cancelKeyboardLabel = _locale.cancelKeyboardLabel;\n var _state = this.state,\n focus = _state.focus,\n placeholder = _state.placeholder;\n\n var wrapCls = classnames(prefixListCls + '-item', prefixCls + '-item', prefixListCls + '-item-middle', className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-disabled', disabled), _defineProperty(_classnames, prefixCls + '-error', error), _defineProperty(_classnames, prefixCls + '-focus', focus), _defineProperty(_classnames, prefixCls + '-android', focus), _classnames));\n var labelCls = classnames(prefixCls + '-label', (_classnames2 = {}, _defineProperty(_classnames2, prefixCls + '-label-2', labelNumber === 2), _defineProperty(_classnames2, prefixCls + '-label-3', labelNumber === 3), _defineProperty(_classnames2, prefixCls + '-label-4', labelNumber === 4), _defineProperty(_classnames2, prefixCls + '-label-5', labelNumber === 5), _defineProperty(_classnames2, prefixCls + '-label-6', labelNumber === 6), _defineProperty(_classnames2, prefixCls + '-label-7', labelNumber === 7), _classnames2));\n var controlCls = prefixCls + '-control';\n var inputType = 'text';\n if (type === 'bankCard' || type === 'phone') {\n inputType = 'tel';\n } else if (type === 'password') {\n inputType = 'password';\n } else if (type === 'digit') {\n inputType = 'number';\n } else if (type !== 'text' && type !== 'number') {\n inputType = type;\n }\n var patternProps = void 0;\n if (type === 'number') {\n patternProps = {\n pattern: '[0-9]*'\n };\n }\n var classNameProps = void 0;\n if (type === 'digit') {\n classNameProps = {\n className: 'h5numInput'\n };\n }\n return React.createElement(\n 'div',\n { className: wrapCls },\n React.createElement(\n 'div',\n { className: prefixListCls + '-line' },\n children ? React.createElement(\n 'div',\n { className: labelCls },\n children\n ) : null,\n React.createElement(\n 'div',\n { className: controlCls },\n type === 'money' ? React.createElement(CustomInput, { value: normalizeValue(value), type: type, ref: function ref(el) {\n return _this2.inputRef = el;\n }, maxLength: maxLength, placeholder: placeholder, onChange: this.onInputChange, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onVirtualKeyboardConfirm: onVirtualKeyboardConfirm, disabled: disabled, editable: editable, prefixCls: prefixCls, style: style, confirmLabel: confirmLabel, backspaceLabel: backspaceLabel, cancelKeyboardLabel: cancelKeyboardLabel, moneyKeyboardAlign: moneyKeyboardAlign, moneyKeyboardWrapProps: moneyKeyboardWrapProps, moneyKeyboardHeader: moneyKeyboardHeader, autoAdjustHeight: autoAdjustHeight, disabledKeys: disabledKeys }) : React.createElement(Input, _extends({}, patternProps, restProps, classNameProps, { value: normalizeValue(value), defaultValue: undefined, ref: function ref(el) {\n return _this2.inputRef = el;\n }, style: style, type: inputType, maxLength: maxLength, name: name, placeholder: placeholder, onChange: this.onInputChange, onFocus: this.onInputFocus, onBlur: this.onInputBlur, readOnly: !editable, disabled: disabled }))\n ),\n clear && editable && !disabled && value && ('' + value).length > 0 ? React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-clear-active' },\n React.createElement('div', { className: prefixCls + '-clear', onClick: this.clearInput })\n ) : null,\n error ? React.createElement('div', { className: prefixCls + '-error-extra', onClick: onErrorClick }) : null,\n extra !== '' ? React.createElement(\n 'div',\n { className: prefixCls + '-extra', onClick: onExtraClick },\n extra\n ) : null\n )\n );\n }\n }]);\n\n return InputItem;\n}(React.Component);\n\nInputItem.defaultProps = {\n prefixCls: 'am-input',\n prefixListCls: 'am-list',\n type: 'text',\n editable: true,\n disabled: false,\n placeholder: '',\n clear: false,\n onChange: noop,\n onBlur: noop,\n onFocus: noop,\n extra: '',\n onExtraClick: noop,\n error: false,\n onErrorClick: noop,\n onVirtualKeyboardConfirm: noop,\n labelNumber: 5,\n updatePlaceholder: false,\n moneyKeyboardAlign: 'right',\n moneyKeyboardWrapProps: {},\n moneyKeyboardHeader: null,\n disabledKeys: null\n};\nInputItem.contextTypes = {\n antLocale: PropTypes.object\n};\nexport default InputItem;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport invariant from 'fbjs/lib/invariant';\nimport isEmpty from 'fbjs/lib/isEmpty';\nimport warning from 'warning';\n\nfunction defaultGetRowData(dataBlob, sectionID, rowID) {\n return dataBlob[sectionID][rowID];\n}\n\nfunction defaultGetSectionHeaderData(dataBlob, sectionID) {\n return dataBlob[sectionID];\n}\n\n// type differType = (data1, data2) => bool;\n//\n// type ParamType = {\n// rowHasChanged: differType;\n// getRowData: ?typeof defaultGetRowData;\n// sectionHeaderHasChanged: ?differType;\n// getSectionHeaderData: ?typeof defaultGetSectionHeaderData;\n// }\n\n/**\n * Provides efficient data processing and access to the\n * `ListView` component. A `ListViewDataSource` is created with functions for\n * extracting data from the input blob, and comparing elements (with default\n * implementations for convenience). The input blob can be as simple as an\n * array of strings, or an object with rows nested inside section objects.\n *\n * To update the data in the datasource, use `cloneWithRows` (or\n * `cloneWithRowsAndSections` if you care about sections). The data in the\n * data source is immutable, so you can't modify it directly. The clone methods\n * suck in the new data and compute a diff for each row so ListView knows\n * whether to re-render it or not.\n *\n * In this example, a component receives data in chunks, handled by\n * `_onDataArrived`, which concats the new data onto the old data and updates the\n * data source. We use `concat` to create a new array - mutating `this._data`,\n * e.g. with `this._data.push(newRowData)`, would be an error. `_rowHasChanged`\n * understands the shape of the row data and knows how to efficiently compare\n * it.\n *\n * ```\n * getInitialState: function() {\n * var ds = new ListViewDataSource({rowHasChanged: this._rowHasChanged});\n * return {ds};\n * },\n * _onDataArrived(newData) {\n * this._data = this._data.concat(newData);\n * this.setState({\n * ds: this.state.ds.cloneWithRows(this._data)\n * });\n * }\n * ```\n */\n\nvar ListViewDataSource = function () {\n\n /**\n * You can provide custom extraction and `hasChanged` functions for section\n * headers and rows. If absent, data will be extracted with the\n * `defaultGetRowData` and `defaultGetSectionHeaderData` functions.\n *\n * The default extractor expects data of one of the following forms:\n *\n * { sectionID_1: { rowID_1: , ... }, ... }\n *\n * or\n *\n * { sectionID_1: [ , , ... ], ... }\n *\n * or\n *\n * [ [ , , ... ], ... ]\n *\n * The constructor takes in a params argument that can contain any of the\n * following:\n *\n * - getRowData(dataBlob, sectionID, rowID);\n * - getSectionHeaderData(dataBlob, sectionID);\n * - rowHasChanged(prevRowData, nextRowData);\n * - sectionHeaderHasChanged(prevSectionData, nextSectionData);\n */\n function ListViewDataSource(params) {\n _classCallCheck(this, ListViewDataSource);\n\n invariant(params && typeof params.rowHasChanged === 'function', 'Must provide a rowHasChanged function.');\n this._rowHasChanged = params.rowHasChanged;\n this._getRowData = params.getRowData || defaultGetRowData;\n this._sectionHeaderHasChanged = params.sectionHeaderHasChanged;\n this._getSectionHeaderData = params.getSectionHeaderData || defaultGetSectionHeaderData;\n\n this._dataBlob = null;\n this._dirtyRows = [];\n this._dirtySections = [];\n this._cachedRowCount = 0;\n\n // These two private variables are accessed by outsiders because ListView\n // uses them to iterate over the data in this class.\n this.rowIdentities = [];\n this.sectionIdentities = [];\n }\n\n /**\n * Clones this `ListViewDataSource` with the specified `dataBlob` and\n * `rowIdentities`. The `dataBlob` is just an arbitrary blob of data. At\n * construction an extractor to get the interesting information was defined\n * (or the default was used).\n *\n * The `rowIdentities` is is a 2D array of identifiers for rows.\n * ie. [['a1', 'a2'], ['b1', 'b2', 'b3'], ...]. If not provided, it's\n * assumed that the keys of the section data are the row identities.\n *\n * Note: This function does NOT clone the data in this data source. It simply\n * passes the functions defined at construction to a new data source with\n * the data specified. If you wish to maintain the existing data you must\n * handle merging of old and new data separately and then pass that into\n * this function as the `dataBlob`.\n */\n\n\n _createClass(ListViewDataSource, [{\n key: 'cloneWithRows',\n value: function cloneWithRows(dataBlob, rowIdentities) {\n var rowIds = rowIdentities ? [rowIdentities] : null;\n if (!this._sectionHeaderHasChanged) {\n this._sectionHeaderHasChanged = function () {\n return false;\n };\n }\n return this.cloneWithRowsAndSections({ s1: dataBlob }, ['s1'], rowIds);\n }\n\n /**\n * This performs the same function as the `cloneWithRows` function but here\n * you also specify what your `sectionIdentities` are. If you don't care\n * about sections you should safely be able to use `cloneWithRows`.\n *\n * `sectionIdentities` is an array of identifiers for sections.\n * ie. ['s1', 's2', ...]. If not provided, it's assumed that the\n * keys of dataBlob are the section identities.\n *\n * Note: this returns a new object!\n */\n\n }, {\n key: 'cloneWithRowsAndSections',\n value: function cloneWithRowsAndSections(dataBlob, sectionIdentities, rowIdentities) {\n invariant(typeof this._sectionHeaderHasChanged === 'function', 'Must provide a sectionHeaderHasChanged function with section data.');\n invariant(!sectionIdentities || !rowIdentities || sectionIdentities.length === rowIdentities.length, 'row and section ids lengths must be the same');\n\n var newSource = new ListViewDataSource({\n getRowData: this._getRowData,\n getSectionHeaderData: this._getSectionHeaderData,\n rowHasChanged: this._rowHasChanged,\n sectionHeaderHasChanged: this._sectionHeaderHasChanged\n });\n newSource._dataBlob = dataBlob;\n if (sectionIdentities) {\n newSource.sectionIdentities = sectionIdentities;\n } else {\n newSource.sectionIdentities = Object.keys(dataBlob);\n }\n if (rowIdentities) {\n newSource.rowIdentities = rowIdentities;\n } else {\n newSource.rowIdentities = [];\n newSource.sectionIdentities.forEach(function (sectionID) {\n newSource.rowIdentities.push(Object.keys(dataBlob[sectionID]));\n });\n }\n newSource._cachedRowCount = countRows(newSource.rowIdentities);\n\n newSource._calculateDirtyArrays(this._dataBlob, this.sectionIdentities, this.rowIdentities);\n\n return newSource;\n }\n }, {\n key: 'getRowCount',\n value: function getRowCount() {\n return this._cachedRowCount;\n }\n }, {\n key: 'getRowAndSectionCount',\n value: function getRowAndSectionCount() {\n return this._cachedRowCount + this.sectionIdentities.length;\n }\n\n /**\n * Returns if the row is dirtied and needs to be rerendered\n */\n\n }, {\n key: 'rowShouldUpdate',\n value: function rowShouldUpdate(sectionIndex, rowIndex) {\n var needsUpdate = this._dirtyRows[sectionIndex][rowIndex];\n warning(needsUpdate !== undefined, 'missing dirtyBit for section, row: ' + sectionIndex + ', ' + rowIndex);\n return needsUpdate;\n }\n\n /**\n * Gets the data required to render the row.\n */\n\n }, {\n key: 'getRowData',\n value: function getRowData(sectionIndex, rowIndex) {\n var sectionID = this.sectionIdentities[sectionIndex];\n var rowID = this.rowIdentities[sectionIndex][rowIndex];\n warning(sectionID !== undefined && rowID !== undefined, 'rendering invalid section, row: ' + sectionIndex + ', ' + rowIndex);\n return this._getRowData(this._dataBlob, sectionID, rowID);\n }\n\n /**\n * Gets the rowID at index provided if the dataSource arrays were flattened,\n * or null of out of range indexes.\n */\n\n }, {\n key: 'getRowIDForFlatIndex',\n value: function getRowIDForFlatIndex(index) {\n var accessIndex = index;\n for (var ii = 0; ii < this.sectionIdentities.length; ii++) {\n if (accessIndex >= this.rowIdentities[ii].length) {\n accessIndex -= this.rowIdentities[ii].length;\n } else {\n return this.rowIdentities[ii][accessIndex];\n }\n }\n return null;\n }\n\n /**\n * Gets the sectionID at index provided if the dataSource arrays were flattened,\n * or null for out of range indexes.\n */\n\n }, {\n key: 'getSectionIDForFlatIndex',\n value: function getSectionIDForFlatIndex(index) {\n var accessIndex = index;\n for (var ii = 0; ii < this.sectionIdentities.length; ii++) {\n if (accessIndex >= this.rowIdentities[ii].length) {\n accessIndex -= this.rowIdentities[ii].length;\n } else {\n return this.sectionIdentities[ii];\n }\n }\n return null;\n }\n\n /**\n * Returns an array containing the number of rows in each section\n */\n\n }, {\n key: 'getSectionLengths',\n value: function getSectionLengths() {\n var results = [];\n for (var ii = 0; ii < this.sectionIdentities.length; ii++) {\n results.push(this.rowIdentities[ii].length);\n }\n return results;\n }\n\n /**\n * Returns if the section header is dirtied and needs to be rerendered\n */\n\n }, {\n key: 'sectionHeaderShouldUpdate',\n value: function sectionHeaderShouldUpdate(sectionIndex) {\n var needsUpdate = this._dirtySections[sectionIndex];\n warning(needsUpdate !== undefined, 'missing dirtyBit for section: ' + sectionIndex);\n return needsUpdate;\n }\n\n /**\n * Gets the data required to render the section header\n */\n\n }, {\n key: 'getSectionHeaderData',\n value: function getSectionHeaderData(sectionIndex) {\n if (!this._getSectionHeaderData) {\n return null;\n }\n var sectionID = this.sectionIdentities[sectionIndex];\n warning(sectionID !== undefined, 'renderSection called on invalid section: ' + sectionIndex);\n return this._getSectionHeaderData(this._dataBlob, sectionID);\n }\n\n /**\n * Private members and methods.\n */\n\n // These two 'protected' variables are accessed by ListView to iterate over\n // the data in this class.\n\n }, {\n key: '_calculateDirtyArrays',\n value: function _calculateDirtyArrays(prevDataBlob, prevSectionIDs, prevRowIDs) {\n // construct a hashmap of the existing (old) id arrays\n var prevSectionsHash = keyedDictionaryFromArray(prevSectionIDs);\n var prevRowsHash = {};\n for (var ii = 0; ii < prevRowIDs.length; ii++) {\n var sectionID = prevSectionIDs[ii];\n warning(!prevRowsHash[sectionID], 'SectionID appears more than once: ' + sectionID);\n prevRowsHash[sectionID] = keyedDictionaryFromArray(prevRowIDs[ii]);\n }\n\n // compare the 2 identity array and get the dirtied rows\n this._dirtySections = [];\n this._dirtyRows = [];\n\n var dirty;\n for (var sIndex = 0; sIndex < this.sectionIdentities.length; sIndex++) {\n var sectionID = this.sectionIdentities[sIndex];\n // dirty if the sectionHeader is new or _sectionHasChanged is true\n dirty = !prevSectionsHash[sectionID];\n var sectionHeaderHasChanged = this._sectionHeaderHasChanged;\n if (!dirty && sectionHeaderHasChanged) {\n dirty = sectionHeaderHasChanged(this._getSectionHeaderData(prevDataBlob, sectionID), this._getSectionHeaderData(this._dataBlob, sectionID));\n }\n this._dirtySections.push(!!dirty);\n\n this._dirtyRows[sIndex] = [];\n for (var rIndex = 0; rIndex < this.rowIdentities[sIndex].length; rIndex++) {\n var rowID = this.rowIdentities[sIndex][rIndex];\n // dirty if the section is new, row is new or _rowHasChanged is true\n dirty = !prevSectionsHash[sectionID] || !prevRowsHash[sectionID][rowID] || this._rowHasChanged(this._getRowData(prevDataBlob, sectionID, rowID), this._getRowData(this._dataBlob, sectionID, rowID));\n this._dirtyRows[sIndex].push(!!dirty);\n }\n }\n }\n }]);\n\n return ListViewDataSource;\n}();\n\nfunction countRows(allRowIDs) {\n var totalRows = 0;\n for (var sectionIdx = 0; sectionIdx < allRowIDs.length; sectionIdx++) {\n var rowIDs = allRowIDs[sectionIdx];\n totalRows += rowIDs.length;\n }\n return totalRows;\n}\n\nfunction keyedDictionaryFromArray(arr) {\n if (isEmpty(arr)) {\n return {};\n }\n var result = {};\n for (var ii = 0; ii < arr.length; ii++) {\n var key = arr[ii];\n warning(!result[key], 'Value appears more than once in array: ' + key);\n result[key] = true;\n }\n return result;\n}\n\n// module.exports = ListViewDataSource;\nexport default ListViewDataSource;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { throttle } from './util';\n\n// const SCROLLVIEW = 'ScrollViewRef';\n// const INNERVIEW = 'InnerScrollViewRef';\n\n// https://github.com/facebook/react-native/blob/0.26-stable/Libraries/Components/ScrollView/ScrollView.js\n\n/* eslint react/prop-types: 0, react/sort-comp: 0, no-unused-expressions: 0 */\n\nvar propTypes = {\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n listPrefixCls: PropTypes.string,\n listViewPrefixCls: PropTypes.string,\n style: PropTypes.object,\n contentContainerStyle: PropTypes.object,\n onScroll: PropTypes.func\n};\n\nvar ScrollView = function (_React$Component) {\n _inherits(ScrollView, _React$Component);\n\n function ScrollView() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ScrollView);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ScrollView.__proto__ || Object.getPrototypeOf(ScrollView)).call.apply(_ref, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ScrollView, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps) {\n // https://github.com/ant-design/ant-design-mobile/issues/1480\n // https://stackoverflow.com/questions/1386696/make-scrollleft-scrolltop-changes-not-trigger-scroll-event\n // 问题情景:用户滚动内容后,改变 dataSource 触发 ListView componentWillReceiveProps\n // 内容变化后 scrollTop 如果改变、会自动触发 scroll 事件,而此事件应该避免被执行\n if ((this.props.dataSource !== nextProps.dataSource || this.props.initialListSize !== nextProps.initialListSize) && this.handleScroll) {\n // console.log('componentWillUpdate');\n if (this.props.useBodyScroll) {\n window.removeEventListener('scroll', this.handleScroll);\n } else {\n this.ScrollViewRef.removeEventListener('scroll', this.handleScroll);\n }\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // handle componentWillUpdate accordingly\n if ((this.props.dataSource !== prevProps.dataSource || this.props.initialListSize !== prevProps.initialListSize) && this.handleScroll) {\n setTimeout(function () {\n if (_this2.props.useBodyScroll) {\n window.addEventListener('scroll', _this2.handleScroll);\n } else {\n _this2.ScrollViewRef.addEventListener('scroll', _this2.handleScroll);\n }\n }, 0);\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this3 = this;\n\n var handleScroll = function handleScroll(e) {\n return _this3.props.onScroll && _this3.props.onScroll(e, _this3.getMetrics());\n };\n if (this.props.scrollEventThrottle) {\n handleScroll = throttle(handleScroll, this.props.scrollEventThrottle);\n }\n this.handleScroll = handleScroll;\n\n // IE supports onresize on all HTML elements.\n // In all other Browsers the onresize is only available at the window object\n this.onLayout = function () {\n return _this3.props.onLayout({\n nativeEvent: { layout: { width: window.innerWidth, height: window.innerHeight } }\n });\n };\n\n if (this.props.useBodyScroll) {\n window.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.onLayout);\n } else {\n this.ScrollViewRef.addEventListener('scroll', this.handleScroll);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.useBodyScroll) {\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.onLayout);\n } else {\n this.ScrollViewRef.removeEventListener('scroll', this.handleScroll);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n prefixCls = _props.prefixCls,\n listPrefixCls = _props.listPrefixCls,\n listViewPrefixCls = _props.listViewPrefixCls,\n _props$style = _props.style,\n style = _props$style === undefined ? {} : _props$style,\n _props$contentContain = _props.contentContainerStyle,\n contentContainerStyle = _props$contentContain === undefined ? {} : _props$contentContain,\n useBodyScroll = _props.useBodyScroll,\n pullToRefresh = _props.pullToRefresh;\n\n\n var styleBase = {\n position: 'relative',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch'\n };\n var preCls = prefixCls || listViewPrefixCls || '';\n\n var containerProps = {\n ref: function ref(el) {\n return _this4.ScrollViewRef = el || _this4.ScrollViewRef;\n },\n style: _extends({}, useBodyScroll ? {} : styleBase, style),\n className: classNames(className, preCls + '-scrollview')\n };\n var contentContainerProps = {\n ref: function ref(el) {\n return _this4.InnerScrollViewRef = el;\n },\n style: _extends({ position: 'absolute', minWidth: '100%' }, contentContainerStyle),\n className: classNames(preCls + '-scrollview-content', listPrefixCls)\n };\n\n var clonePullToRefresh = function clonePullToRefresh(isBody) {\n return React.cloneElement(pullToRefresh, {\n getScrollContainer: isBody ? function () {\n return document.body;\n } : function () {\n return _this4.ScrollViewRef;\n }\n }, children);\n };\n\n if (useBodyScroll) {\n if (pullToRefresh) {\n return React.createElement(\n 'div',\n containerProps,\n clonePullToRefresh(true)\n );\n }\n return React.createElement(\n 'div',\n containerProps,\n children\n );\n }\n\n if (pullToRefresh) {\n return React.createElement(\n 'div',\n containerProps,\n React.createElement(\n 'div',\n contentContainerProps,\n clonePullToRefresh()\n )\n );\n }\n\n return React.createElement(\n 'div',\n containerProps,\n React.createElement(\n 'div',\n contentContainerProps,\n children\n )\n );\n }\n }]);\n\n return ScrollView;\n}(React.Component);\n\nScrollView.propTypes = propTypes;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.getMetrics = function () {\n var isVertical = !_this5.props.horizontal;\n if (_this5.props.useBodyScroll) {\n // In chrome61 `document.body.scrollTop` is invalid,\n // and add new `document.scrollingElement`(chrome61, iOS support).\n // In old-android-browser and iOS `document.documentElement.scrollTop` is invalid.\n var scrollNode = document.scrollingElement ? document.scrollingElement : document.body;\n // todos: Why sometimes do not have `this.ScrollViewRef` ?\n return {\n visibleLength: window[isVertical ? 'innerHeight' : 'innerWidth'],\n contentLength: _this5.ScrollViewRef ? _this5.ScrollViewRef[isVertical ? 'scrollHeight' : 'scrollWidth'] : 0,\n offset: scrollNode[isVertical ? 'scrollTop' : 'scrollLeft']\n };\n }\n return {\n visibleLength: _this5.ScrollViewRef[isVertical ? 'offsetHeight' : 'offsetWidth'],\n contentLength: _this5.ScrollViewRef[isVertical ? 'scrollHeight' : 'scrollWidth'],\n offset: _this5.ScrollViewRef[isVertical ? 'scrollTop' : 'scrollLeft']\n };\n };\n\n this.getInnerViewNode = function () {\n return _this5.InnerScrollViewRef;\n };\n\n this.scrollTo = function () {\n if (_this5.props.useBodyScroll) {\n var _window;\n\n (_window = window).scrollTo.apply(_window, arguments);\n } else {\n _this5.ScrollViewRef.scrollLeft = arguments.length <= 0 ? undefined : arguments[0];\n _this5.ScrollViewRef.scrollTop = arguments.length <= 1 ? undefined : arguments[1];\n }\n };\n};\n\nexport default ScrollView;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint no-unused-vars: 0, react/no-multi-comp: 0\nreact/prop-types: 0, react/sort-comp: 0, no-unused-expressions: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport ListViewDataSource from './ListViewDataSource';\nimport ScrollView from './ScrollView';\n\nvar DEFAULT_PAGE_SIZE = 1;\nvar DEFAULT_INITIAL_ROWS = 10;\nvar DEFAULT_SCROLL_RENDER_AHEAD = 1000;\nvar DEFAULT_END_REACHED_THRESHOLD = 1000;\nvar DEFAULT_SCROLL_CALLBACK_THROTTLE = 50;\n// const SCROLLVIEW_REF = 'ListViewRef';\n\nvar StaticRenderer = function (_React$Component) {\n _inherits(StaticRenderer, _React$Component);\n\n function StaticRenderer() {\n _classCallCheck(this, StaticRenderer);\n\n return _possibleConstructorReturn(this, (StaticRenderer.__proto__ || Object.getPrototypeOf(StaticRenderer)).apply(this, arguments));\n }\n\n _createClass(StaticRenderer, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return nextProps.shouldUpdate;\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.render();\n }\n }]);\n\n return StaticRenderer;\n}(React.Component);\n// https://github.com/facebook/react-native/blob/0.26-stable/Libraries/CustomComponents/ListView/ListView.js\n\n\nvar ListView = function (_React$Component2) {\n _inherits(ListView, _React$Component2);\n\n function ListView() {\n var _ref;\n\n var _temp, _this2, _ret;\n\n _classCallCheck(this, ListView);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = ListView.__proto__ || Object.getPrototypeOf(ListView)).call.apply(_ref, [this].concat(args))), _this2), _initialiseProps.call(_this2), _temp), _possibleConstructorReturn(_this2, _ret);\n }\n\n /**\n * Exports some data, e.g. for perf investigations or analytics.\n */\n\n\n _createClass(ListView, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n // this data should never trigger a render pass, so don't put in state\n this.scrollProperties = {\n visibleLength: null,\n contentLength: null,\n offset: 0\n };\n this._childFrames = [];\n this._visibleRows = {};\n this._prevRenderedRowsCount = 0;\n this._sentEndForContentLength = null;\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n if (this.props.dataSource !== nextProps.dataSource || this.props.initialListSize !== nextProps.initialListSize) {\n this.setState(function (state, props) {\n _this3._prevRenderedRowsCount = 0;\n return {\n curRenderedRowsCount: Math.min(Math.max(state.curRenderedRowsCount, nextProps.initialListSize // for preact\n ), nextProps.dataSource.getRowCount() // for preact\n )\n };\n }, function () {\n return _this3._renderMoreRowsIfNeeded();\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var dataSource = this.props.dataSource;\n var allRowIDs = dataSource.rowIdentities;\n var bodyComponents = [];\n var rowCount = 0;\n\n for (var sectionIdx = 0; sectionIdx < allRowIDs.length; sectionIdx++) {\n var sectionID = dataSource.sectionIdentities[sectionIdx];\n var rowIDs = allRowIDs[sectionIdx];\n if (rowIDs.length === 0) {\n continue;\n }\n\n var renderSectionHeader = void 0;\n if (this.props.renderSectionHeader) {\n var shouldUpdateHeader = rowCount >= this._prevRenderedRowsCount && dataSource.sectionHeaderShouldUpdate(sectionIdx);\n\n renderSectionHeader = React.createElement(StaticRenderer, {\n key: 's_' + sectionID,\n shouldUpdate: !!shouldUpdateHeader,\n render: this.props.renderSectionHeader.bind(null, dataSource.getSectionHeaderData(sectionIdx), sectionID)\n });\n }\n\n var sectionBody = [];\n for (var rowIdx = 0; rowIdx < rowIDs.length; rowIdx++) {\n var rowID = rowIDs[rowIdx];\n var comboID = sectionID + '_' + rowID;\n var shouldUpdateRow = rowCount >= this._prevRenderedRowsCount && dataSource.rowShouldUpdate(sectionIdx, rowIdx);\n var row = React.createElement(StaticRenderer, {\n key: 'r_' + comboID,\n shouldUpdate: !!shouldUpdateRow,\n render: this.props.renderRow.bind(null, dataSource.getRowData(sectionIdx, rowIdx), sectionID, rowID, this.onRowHighlighted)\n });\n sectionBody.push(row);\n\n if (this.props.renderSeparator && (rowIdx !== rowIDs.length - 1 || sectionIdx === allRowIDs.length - 1)) {\n var adjacentRowHighlighted = this.state.highlightedRow.sectionID === sectionID && (this.state.highlightedRow.rowID === rowID || this.state.highlightedRow.rowID === rowIDs[rowIdx + 1]);\n var separator = this.props.renderSeparator(sectionID, rowID, adjacentRowHighlighted);\n if (separator) {\n sectionBody.push(separator);\n }\n }\n if (++rowCount === this.state.curRenderedRowsCount) {\n break;\n }\n }\n\n var rowsAndSeparators = React.cloneElement(this.props.renderSectionBodyWrapper(sectionID), {\n className: this.props.sectionBodyClassName\n }, sectionBody);\n\n if (this.props.renderSectionWrapper) {\n bodyComponents.push(React.cloneElement(this.props.renderSectionWrapper(sectionID), {}, renderSectionHeader, rowsAndSeparators));\n } else {\n bodyComponents.push(renderSectionHeader);\n bodyComponents.push(rowsAndSeparators);\n }\n if (rowCount >= this.state.curRenderedRowsCount) {\n break;\n }\n }\n\n var _props = this.props,\n renderScrollComponent = _props.renderScrollComponent,\n props = _objectWithoutProperties(_props, ['renderScrollComponent']);\n\n return React.cloneElement(renderScrollComponent(_extends({}, props, { onScroll: this._onScroll })), {\n ref: function ref(el) {\n return _this4.ListViewRef = el;\n },\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout\n }, this.props.renderHeader ? this.props.renderHeader() : null, React.cloneElement(props.renderBodyComponent(), {}, bodyComponents), this.props.renderFooter ? this.props.renderFooter() : null, props.children);\n }\n }]);\n\n return ListView;\n}(React.Component);\n\nListView.DataSource = ListViewDataSource;\nListView.propTypes = _extends({}, ScrollView.propTypes, {\n dataSource: PropTypes.instanceOf(ListViewDataSource).isRequired,\n renderSeparator: PropTypes.func,\n renderRow: PropTypes.func.isRequired,\n initialListSize: PropTypes.number,\n onEndReached: PropTypes.func,\n onEndReachedThreshold: PropTypes.number,\n pageSize: PropTypes.number,\n renderFooter: PropTypes.func,\n renderHeader: PropTypes.func,\n renderSectionHeader: PropTypes.func,\n renderScrollComponent: PropTypes.func,\n scrollRenderAheadDistance: PropTypes.number,\n onChangeVisibleRows: PropTypes.func,\n scrollEventThrottle: PropTypes.number,\n // another added\n renderBodyComponent: PropTypes.func,\n renderSectionWrapper: PropTypes.func,\n renderSectionBodyWrapper: PropTypes.func,\n sectionBodyClassName: PropTypes.string,\n listViewPrefixCls: PropTypes.string,\n useBodyScroll: PropTypes.bool\n});\nListView.defaultProps = {\n initialListSize: DEFAULT_INITIAL_ROWS,\n pageSize: DEFAULT_PAGE_SIZE,\n renderScrollComponent: function renderScrollComponent(props) {\n return React.createElement(ScrollView, props);\n },\n renderBodyComponent: function renderBodyComponent() {\n return React.createElement('div', null);\n },\n renderSectionBodyWrapper: function renderSectionBodyWrapper(sectionID) {\n return React.createElement('div', { key: sectionID });\n },\n sectionBodyClassName: 'list-view-section-body',\n listViewPrefixCls: 'rmc-list-view',\n scrollRenderAheadDistance: DEFAULT_SCROLL_RENDER_AHEAD,\n onEndReachedThreshold: DEFAULT_END_REACHED_THRESHOLD,\n scrollEventThrottle: DEFAULT_SCROLL_CALLBACK_THROTTLE,\n scrollerOptions: {}\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.state = {\n curRenderedRowsCount: this.props.initialListSize,\n highlightedRow: {} };\n\n this.getMetrics = function () {\n return {\n contentLength: _this5.scrollProperties.contentLength,\n totalRows: _this5.props.dataSource.getRowCount(),\n renderedRows: _this5.state.curRenderedRowsCount,\n visibleRows: Object.keys(_this5._visibleRows).length\n };\n };\n\n this.getInnerViewNode = function () {\n return _this5.ListViewRef.getInnerViewNode();\n };\n\n this.scrollTo = function () {\n var _ListViewRef;\n\n _this5.ListViewRef && _this5.ListViewRef.scrollTo && (_ListViewRef = _this5.ListViewRef).scrollTo.apply(_ListViewRef, arguments);\n };\n\n this.onRowHighlighted = function (sectionID, rowID) {\n _this5.setState({ highlightedRow: { sectionID: sectionID, rowID: rowID } });\n };\n\n this._onContentSizeChange = function (width, height) {\n var contentLength = !_this5.props.horizontal ? height : width;\n if (contentLength !== _this5.scrollProperties.contentLength) {\n _this5.scrollProperties.contentLength = contentLength;\n _this5._renderMoreRowsIfNeeded();\n }\n _this5.props.onContentSizeChange && _this5.props.onContentSizeChange(width, height);\n };\n\n this._onLayout = function (event) {\n var _event$nativeEvent$la = event.nativeEvent.layout,\n width = _event$nativeEvent$la.width,\n height = _event$nativeEvent$la.height;\n\n var visibleLength = !_this5.props.horizontal ? height : width;\n if (visibleLength !== _this5.scrollProperties.visibleLength) {\n _this5.scrollProperties.visibleLength = visibleLength;\n _this5._renderMoreRowsIfNeeded();\n }\n _this5.props.onLayout && _this5.props.onLayout(event);\n };\n\n this._maybeCallOnEndReached = function (event) {\n // console.log(this.scrollProperties, this._getDistanceFromEnd(this.scrollProperties));\n if (_this5.props.onEndReached && _this5.scrollProperties.contentLength !== _this5._sentEndForContentLength && _this5._getDistanceFromEnd(_this5.scrollProperties) < _this5.props.onEndReachedThreshold && _this5.state.curRenderedRowsCount === _this5.props.dataSource.getRowCount()) {\n _this5._sentEndForContentLength = _this5.scrollProperties.contentLength;\n _this5.props.onEndReached(event);\n return true;\n }\n return false;\n };\n\n this._renderMoreRowsIfNeeded = function () {\n if (_this5.scrollProperties.contentLength === null || _this5.scrollProperties.visibleLength === null || _this5.state.curRenderedRowsCount === _this5.props.dataSource.getRowCount()) {\n _this5._maybeCallOnEndReached();\n return;\n }\n\n var distanceFromEnd = _this5._getDistanceFromEnd(_this5.scrollProperties);\n // console.log(distanceFromEnd, this.props.scrollRenderAheadDistance);\n if (distanceFromEnd < _this5.props.scrollRenderAheadDistance) {\n _this5._pageInNewRows();\n }\n };\n\n this._pageInNewRows = function () {\n _this5.setState(function (state, props) {\n var rowsToRender = Math.min(state.curRenderedRowsCount + props.pageSize, props.dataSource.getRowCount());\n _this5._prevRenderedRowsCount = state.curRenderedRowsCount;\n return {\n curRenderedRowsCount: rowsToRender\n };\n }, function () {\n _this5._prevRenderedRowsCount = _this5.state.curRenderedRowsCount;\n });\n };\n\n this._getDistanceFromEnd = function (scrollProperties) {\n return scrollProperties.contentLength - scrollProperties.visibleLength - scrollProperties.offset;\n };\n\n this._onScroll = function (e, metrics) {\n // when the ListView is destroyed,\n // but also will trigger scroll event after `scrollEventThrottle`\n if (!_this5.ListViewRef) {\n return;\n }\n\n _this5.scrollProperties = metrics;\n\n if (!_this5._maybeCallOnEndReached(e)) {\n _this5._renderMoreRowsIfNeeded();\n }\n\n if (_this5.props.onEndReached && _this5._getDistanceFromEnd(_this5.scrollProperties) > _this5.props.onEndReachedThreshold) {\n // Scrolled out of the end zone, so it should be able to trigger again.\n _this5._sentEndForContentLength = null;\n }\n\n _this5.props.onScroll && _this5.props.onScroll(e);\n };\n};\n\nexport default ListView;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport ListView from './ListView';\nimport { getOffsetTop, _event } from './util';\n\nfunction setDocumentScrollTop(val) {\n window.document.body.scrollTop = val; // chrome61 is invalid\n window.document.documentElement.scrollTop = val;\n}\n\n/* eslint react/prop-types: 0 */\n\nvar IndexedList = function (_React$Component) {\n _inherits(IndexedList, _React$Component);\n\n function IndexedList(props) {\n _classCallCheck(this, IndexedList);\n\n var _this = _possibleConstructorReturn(this, (IndexedList.__proto__ || Object.getPrototypeOf(IndexedList)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n pageSize: props.pageSize,\n _delay: false\n };\n return _this;\n }\n\n _createClass(IndexedList, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.dataChange(this.props);\n // handle quickSearchBar\n this.getQsInfo();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.dataSource !== nextProps.dataSource) {\n this.dataChange(nextProps);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.getQsInfo();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this._hCache = null;\n }\n }, {\n key: 'renderQuickSearchBar',\n value: function renderQuickSearchBar(quickSearchBarTop, quickSearchBarStyle) {\n var _this2 = this;\n\n var _props = this.props,\n dataSource = _props.dataSource,\n prefixCls = _props.prefixCls;\n\n var sectionKvs = dataSource.sectionIdentities.map(function (i) {\n return {\n value: i,\n label: dataSource._getSectionHeaderData(dataSource._dataBlob, i)\n };\n });\n return React.createElement(\n 'ul',\n {\n ref: function ref(el) {\n return _this2.quickSearchBarRef = el;\n },\n className: prefixCls + '-quick-search-bar', style: quickSearchBarStyle,\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd,\n onTouchCancel: this.onTouchEnd\n },\n React.createElement(\n 'li',\n { 'data-qf-target': quickSearchBarTop.value,\n onClick: function onClick() {\n return _this2.onQuickSearchTop(undefined, quickSearchBarTop.value);\n }\n },\n quickSearchBarTop.label\n ),\n sectionKvs.map(function (i) {\n return React.createElement(\n 'li',\n { key: i.value, 'data-qf-target': i.value,\n onClick: function onClick() {\n return _this2.onQuickSearch(i.value);\n }\n },\n i.label\n );\n })\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this,\n _classNames;\n\n var _state = this.state,\n _delay = _state._delay,\n pageSize = _state.pageSize;\n\n var _props2 = this.props,\n className = _props2.className,\n prefixCls = _props2.prefixCls,\n children = _props2.children,\n quickSearchBarTop = _props2.quickSearchBarTop,\n quickSearchBarStyle = _props2.quickSearchBarStyle,\n _props2$initialListSi = _props2.initialListSize,\n initialListSize = _props2$initialListSi === undefined ? Math.min(20, this.props.dataSource.getRowCount()) : _props2$initialListSi,\n showQuickSearchIndicator = _props2.showQuickSearchIndicator,\n _renderSectionHeader = _props2.renderSectionHeader,\n sectionHeaderClassName = _props2.sectionHeaderClassName,\n other = _objectWithoutProperties(_props2, ['className', 'prefixCls', 'children', 'quickSearchBarTop', 'quickSearchBarStyle', 'initialListSize', 'showQuickSearchIndicator', 'renderSectionHeader', 'sectionHeaderClassName']);\n\n // initialListSize={this.props.dataSource.getRowCount()}\n\n\n return React.createElement(\n 'div',\n { className: prefixCls + '-container' },\n _delay && this.props.delayActivityIndicator,\n React.createElement(\n ListView,\n _extends({}, other, {\n ref: function ref(el) {\n return _this3.indexedListViewRef = el;\n },\n className: classNames(prefixCls, className),\n initialListSize: initialListSize,\n pageSize: pageSize,\n renderSectionHeader: function renderSectionHeader(sectionData, sectionID) {\n return React.cloneElement(_renderSectionHeader(sectionData, sectionID), {\n ref: function ref(c) {\n return _this3.sectionComponents[sectionID] = c;\n },\n className: sectionHeaderClassName || prefixCls + '-section-header'\n });\n }\n }),\n children\n ),\n this.renderQuickSearchBar(quickSearchBarTop, quickSearchBarStyle),\n showQuickSearchIndicator ? React.createElement('div', { className: classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-qsindicator', true), _defineProperty(_classNames, prefixCls + '-qsindicator-hide', !showQuickSearchIndicator || !this.state.showQuickSearchIndicator), _classNames)), ref: function ref(el) {\n return _this3.qsIndicatorRef = el;\n }\n }) : null\n );\n }\n }]);\n\n return IndexedList;\n}(React.Component);\n\nIndexedList.propTypes = _extends({}, ListView.propTypes, {\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n sectionHeaderClassName: PropTypes.string,\n quickSearchBarTop: PropTypes.object,\n quickSearchBarStyle: PropTypes.object,\n onQuickSearch: PropTypes.func,\n showQuickSearchIndicator: PropTypes.bool\n});\nIndexedList.defaultProps = {\n prefixCls: 'rmc-indexed-list',\n quickSearchBarTop: { value: '#', label: '#' },\n onQuickSearch: function onQuickSearch() {},\n showQuickSearchIndicator: false,\n delayTime: 100,\n // delayActivityIndicator:
rendering more
,\n delayActivityIndicator: ''\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this4 = this;\n\n this.onQuickSearchTop = function (sectionID, topId) {\n if (_this4.props.useBodyScroll) {\n setDocumentScrollTop(0);\n } else {\n ReactDOM.findDOMNode(_this4.indexedListViewRef.ListViewRef).scrollTop = 0;\n }\n _this4.props.onQuickSearch(sectionID, topId);\n };\n\n this.onQuickSearch = function (sectionID) {\n var lv = ReactDOM.findDOMNode(_this4.indexedListViewRef.ListViewRef);\n var sec = ReactDOM.findDOMNode(_this4.sectionComponents[sectionID]);\n if (_this4.props.useBodyScroll) {\n setDocumentScrollTop(sec.getBoundingClientRect().top - lv.getBoundingClientRect().top + getOffsetTop(lv));\n } else {\n lv.scrollTop += sec.getBoundingClientRect().top - lv.getBoundingClientRect().top;\n }\n _this4.props.onQuickSearch(sectionID);\n };\n\n this.onTouchStart = function (e) {\n _this4._target = e.target;\n _this4._basePos = _this4.quickSearchBarRef.getBoundingClientRect();\n document.addEventListener('touchmove', _this4._disableParent, false);\n document.body.className = document.body.className + ' ' + _this4.props.prefixCls + '-qsb-moving';\n _this4.updateIndicator(_this4._target);\n };\n\n this.onTouchMove = function (e) {\n e.preventDefault();\n if (_this4._target) {\n var ex = _event(e);\n var basePos = _this4._basePos;\n var _pos = void 0;\n if (ex.clientY >= basePos.top && ex.clientY <= basePos.top + _this4._qsHeight) {\n _pos = Math.floor((ex.clientY - basePos.top) / _this4._avgH);\n var target = void 0;\n if (_pos in _this4._hCache) {\n target = _this4._hCache[_pos][0];\n }\n if (target) {\n var overValue = target.getAttribute('data-qf-target');\n if (_this4._target !== target) {\n if (_this4.props.quickSearchBarTop.value === overValue) {\n _this4.onQuickSearchTop(undefined, overValue);\n } else {\n _this4.onQuickSearch(overValue);\n }\n _this4.updateIndicator(target);\n }\n _this4._target = target;\n }\n }\n }\n };\n\n this.onTouchEnd = function () {\n if (!_this4._target) {\n return;\n }\n document.removeEventListener('touchmove', _this4._disableParent, false);\n document.body.className = document.body.className.replace(new RegExp('\\\\s*' + _this4.props.prefixCls + '-qsb-moving', 'g'), '');\n _this4.updateIndicator(_this4._target, true);\n _this4._target = null;\n };\n\n this.getQsInfo = function () {\n var quickSearchBar = _this4.quickSearchBarRef;\n var height = quickSearchBar.offsetHeight;\n var hCache = [];\n [].slice.call(quickSearchBar.querySelectorAll('[data-qf-target]')).forEach(function (d) {\n hCache.push([d]);\n });\n var _avgH = height / hCache.length;\n var _top = 0;\n for (var i = 0, len = hCache.length; i < len; i++) {\n _top = i * _avgH;\n hCache[i][1] = [_top, _top + _avgH];\n }\n _this4._qsHeight = height;\n _this4._avgH = _avgH;\n _this4._hCache = hCache;\n };\n\n this.sectionComponents = {};\n\n this.dataChange = function (props) {\n // delay render more\n var rowCount = props.dataSource.getRowCount();\n if (!rowCount) {\n return;\n }\n _this4.setState({\n _delay: true\n });\n if (_this4._timer) {\n clearTimeout(_this4._timer);\n }\n _this4._timer = setTimeout(function () {\n _this4.setState({\n pageSize: rowCount,\n _delay: false\n }, function () {\n return _this4.indexedListViewRef._pageInNewRows();\n });\n }, props.delayTime);\n };\n\n this.updateIndicator = function (ele, end) {\n var el = ele;\n if (!el.getAttribute('data-qf-target')) {\n el = el.parentNode;\n }\n if (_this4.props.showQuickSearchIndicator) {\n _this4.qsIndicatorRef.innerText = el.innerText.trim();\n _this4.setState({\n showQuickSearchIndicator: true\n });\n if (_this4._indicatorTimer) {\n clearTimeout(_this4._indicatorTimer);\n }\n _this4._indicatorTimer = setTimeout(function () {\n _this4.setState({\n showQuickSearchIndicator: false\n });\n }, 1000);\n }\n\n var cls = _this4.props.prefixCls + '-quick-search-bar-over';\n // can not use setState to change className, it has a big performance issue!\n _this4._hCache.forEach(function (d) {\n d[0].className = d[0].className.replace(cls, '');\n });\n if (!end) {\n el.className = el.className + ' ' + cls;\n }\n };\n\n this._disableParent = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n};\n\nexport default IndexedList;","// export this package's api\nimport ListView from './ListView';\nimport IndexedList from './Indexed';\n\nListView.IndexedList = IndexedList;\nvar DataSource = ListView.DataSource;\n\nexport { DataSource, IndexedList };\nexport default ListView;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:no-unused-variable */\nimport * as React from 'react';\n/* tslint:enable:no-unused-variable */\nimport List from '../list';\nvar Item = List.Item;\n\nexport default function handleProps(props, isIndexed) {\n var renderHeader = props.renderHeader,\n renderFooter = props.renderFooter,\n renderSectionHeader = props.renderSectionHeader,\n renderBodyComponent = props.renderBodyComponent,\n restProps = __rest(props, [\"renderHeader\", \"renderFooter\", \"renderSectionHeader\", \"renderBodyComponent\"]);\n\n var listPrefixCls = props.listPrefixCls;\n var extraProps = {\n renderHeader: null,\n renderFooter: null,\n renderSectionHeader: null,\n renderBodyComponent: renderBodyComponent || function () {\n return React.createElement('div', { className: listPrefixCls + '-body' });\n }\n };\n if (renderHeader) {\n extraProps.renderHeader = function () {\n return React.createElement(\n 'div',\n { className: listPrefixCls + '-header' },\n renderHeader()\n );\n };\n }\n if (renderFooter) {\n extraProps.renderFooter = function () {\n return React.createElement(\n 'div',\n { className: listPrefixCls + '-footer' },\n renderFooter()\n );\n };\n }\n if (renderSectionHeader) {\n extraProps.renderSectionHeader = isIndexed ? function (sectionData, sectionID) {\n return React.createElement(\n 'div',\n null,\n React.createElement(\n Item,\n { prefixCls: listPrefixCls },\n renderSectionHeader(sectionData, sectionID)\n )\n );\n } : function (sectionData, sectionID) {\n return React.createElement(\n Item,\n { prefixCls: listPrefixCls },\n renderSectionHeader(sectionData, sectionID)\n );\n };\n }\n return { restProps: restProps, extraProps: extraProps };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport MListView from 'rmc-list-view';\nimport handleProps from './handleProps';\nvar IndexedList = MListView.IndexedList;\n\nvar MIndexedList = function (_React$Component) {\n _inherits(MIndexedList, _React$Component);\n\n function MIndexedList() {\n _classCallCheck(this, MIndexedList);\n\n return _possibleConstructorReturn(this, (MIndexedList.__proto__ || Object.getPrototypeOf(MIndexedList)).apply(this, arguments));\n }\n\n _createClass(MIndexedList, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n listPrefixCls = _props.listPrefixCls;\n\n var _handleProps = handleProps(this.props, true),\n restProps = _handleProps.restProps,\n extraProps = _handleProps.extraProps;\n\n return React.createElement(\n IndexedList,\n _extends({ ref: function ref(el) {\n return _this2.indexedListRef = el;\n }, sectionHeaderClassName: prefixCls + '-section-header ' + listPrefixCls + '-body', sectionBodyClassName: prefixCls + '-section-body ' + listPrefixCls + '-body' }, restProps, extraProps),\n this.props.children\n );\n }\n }]);\n\n return MIndexedList;\n}(React.Component);\n\nexport default MIndexedList;\n\nMIndexedList.defaultProps = {\n prefixCls: 'am-indexed-list',\n listPrefixCls: 'am-list',\n listViewPrefixCls: 'am-list-view'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport MListView from 'rmc-list-view';\nimport handleProps from './handleProps';\nimport IndexedList from './Indexed';\n\nvar ListView = function (_React$Component) {\n _inherits(ListView, _React$Component);\n\n function ListView() {\n _classCallCheck(this, ListView);\n\n var _this = _possibleConstructorReturn(this, (ListView.__proto__ || Object.getPrototypeOf(ListView)).apply(this, arguments));\n\n _this.scrollTo = function () {\n var _this$listviewRef;\n\n return (_this$listviewRef = _this.listviewRef).scrollTo.apply(_this$listviewRef, arguments);\n };\n _this.getInnerViewNode = function () {\n return _this.listviewRef.getInnerViewNode();\n };\n return _this;\n }\n\n _createClass(ListView, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _handleProps = handleProps(this.props, false),\n restProps = _handleProps.restProps,\n extraProps = _handleProps.extraProps;\n\n return React.createElement(MListView, _extends({ ref: function ref(el) {\n return _this2.listviewRef = el;\n } }, restProps, extraProps));\n }\n }]);\n\n return ListView;\n}(React.Component);\n\nexport default ListView;\n\nListView.defaultProps = {\n prefixCls: 'am-list-view',\n listPrefixCls: 'am-list'\n};\nListView.DataSource = MListView.DataSource;\nListView.IndexedList = IndexedList;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\n\nvar Radio = function (_React$Component) {\n _inherits(Radio, _React$Component);\n\n function Radio() {\n _classCallCheck(this, Radio);\n\n return _possibleConstructorReturn(this, (Radio.__proto__ || Object.getPrototypeOf(Radio)).apply(this, arguments));\n }\n\n _createClass(Radio, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n className = _a.className,\n style = _a.style,\n restProps = __rest(_a, [\"className\", \"style\"]);var prefixCls = restProps.prefixCls,\n children = restProps.children;\n\n var wrapCls = classnames(prefixCls + '-wrapper', className);\n if ('class' in restProps) {\n // Todo https://github.com/developit/preact-compat/issues/422\n /* tslint:disable:no-string-literal */\n delete restProps['class'];\n }\n var mark = React.createElement(\n 'label',\n { className: wrapCls, style: style },\n React.createElement(RcCheckbox, _extends({}, restProps, { type: 'radio' })),\n children\n );\n if (this.props.wrapLabel) {\n return mark;\n }\n return React.createElement(RcCheckbox, _extends({}, this.props, { type: 'radio' }));\n }\n }]);\n\n return Radio;\n}(React.Component);\n\nexport default Radio;\n\nRadio.defaultProps = {\n prefixCls: 'am-radio',\n wrapLabel: true\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport List from '../list';\nimport Radio from './Radio';\nvar ListItem = List.Item;\nfunction noop() {}\n\nvar RadioItem = function (_React$Component) {\n _inherits(RadioItem, _React$Component);\n\n function RadioItem() {\n _classCallCheck(this, RadioItem);\n\n return _possibleConstructorReturn(this, (RadioItem.__proto__ || Object.getPrototypeOf(RadioItem)).apply(this, arguments));\n }\n\n _createClass(RadioItem, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _a = this.props,\n listPrefixCls = _a.listPrefixCls,\n onChange = _a.onChange,\n disabled = _a.disabled,\n radioProps = _a.radioProps,\n onClick = _a.onClick,\n otherProps = __rest(_a, [\"listPrefixCls\", \"onChange\", \"disabled\", \"radioProps\", \"onClick\"]);var prefixCls = otherProps.prefixCls,\n className = otherProps.className,\n children = otherProps.children;\n\n var wrapCls = classnames(prefixCls + '-item', className, _defineProperty({}, prefixCls + '-item-disabled', disabled === true));\n // Note: if not omit `onChange`, it will trigger twice on check listitem\n if (!disabled) {\n otherProps.onClick = onClick || noop;\n }\n var extraProps = {};\n ['name', 'defaultChecked', 'checked', 'onChange', 'disabled'].forEach(function (i) {\n if (i in _this2.props) {\n extraProps[i] = _this2.props[i];\n }\n });\n return React.createElement(\n ListItem,\n _extends({}, otherProps, { prefixCls: listPrefixCls, className: wrapCls, extra: React.createElement(Radio, _extends({}, radioProps, extraProps)) }),\n children\n );\n }\n }]);\n\n return RadioItem;\n}(React.Component);\n\nexport default RadioItem;\n\nRadioItem.defaultProps = {\n prefixCls: 'am-radio',\n listPrefixCls: 'am-list',\n radioProps: {}\n};","import Radio from './Radio';\nimport RadioItem from './RadioItem';\nRadio.RadioItem = RadioItem;\nexport default Radio;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Checkbox from '../checkbox';\nimport List from '../list';\nimport Radio from '../radio';\nexport default function SubMenu(props) {\n var onClick = function onClick(dataItem) {\n if (props.onSel) {\n props.onSel(dataItem);\n }\n };\n var subMenuPrefixCls = props.subMenuPrefixCls,\n radioPrefixCls = props.radioPrefixCls,\n subMenuData = props.subMenuData,\n showSelect = props.showSelect,\n selItem = props.selItem,\n multiSelect = props.multiSelect;\n\n var selected = function selected(dataItem) {\n return showSelect && selItem.length > 0 && selItem.indexOf(dataItem.value) !== -1;\n };\n var ItemComponent = !multiSelect ? Radio : Checkbox;\n return React.createElement(\n List,\n { style: { paddingTop: 0 }, className: subMenuPrefixCls },\n subMenuData.map(function (dataItem, idx) {\n var _classnames;\n\n return React.createElement(\n List.Item,\n { className: classnames(radioPrefixCls + '-item', (_classnames = {}, _defineProperty(_classnames, subMenuPrefixCls + '-item-selected', selected(dataItem)), _defineProperty(_classnames, subMenuPrefixCls + '-item-disabled', dataItem.disabled), _classnames)), key: idx, extra: React.createElement(ItemComponent, { checked: selected(dataItem), disabled: dataItem.disabled, onChange: function onChange() {\n return onClick(dataItem);\n } }) },\n dataItem.label\n );\n })\n );\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport Button from '../button';\nimport Flex from '../flex';\nimport List from '../list';\nimport { getComponentLocale } from '../_util/getLocale';\nimport SubMenu from './SubMenu';\n\nvar Menu = function (_React$Component) {\n _inherits(Menu, _React$Component);\n\n function Menu(props) {\n _classCallCheck(this, Menu);\n\n var _this = _possibleConstructorReturn(this, (Menu.__proto__ || Object.getPrototypeOf(Menu)).call(this, props));\n\n _this.onMenuOk = function () {\n var onOk = _this.props.onOk;\n\n if (onOk) {\n onOk(_this.state.value);\n }\n };\n _this.onMenuCancel = function () {\n var onCancel = _this.props.onCancel;\n\n if (onCancel) {\n onCancel();\n }\n };\n _this.onClickFirstLevelItem = function (dataItem) {\n var onChange = _this.props.onChange;\n\n _this.setState({\n firstLevelSelectValue: dataItem.value\n });\n if (dataItem.isLeaf && onChange) {\n onChange([dataItem.value]);\n }\n };\n _this.getSelectValue = function (dataItem) {\n var _this$props = _this.props,\n level = _this$props.level,\n multiSelect = _this$props.multiSelect;\n\n if (multiSelect) {\n var _this$state = _this.state,\n value = _this$state.value,\n firstLevelSelectValue = _this$state.firstLevelSelectValue;\n\n if (value && value.length > 0) {\n if (level === 2 && value[0] !== firstLevelSelectValue) {\n /* if level is 2, when first level is reselect, reset submenu array */\n return [firstLevelSelectValue, [dataItem.value]];\n } else {\n /* if level is 1, or first level isn't changed when level is 2, just do add or delete for submenu array */\n var chosenValues = level === 2 ? value[1] : value; // FIXME: hack type\n var existIndex = chosenValues.indexOf(dataItem.value);\n if (existIndex === -1) {\n chosenValues.push(dataItem.value);\n } else {\n chosenValues.splice(existIndex, 1);\n }\n return value;\n }\n } else {\n /* if value is not exist before, init value */\n return level === 2 ? [firstLevelSelectValue, [dataItem.value]] : [dataItem.value];\n }\n }\n return level === 2 ? [_this.state.firstLevelSelectValue, dataItem.value] : [dataItem.value];\n };\n _this.onClickSubMenuItem = function (dataItem) {\n var onChange = _this.props.onChange;\n\n var value = _this.getSelectValue(dataItem);\n _this.setState({ value: value });\n setTimeout(function () {\n // if onChange will close the menu, set a little time to show its selection state.\n if (onChange) {\n onChange(value);\n }\n }, 300);\n };\n _this.state = {\n firstLevelSelectValue: _this.getNewFsv(props),\n value: props.value,\n height: props.height\n };\n return _this;\n }\n\n _createClass(Menu, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.value !== this.props.value) {\n this.setState({\n firstLevelSelectValue: this.getNewFsv(nextProps),\n value: nextProps.value\n });\n }\n if (this.props.height !== nextProps.height) {\n this.setState({\n height: nextProps.height\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!('height' in this.props)) {\n this.setState({\n height: Math.round(document.documentElement.clientHeight / 2)\n });\n }\n }\n }, {\n key: 'getNewFsv',\n value: function getNewFsv(props) {\n var value = props.value,\n data = props.data;\n\n var firstValue = '';\n if (value && value.length) {\n // if has init path, chose init first value\n firstValue = value[0]; // this is a contract\n } else if (data && data.length && !data[0].isLeaf) {\n // chose the first menu item if it's not leaf.\n firstValue = data[0].value;\n }\n return firstValue;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n className = _props.className,\n style = _props.style,\n _props$data = _props.data,\n data = _props$data === undefined ? [] : _props$data,\n prefixCls = _props.prefixCls,\n level = _props.level,\n multiSelect = _props.multiSelect,\n multiSelectMenuBtnsCls = _props.multiSelectMenuBtnsCls,\n MenuSelectContanerPrefixCls = _props.MenuSelectContanerPrefixCls;\n var _state = this.state,\n firstLevelSelectValue = _state.firstLevelSelectValue,\n value = _state.value,\n height = _state.height;\n\n var subMenuData = data; // menu only has one level as init\n if (level === 2) {\n var parent = data;\n if (firstLevelSelectValue && firstLevelSelectValue !== '') {\n parent = data.filter(function (dataItem) {\n return dataItem.value === firstLevelSelectValue;\n });\n }\n // tslint:disable-next-line:prefer-conditional-expression\n if (parent[0] && parent[0].children && parent[0].isLeaf !== true) {\n subMenuData = parent[0].children;\n } else {\n subMenuData = [];\n }\n }\n var subValue = value && value.length > 0 && [].concat(_toConsumableArray(value)) || [];\n if (level === 2 && subValue.length > 1) {\n subValue.shift();\n if (multiSelect) {\n /* example: [[1,2,3]] -> [1,2,3] */\n subValue = subValue[0]; // FIXME: hack type\n }\n }\n var parentValue = value && value.length > 1 && level === 2 ? value[0] : null;\n var subSelInitItem = subMenuData.filter(function (dataItem) {\n return subValue.indexOf(dataItem.value) !== -1;\n }).map(function (item) {\n return item.value;\n });\n var showSelect = true;\n if (level === 2 && parentValue !== firstLevelSelectValue) {\n showSelect = false;\n }\n // tslint:disable-next-line:variable-name\n var _locale = getComponentLocale(this.props, this.context, 'Menu', function () {\n return require('./locale/zh_CN');\n });\n var heightStyle = height !== undefined ? {\n height: height + 'px'\n } : {};\n return React.createElement(\n Flex,\n { className: classnames(prefixCls, _defineProperty({}, className, !!className)), style: _extends({}, style, heightStyle), direction: 'column', align: 'stretch' },\n React.createElement(\n Flex,\n { align: 'start', className: classnames(_defineProperty({}, MenuSelectContanerPrefixCls, true)) },\n level === 2 && React.createElement(\n Flex.Item,\n null,\n React.createElement(\n List,\n { role: 'tablist' },\n data.map(function (dataItem, index) {\n return React.createElement(\n List.Item,\n { className: dataItem.value === firstLevelSelectValue ? prefixCls + '-selected' : '', onClick: function onClick() {\n return _this2.onClickFirstLevelItem(dataItem);\n }, key: 'listitem-1-' + index, role: 'tab', 'aria-selected': dataItem.value === firstLevelSelectValue },\n dataItem.label\n );\n })\n )\n ),\n React.createElement(\n Flex.Item,\n { role: 'tabpanel', 'aria-hidden': 'false', className: MenuSelectContanerPrefixCls + '-submenu' },\n React.createElement(SubMenu, { subMenuPrefixCls: this.props.subMenuPrefixCls, radioPrefixCls: this.props.radioPrefixCls, subMenuData: subMenuData, selItem: subSelInitItem, onSel: this.onClickSubMenuItem, showSelect: showSelect, multiSelect: multiSelect })\n )\n ),\n multiSelect && React.createElement(\n 'div',\n { className: multiSelectMenuBtnsCls },\n React.createElement(\n Button,\n { inline: true, className: multiSelectMenuBtnsCls + '-btn', onClick: this.onMenuCancel },\n _locale.cancelText\n ),\n React.createElement(\n Button,\n { inline: true, type: 'primary', className: multiSelectMenuBtnsCls + '-btn', onClick: this.onMenuOk },\n _locale.okText\n )\n )\n );\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nexport default Menu;\n\nMenu.defaultProps = {\n prefixCls: 'am-menu',\n subMenuPrefixCls: 'am-sub-menu',\n radioPrefixCls: 'am-radio',\n multiSelectMenuBtnsCls: 'am-multi-select-btns',\n MenuSelectContanerPrefixCls: 'am-menu-select-container',\n data: [],\n level: 2,\n onChange: function onChange() {},\n onOk: function onOk() {},\n onCancel: function onCancel() {},\n multiSelect: false\n};\nMenu.contextTypes = {\n antLocale: PropTypes.object\n};","export default function closest(el, selector) {\n var matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;\n var p = el;\n while (p) {\n if (matchesSelector.call(p, selector)) {\n return p;\n }\n p = p.parentElement;\n }\n return null;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Dialog from 'rmc-dialog';\nimport TouchFeedback from 'rmc-feedback';\nexport var ModalComponent = function (_React$Component) {\n _inherits(ModalComponent, _React$Component);\n\n function ModalComponent() {\n _classCallCheck(this, ModalComponent);\n\n return _possibleConstructorReturn(this, (ModalComponent.__proto__ || Object.getPrototypeOf(ModalComponent)).apply(this, arguments));\n }\n\n return ModalComponent;\n}(React.Component);\n\nvar Modal = function (_ModalComponent) {\n _inherits(Modal, _ModalComponent);\n\n function Modal() {\n _classCallCheck(this, Modal);\n\n return _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).apply(this, arguments));\n }\n\n _createClass(Modal, [{\n key: 'renderFooterButton',\n value: function renderFooterButton(button, prefixCls, i) {\n var buttonStyle = {};\n if (button.style) {\n buttonStyle = button.style;\n if (typeof buttonStyle === 'string') {\n var styleMap = {\n cancel: {},\n 'default': {},\n destructive: { color: 'red' }\n };\n buttonStyle = styleMap[buttonStyle] || {};\n }\n }\n var onClickFn = function onClickFn(e) {\n e.preventDefault();\n if (button.onPress) {\n button.onPress();\n }\n };\n return React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-button-active', key: i },\n React.createElement(\n 'a',\n { className: prefixCls + '-button', role: 'button', style: buttonStyle, onClick: onClickFn },\n button.text || 'Button'\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this,\n _classnames2;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n wrapClassName = _a.wrapClassName,\n transitionName = _a.transitionName,\n maskTransitionName = _a.maskTransitionName,\n style = _a.style,\n platform = _a.platform,\n _a$footer = _a.footer,\n footer = _a$footer === undefined ? [] : _a$footer,\n operation = _a.operation,\n animated = _a.animated,\n transparent = _a.transparent,\n popup = _a.popup,\n animationType = _a.animationType,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"wrapClassName\", \"transitionName\", \"maskTransitionName\", \"style\", \"platform\", \"footer\", \"operation\", \"animated\", \"transparent\", \"popup\", \"animationType\"]);\n var btnGroupClass = classnames(prefixCls + '-button-group-' + (footer.length === 2 && !operation ? 'h' : 'v'), prefixCls + '-button-group-' + (operation ? 'operation' : 'normal'));\n var footerDom = footer.length ? React.createElement(\n 'div',\n { className: btnGroupClass, role: 'group' },\n footer.map(function (button, i) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderFooterButton(button, prefixCls, i)\n );\n })\n ) : null;\n var transName = void 0;\n var maskTransName = void 0;\n if (animated) {\n // tslint:disable-next-line:prefer-conditional-expression\n if (transparent) {\n transName = maskTransName = 'am-fade';\n } else {\n transName = maskTransName = 'am-slide-up';\n }\n if (popup) {\n transName = animationType === 'slide-up' ? 'am-slide-up' : 'am-slide-down';\n maskTransName = 'am-fade';\n }\n }\n var wrapCls = classnames(wrapClassName, _defineProperty({}, prefixCls + '-wrap-popup', popup));\n var cls = classnames(className, (_classnames2 = {}, _defineProperty(_classnames2, prefixCls + '-transparent', transparent), _defineProperty(_classnames2, prefixCls + '-popup', popup), _defineProperty(_classnames2, prefixCls + '-popup-' + animationType, popup && animationType), _defineProperty(_classnames2, prefixCls + '-android', platform === 'android'), _classnames2));\n return React.createElement(Dialog, _extends({}, restProps, { prefixCls: prefixCls, className: cls, wrapClassName: wrapCls, transitionName: transitionName || transName, maskTransitionName: maskTransitionName || maskTransName, style: style, footer: footerDom }));\n }\n }]);\n\n return Modal;\n}(ModalComponent);\n\nexport default Modal;\n\nModal.defaultProps = {\n prefixCls: 'am-modal',\n transparent: false,\n popup: false,\n animationType: 'slide-down',\n animated: true,\n style: {},\n onShow: function onShow() {},\n\n footer: [],\n closable: false,\n operation: false,\n platform: 'ios'\n};","import alert from './alert';\nimport Modal from './Modal';\nimport operation from './operation';\nimport prompt from './prompt';\nModal.alert = alert;\nModal.prompt = prompt;\nModal.operation = operation;\nexport default Modal;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport closest from '../_util/closest';\nimport Modal from './Modal';\nexport default function alert(title, message) {\n var actions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [{ text: '确定' }];\n var platform = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ios';\n\n var closed = false;\n if (!title && !message) {\n // console.log('Must specify either an alert title, or message, or both');\n return {\n close: function close() {}\n };\n }\n var div = document.createElement('div');\n document.body.appendChild(div);\n function close() {\n ReactDOM.unmountComponentAtNode(div);\n if (div && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n }\n var footer = actions.map(function (button) {\n // tslint:disable-next-line:only-arrow-functions\n var orginPress = button.onPress || function () {};\n button.onPress = function () {\n if (closed) {\n return;\n }\n var res = orginPress();\n if (res && res.then) {\n res.then(function () {\n closed = true;\n close();\n })['catch'](function () {});\n } else {\n closed = true;\n close();\n }\n };\n return button;\n });\n var prefixCls = 'am-modal';\n function onWrapTouchStart(e) {\n if (!/iPhone|iPod|iPad/i.test(navigator.userAgent)) {\n return;\n }\n var pNode = closest(e.target, '.' + prefixCls + '-footer');\n if (!pNode) {\n e.preventDefault();\n }\n }\n ReactDOM.render(React.createElement(\n Modal,\n { visible: true, transparent: true, title: title, transitionName: 'am-zoom', closable: false, maskClosable: false, footer: footer, maskTransitionName: 'am-fade', platform: platform, wrapProps: { onTouchStart: onWrapTouchStart } },\n React.createElement(\n 'div',\n { className: prefixCls + '-alert-content' },\n message\n )\n ), div);\n return {\n close: close\n };\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport closest from '../_util/closest';\nimport Modal from './Modal';\nexport default function prompt(title, message, callbackOrActions) {\n var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'default';\n var defaultValue = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';\n var placeholders = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ['', ''];\n var platform = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'ios';\n\n var closed = false;\n defaultValue = typeof defaultValue === 'string' ? defaultValue : typeof defaultValue === 'number' ? '' + defaultValue : '';\n if (!callbackOrActions) {\n // console.log('Must specify callbackOrActions');\n return {\n close: function close() {}\n };\n }\n var prefixCls = 'am-modal';\n var data = {\n text: defaultValue\n };\n function onChange(e) {\n var target = e.target;\n var inputType = target.getAttribute('type');\n if (inputType !== null) {\n data[inputType] = target.value;\n }\n }\n // hotfix issue: https://github.com/ant-design/ant-design-mobile/issues/2177\n function onClick(e) {\n var target = e.currentTarget || e.target;\n if (target) {\n target.focus();\n }\n }\n function onBlurFixWechat() {\n // https://github.com/ant-design/ant-design-mobile/issues/3137\n if (/MicroMessenger/.test(navigator.userAgent)) {\n document.body.scrollTop = document.body.scrollTop;\n }\n }\n var inputDom = void 0;\n var focusFn = function focusFn(input) {\n setTimeout(function () {\n if (input) {\n input.focus();\n }\n }, 500);\n };\n switch (type) {\n case 'login-password':\n inputDom = React.createElement(\n 'div',\n { className: prefixCls + '-input-container' },\n React.createElement(\n 'div',\n { className: prefixCls + '-input' },\n React.createElement(\n 'label',\n null,\n React.createElement('input', { type: 'text', defaultValue: data.text, ref: function ref(input) {\n return focusFn(input);\n }, onClick: onClick, onChange: onChange, placeholder: placeholders[0], onBlur: onBlurFixWechat })\n )\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-input' },\n React.createElement(\n 'label',\n null,\n React.createElement('input', { type: 'password', defaultValue: data.password, onClick: onClick, onChange: onChange, placeholder: placeholders[1], onBlur: onBlurFixWechat })\n )\n )\n );\n break;\n case 'secure-text':\n inputDom = React.createElement(\n 'div',\n { className: prefixCls + '-input-container' },\n React.createElement(\n 'div',\n { className: prefixCls + '-input' },\n React.createElement(\n 'label',\n null,\n React.createElement('input', { type: 'password', defaultValue: data.password, ref: function ref(input) {\n return focusFn(input);\n }, onClick: onClick, onChange: onChange, placeholder: placeholders[0], onBlur: onBlurFixWechat })\n )\n )\n );\n break;\n case 'default':\n default:\n inputDom = React.createElement(\n 'div',\n { className: prefixCls + '-input-container' },\n React.createElement(\n 'div',\n { className: prefixCls + '-input' },\n React.createElement(\n 'label',\n null,\n React.createElement('input', { type: 'text', defaultValue: data.text, ref: function ref(input) {\n return focusFn(input);\n }, onClick: onClick, onChange: onChange, placeholder: placeholders[0], onBlur: onBlurFixWechat })\n )\n )\n );\n }\n var content = React.createElement(\n 'div',\n null,\n message,\n inputDom\n );\n var div = document.createElement('div');\n document.body.appendChild(div);\n function close() {\n ReactDOM.unmountComponentAtNode(div);\n if (div && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n }\n function handleConfirm(callback) {\n if (typeof callback !== 'function') {\n return;\n }\n var _data$text = data.text,\n text = _data$text === undefined ? '' : _data$text,\n _data$password = data.password,\n password = _data$password === undefined ? '' : _data$password;\n\n var callbackArgs = type === 'login-password' ? [text, password] : type === 'secure-text' ? [password] : [text];\n return callback.apply(undefined, callbackArgs);\n }\n var actions = void 0;\n if (typeof callbackOrActions === 'function') {\n actions = [{\n text: '取消',\n onPress: function onPress() {}\n }, {\n text: '确定',\n onPress: function onPress() {\n handleConfirm(callbackOrActions);\n }\n }];\n } else {\n actions = callbackOrActions.map(function (item) {\n return {\n text: item.text,\n onPress: function onPress() {\n return handleConfirm(item.onPress);\n }\n };\n });\n }\n var footer = actions.map(function (button) {\n // tslint:disable-next-line:only-arrow-functions\n var orginPress = button.onPress || function () {};\n button.onPress = function () {\n if (closed) {\n return;\n }\n var res = orginPress();\n if (res && res.then) {\n res.then(function () {\n closed = true;\n close();\n })['catch'](function () {});\n } else {\n closed = true;\n close();\n }\n };\n return button;\n });\n function onWrapTouchStart(e) {\n // exclude input element for focus\n if (!/iPhone|iPod|iPad/i.test(navigator.userAgent)) {\n return;\n }\n var pNode = closest(e.target, '.' + prefixCls + '-content');\n if (!pNode) {\n e.preventDefault();\n }\n }\n ReactDOM.render(React.createElement(\n Modal,\n { visible: true, transparent: true, prefixCls: prefixCls, title: title, closable: false, maskClosable: false, transitionName: 'am-zoom', footer: footer, maskTransitionName: 'am-fade', platform: platform, wrapProps: { onTouchStart: onWrapTouchStart } },\n React.createElement(\n 'div',\n { className: prefixCls + '-propmt-content' },\n content\n )\n ), div);\n return {\n close: close\n };\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport closest from '../_util/closest';\nimport Modal from './Modal';\nexport default function operation() {\n var actions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [{ text: '确定' }];\n var platform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ios';\n\n var closed = false;\n var prefixCls = 'am-modal';\n var div = document.createElement('div');\n document.body.appendChild(div);\n function close() {\n ReactDOM.unmountComponentAtNode(div);\n if (div && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n }\n var footer = actions.map(function (button) {\n // tslint:disable-next-line:only-arrow-functions\n var orginPress = button.onPress || function () {};\n button.onPress = function () {\n if (closed) {\n return;\n }\n var res = orginPress();\n if (res && res.then) {\n res.then(function () {\n closed = true;\n close();\n })['catch'](function () {});\n } else {\n closed = true;\n close();\n }\n };\n return button;\n });\n function onWrapTouchStart(e) {\n if (!/iPhone|iPod|iPad/i.test(navigator.userAgent)) {\n return;\n }\n var pNode = closest(e.target, '.am-modal-footer');\n if (!pNode) {\n e.preventDefault();\n }\n }\n ReactDOM.render(React.createElement(Modal, { visible: true, operation: true, transparent: true, prefixCls: prefixCls, transitionName: 'am-zoom', closable: false, maskClosable: true, onClose: close, footer: footer, maskTransitionName: 'am-fade', className: 'am-modal-operation', platform: platform, wrapProps: { onTouchStart: onWrapTouchStart } }), div);\n return {\n close: close\n };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar NavBar = function (_React$Component) {\n _inherits(NavBar, _React$Component);\n\n function NavBar() {\n _classCallCheck(this, NavBar);\n\n return _possibleConstructorReturn(this, (NavBar.__proto__ || Object.getPrototypeOf(NavBar)).apply(this, arguments));\n }\n\n _createClass(NavBar, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n mode = _a.mode,\n icon = _a.icon,\n onLeftClick = _a.onLeftClick,\n leftContent = _a.leftContent,\n rightContent = _a.rightContent,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"mode\", \"icon\", \"onLeftClick\", \"leftContent\", \"rightContent\"]);\n return React.createElement(\n 'div',\n _extends({}, restProps, { className: classnames(className, prefixCls, prefixCls + '-' + mode) }),\n React.createElement(\n 'div',\n { className: prefixCls + '-left', role: 'button', onClick: onLeftClick },\n icon ?\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'span',\n { className: prefixCls + '-left-icon', 'aria-hidden': 'true' },\n icon\n ) : null,\n leftContent\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-title' },\n children\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-right' },\n rightContent\n )\n );\n }\n }]);\n\n return NavBar;\n}(React.Component);\n\nexport default NavBar;\n\nNavBar.defaultProps = {\n prefixCls: 'am-navbar',\n mode: 'dark',\n onLeftClick: function onLeftClick() {}\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/*\n * https://github.com/jasonslyvia/react-marquee\n * remove PC\n * support React Element for text prop\n*/\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar Marquee = function (_React$Component) {\n _inherits(Marquee, _React$Component);\n\n function Marquee() {\n _classCallCheck(this, Marquee);\n\n var _this = _possibleConstructorReturn(this, (Marquee.__proto__ || Object.getPrototypeOf(Marquee)).apply(this, arguments));\n\n _this.state = {\n animatedWidth: 0,\n overflowWidth: 0\n };\n return _this;\n }\n\n _createClass(Marquee, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._measureText();\n this._startAnimation();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this._measureText();\n if (!this._marqueeTimer) {\n this._startAnimation();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._marqueeTimer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n text = _props.text;\n\n var style = _extends({ position: 'relative', right: this.state.animatedWidth, whiteSpace: 'nowrap', display: 'inline-block' }, this.props.style);\n return React.createElement(\n 'div',\n { className: prefixCls + '-marquee-wrap ' + className, style: { overflow: 'hidden' }, role: 'marquee' },\n React.createElement(\n 'div',\n { ref: function ref(el) {\n return _this2.textRef = el;\n }, className: prefixCls + '-marquee', style: style },\n text\n )\n );\n }\n }, {\n key: '_startAnimation',\n value: function _startAnimation() {\n var _this3 = this;\n\n if (this._marqueeTimer) {\n window.clearTimeout(this._marqueeTimer);\n }\n var fps = this.props.fps;\n var TIMEOUT = 1 / fps * 1000;\n var isLeading = this.state.animatedWidth === 0;\n var timeout = isLeading ? this.props.leading : TIMEOUT;\n var animate = function animate() {\n var overflowWidth = _this3.state.overflowWidth;\n\n var animatedWidth = _this3.state.animatedWidth + 1;\n var isRoundOver = animatedWidth > overflowWidth;\n if (isRoundOver) {\n if (_this3.props.loop) {\n animatedWidth = 0;\n } else {\n return;\n }\n }\n if (isRoundOver && _this3.props.trailing) {\n _this3._marqueeTimer = window.setTimeout(function () {\n _this3.setState({\n animatedWidth: animatedWidth\n });\n _this3._marqueeTimer = window.setTimeout(animate, TIMEOUT);\n }, _this3.props.trailing);\n } else {\n _this3.setState({\n animatedWidth: animatedWidth\n });\n _this3._marqueeTimer = window.setTimeout(animate, TIMEOUT);\n }\n };\n if (this.state.overflowWidth !== 0) {\n this._marqueeTimer = window.setTimeout(animate, timeout);\n }\n }\n }, {\n key: '_measureText',\n value: function _measureText() {\n var container = ReactDOM.findDOMNode(this);\n var node = this.textRef;\n if (container && node) {\n var containerWidth = container.offsetWidth;\n var textWidth = node.offsetWidth;\n var overflowWidth = textWidth - containerWidth;\n if (overflowWidth !== this.state.overflowWidth) {\n this.setState({\n overflowWidth: overflowWidth\n });\n }\n }\n }\n }]);\n\n return Marquee;\n}(React.Component);\n\nexport default Marquee;\n\nMarquee.defaultProps = {\n text: '',\n loop: false,\n leading: 500,\n trailing: 800,\n fps: 40,\n className: ''\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Icon from '../icon';\nimport Marquee from './Marquee';\n\nvar NoticeBar = function (_React$Component) {\n _inherits(NoticeBar, _React$Component);\n\n function NoticeBar(props) {\n _classCallCheck(this, NoticeBar);\n\n var _this = _possibleConstructorReturn(this, (NoticeBar.__proto__ || Object.getPrototypeOf(NoticeBar)).call(this, props));\n\n _this.onClick = function () {\n var _this$props = _this.props,\n mode = _this$props.mode,\n onClick = _this$props.onClick;\n\n if (onClick) {\n onClick();\n }\n if (mode === 'closable') {\n _this.setState({\n show: false\n });\n }\n };\n _this.state = {\n show: true\n };\n return _this;\n }\n\n _createClass(NoticeBar, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n mode = _a.mode,\n icon = _a.icon,\n onClick = _a.onClick,\n children = _a.children,\n className = _a.className,\n prefixCls = _a.prefixCls,\n action = _a.action,\n marqueeProps = _a.marqueeProps,\n restProps = __rest(_a, [\"mode\", \"icon\", \"onClick\", \"children\", \"className\", \"prefixCls\", \"action\", \"marqueeProps\"]);\n var extraProps = {};\n var operationDom = null;\n if (mode === 'closable') {\n operationDom = React.createElement(\n 'div',\n { className: prefixCls + '-operation', onClick: this.onClick, role: 'button', 'aria-label': 'close' },\n action ? action : React.createElement(Icon, { type: 'cross', size: 'md' })\n );\n } else {\n if (mode === 'link') {\n operationDom = React.createElement(\n 'div',\n { className: prefixCls + '-operation', role: 'button', 'aria-label': 'go to detail' },\n action ? action : React.createElement(Icon, { type: 'right', size: 'md' })\n );\n }\n extraProps.onClick = onClick;\n }\n var wrapCls = classnames(prefixCls, className);\n return this.state.show ? React.createElement(\n 'div',\n _extends({ className: wrapCls }, restProps, extraProps, { role: 'alert' }),\n icon &&\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'div',\n { className: prefixCls + '-icon', 'aria-hidden': 'true' },\n icon\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-content' },\n React.createElement(Marquee, _extends({ prefixCls: prefixCls, text: children }, marqueeProps))\n ),\n operationDom\n ) : null;\n }\n }]);\n\n return NoticeBar;\n}(React.Component);\n\nexport default NoticeBar;\n\nNoticeBar.defaultProps = {\n prefixCls: 'am-notice-bar',\n mode: '',\n icon: React.createElement(Icon, { type: 'voice', size: 'xxs' }),\n onClick: function onClick() {}\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { getComponentLocale } from '../_util/getLocale';\nimport Button from '../button';\nimport Flex from '../flex';\n\nvar Pagination = function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n function Pagination(props) {\n _classCallCheck(this, Pagination);\n\n var _this = _possibleConstructorReturn(this, (Pagination.__proto__ || Object.getPrototypeOf(Pagination)).call(this, props));\n\n _this.state = {\n current: props.current\n };\n return _this;\n }\n\n _createClass(Pagination, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.current !== this.state.current) {\n this.setState({\n current: nextProps.current\n });\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(p) {\n this.setState({\n current: p\n });\n if (this.props.onChange) {\n this.props.onChange(p);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n style = _props.style,\n mode = _props.mode,\n total = _props.total,\n simple = _props.simple;\n var current = this.state.current;\n\n var locale = getComponentLocale(this.props, this.context, 'Pagination', function () {\n return require('./locale/zh_CN');\n });\n var prevText = locale.prevText,\n nextText = locale.nextText;\n\n var markup = React.createElement(\n Flex,\n null,\n React.createElement(\n Flex.Item,\n { className: prefixCls + '-wrap-btn ' + prefixCls + '-wrap-btn-prev' },\n React.createElement(\n Button,\n { inline: true, disabled: current <= 1, onClick: function onClick() {\n return _this2.onChange(current - 1);\n } },\n prevText\n )\n ),\n this.props.children ? React.createElement(\n Flex.Item,\n null,\n this.props.children\n ) : !simple && React.createElement(\n Flex.Item,\n { className: prefixCls + '-wrap', 'aria-live': 'assertive' },\n React.createElement(\n 'span',\n { className: 'active' },\n current\n ),\n '/',\n React.createElement(\n 'span',\n null,\n total\n )\n ),\n React.createElement(\n Flex.Item,\n { className: prefixCls + '-wrap-btn ' + prefixCls + '-wrap-btn-next' },\n React.createElement(\n Button,\n { inline: true, disabled: current >= total, onClick: function onClick() {\n return _this2.onChange(_this2.state.current + 1);\n } },\n nextText\n )\n )\n );\n if (mode === 'number') {\n markup = React.createElement(\n 'div',\n { className: prefixCls + '-wrap' },\n React.createElement(\n 'span',\n { className: 'active' },\n current\n ),\n '/',\n React.createElement(\n 'span',\n null,\n total\n )\n );\n } else if (mode === 'pointer') {\n var arr = [];\n for (var i = 0; i < total; i++) {\n arr.push(React.createElement(\n 'div',\n { key: 'dot-' + i, className: classnames(prefixCls + '-wrap-dot', _defineProperty({}, prefixCls + '-wrap-dot-active', i + 1 === current)) },\n React.createElement('span', null)\n ));\n }\n markup = React.createElement(\n 'div',\n { className: prefixCls + '-wrap' },\n arr\n );\n }\n var cls = classnames(prefixCls, className);\n return React.createElement(\n 'div',\n { className: cls, style: style },\n markup\n );\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nexport default Pagination;\n\nPagination.defaultProps = {\n prefixCls: 'am-pagination',\n mode: 'button',\n current: 1,\n total: 0,\n simple: false,\n onChange: function onChange() {}\n};\nPagination.contextTypes = {\n antLocale: PropTypes.object\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport arrayTreeFilter from 'array-tree-filter';\nimport MultiPicker from 'rmc-picker/es/MultiPicker';\nimport Picker from 'rmc-picker/lib/Picker';\n\nvar Cascader = function (_React$Component) {\n _inherits(Cascader, _React$Component);\n\n function Cascader() {\n _classCallCheck(this, Cascader);\n\n var _this = _possibleConstructorReturn(this, (Cascader.__proto__ || Object.getPrototypeOf(Cascader)).apply(this, arguments));\n\n _this.state = {\n value: _this.getValue(_this.props.data, _this.props.defaultValue || _this.props.value)\n };\n _this.onValueChange = function (value, index) {\n var children = arrayTreeFilter(_this.props.data, function (c, level) {\n return level <= index && c.value === value[level];\n });\n var data = children[index];\n var i = void 0;\n for (i = index + 1; data && data.children && data.children.length && i < _this.props.cols; i++) {\n data = data.children[0];\n value[i] = data.value;\n }\n value.length = i;\n _this.setState({ value: value });\n if (_this.props.onChange) {\n _this.props.onChange(value);\n }\n };\n return _this;\n }\n\n _createClass(Cascader, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n value: this.getValue(nextProps.data, nextProps.value)\n });\n }\n }\n }, {\n key: 'getValue',\n value: function getValue(d, val) {\n var data = d || this.props.data;\n var value = val || this.props.value || this.props.defaultValue;\n if (!value || !value.length || value.indexOf(undefined) > -1) {\n value = [];\n for (var i = 0; i < this.props.cols; i++) {\n if (data && data.length) {\n value[i] = data[0].value;\n data = data[0].children;\n }\n }\n }\n return value;\n }\n }, {\n key: 'getCols',\n value: function getCols() {\n var _props = this.props,\n data = _props.data,\n cols = _props.cols,\n pickerPrefixCls = _props.pickerPrefixCls,\n disabled = _props.disabled,\n pickerItemStyle = _props.pickerItemStyle,\n indicatorStyle = _props.indicatorStyle;\n\n var value = this.state.value;\n var childrenTree = arrayTreeFilter(data, function (c, level) {\n return c.value === value[level];\n }).map(function (c) {\n return c.children;\n });\n var needPad = cols - childrenTree.length;\n if (needPad > 0) {\n for (var i = 0; i < needPad; i++) {\n childrenTree.push([]);\n }\n }\n childrenTree.length = cols - 1;\n childrenTree.unshift(data);\n return childrenTree.map(function () {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var level = arguments[1];\n return React.createElement(Picker, { key: level, prefixCls: pickerPrefixCls, style: { flex: 1 }, disabled: disabled, itemStyle: pickerItemStyle, indicatorStyle: indicatorStyle }, children.map(function (item) {\n return React.createElement(Picker.Item, { value: item.value, key: item.value }, item.label);\n }));\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var props = this.props;\n var prefixCls = props.prefixCls,\n className = props.className,\n rootNativeProps = props.rootNativeProps,\n style = props.style;\n\n var cols = this.getCols();\n var multiStyle = _extends({ flexDirection: 'row', alignItems: 'center' }, style);\n return React.createElement(MultiPicker, { style: multiStyle, prefixCls: prefixCls, className: className, selectedValue: this.state.value, rootNativeProps: rootNativeProps, onValueChange: this.onValueChange, onScrollChange: props.onScrollChange }, cols);\n }\n }]);\n\n return Cascader;\n}(React.Component);\n\nCascader.defaultProps = {\n cols: 3,\n prefixCls: 'rmc-cascader',\n pickerPrefixCls: 'rmc-picker',\n data: [],\n disabled: false\n};\nexport default Cascader;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PopupPicker from 'rmc-picker/es/Popup';\n\nvar PopupCascader = function (_React$Component) {\n _inherits(PopupCascader, _React$Component);\n\n function PopupCascader() {\n _classCallCheck(this, PopupCascader);\n\n var _this = _possibleConstructorReturn(this, (PopupCascader.__proto__ || Object.getPrototypeOf(PopupCascader)).apply(this, arguments));\n\n _this.onOk = function (v) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n onOk = _this$props.onOk;\n\n if (onChange) {\n onChange(v);\n }\n if (onOk) {\n onOk(v);\n }\n };\n return _this;\n }\n\n _createClass(PopupCascader, [{\n key: 'render',\n value: function render() {\n return React.createElement(PopupPicker, _extends({ picker: this.props.cascader }, this.props, { onOk: this.onOk }));\n }\n }]);\n\n return PopupCascader;\n}(React.Component);\n\nPopupCascader.defaultProps = {\n pickerValueProp: 'value',\n pickerValueChangeProp: 'onChange'\n};\nexport default PopupCascader;","function _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/* tslint:disable:no-console */\nimport * as React from 'react';\n;\n\nvar Item = function Item(_props) {\n return null;\n};\n\nexport default function (ComposedComponent) {\n var _a;\n\n return _a =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_a, _React$Component);\n\n function _a() {\n var _this;\n\n _classCallCheck(this, _a);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_a).apply(this, arguments));\n\n _this.select = function (value, itemHeight, scrollTo) {\n var children = React.Children.toArray(_this.props.children);\n\n for (var i = 0, len = children.length; i < len; i++) {\n if (children[i].props.value === value) {\n _this.selectByIndex(i, itemHeight, scrollTo);\n\n return;\n }\n }\n\n _this.selectByIndex(0, itemHeight, scrollTo);\n };\n\n _this.doScrollingComplete = function (top, itemHeight, fireValueChange) {\n var children = React.Children.toArray(_this.props.children);\n\n var index = _this.computeChildIndex(top, itemHeight, children.length);\n\n var child = children[index];\n\n if (child) {\n fireValueChange(child.props.value);\n } else if (console.warn) {\n console.warn('child not found', children, index);\n }\n };\n\n return _this;\n }\n\n _createClass(_a, [{\n key: \"selectByIndex\",\n value: function selectByIndex(index, itemHeight, zscrollTo) {\n if (index < 0 || index >= React.Children.count(this.props.children) || !itemHeight) {\n return;\n }\n\n zscrollTo(index * itemHeight);\n }\n }, {\n key: \"computeChildIndex\",\n value: function computeChildIndex(top, itemHeight, childrenLength) {\n var index = Math.round(top / itemHeight);\n return Math.min(index, childrenLength - 1);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(ComposedComponent, _extends({}, this.props, {\n doScrollingComplete: this.doScrollingComplete,\n computeChildIndex: this.computeChildIndex,\n select: this.select\n }));\n }\n }]);\n\n return _a;\n }(React.Component), _a.Item = Item, _a;\n}","function _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport PickerMixin from './PickerMixin';\n;\n\nvar Picker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Picker, _React$Component);\n\n function Picker(props) {\n var _this;\n\n _classCallCheck(this, Picker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Picker).call(this, props));\n\n _this.scrollHanders = function () {\n var scrollY = -1;\n var lastY = 0;\n var startY = 0;\n var scrollDisabled = false;\n var isMoving = false;\n\n var setTransform = function setTransform(nodeStyle, value) {\n nodeStyle.transform = value;\n nodeStyle.webkitTransform = value;\n };\n\n var setTransition = function setTransition(nodeStyle, value) {\n nodeStyle.transition = value;\n nodeStyle.webkitTransition = value;\n };\n\n var scrollTo = function scrollTo(_x, y) {\n var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : .3;\n\n if (scrollY !== y) {\n scrollY = y;\n\n if (time && !_this.props.noAnimate) {\n setTransition(_this.contentRef.style, \"cubic-bezier(0,0,0.2,1.15) \".concat(time, \"s\"));\n }\n\n setTransform(_this.contentRef.style, \"translate3d(0,\".concat(-y, \"px,0)\"));\n setTimeout(function () {\n _this.scrollingComplete();\n\n if (_this.contentRef) {\n setTransition(_this.contentRef.style, '');\n }\n }, +time * 1000);\n }\n };\n\n var Velocity = function () {\n var minInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;\n var maxInterval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var _time = 0;\n var _y = 0;\n var _velocity = 0;\n var recorder = {\n record: function record(y) {\n var now = +new Date();\n _velocity = (y - _y) / (now - _time);\n\n if (now - _time >= minInterval) {\n _velocity = now - _time <= maxInterval ? _velocity : 0;\n _y = y;\n _time = now;\n }\n },\n getVelocity: function getVelocity(y) {\n if (y !== _y) {\n recorder.record(y);\n }\n\n return _velocity;\n }\n };\n return recorder;\n }();\n\n var onFinish = function onFinish() {\n isMoving = false;\n var targetY = scrollY;\n var height = (_this.props.children.length - 1) * _this.itemHeight;\n var time = .3;\n var velocity = Velocity.getVelocity(targetY) * 4;\n\n if (velocity) {\n targetY = velocity * 40 + targetY;\n time = Math.abs(velocity) * .1;\n }\n\n if (targetY % _this.itemHeight !== 0) {\n targetY = Math.round(targetY / _this.itemHeight) * _this.itemHeight;\n }\n\n if (targetY < 0) {\n targetY = 0;\n } else if (targetY > height) {\n targetY = height;\n }\n\n scrollTo(0, targetY, time < .3 ? .3 : time);\n\n _this.onScrollChange();\n };\n\n var onStart = function onStart(y) {\n if (scrollDisabled) {\n return;\n }\n\n isMoving = true;\n startY = y;\n lastY = scrollY;\n };\n\n var onMove = function onMove(y) {\n if (scrollDisabled || !isMoving) {\n return;\n }\n\n scrollY = lastY - y + startY;\n Velocity.record(scrollY);\n\n _this.onScrollChange();\n\n setTransform(_this.contentRef.style, \"translate3d(0,\".concat(-scrollY, \"px,0)\"));\n };\n\n return {\n touchstart: function touchstart(evt) {\n return onStart(evt.touches[0].pageY);\n },\n mousedown: function mousedown(evt) {\n return onStart(evt.pageY);\n },\n touchmove: function touchmove(evt) {\n evt.preventDefault();\n onMove(evt.touches[0].pageY);\n },\n mousemove: function mousemove(evt) {\n evt.preventDefault();\n onMove(evt.pageY);\n },\n touchend: function touchend() {\n return onFinish();\n },\n touchcancel: function touchcancel() {\n return onFinish();\n },\n mouseup: function mouseup() {\n return onFinish();\n },\n getValue: function getValue() {\n return scrollY;\n },\n scrollTo: scrollTo,\n setDisabled: function setDisabled() {\n var disabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n scrollDisabled = disabled;\n }\n };\n }();\n\n _this.scrollTo = function (top) {\n _this.scrollHanders.scrollTo(0, top);\n };\n\n _this.scrollToWithoutAnimation = function (top) {\n _this.scrollHanders.scrollTo(0, top, 0);\n };\n\n _this.fireValueChange = function (selectedValue) {\n if (selectedValue !== _this.state.selectedValue) {\n if (!('selectedValue' in _this.props)) {\n _this.setState({\n selectedValue: selectedValue\n });\n }\n\n if (_this.props.onValueChange) {\n _this.props.onValueChange(selectedValue);\n }\n }\n };\n\n _this.onScrollChange = function () {\n var top = _this.scrollHanders.getValue();\n\n if (top >= 0) {\n var children = React.Children.toArray(_this.props.children);\n\n var index = _this.props.computeChildIndex(top, _this.itemHeight, children.length);\n\n if (_this.scrollValue !== index) {\n _this.scrollValue = index;\n var child = children[index];\n\n if (child && _this.props.onScrollChange) {\n _this.props.onScrollChange(child.props.value);\n } else if (!child && console.warn) {\n console.warn('child not found', children, index);\n }\n }\n }\n };\n\n _this.scrollingComplete = function () {\n var top = _this.scrollHanders.getValue();\n\n if (top >= 0) {\n _this.props.doScrollingComplete(top, _this.itemHeight, _this.fireValueChange);\n }\n };\n\n var selectedValueState;\n var _this$props = _this.props,\n selectedValue = _this$props.selectedValue,\n defaultSelectedValue = _this$props.defaultSelectedValue;\n\n if (selectedValue !== undefined) {\n selectedValueState = selectedValue;\n } else if (defaultSelectedValue !== undefined) {\n selectedValueState = defaultSelectedValue;\n } else {\n var children = React.Children.toArray(_this.props.children);\n selectedValueState = children && children[0] && children[0].props.value;\n }\n\n _this.state = {\n selectedValue: selectedValueState\n };\n return _this;\n }\n\n _createClass(Picker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var contentRef = this.contentRef,\n indicatorRef = this.indicatorRef,\n maskRef = this.maskRef,\n rootRef = this.rootRef;\n var rootHeight = rootRef.getBoundingClientRect().height; // https://github.com/react-component/m-picker/issues/18\n\n var itemHeight = this.itemHeight = indicatorRef.getBoundingClientRect().height;\n var num = Math.floor(rootHeight / itemHeight);\n\n if (num % 2 === 0) {\n num--;\n }\n\n num--;\n num /= 2;\n contentRef.style.padding = \"\".concat(itemHeight * num, \"px 0\");\n indicatorRef.style.top = \"\".concat(itemHeight * num, \"px\");\n maskRef.style.backgroundSize = \"100% \".concat(itemHeight * num, \"px\");\n this.scrollHanders.setDisabled(this.props.disabled);\n this.props.select(this.state.selectedValue, this.itemHeight, this.scrollTo);\n var passiveSupported = this.passiveSupported();\n var willPreventDefault = passiveSupported ? {\n passive: false\n } : false;\n var willNotPreventDefault = passiveSupported ? {\n passive: true\n } : false;\n Object.keys(this.scrollHanders).forEach(function (key) {\n if (key.indexOf('touch') === 0 || key.indexOf('mouse') === 0) {\n var pd = key.indexOf('move') >= 0 ? willPreventDefault : willNotPreventDefault;\n rootRef.addEventListener(key, _this2.scrollHanders[key], pd);\n }\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n Object.keys(this.scrollHanders).forEach(function (key) {\n if (key.indexOf('touch') === 0 || key.indexOf('mouse') === 0) {\n _this3.rootRef.removeEventListener(key, _this3.scrollHanders[key]);\n }\n });\n }\n }, {\n key: \"passiveSupported\",\n value: function passiveSupported() {\n var passiveSupported = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', null, options);\n } catch (err) {}\n\n return passiveSupported;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this4 = this;\n\n if ('selectedValue' in nextProps) {\n if (this.state.selectedValue !== nextProps.selectedValue) {\n this.setState({\n selectedValue: nextProps.selectedValue\n }, function () {\n _this4.props.select(nextProps.selectedValue, _this4.itemHeight, nextProps.noAnimate ? _this4.scrollToWithoutAnimation : _this4.scrollTo);\n });\n }\n }\n\n this.scrollHanders.setDisabled(nextProps.disabled);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return this.state.selectedValue !== nextState.selectedValue || this.props.children !== nextProps.children;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.props.select(this.state.selectedValue, this.itemHeight, this.scrollToWithoutAnimation);\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n if ('selectedValue' in this.props) {\n return this.props.selectedValue;\n }\n\n var children = React.Children.toArray(this.props.children);\n return children && children[0] && children[0].props.value;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _pickerCls,\n _this5 = this;\n\n var props = this.props;\n var prefixCls = props.prefixCls,\n itemStyle = props.itemStyle,\n indicatorStyle = props.indicatorStyle,\n _props$indicatorClass = props.indicatorClassName,\n indicatorClassName = _props$indicatorClass === void 0 ? '' : _props$indicatorClass,\n children = props.children;\n var selectedValue = this.state.selectedValue;\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var selectedItemClassName = \"\".concat(itemClassName, \" \").concat(prefixCls, \"-item-selected\");\n\n var map = function map(item) {\n var _item$props = item.props,\n _item$props$className = _item$props.className,\n className = _item$props$className === void 0 ? '' : _item$props$className,\n style = _item$props.style,\n value = _item$props.value;\n return React.createElement(\"div\", {\n style: _extends({}, itemStyle, style),\n className: \"\".concat(selectedValue === value ? selectedItemClassName : itemClassName, \" \").concat(className),\n key: value\n }, item.children || item.props.children);\n }; // compatibility for preact\n\n\n var items = React.Children ? React.Children.map(children, map) : [].concat(children).map(map);\n var pickerCls = (_pickerCls = {}, _defineProperty(_pickerCls, props.className, !!props.className), _defineProperty(_pickerCls, prefixCls, true), _pickerCls);\n return React.createElement(\"div\", {\n className: classNames(pickerCls),\n ref: function ref(el) {\n return _this5.rootRef = el;\n },\n style: this.props.style\n }, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-mask\"),\n ref: function ref(el) {\n return _this5.maskRef = el;\n }\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indicator \").concat(indicatorClassName),\n ref: function ref(el) {\n return _this5.indicatorRef = el;\n },\n style: indicatorStyle\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\"),\n ref: function ref(el) {\n return _this5.contentRef = el;\n }\n }, items));\n }\n }]);\n\n return Picker;\n}(React.Component);\n\nPicker.defaultProps = {\n prefixCls: 'rmc-picker'\n};\nexport default PickerMixin(Picker);","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport treeFilter from 'array-tree-filter';\nimport * as React from 'react';\nimport RMCCascader from 'rmc-cascader/es/Cascader';\nimport RMCPopupCascader from 'rmc-cascader/es/Popup';\nimport RMCMultiPicker from 'rmc-picker/es/MultiPicker';\nimport RMCPicker from 'rmc-picker/es/Picker';\nimport { getComponentLocale } from '../_util/getLocale';\nexport function getDefaultProps() {\n var defaultFormat = function defaultFormat(values) {\n // label is JSX.Element or other\n if (values.length > 0 && typeof values[0] !== 'string') {\n return values;\n }\n return values.join(',');\n };\n return {\n triggerType: 'onClick',\n prefixCls: 'am-picker',\n pickerPrefixCls: 'am-picker-col',\n popupPrefixCls: 'am-picker-popup',\n format: defaultFormat,\n cols: 3,\n cascade: true,\n title: ''\n };\n}\n\nvar AbstractPicker = function (_React$Component) {\n _inherits(AbstractPicker, _React$Component);\n\n function AbstractPicker() {\n _classCallCheck(this, AbstractPicker);\n\n var _this = _possibleConstructorReturn(this, (AbstractPicker.__proto__ || Object.getPrototypeOf(AbstractPicker)).apply(this, arguments));\n\n _this.getSel = function () {\n var value = _this.props.value || [];\n var treeChildren = void 0;\n var data = _this.props.data;\n\n if (_this.props.cascade) {\n treeChildren = treeFilter(data, function (c, level) {\n return c.value === value[level];\n });\n } else {\n treeChildren = value.map(function (v, i) {\n return data[i].filter(function (d) {\n return d.value === v;\n })[0];\n });\n }\n return _this.props.format && _this.props.format(treeChildren.map(function (v) {\n return v.label;\n }));\n };\n _this.getPickerCol = function () {\n var _this$props = _this.props,\n data = _this$props.data,\n pickerPrefixCls = _this$props.pickerPrefixCls,\n itemStyle = _this$props.itemStyle,\n indicatorStyle = _this$props.indicatorStyle;\n\n return data.map(function (col, index) {\n return React.createElement(\n RMCPicker,\n { key: index, prefixCls: pickerPrefixCls, style: { flex: 1 }, itemStyle: itemStyle, indicatorStyle: indicatorStyle },\n col.map(function (item) {\n return React.createElement(\n RMCPicker.Item,\n { key: item.value, value: item.value },\n item.label\n );\n })\n );\n });\n };\n _this.onOk = function (v) {\n if (_this.scrollValue !== undefined) {\n v = _this.scrollValue;\n }\n if (_this.props.onChange) {\n _this.props.onChange(v);\n }\n if (_this.props.onOk) {\n _this.props.onOk(v);\n }\n };\n _this.setScrollValue = function (v) {\n _this.scrollValue = v;\n };\n _this.setCasecadeScrollValue = function (v) {\n // 级联情况下保证数据正确性,滚动过程中只有当最后一级变化时才变更数据\n if (v && _this.scrollValue) {\n var length = _this.scrollValue.length;\n if (length === v.length && _this.scrollValue[length - 1] === v[length - 1]) {\n return;\n }\n }\n _this.setScrollValue(v);\n };\n _this.fixOnOk = function (cascader) {\n if (cascader && cascader.onOk !== _this.onOk) {\n cascader.onOk = _this.onOk;\n cascader.forceUpdate();\n }\n };\n _this.onPickerChange = function (v) {\n _this.setScrollValue(v);\n if (_this.props.onPickerChange) {\n _this.props.onPickerChange(v);\n }\n };\n _this.onVisibleChange = function (visible) {\n _this.setScrollValue(undefined);\n if (_this.props.onVisibleChange) {\n _this.props.onVisibleChange(visible);\n }\n };\n return _this;\n }\n\n _createClass(AbstractPicker, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n children = _a.children,\n _a$value = _a.value,\n value = _a$value === undefined ? [] : _a$value,\n popupPrefixCls = _a.popupPrefixCls,\n itemStyle = _a.itemStyle,\n indicatorStyle = _a.indicatorStyle,\n okText = _a.okText,\n dismissText = _a.dismissText,\n extra = _a.extra,\n cascade = _a.cascade,\n prefixCls = _a.prefixCls,\n pickerPrefixCls = _a.pickerPrefixCls,\n data = _a.data,\n cols = _a.cols,\n onOk = _a.onOk,\n restProps = __rest(_a, [\"children\", \"value\", \"popupPrefixCls\", \"itemStyle\", \"indicatorStyle\", \"okText\", \"dismissText\", \"extra\", \"cascade\", \"prefixCls\", \"pickerPrefixCls\", \"data\", \"cols\", \"onOk\"]);\n // tslint:disable-next-line:variable-name\n var _locale = getComponentLocale(this.props, this.context, 'Picker', function () {\n return require('./locale/zh_CN');\n });\n var cascader = void 0;\n var popupMoreProps = {};\n if (cascade) {\n cascader = React.createElement(RMCCascader, { prefixCls: prefixCls, pickerPrefixCls: pickerPrefixCls, data: data, cols: cols, onChange: this.onPickerChange, onScrollChange: this.setCasecadeScrollValue, pickerItemStyle: itemStyle, indicatorStyle: indicatorStyle });\n } else {\n cascader = React.createElement(\n RMCMultiPicker,\n { style: { flexDirection: 'row', alignItems: 'center' }, prefixCls: prefixCls, onScrollChange: this.setScrollValue },\n this.getPickerCol()\n );\n popupMoreProps = {\n pickerValueProp: 'selectedValue',\n pickerValueChangeProp: 'onValueChange'\n };\n }\n return React.createElement(\n RMCPopupCascader,\n _extends({ cascader: cascader }, this.popupProps, restProps, { prefixCls: popupPrefixCls, value: value, dismissText: dismissText || _locale.dismissText, okText: okText || _locale.okText }, popupMoreProps, { ref: this.fixOnOk, onVisibleChange: this.onVisibleChange }),\n children && typeof children !== 'string' && React.isValidElement(children) && React.cloneElement(children, {\n extra: this.getSel() || extra || _locale.extra\n })\n );\n }\n }]);\n\n return AbstractPicker;\n}(React.Component);\n\nexport default AbstractPicker;","export default {\n WrapComponent: 'div',\n transitionName: 'am-slide-up',\n maskTransitionName: 'am-fade'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport AbstractPicker, { getDefaultProps } from './AbstractPicker';\nimport * as PropTypes from 'prop-types';\nimport popupProps from './popupProps';\n// TODO:\n// fix error TS4026:Public static property 'defaultProps' of exported class has or is using name 'React.ReactElement'\n// fix error TS6133: 'React' is declared but its value is never read.\nexport var nonsense = React.createElement('div', null);\n\nvar Picker = function (_AbstractPicker) {\n _inherits(Picker, _AbstractPicker);\n\n function Picker() {\n _classCallCheck(this, Picker);\n\n var _this = _possibleConstructorReturn(this, (Picker.__proto__ || Object.getPrototypeOf(Picker)).apply(this, arguments));\n\n _this.popupProps = popupProps;\n return _this;\n }\n\n return Picker;\n}(AbstractPicker);\n\nexport default Picker;\n\nPicker.defaultProps = getDefaultProps();\nPicker.contextTypes = {\n antLocale: PropTypes.object\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport * as React from 'react';\nimport RMCCascader from 'rmc-cascader/es/Cascader';\nimport RMCMultiPicker from 'rmc-picker/es/MultiPicker';\nimport RMCPicker from 'rmc-picker/es/Picker';\nfunction getDefaultProps() {\n return {\n prefixCls: 'am-picker',\n pickerPrefixCls: 'am-picker-col',\n cols: 3,\n cascade: true,\n value: [],\n onChange: function onChange() {}\n };\n}\n\nvar PickerView = function (_React$Component) {\n _inherits(PickerView, _React$Component);\n\n function PickerView() {\n _classCallCheck(this, PickerView);\n\n var _this = _possibleConstructorReturn(this, (PickerView.__proto__ || Object.getPrototypeOf(PickerView)).apply(this, arguments));\n\n _this.isMultiPicker = function () {\n if (!_this.props.data) {\n return false;\n }\n return Array.isArray(_this.props.data[0]);\n };\n _this.getCol = function () {\n var _this$props = _this.props,\n data = _this$props.data,\n pickerPrefixCls = _this$props.pickerPrefixCls,\n indicatorStyle = _this$props.indicatorStyle,\n itemStyle = _this$props.itemStyle;\n\n var formattedData = _this.isMultiPicker() ? data : [data];\n return formattedData.map(function (col, index) {\n return React.createElement(\n RMCPicker,\n { key: index, prefixCls: pickerPrefixCls, style: { flex: 1 }, indicatorStyle: indicatorStyle, itemStyle: itemStyle },\n col.map(function (item) {\n return React.createElement(\n RMCPicker.Item,\n { key: item.value, value: item.value },\n item.label\n );\n })\n );\n });\n };\n return _this;\n }\n\n _createClass(PickerView, [{\n key: 'render',\n value: function render() {\n // tslint:disable-next-line:no-this-assignment\n var props = this.props;\n\n var picker = void 0;\n if (props.cascade) {\n picker = React.createElement(RMCCascader, { prefixCls: props.prefixCls, pickerPrefixCls: props.pickerPrefixCls, data: props.data, value: props.value, onChange: props.onChange, onScrollChange: props.onScrollChange, cols: props.cols, indicatorStyle: props.indicatorStyle, pickerItemStyle: props.itemStyle });\n } else {\n picker = React.createElement(\n RMCMultiPicker,\n { prefixCls: props.prefixCls, selectedValue: props.value, onValueChange: props.onChange, onScrollChange: props.onScrollChange, style: { flexDirection: 'row' } },\n this.getCol()\n );\n }\n return picker;\n }\n }]);\n\n return PickerView;\n}(React.Component);\n\nexport default PickerView;\n\nPickerView.defaultProps = getDefaultProps();","import PickerView from './PickerView';\nexport default PickerView;","/* eslint no-eq-null: 0 */\n/* eslint eqeqeq: 0 */\n/* tslint:disable:triple-equals */\nexport default function isWindow(obj) {\n return obj != null && obj == obj.window;\n}","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport align from 'dom-align';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport isWindow from './isWindow';\nfunction buffer(fn, ms) {\n var timer = void 0;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n bufferFn.clear = clear;\n return bufferFn;\n}\n\nvar Align = function (_Component) {\n _inherits(Align, _Component);\n\n function Align() {\n _classCallCheck(this, Align);\n\n var _this = _possibleConstructorReturn(this, (Align.__proto__ || Object.getPrototypeOf(Align)).apply(this, arguments));\n\n _this.forceAlign = function () {\n var props = _this.props;\n if (!props.disabled) {\n var source = ReactDOM.findDOMNode(_this);\n props.onAlign(source, align(source, props.target(), props.align));\n }\n };\n return _this;\n }\n\n _createClass(Align, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var props = this.props;\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n if (!props.disabled) {\n if (prevProps.disabled || prevProps.align !== props.align) {\n reAlign = true;\n } else {\n var lastTarget = prevProps.target();\n var currentTarget = props.target();\n if (isWindow(lastTarget) && isWindow(currentTarget)) {\n reAlign = false;\n } else if (lastTarget !== currentTarget) {\n reAlign = true;\n }\n }\n }\n if (reAlign) {\n this.forceAlign();\n }\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n }\n }, {\n key: 'startMonitorWindowResize',\n value: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n }\n }, {\n key: 'stopMonitorWindowResize',\n value: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n childrenProps = _props.childrenProps,\n children = _props.children;\n\n var child = React.Children.only(children);\n if (childrenProps) {\n var newProps = {};\n for (var prop in childrenProps) {\n if (childrenProps.hasOwnProperty(prop)) {\n newProps[prop] = this.props[childrenProps[prop]];\n }\n }\n return React.cloneElement(child, newProps);\n }\n return child;\n }\n }]);\n\n return Align;\n}(Component);\n\nAlign.defaultProps = {\n target: function target() {\n return window;\n },\n onAlign: function onAlign() {},\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n};\nexport default Align;","// export this package's api\nimport Align from './Align';\nexport default Align;","import _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _createClass from \"babel-runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React, { Component } from 'react';\n\nvar LazyRenderBox = function (_Component) {\n _inherits(LazyRenderBox, _Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, (LazyRenderBox.__proto__ || Object.getPrototypeOf(LazyRenderBox)).apply(this, arguments));\n }\n\n _createClass(LazyRenderBox, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _a = this.props,\n hiddenClassName = _a.hiddenClassName,\n visible = _a.visible,\n props = __rest(_a, [\"hiddenClassName\", \"visible\"]);\n if (hiddenClassName || React.Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += \" \" + hiddenClassName;\n }\n return React.createElement(\"div\", props);\n }\n return React.Children.only(props.children);\n }\n }]);\n\n return LazyRenderBox;\n}(Component);\n\nexport default LazyRenderBox;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport LazyRenderBox from './LazyRenderBox';\n\nvar PopupInner = function (_Component) {\n _inherits(PopupInner, _Component);\n\n function PopupInner() {\n _classCallCheck(this, PopupInner);\n\n return _possibleConstructorReturn(this, (PopupInner.__proto__ || Object.getPrototypeOf(PopupInner)).apply(this, arguments));\n }\n\n _createClass(PopupInner, [{\n key: 'render',\n value: function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return React.createElement(\n 'div',\n { className: className, style: props.style },\n React.createElement(\n LazyRenderBox,\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n }\n }]);\n\n return PopupInner;\n}(Component);\n\nexport default PopupInner;","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2) {\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\nexport function getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\nexport function saveRef(name, component) {\n this[name] = component;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport Align from 'rmc-align';\nimport Animate from 'rc-animate';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport { saveRef } from './utils';\n\nvar Popup = function (_Component) {\n _inherits(Popup, _Component);\n\n function Popup(props) {\n _classCallCheck(this, Popup);\n\n var _this = _possibleConstructorReturn(this, (Popup.__proto__ || Object.getPrototypeOf(Popup)).call(this, props));\n\n _this.onAlign = function (popupDomNode, align) {\n var props = _this.props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (_this.currentAlignClassName !== currentAlignClassName) {\n _this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = _this.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n };\n _this.getTarget = function () {\n return _this.props.getRootDomNode();\n };\n _this.savePopupRef = saveRef.bind(_this, 'popupInstance');\n _this.saveAlignRef = saveRef.bind(_this, 'alignInstance');\n return _this;\n }\n\n _createClass(Popup, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n }\n }, {\n key: 'getPopupDomNode',\n value: function getPopupDomNode() {\n return ReactDOM.findDOMNode(this.popupInstance);\n }\n }, {\n key: 'getMaskTransitionName',\n value: function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n }\n }, {\n key: 'getTransitionName',\n value: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n }\n }, {\n key: 'getClassName',\n value: function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n }\n }, {\n key: 'getPopupElement',\n value: function getPopupElement() {\n var savePopupRef = this.savePopupRef,\n props = this.props;\n var align = props.align,\n style = props.style,\n visible = props.visible,\n prefixCls = props.prefixCls,\n destroyPopupOnHide = props.destroyPopupOnHide;\n\n var className = this.getClassName(this.currentAlignClassName || props.getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n if (!visible) {\n this.currentAlignClassName = null;\n }\n var newStyle = _extends({}, style, this.getZIndexStyle());\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: savePopupRef,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return React.createElement(\n Animate,\n { component: '', exclusive: true, transitionAppear: true, onAnimateLeave: props.onAnimateLeave, transitionName: this.getTransitionName() },\n visible ? React.createElement(\n Align,\n { target: this.getTarget, key: 'popup', ref: this.saveAlignRef, monitorWindowResize: true, align: align, onAlign: this.onAlign },\n React.createElement(\n PopupInner,\n _extends({ visible: true }, popupInnerProps),\n props.children\n )\n ) : null\n );\n }\n var alignOtherProps = {\n xVisible: visible\n };\n return React.createElement(\n Animate,\n { component: '', exclusive: true, transitionAppear: true, transitionName: this.getTransitionName(), onAnimateLeave: props.onAnimateLeave, showProp: 'xVisible' },\n React.createElement(\n Align,\n _extends({ target: this.getTarget, key: 'popup', ref: this.saveAlignRef, monitorWindowResize: true }, alignOtherProps, { childrenProps: { visible: 'xVisible' }, disabled: !visible, align: align, onAlign: this.onAlign }),\n React.createElement(\n PopupInner,\n _extends({ hiddenClassName: hiddenClassName }, popupInnerProps),\n props.children\n )\n )\n );\n }\n }, {\n key: 'getZIndexStyle',\n value: function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n }\n }, {\n key: 'getMaskElement',\n value: function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, { style: this.getZIndexStyle(), key: 'mask', className: props.prefixCls + '-mask', hiddenClassName: props.prefixCls + '-mask-hidden', visible: props.visible });\n if (maskTransition) {\n maskElement = React.createElement(\n Animate,\n { key: 'mask', showProp: 'visible', transitionAppear: true, component: '', transitionName: maskTransition },\n maskElement\n );\n }\n }\n return maskElement;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n }\n }]);\n\n return Popup;\n}(Component);\n\nexport default Popup;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM, { findDOMNode } from 'react-dom';\nimport contains from 'rc-util/es/Dom/contains';\nimport addEventListener from 'rc-util/lib/Dom/addEventListener';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getPopupClassNameFromAlign } from './utils';\nvar IS_REACT_16 = !!React.createPortal;\nfunction noop() {}\nfunction returnEmptyString() {\n return '';\n}\nfunction returnDocument() {\n return window.document;\n}\n\nvar Trigger = function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n function Trigger() {\n _classCallCheck(this, Trigger);\n\n var _this = _possibleConstructorReturn(this, (Trigger.__proto__ || Object.getPrototypeOf(Trigger)).apply(this, arguments));\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n var target = event.target;\n var root = findDOMNode(_this);\n var popupNode = _this.getPopupDomNode();\n if (!contains(root, target) && !contains(popupNode, target)) {\n _this.close();\n }\n };\n _this.getPopupAlign = function () {\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 return popupAlign;\n };\n _this.getRootDomNode = function () {\n return findDOMNode(_this);\n };\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var props = _this.props;\n var popupPlacement = props.popupPlacement,\n builtinPlacements = props.builtinPlacements,\n prefixCls = props.prefixCls;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getPopupClassNameFromAlign(builtinPlacements, prefixCls, align));\n }\n if (props.getPopupClassNameFromAlign) {\n className.push(props.getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n };\n _this.close = function () {\n if (_this.props.onClose) {\n _this.props.onClose();\n }\n };\n _this.onAnimateLeave = function () {\n if (_this.props.destroyPopupOnHide) {\n var container = _this._container;\n if (container) {\n ReactDOM.unmountComponentAtNode(container);\n container.parentNode.removeChild(container);\n }\n }\n };\n _this.removeContainer = function () {\n var container = document.querySelector('#' + _this.props.prefixCls + '-container');\n if (container) {\n ReactDOM.unmountComponentAtNode(container);\n container.parentNode.removeChild(container);\n }\n };\n return _this;\n }\n\n _createClass(Trigger, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.visible) {\n this.componentDidUpdate();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.visible) {\n if (!IS_REACT_16) {\n this.renderDialog(false);\n }\n }\n this.clearOutsideHandler();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var _this2 = this;\n\n if (!IS_REACT_16) {\n this.renderDialog(this.props.visible);\n }\n if (this.props.visible) {\n if (!this.touchOutsideHandler) {\n this.touchOutsideHandler = setTimeout(function () {\n var currentDocument = _this2.props.getDocument();\n _this2.touchOutsideHandler = addEventListener(currentDocument, 'touchend', _this2.onDocumentClick);\n });\n }\n return;\n }\n this.clearOutsideHandler();\n }\n }, {\n key: 'clearOutsideHandler',\n value: function clearOutsideHandler() {\n if (this.touchOutsideHandler) {\n if (this.touchOutsideHandler.remove) {\n this.touchOutsideHandler.remove();\n }\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: 'getPopupDomNode',\n value: function getPopupDomNode() {\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n }\n }, {\n key: 'saveRef',\n value: function saveRef(el, visible) {\n this.popupRef = el;\n this._component = el;\n this.props.afterPopupVisibleChange(visible);\n }\n }, {\n key: 'getComponent',\n value: function getComponent(visible) {\n var _this3 = this;\n\n var props = _extends({}, this.props);\n ['visible', 'onAnimateLeave'].forEach(function (key) {\n if (props.hasOwnProperty(key)) {\n delete props[key];\n }\n });\n return React.createElement(\n Popup,\n { key: 'popup', ref: function ref(el) {\n return _this3.saveRef(el, visible);\n }, prefixCls: props.prefixCls, destroyPopupOnHide: props.destroyPopupOnHide, visible: visible, className: props.popupClassName, align: this.getPopupAlign(), onAlign: props.onPopupAlign, animation: props.popupAnimation, getClassNameFromAlign: this.getPopupClassNameFromAlign, getRootDomNode: this.getRootDomNode, style: props.popupStyle, mask: props.mask, zIndex: props.zIndex, transitionName: props.popupTransitionName, maskAnimation: props.maskAnimation, maskTransitionName: props.maskTransitionName, onAnimateLeave: this.onAnimateLeave },\n typeof props.popup === 'function' ? props.popup() : props.popup\n );\n }\n }, {\n key: 'getContainer',\n value: function getContainer() {\n if (!this._container) {\n var props = this.props;\n var popupContainer = document.createElement('div');\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(this)) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n this._container = popupContainer;\n }\n return this._container;\n }\n }, {\n key: 'renderDialog',\n value: function renderDialog(visible) {\n ReactDOM.unstable_renderSubtreeIntoContainer(this, this.getComponent(visible), this.getContainer());\n }\n }, {\n key: 'render',\n value: function render() {\n var props = this.props;\n var children = props.children;\n var child = React.Children.only(children);\n var newChildProps = {\n onClick: this.props.onTargetClick,\n key: 'trigger'\n };\n var trigger = React.cloneElement(child, newChildProps);\n if (!IS_REACT_16) {\n return trigger;\n }\n var portal = void 0;\n if (props.visible || this._component) {\n portal = ReactDOM.createPortal(this.getComponent(props.visible), this.getContainer());\n }\n return [trigger, portal];\n }\n }]);\n\n return Trigger;\n}(React.Component);\n\nexport default Trigger;\n\nTrigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport Trigger from './Trigger';\nfunction noop() {}\nfunction returnEmptyString() {\n return '';\n}\nfunction returnDocument() {\n return window.document;\n}\n\nvar TriggerWrap = function (_React$Component) {\n _inherits(TriggerWrap, _React$Component);\n\n function TriggerWrap(props) {\n _classCallCheck(this, TriggerWrap);\n\n var _this = _possibleConstructorReturn(this, (TriggerWrap.__proto__ || Object.getPrototypeOf(TriggerWrap)).call(this, props));\n\n _this.onTargetClick = function () {\n _this.setPopupVisible(!_this.state.popupVisible);\n };\n _this.onClose = function () {\n _this.setPopupVisible(false);\n };\n var popupVisible = void 0;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n _this.state = {\n popupVisible: popupVisible\n };\n return _this;\n }\n\n _createClass(TriggerWrap, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.visible !== undefined) {\n this.setPopupVisible(nextProps.visible);\n }\n }\n }, {\n key: 'setPopupVisible',\n value: function setPopupVisible(visible) {\n if (this.state.popupVisible !== visible) {\n this.setState({\n popupVisible: visible\n });\n this.props.onPopupVisibleChange(visible);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return React.createElement(Trigger, _extends({ ref: function ref(el) {\n return _this2.triggerRef = el;\n } }, this.props, { visible: this.state.popupVisible, onTargetClick: this.onTargetClick, onClose: this.onClose }));\n }\n }]);\n\n return TriggerWrap;\n}(React.Component);\n\nTriggerWrap.displayName = 'TriggerWrap';\nTriggerWrap.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true\n};\nexport default TriggerWrap;","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 _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React, { Component } from 'react';\nimport Trigger from 'rmc-trigger';\nimport { placements } from './placements';\n\nvar Tooltip = function (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n\n var _this = _possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).apply(this, arguments));\n\n _this.getPopupElement = function () {\n var _this$props = _this.props,\n arrowContent = _this$props.arrowContent,\n overlay = _this$props.overlay,\n prefixCls = _this$props.prefixCls;\n\n return [React.createElement(\n 'div',\n { className: prefixCls + '-arrow', key: 'arrow' },\n arrowContent\n ), React.createElement(\n 'div',\n { className: prefixCls + '-inner', key: 'content' },\n typeof overlay === 'function' ? overlay() : overlay\n )];\n };\n _this.saveTrigger = function (node) {\n _this.trigger = node;\n };\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: 'getPopupDomNode',\n value: function getPopupDomNode() {\n return this.trigger.triggerRef.getPopupDomNode();\n }\n }, {\n key: 'render',\n value: function render() {\n var _a = this.props,\n overlayClassName = _a.overlayClassName,\n overlayStyle = _a.overlayStyle,\n prefixCls = _a.prefixCls,\n children = _a.children,\n onVisibleChange = _a.onVisibleChange,\n afterVisibleChange = _a.afterVisibleChange,\n transitionName = _a.transitionName,\n animation = _a.animation,\n placement = _a.placement,\n align = _a.align,\n destroyTooltipOnHide = _a.destroyTooltipOnHide,\n defaultVisible = _a.defaultVisible,\n getTooltipContainer = _a.getTooltipContainer,\n restProps = __rest(_a, [\"overlayClassName\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\"]);\n var extraProps = _extends({}, restProps);\n if ('visible' in this.props) {\n extraProps.popupVisible = this.props.visible;\n }\n return React.createElement(\n Trigger,\n _extends({ popupClassName: overlayClassName, ref: this.saveTrigger, prefixCls: prefixCls, popup: this.getPopupElement, builtinPlacements: placements, popupPlacement: placement, popupAlign: align, getPopupContainer: getTooltipContainer, onPopupVisibleChange: onVisibleChange, afterPopupVisibleChange: afterVisibleChange, popupTransitionName: transitionName, popupAnimation: animation, defaultPopupVisible: defaultVisible, destroyPopupOnHide: destroyTooltipOnHide, popupStyle: overlayStyle }, extraProps),\n children\n );\n }\n }]);\n\n return Tooltip;\n}(Component);\n\nTooltip.defaultProps = {\n prefixCls: 'rmc-tooltip',\n destroyTooltipOnHide: false,\n align: {},\n placement: 'right',\n arrowContent: null\n};\nexport default Tooltip;","import Tooltip from './Tooltip';\nexport default Tooltip;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\n\nvar Item = function (_React$Component) {\n _inherits(Item, _React$Component);\n\n function Item() {\n _classCallCheck(this, Item);\n\n return _possibleConstructorReturn(this, (Item.__proto__ || Object.getPrototypeOf(Item)).apply(this, arguments));\n }\n\n _createClass(Item, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n children = _a.children,\n className = _a.className,\n prefixCls = _a.prefixCls,\n icon = _a.icon,\n disabled = _a.disabled,\n firstItem = _a.firstItem,\n activeStyle = _a.activeStyle,\n restProps = __rest(_a, [\"children\", \"className\", \"prefixCls\", \"icon\", \"disabled\", \"firstItem\", \"activeStyle\"]);\n var cls = classnames(prefixCls + '-item', className, _defineProperty({}, prefixCls + '-item-disabled', disabled));\n var activeClass = prefixCls + '-item-active ';\n if (firstItem) {\n activeClass += prefixCls + '-item-fix-active-arrow';\n }\n return React.createElement(\n TouchFeedback,\n { disabled: disabled, activeClassName: activeClass, activeStyle: activeStyle },\n React.createElement(\n 'div',\n _extends({ className: cls }, restProps),\n React.createElement(\n 'div',\n { className: prefixCls + '-item-container' },\n icon ?\n // tslint:disable-next-line:jsx-no-multiline-js\n React.createElement(\n 'span',\n { className: prefixCls + '-item-icon', 'aria-hidden': 'true' },\n icon\n ) : null,\n React.createElement(\n 'span',\n { className: prefixCls + '-item-content' },\n children\n )\n )\n )\n );\n }\n }]);\n\n return Item;\n}(React.Component);\n\nexport default Item;\n\nItem.defaultProps = {\n prefixCls: 'am-popover',\n disabled: false\n};\nItem.myName = 'PopoverItem';","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport * as React from 'react';\nimport Tooltip from 'rmc-tooltip';\nimport Item from './Item';\nfunction recursiveCloneChildren(children) {\n var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (ch, _) {\n return ch;\n };\n\n return React.Children.map(children, function (child, index) {\n var newChild = cb(child, index);\n if (typeof newChild !== 'string' && typeof newChild !== 'number' && newChild && newChild.props && newChild.props.children) {\n return React.cloneElement(newChild, {}, recursiveCloneChildren(newChild.props.children, cb));\n }\n return newChild;\n });\n}\n\nvar Popover = function (_React$Component) {\n _inherits(Popover, _React$Component);\n\n function Popover() {\n _classCallCheck(this, Popover);\n\n return _possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).apply(this, arguments));\n }\n\n _createClass(Popover, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n overlay = _a.overlay,\n _a$onSelect = _a.onSelect,\n onSelect = _a$onSelect === undefined ? function () {} : _a$onSelect,\n restProps = __rest(_a, [\"overlay\", \"onSelect\"]);\n var overlayNode = recursiveCloneChildren(overlay, function (child, index) {\n var extraProps = { firstItem: false };\n if (child && typeof child !== 'string' && typeof child !== 'number' && child.type &&\n // Fixme: not sure where the `myName` came from.\n child.type.myName === 'PopoverItem' && !child.props.disabled) {\n extraProps.onClick = function () {\n return onSelect(child, index);\n };\n extraProps.firstItem = index === 0;\n return React.cloneElement(child, extraProps);\n }\n return child;\n });\n var wrapperNode = React.createElement(\n 'div',\n { className: this.props.prefixCls + '-inner-wrapper' },\n overlayNode\n );\n return React.createElement(Tooltip, _extends({}, restProps, { overlay: wrapperNode }));\n }\n }]);\n\n return Popover;\n}(React.Component);\n\nexport default Popover;\n\nPopover.defaultProps = {\n prefixCls: 'am-popover',\n placement: 'bottomRight',\n align: { overflow: { adjustY: 0, adjustX: 0 } },\n trigger: ['click']\n};\nPopover.Item = Item;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar Progress = function (_React$Component) {\n _inherits(Progress, _React$Component);\n\n function Progress() {\n _classCallCheck(this, Progress);\n\n return _possibleConstructorReturn(this, (Progress.__proto__ || Object.getPrototypeOf(Progress)).apply(this, arguments));\n }\n\n _createClass(Progress, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n this.noAppearTransition = true;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n if (this.props.appearTransition) {\n setTimeout(function () {\n if (_this2.barRef) {\n _this2.barRef.style.width = _this2.props.percent + '%';\n }\n }, 10);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames,\n _this3 = this;\n\n var _props = this.props,\n className = _props.className,\n prefixCls = _props.prefixCls,\n position = _props.position,\n unfilled = _props.unfilled,\n _props$style = _props.style,\n style = _props$style === undefined ? {} : _props$style,\n _props$barStyle = _props.barStyle,\n barStyle = _props$barStyle === undefined ? {} : _props$barStyle;\n\n var percentStyle = {\n width: this.noAppearTransition || !this.props.appearTransition ? this.props.percent + '%' : 0,\n height: 0\n };\n var wrapCls = classnames(prefixCls + '-outer', className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-fixed-outer', position === 'fixed'), _defineProperty(_classnames, prefixCls + '-hide-outer', !unfilled), _classnames));\n return React.createElement(\n 'div',\n { style: style, className: wrapCls, role: 'progressbar', 'aria-valuenow': this.props.percent, 'aria-valuemin': 0, 'aria-valuemax': 100 },\n React.createElement('div', { ref: function ref(el) {\n return _this3.barRef = el;\n }, className: prefixCls + '-bar', style: _extends({}, barStyle, percentStyle) })\n );\n }\n }]);\n\n return Progress;\n}(React.Component);\n\nexport default Progress;\n\nProgress.defaultProps = {\n prefixCls: 'am-progress',\n percent: 0,\n position: 'fixed',\n unfilled: true,\n appearTransition: false\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar StaticRenderer = function (_React$Component) {\n _inherits(StaticRenderer, _React$Component);\n\n function StaticRenderer() {\n _classCallCheck(this, StaticRenderer);\n\n return _possibleConstructorReturn(this, (StaticRenderer.__proto__ || Object.getPrototypeOf(StaticRenderer)).apply(this, arguments));\n }\n\n _createClass(StaticRenderer, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return nextProps.shouldUpdate;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n 'div',\n null,\n this.props.render()\n );\n }\n }]);\n\n return StaticRenderer;\n}(React.Component);\n\nfunction setTransform(nodeStyle, value) {\n nodeStyle.transform = value;\n nodeStyle.webkitTransform = value;\n nodeStyle.MozTransform = value;\n}\nvar isWebView = typeof navigator !== 'undefined' && /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);\nvar DOWN = 'down';\nvar UP = 'up';\nvar INDICATOR = { activate: 'release', deactivate: 'pull', release: 'loading', finish: 'finish' };\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n} catch (e) {\n // empty\n}\nvar willPreventDefault = supportsPassive ? { passive: false } : false;\n// const willNotPreventDefault = supportsPassive ? { passive: true } : false;\n\nvar PullToRefresh = function (_React$Component2) {\n _inherits(PullToRefresh, _React$Component2);\n\n function PullToRefresh() {\n _classCallCheck(this, PullToRefresh);\n\n // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355\n // currSt: `activate` / `deactivate` / `release` / `finish`\n var _this2 = _possibleConstructorReturn(this, (PullToRefresh.__proto__ || Object.getPrototypeOf(PullToRefresh)).apply(this, arguments));\n\n _this2.state = {\n currSt: 'deactivate',\n dragOnEdge: false\n };\n _this2._isMounted = false;\n _this2.shouldUpdateChildren = false;\n _this2.triggerPullToRefresh = function () {\n // 在初始化时、用代码 自动 触发 pullToRefresh\n // 注意:当 direction 为 up 时,当 visible length < content length 时、则看不到效果\n // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish\n if (!_this2.state.dragOnEdge && _this2._isMounted) {\n if (_this2.props.refreshing) {\n if (_this2.props.direction === UP) {\n _this2._lastScreenY = -_this2.props.distanceToRefresh - 1;\n }\n if (_this2.props.direction === DOWN) {\n _this2._lastScreenY = _this2.props.distanceToRefresh + 1;\n }\n // change dom need after setState\n _this2.setState({ currSt: 'release' }, function () {\n return _this2.setContentStyle(_this2._lastScreenY);\n });\n } else {\n _this2.setState({ currSt: 'finish' }, function () {\n return _this2.reset();\n });\n }\n }\n };\n _this2.init = function (ele) {\n if (!ele) {\n // like return in destroy fn ???!!\n return;\n }\n _this2._to = {\n touchstart: _this2.onTouchStart.bind(_this2, ele),\n touchmove: _this2.onTouchMove.bind(_this2, ele),\n touchend: _this2.onTouchEnd.bind(_this2, ele),\n touchcancel: _this2.onTouchEnd.bind(_this2, ele)\n };\n Object.keys(_this2._to).forEach(function (key) {\n ele.addEventListener(key, _this2._to[key], willPreventDefault);\n });\n };\n _this2.destroy = function (ele) {\n if (!_this2._to || !ele) {\n // componentWillUnmount fire before componentDidMount, like forceUpdate ???!!\n return;\n }\n Object.keys(_this2._to).forEach(function (key) {\n ele.removeEventListener(key, _this2._to[key]);\n });\n };\n _this2.onTouchStart = function (_ele, e) {\n _this2._ScreenY = _this2._startScreenY = e.touches[0].screenY;\n _this2._startScreenX = e.touches[0].screenX;\n // 一开始 refreshing 为 true 时 this._lastScreenY 有值\n _this2._lastScreenY = _this2._lastScreenY || 0;\n };\n _this2.isEdge = function (ele, direction) {\n var container = _this2.props.getScrollContainer();\n if (container && container === document.body) {\n // In chrome61 `document.body.scrollTop` is invalid\n var scrollNode = document.scrollingElement ? document.scrollingElement : document.body;\n if (direction === UP) {\n return scrollNode.scrollHeight - scrollNode.scrollTop <= window.innerHeight;\n }\n if (direction === DOWN) {\n return scrollNode.scrollTop <= 0;\n }\n }\n if (direction === UP) {\n return ele.scrollHeight - ele.scrollTop === ele.clientHeight;\n }\n if (direction === DOWN) {\n return ele.scrollTop <= 0;\n }\n };\n _this2.damping = function (dy) {\n if (Math.abs(_this2._lastScreenY) > _this2.props.damping) {\n return 0;\n }\n var ratio = Math.abs(_this2._ScreenY - _this2._startScreenY) / window.screen.height;\n dy *= (1 - ratio) * _this2.props.scale;\n return dy;\n };\n _this2.onTouchMove = function (ele, e) {\n // 使用 pageY 对比有问题\n var _screenY = e.touches[0].screenY;\n var _screenX = e.touches[0].screenX;\n var direction = _this2.props.direction;\n // 横向滑动不处理\n\n if (Math.abs(_screenX - _this2._startScreenX) > 20 * window.devicePixelRatio) {\n return;\n }\n // 拖动方向不符合的不处理\n if (direction === UP && _this2._startScreenY < _screenY || direction === DOWN && _this2._startScreenY > _screenY) {\n return;\n }\n if (_this2.isEdge(ele, direction)) {\n if (!_this2.state.dragOnEdge) {\n // 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义\n // 下面这行代码解决了上面这个问题\n _this2._ScreenY = _this2._startScreenY = e.touches[0].screenY;\n _this2.setState({ dragOnEdge: true });\n }\n e.preventDefault();\n // add stopPropagation with fastclick will trigger content onClick event. why?\n // ref https://github.com/ant-design/ant-design-mobile/issues/2141\n // e.stopPropagation();\n var _diff = Math.round(_screenY - _this2._ScreenY);\n _this2._ScreenY = _screenY;\n _this2._lastScreenY += _this2.damping(_diff);\n _this2.setContentStyle(_this2._lastScreenY);\n if (Math.abs(_this2._lastScreenY) < _this2.props.distanceToRefresh) {\n if (_this2.state.currSt !== 'deactivate') {\n // console.log('back to the distance');\n _this2.setState({ currSt: 'deactivate' });\n }\n } else {\n if (_this2.state.currSt === 'deactivate') {\n // console.log('reach to the distance');\n _this2.setState({ currSt: 'activate' });\n }\n }\n // https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829\n // iOS UIWebView issue, It seems no problem in WKWebView\n if (isWebView && e.changedTouches[0].clientY < 0) {\n _this2.onTouchEnd();\n }\n }\n };\n _this2.onTouchEnd = function () {\n if (_this2.state.dragOnEdge) {\n _this2.setState({ dragOnEdge: false });\n }\n if (_this2.state.currSt === 'activate') {\n _this2.setState({ currSt: 'release' });\n _this2._timer = setTimeout(function () {\n if (!_this2.props.refreshing) {\n _this2.setState({ currSt: 'finish' }, function () {\n return _this2.reset();\n });\n }\n _this2._timer = undefined;\n }, 1000);\n _this2.props.onRefresh();\n } else {\n _this2.reset();\n }\n };\n _this2.reset = function () {\n _this2._lastScreenY = 0;\n _this2.setContentStyle(0);\n };\n _this2.setContentStyle = function (ty) {\n // todos: Why sometimes do not have `this.contentRef` ?\n if (_this2.contentRef) {\n setTransform(_this2.contentRef.style, 'translate3d(0px,' + ty + 'px,0)');\n }\n };\n return _this2;\n }\n\n _createClass(PullToRefresh, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n this.shouldUpdateChildren = this.props.children !== nextProps.children;\n return true;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps === this.props || prevProps.refreshing === this.props.refreshing) {\n return;\n }\n // triggerPullToRefresh 需要尽可能减少 setState 次数\n this.triggerPullToRefresh();\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this3 = this;\n\n // `getScrollContainer` most likely return React.Node at the next tick. Need setTimeout\n setTimeout(function () {\n _this3.init(_this3.props.getScrollContainer() || _this3.containerRef);\n _this3.triggerPullToRefresh();\n _this3._isMounted = true;\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Should have no setTimeout here!\n this.destroy(this.props.getScrollContainer() || this.containerRef);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var props = _extends({}, this.props);\n delete props.damping;\n\n var className = props.className,\n prefixCls = props.prefixCls,\n children = props.children,\n getScrollContainer = props.getScrollContainer,\n direction = props.direction,\n onRefresh = props.onRefresh,\n refreshing = props.refreshing,\n indicator = props.indicator,\n distanceToRefresh = props.distanceToRefresh,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"children\", \"getScrollContainer\", \"direction\", \"onRefresh\", \"refreshing\", \"indicator\", \"distanceToRefresh\"]);\n\n var renderChildren = React.createElement(StaticRenderer, { shouldUpdate: this.shouldUpdateChildren, render: function render() {\n return children;\n } });\n var renderRefresh = function renderRefresh(cls) {\n var cla = classNames(cls, !_this4.state.dragOnEdge && prefixCls + '-transition');\n return React.createElement(\n 'div',\n { className: prefixCls + '-content-wrapper' },\n React.createElement(\n 'div',\n { className: cla, ref: function ref(el) {\n return _this4.contentRef = el;\n } },\n direction === UP ? renderChildren : null,\n React.createElement(\n 'div',\n { className: prefixCls + '-indicator' },\n indicator[_this4.state.currSt] || INDICATOR[_this4.state.currSt]\n ),\n direction === DOWN ? renderChildren : null\n )\n );\n };\n if (getScrollContainer()) {\n return renderRefresh(prefixCls + '-content ' + prefixCls + '-' + direction);\n }\n return React.createElement(\n 'div',\n _extends({ ref: function ref(el) {\n return _this4.containerRef = el;\n }, className: classNames(className, prefixCls, prefixCls + '-' + direction) }, restProps),\n renderRefresh(prefixCls + '-content')\n );\n }\n }]);\n\n return PullToRefresh;\n}(React.Component);\n\nexport default PullToRefresh;\n\nPullToRefresh.defaultProps = {\n prefixCls: 'rmc-pull-to-refresh',\n getScrollContainer: function getScrollContainer() {\n return undefined;\n },\n direction: DOWN,\n distanceToRefresh: 25,\n damping: 100,\n indicator: INDICATOR,\n scale: 0.6\n};","import PullToRefresh from './PullToRefresh';\nexport default PullToRefresh;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport RPullToRefresh from 'rmc-pull-to-refresh';\nimport { getComponentLocale } from '../_util/getLocale';\nimport Icon from '../icon';\n\nvar PullToRefresh = function (_React$Component) {\n _inherits(PullToRefresh, _React$Component);\n\n function PullToRefresh() {\n _classCallCheck(this, PullToRefresh);\n\n return _possibleConstructorReturn(this, (PullToRefresh.__proto__ || Object.getPrototypeOf(PullToRefresh)).apply(this, arguments));\n }\n\n _createClass(PullToRefresh, [{\n key: 'render',\n value: function render() {\n // tslint:disable-next-line:variable-name\n var _getComponentLocale = getComponentLocale(this.props, this.context, 'PullToRefresh', function () {\n return require('./locale/zh_CN');\n }),\n activateText = _getComponentLocale.activateText,\n deactivateText = _getComponentLocale.deactivateText,\n finishText = _getComponentLocale.finishText;\n\n var ind = _extends({ activate: activateText, deactivate: deactivateText, release: React.createElement(Icon, { type: 'loading' }), finish: finishText }, this.props.indicator);\n return React.createElement(RPullToRefresh, _extends({}, this.props, { indicator: ind }));\n }\n }]);\n\n return PullToRefresh;\n}(React.Component);\n\nexport default PullToRefresh;\n\nPullToRefresh.defaultProps = {\n prefixCls: 'am-pull-to-refresh'\n};\nPullToRefresh.contextTypes = {\n antLocale: PropTypes.object\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Button from '../button';\n\nvar Result = function (_React$Component) {\n _inherits(Result, _React$Component);\n\n function Result() {\n _classCallCheck(this, Result);\n\n return _possibleConstructorReturn(this, (Result.__proto__ || Object.getPrototypeOf(Result)).apply(this, arguments));\n }\n\n _createClass(Result, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n style = _props.style,\n img = _props.img,\n imgUrl = _props.imgUrl,\n title = _props.title,\n message = _props.message,\n buttonText = _props.buttonText,\n onButtonClick = _props.onButtonClick,\n buttonType = _props.buttonType;\n\n var imgContent = null;\n if (img) {\n imgContent = React.createElement(\n 'div',\n { className: prefixCls + '-pic' },\n img\n );\n } else if (imgUrl) {\n imgContent = React.createElement('div', { className: prefixCls + '-pic', style: { backgroundImage: 'url(' + imgUrl + ')' } });\n }\n return React.createElement(\n 'div',\n { className: classnames(prefixCls, className), style: style, role: 'alert' },\n imgContent,\n title ? React.createElement(\n 'div',\n { className: prefixCls + '-title' },\n title\n ) : null,\n message ? React.createElement(\n 'div',\n { className: prefixCls + '-message' },\n message\n ) : null,\n buttonText ? React.createElement(\n 'div',\n { className: prefixCls + '-button' },\n React.createElement(\n Button,\n { type: buttonType, onClick: onButtonClick },\n buttonText\n )\n ) : null\n );\n }\n }]);\n\n return Result;\n}(React.Component);\n\nexport default Result;\n\nResult.defaultProps = {\n prefixCls: 'am-result',\n buttonType: '',\n onButtonClick: function onButtonClick() {}\n};","function noop() {}\nexport var defaultProps = {\n prefixCls: 'am-search',\n placeholder: '',\n onSubmit: noop,\n onChange: noop,\n onFocus: noop,\n onBlur: noop,\n onClear: noop,\n showCancelButton: false,\n disabled: false\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport TouchFeedback from 'rmc-feedback';\nimport getDataAttr from '../_util/getDataAttr';\nimport { getComponentLocale } from '../_util/getLocale';\nimport { defaultProps } from './PropsType';\nfunction onNextFrame(cb) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(cb);\n }\n return window.setTimeout(cb, 1);\n}\nfunction clearNextFrameAction(nextFrameId) {\n if (window.cancelAnimationFrame) {\n window.cancelAnimationFrame(nextFrameId);\n } else {\n window.clearTimeout(nextFrameId);\n }\n}\n\nvar SearchBar = function (_React$Component) {\n _inherits(SearchBar, _React$Component);\n\n function SearchBar(props) {\n _classCallCheck(this, SearchBar);\n\n var _this = _possibleConstructorReturn(this, (SearchBar.__proto__ || Object.getPrototypeOf(SearchBar)).call(this, props));\n\n _this.onSubmit = function (e) {\n e.preventDefault();\n if (_this.props.onSubmit) {\n _this.props.onSubmit(_this.state.value || '');\n }\n if (_this.inputRef) {\n _this.inputRef.blur();\n }\n };\n _this.onChange = function (e) {\n if (!_this.state.focus) {\n _this.setState({\n focus: true\n });\n }\n var value = e.target.value;\n if (!('value' in _this.props)) {\n _this.setState({ value: value });\n }\n if (_this.props.onChange) {\n _this.props.onChange(value);\n }\n };\n _this.onFocus = function () {\n _this.setState({\n focus: true\n });\n _this.firstFocus = true;\n if (_this.props.onFocus) {\n _this.props.onFocus();\n }\n };\n _this.onBlur = function () {\n _this.onBlurTimeout = onNextFrame(function () {\n if (!_this.blurFromOnClear) {\n if (document.activeElement !== _this.inputRef) {\n _this.setState({\n focus: false\n });\n }\n }\n _this.blurFromOnClear = false;\n });\n if (_this.props.onBlur) {\n // fix autoFocus item blur with flash\n setTimeout(function () {\n // fix ios12 wechat browser click failure after input\n if (document.body) {\n document.body.scrollTop = document.body.scrollTop;\n }\n }, 100);\n _this.props.onBlur();\n }\n };\n _this.onClear = function () {\n _this.doClear();\n };\n _this.doClear = function () {\n var blurFromOnClear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _this.blurFromOnClear = blurFromOnClear;\n if (!('value' in _this.props)) {\n _this.setState({ value: '' });\n }\n if (_this.props.onClear) {\n _this.props.onClear('');\n }\n if (_this.props.onChange) {\n _this.props.onChange('');\n }\n if (blurFromOnClear) {\n _this.focus();\n }\n };\n _this.onCancel = function () {\n if (_this.props.onCancel) {\n _this.props.onCancel(_this.state.value || '');\n } else {\n _this.doClear(false);\n }\n };\n _this.focus = function () {\n if (_this.inputRef) {\n _this.inputRef.focus();\n }\n };\n var value = void 0;\n if ('value' in props) {\n value = props.value || '';\n } else if ('defaultValue' in props) {\n value = props.defaultValue;\n } else {\n value = '';\n }\n _this.state = {\n value: value,\n focus: false\n };\n return _this;\n }\n\n _createClass(SearchBar, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.rightBtnRef) {\n var initBtn = window.getComputedStyle(this.rightBtnRef);\n this.rightBtnInitMarginleft = initBtn.marginLeft;\n }\n this.componentDidUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.syntheticPhRef) {\n if (this.inputContainerRef && this.inputContainerRef.className.indexOf(this.props.prefixCls + '-start') > -1) {\n // 检测是否包含名为 ${this.props.prefixCls}-start 样式,生成动画\n // offsetWidth 某些时候是向上取整,某些时候是向下取整,不能用\n if (this.syntheticPhContainerRef) {\n var realWidth = this.syntheticPhContainerRef.getBoundingClientRect().width; // 包含小数\n this.syntheticPhRef.style.width = Math.ceil(realWidth) + 'px';\n }\n if (!this.props.showCancelButton && this.rightBtnRef) {\n this.rightBtnRef.style.marginRight = '0';\n }\n } else {\n this.syntheticPhRef.style.width = '100%';\n if (!this.props.showCancelButton && this.rightBtnRef) {\n this.rightBtnRef.style.marginRight = '-' + (this.rightBtnRef.offsetWidth + (this.rightBtnInitMarginleft != null ? parseInt(this.rightBtnInitMarginleft, 10) : 0)) + 'px';\n }\n }\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps && nextProps.value !== this.state.value) {\n this.setState({\n value: nextProps.value\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.onBlurTimeout) {\n clearNextFrameAction(this.onBlurTimeout);\n this.onBlurTimeout = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames3,\n _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n showCancelButton = _props.showCancelButton,\n disabled = _props.disabled,\n placeholder = _props.placeholder,\n className = _props.className,\n style = _props.style,\n maxLength = _props.maxLength;\n // tslint:disable-next-line:variable-name\n\n var _locale = getComponentLocale(this.props, this.context, 'SearchBar', function () {\n return require('./locale/zh_CN');\n });\n var cancelText = _locale.cancelText;\n var _state = this.state,\n value = _state.value,\n focus = _state.focus;\n\n var wrapCls = classnames(prefixCls, className, _defineProperty({}, prefixCls + '-start', !!(focus || value && value.length > 0)));\n var clearCls = classnames(prefixCls + '-clear', _defineProperty({}, prefixCls + '-clear-show', !!(focus && value && value.length > 0)));\n var cancelCls = classnames(prefixCls + '-cancel', (_classnames3 = {}, _defineProperty(_classnames3, prefixCls + '-cancel-show', !!(showCancelButton || focus || value && value.length > 0)), _defineProperty(_classnames3, prefixCls + '-cancel-anim', this.firstFocus), _classnames3));\n return React.createElement(\n 'form',\n { onSubmit: this.onSubmit, className: wrapCls, style: style, ref: function ref(el) {\n return _this2.inputContainerRef = el;\n }, action: '#' },\n React.createElement(\n 'div',\n { className: prefixCls + '-input' },\n React.createElement(\n 'div',\n { className: prefixCls + '-synthetic-ph', ref: function ref(el) {\n return _this2.syntheticPhRef = el;\n } },\n React.createElement(\n 'span',\n { className: prefixCls + '-synthetic-ph-container', ref: function ref(el) {\n return _this2.syntheticPhContainerRef = el;\n } },\n React.createElement('i', { className: prefixCls + '-synthetic-ph-icon' }),\n React.createElement(\n 'span',\n { className: prefixCls + '-synthetic-ph-placeholder'\n // tslint:disable-next-line:jsx-no-multiline-js\n , style: {\n visibility: placeholder && !value ? 'visible' : 'hidden'\n } },\n placeholder\n )\n )\n ),\n React.createElement('input', _extends({ type: 'search', className: prefixCls + '-value', value: value, disabled: disabled, placeholder: placeholder, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, ref: function ref(el) {\n return _this2.inputRef = el;\n }, maxLength: maxLength }, getDataAttr(this.props))),\n React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-clear-active' },\n React.createElement('a', { onClick: this.onClear, className: clearCls })\n )\n ),\n React.createElement(\n 'div',\n { className: cancelCls, onClick: this.onCancel, ref: function ref(el) {\n return _this2.rightBtnRef = el;\n } },\n this.props.cancelText || cancelText\n )\n );\n }\n }]);\n\n return SearchBar;\n}(React.Component);\n\nexport default SearchBar;\n\nSearchBar.defaultProps = defaultProps;\nSearchBar.contextTypes = {\n antLocale: PropTypes.object\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\n\nvar SegmentedControl = function (_React$Component) {\n _inherits(SegmentedControl, _React$Component);\n\n function SegmentedControl(props) {\n _classCallCheck(this, SegmentedControl);\n\n var _this = _possibleConstructorReturn(this, (SegmentedControl.__proto__ || Object.getPrototypeOf(SegmentedControl)).call(this, props));\n\n _this.state = {\n selectedIndex: props.selectedIndex\n };\n return _this;\n }\n\n _createClass(SegmentedControl, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.selectedIndex !== this.state.selectedIndex) {\n this.setState({\n selectedIndex: nextProps.selectedIndex\n });\n }\n }\n }, {\n key: 'onClick',\n value: function onClick(e, index, value) {\n var _props = this.props,\n disabled = _props.disabled,\n onChange = _props.onChange,\n onValueChange = _props.onValueChange;\n\n if (!disabled && this.state.selectedIndex !== index) {\n // just do a mock so that the api to be the same as react-native\n e.nativeEvent = e.nativeEvent ? e.nativeEvent : {};\n e.nativeEvent.selectedSegmentIndex = index;\n e.nativeEvent.value = value;\n if (onChange) {\n onChange(e);\n }\n if (onValueChange) {\n onValueChange(value);\n }\n this.setState({\n selectedIndex: index\n });\n }\n }\n }, {\n key: 'renderSegmentItem',\n value: function renderSegmentItem(idx, value, selected) {\n var _this2 = this;\n\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n disabled = _props2.disabled,\n tintColor = _props2.tintColor;\n\n var itemCls = classnames(prefixCls + '-item', _defineProperty({}, prefixCls + '-item-selected', selected));\n var itemStyle = {\n color: selected ? '#fff' : tintColor,\n backgroundColor: selected ? tintColor : 'transparent',\n borderColor: tintColor\n };\n var activeInnerStyle = tintColor ? {\n backgroundColor: tintColor\n } : {};\n return React.createElement(\n TouchFeedback,\n { key: idx, disabled: disabled, activeClassName: prefixCls + '-item-active' },\n React.createElement(\n 'div',\n { className: itemCls, style: itemStyle, role: 'tab', 'aria-selected': selected && !disabled, 'aria-disabled': disabled, onClick: disabled ? undefined : function (e) {\n return _this2.onClick(e, idx, value);\n } },\n React.createElement('div', { className: prefixCls + '-item-inner', style: activeInnerStyle }),\n value\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props3 = this.props,\n className = _props3.className,\n prefixCls = _props3.prefixCls,\n style = _props3.style,\n disabled = _props3.disabled,\n _props3$values = _props3.values,\n values = _props3$values === undefined ? [] : _props3$values;\n\n var wrapCls = classnames(className, prefixCls, _defineProperty({}, prefixCls + '-disabled', disabled));\n return React.createElement(\n 'div',\n { className: wrapCls, style: style, role: 'tablist' },\n values.map(function (value, idx) {\n return (\n // tslint:disable-next-line:jsx-no-multiline-js\n _this3.renderSegmentItem(idx, value, idx === _this3.state.selectedIndex)\n );\n })\n );\n }\n }]);\n\n return SegmentedControl;\n}(React.Component);\n\nexport default SegmentedControl;\n\nSegmentedControl.defaultProps = {\n prefixCls: 'am-segment',\n selectedIndex: 0,\n disabled: false,\n values: [],\n onChange: function onChange() {},\n onValueChange: function onValueChange() {},\n\n style: {},\n tintColor: ''\n};","import _extends from 'babel-runtime/helpers/extends';\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nvar Track = function Track(props) {\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n offset = props.offset,\n length = props.length,\n style = props.style;\n\n\n var positonStyle = vertical ? {\n bottom: offset + '%',\n height: length + '%'\n } : {\n left: offset + '%',\n width: length + '%'\n };\n\n var elStyle = _extends({\n visibility: included ? 'visible' : 'hidden'\n }, style, positonStyle);\n return React.createElement('div', { className: className, style: elStyle });\n};\n\nexport default Track;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from 'warning';\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat);\n if (dots) {\n for (var i = min; i <= max; i = i + step) {\n if (points.indexOf(i) >= 0) continue;\n points.push(i);\n }\n }\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = Math.abs(point - min) / range * 100 + '%';\n\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _extends({ bottom: offset }, dotStyle) : _extends({ left: offset }, dotStyle);\n if (isActived) {\n style = _extends({}, style, activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-dot', true), _defineProperty(_classNames, prefixCls + '-dot-active', isActived), _classNames));\n\n return React.createElement('span', { className: pointClassName, style: style, key: point });\n });\n\n return React.createElement(\n 'div',\n { className: prefixCls + '-step' },\n elements\n );\n};\n\nexport default Steps;","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min;\n\n var marksKeys = Object.keys(marks);\n var marksCount = marksKeys.length;\n var unit = marksCount > 1 ? 100 / (marksCount - 1) : 100;\n var markWidth = unit * 0.9;\n\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, className + '-text', true), _defineProperty(_classNames, className + '-text-active', isActive), _classNames));\n\n var bottomStyle = {\n marginBottom: '-50%',\n bottom: (point - min) / range * 100 + '%'\n };\n\n var leftStyle = {\n width: markWidth + '%',\n marginLeft: -markWidth / 2 + '%',\n left: (point - min) / range * 100 + '%'\n };\n\n var style = vertical ? bottomStyle : leftStyle;\n\n var markPoint = marks[point];\n var markPointIsObject = (typeof markPoint === 'undefined' ? 'undefined' : _typeof(markPoint)) === 'object' && !React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n var markStyle = markPointIsObject ? _extends({}, style, markPoint.style) : style;\n return React.createElement(\n 'span',\n {\n className: markClassName,\n style: markStyle,\n key: point\n },\n markLabel\n );\n });\n\n return React.createElement(\n 'div',\n { className: className },\n elements\n );\n};\n\nexport default Marks;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Handle = function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n function Handle() {\n _classCallCheck(this, Handle);\n\n return _possibleConstructorReturn(this, (Handle.__proto__ || Object.getPrototypeOf(Handle)).apply(this, arguments));\n }\n\n _createClass(Handle, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n vertical = _props.vertical,\n offset = _props.offset,\n style = _props.style,\n disabled = _props.disabled,\n min = _props.min,\n max = _props.max,\n value = _props.value,\n restProps = _objectWithoutProperties(_props, ['className', 'vertical', 'offset', 'style', 'disabled', 'min', 'max', 'value']);\n\n var postionStyle = vertical ? { bottom: offset + '%' } : { left: offset + '%' };\n var elStyle = _extends({}, style, postionStyle);\n var ariaProps = {};\n if (value !== undefined) {\n ariaProps = _extends({}, ariaProps, {\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': !!disabled\n });\n }\n return React.createElement('div', _extends({\n role: 'slider'\n }, ariaProps, restProps, {\n className: className,\n style: elStyle\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport default Handle;\n\n\nHandle.propTypes = {\n className: PropTypes.string,\n vertical: PropTypes.bool,\n offset: PropTypes.number,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.number\n};","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport { findDOMNode } from 'react-dom';\n\nexport function isEventFromHandle(e, handles) {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n}\n\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n\n return value < min || value > max;\n}\n\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\n\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min;\n\n var points = Object.keys(marks).map(parseFloat);\n if (step !== null) {\n var closestStep = Math.round((val - min) / step) * step + min;\n points.push(closestStep);\n }\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\n\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n return precision;\n}\n\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\n\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\n\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : coords.left + coords.width * 0.5;\n}\n\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n if (val >= max) {\n return max;\n }\n return val;\n}\n\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n\n var closestPoint = getClosestPoint(val, props);\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\n\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _get from 'babel-runtime/helpers/get';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n function ComponentEnhancer(props) {\n _classCallCheck(this, ComponentEnhancer);\n\n var _this = _possibleConstructorReturn(this, (ComponentEnhancer.__proto__ || Object.getPrototypeOf(ComponentEnhancer)).call(this, props));\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n if (!utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n _this.onStart(position);\n _this.addDocumentMouseEvents();\n utils.pauseEvent(e);\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n if (!utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n _this.onStart(position);\n _this.addDocumentTouchEvents();\n utils.pauseEvent(e);\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n return;\n }\n var position = utils.getMousePosition(_this.props.vertical, e);\n _this.onMove(e, position - _this.dragOffset);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n _this.onMove(e, position - _this.dragOffset);\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var step = props.step,\n max = props.max,\n min = props.min;\n\n warning(step && Math.floor(step) === step ? (max - min) % step === 0 : true, 'Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)', max - min, step);\n }\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (_get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'componentWillUnmount', this)) _get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'componentWillUnmount', this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: 'addDocumentTouchEvents',\n value: function addDocumentTouchEvents() {\n this.onTouchMoveListener = addEventListener(document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(document, 'touchend', this.onEnd);\n }\n }, {\n key: 'addDocumentMouseEvents',\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.onEnd);\n }\n }, {\n key: 'removeDocumentEvents',\n value: function removeDocumentEvents() {\n \n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n \n }\n }, {\n key: 'getSliderStart',\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var rect = slider.getBoundingClientRect();\n\n return this.props.vertical ? rect.top : rect.left;\n }\n }, {\n key: 'getSliderLength',\n value: function getSliderLength() {\n var slider = this.sliderRef;\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: 'calcValue',\n value: function calcValue(offset) {\n var _props = this.props,\n vertical = _props.vertical,\n min = _props.min,\n max = _props.max;\n\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: 'calcValueByPos',\n value: function calcValueByPos(position) {\n var pixelOffset = position - this.getSliderStart();\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: 'calcOffset',\n value: function calcOffset(value) {\n var _props2 = this.props,\n min = _props2.min,\n max = _props2.max;\n\n var ratio = (value - min) / (max - min);\n return ratio * 100;\n }\n }, {\n key: 'saveHandle',\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _props3 = this.props,\n prefixCls = _props3.prefixCls,\n className = _props3.className,\n marks = _props3.marks,\n dots = _props3.dots,\n step = _props3.step,\n included = _props3.included,\n disabled = _props3.disabled,\n vertical = _props3.vertical,\n min = _props3.min,\n max = _props3.max,\n children = _props3.children,\n maximumTrackStyle = _props3.maximumTrackStyle,\n style = _props3.style,\n railStyle = _props3.railStyle,\n dotStyle = _props3.dotStyle,\n activeDotStyle = _props3.activeDotStyle;\n\n var _get$call = _get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'render', this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-with-marks', Object.keys(marks).length), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-vertical', vertical), _defineProperty(_classNames, className, className), _classNames));\n return React.createElement(\n 'div',\n {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n style: style\n },\n React.createElement('div', {\n className: prefixCls + '-rail',\n style: _extends({}, maximumTrackStyle, railStyle)\n }),\n tracks,\n React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }),\n handles,\n React.createElement(Marks, {\n className: prefixCls + '-mark',\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min\n }),\n children\n );\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _class.displayName = 'ComponentEnhancer(' + Component.displayName + ')', _class.propTypes = _extends({}, Component.propTypes, {\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n marks: PropTypes.object,\n included: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n children: PropTypes.any,\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n onAfterChange: PropTypes.func,\n handle: PropTypes.func,\n dots: PropTypes.bool,\n vertical: PropTypes.bool,\n style: PropTypes.object,\n minimumTrackStyle: PropTypes.object, maximumTrackStyle: PropTypes.object, handleStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n railStyle: PropTypes.object,\n dotStyle: PropTypes.object,\n activeDotStyle: PropTypes.object\n }), _class.defaultProps = _extends({}, Component.defaultProps, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(_ref) {\n var index = _ref.index,\n restProps = _objectWithoutProperties(_ref, ['index']);\n\n delete restProps.dragging;\n return React.createElement(Handle, _extends({}, restProps, { key: index }));\n },\n\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _temp;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider(props) {\n _classCallCheck(this, Slider);\n\n var _this = _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));\n\n _this.onEnd = function () {\n _this.setState({ dragging: false });\n _this.removeDocumentEvents();\n _this.props.onAfterChange(_this.getValue());\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n if (process.env.NODE_ENV !== 'production') {\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecate, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecate, please use railStyle instead.');\n }\n return _this;\n }\n\n _createClass(Slider, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;\n\n var prevValue = this.state.value;\n var value = nextProps.value !== undefined ? nextProps.value : prevValue;\n var nextValue = this.trimAlignValue(value, nextProps);\n if (nextValue === prevValue) return;\n\n this.setState({ value: nextValue });\n if (utils.isValueOutOfRange(value, nextProps)) {\n this.props.onChange(nextValue);\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n if (isNotControlled) {\n this.setState(state);\n }\n\n var changedValue = state.value;\n props.onChange(changedValue);\n }\n }, {\n key: 'onStart',\n value: function onStart(position) {\n this.setState({ dragging: true });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n if (value === prevValue) return;\n\n this.onChange({ value: value });\n }\n }, {\n key: 'onMove',\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var state = this.state;\n var value = this.calcValueByPos(position);\n var oldValue = state.value;\n if (value === oldValue) return;\n\n this.onChange({ value: value });\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: 'getLowerBound',\n value: function getLowerBound() {\n return this.props.min;\n }\n }, {\n key: 'getUpperBound',\n value: function getUpperBound() {\n return this.state.value;\n }\n }, {\n key: 'trimAlignValue',\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var mergedProps = _extends({}, this.props, nextProps);\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n vertical = _props.vertical,\n included = _props.included,\n disabled = _props.disabled,\n minimumTrackStyle = _props.minimumTrackStyle,\n trackStyle = _props.trackStyle,\n handleStyle = _props.handleStyle,\n min = _props.min,\n max = _props.max,\n handleGenerator = _props.handle;\n var _state = this.state,\n value = _state.value,\n dragging = _state.dragging;\n\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: prefixCls + '-handle',\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n\n var _trackStyle = trackStyle[0] || trackStyle;\n var track = React.createElement(Track, {\n className: prefixCls + '-track',\n vertical: vertical,\n included: included,\n offset: 0,\n length: offset,\n style: _extends({}, minimumTrackStyle, _trackStyle)\n });\n\n return { tracks: track, handles: handle };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nSlider.propTypes = {\n defaultValue: PropTypes.number,\n value: PropTypes.number,\n disabled: PropTypes.bool\n};\n\n\nexport default createSlider(Slider);","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport RcSlider from 'rc-slider/es/Slider';\nimport * as React from 'react';\n\nvar Slider = function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider() {\n _classCallCheck(this, Slider);\n\n return _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).apply(this, arguments));\n }\n\n _createClass(Slider, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n 'div',\n { className: this.props.prefixCls + '-wrapper' },\n React.createElement(RcSlider, this.props)\n );\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default Slider;\n\nSlider.defaultProps = {\n prefixCls: 'am-slider'\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Range = function (_React$Component) {\n _inherits(Range, _React$Component);\n\n function Range(props) {\n _classCallCheck(this, Range);\n\n var _this = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, props));\n\n _this.onEnd = function () {\n _this.setState({ handle: null });\n _this.removeDocumentEvents();\n _this.props.onAfterChange(_this.getValue());\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n\n var initialValue = Array.apply(null, Array(count + 1)).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v) {\n return _this.trimAlignValue(v);\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n\n _createClass(Range, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;\n if (this.props.min === nextProps.min && this.props.max === nextProps.max && shallowEqual(this.props.value, nextProps.value)) {\n return;\n }\n var bounds = this.state.bounds;\n\n var value = nextProps.value || bounds;\n var nextBounds = value.map(function (v) {\n return _this2.trimAlignValue(v, nextProps);\n });\n if (nextBounds.length === bounds.length && nextBounds.every(function (v, i) {\n return v === bounds[i];\n })) return;\n\n this.setState({ bounds: nextBounds });\n if (bounds.some(function (v) {\n return utils.isValueOutOfRange(v, nextProps);\n })) {\n this.props.onChange(nextBounds);\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n if (isNotControlled) {\n this.setState(state);\n } else if (state.handle !== undefined) {\n this.setState({ handle: state.handle });\n }\n\n var data = _extends({}, this.state, state);\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: 'onStart',\n value: function onStart(position) {\n var props = this.props;\n var state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n var closestBound = this.getClosestBound(value);\n var boundNeedMoving = this.getBoundNeedMoving(value, closestBound);\n\n this.setState({\n handle: boundNeedMoving,\n recent: boundNeedMoving\n });\n\n var prevValue = bounds[boundNeedMoving];\n if (value === prevValue) return;\n\n var nextBounds = [].concat(_toConsumableArray(state.bounds));\n nextBounds[boundNeedMoving] = value;\n this.onChange({ bounds: nextBounds });\n }\n }, {\n key: 'onMove',\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var props = this.props;\n var state = this.state;\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n\n var nextBounds = [].concat(_toConsumableArray(state.bounds));\n nextBounds[state.handle] = value;\n var nextHandle = state.handle;\n if (props.pushable !== false) {\n var originalValue = state.bounds[nextHandle];\n this.pushSurroundingHandles(nextBounds, nextHandle, originalValue);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n this.onChange({\n handle: nextHandle,\n bounds: nextBounds\n });\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: 'getClosestBound',\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n\n var closestBound = 0;\n for (var i = 1; i < bounds.length - 1; ++i) {\n if (value > bounds[i]) {\n closestBound = i;\n }\n }\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound = closestBound + 1;\n }\n return closestBound;\n }\n }, {\n key: 'getBoundNeedMoving',\n value: function getBoundNeedMoving(value, closestBound) {\n var _state = this.state,\n bounds = _state.bounds,\n recent = _state.recent;\n\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n if (isAtTheSamePoint) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n return boundNeedMoving;\n }\n }, {\n key: 'getLowerBound',\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: 'getUpperBound',\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n\n return bounds[bounds.length - 1];\n }\n\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: 'getPoints',\n value: function getPoints() {\n var _props = this.props,\n marks = _props.marks,\n step = _props.step,\n min = _props.min,\n max = _props.max;\n\n var cache = this._getPointsCache;\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _extends({}, marks);\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this._getPointsCache = { marks: marks, step: step, points: points };\n }\n return this._getPointsCache.points;\n }\n }, {\n key: 'pushSurroundingHandles',\n value: function pushSurroundingHandles(bounds, handle, originalValue) {\n var threshold = this.props.pushable;\n\n var value = bounds[handle];\n\n var direction = 0;\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n bounds[handle] = originalValue;\n }\n }\n }, {\n key: 'pushHandle',\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n bounds[handle] = originalValue;\n return false;\n }\n currentValue = bounds[handle];\n }\n // the handle was pushed enough to create the needed `amount` gap\n return true;\n }\n }, {\n key: 'pushHandleOnePoint',\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var threshold = this.props.pushable;\n\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n }\n // push the handle\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: 'trimAlignValue',\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var mergedProps = _extends({}, this.props, nextProps);\n var valInRange = utils.ensureValueInRange(v, mergedProps);\n var valNotConflict = this.ensureValueNotConflict(valInRange, mergedProps);\n return utils.ensureValuePrecision(valNotConflict, mergedProps);\n }\n }, {\n key: 'ensureValueNotConflict',\n value: function ensureValueNotConflict(val, _ref) {\n var allowCross = _ref.allowCross;\n\n var state = this.state || {};\n var handle = state.handle,\n bounds = state.bounds;\n /* eslint-disable eqeqeq */\n\n if (!allowCross && handle != null) {\n if (handle > 0 && val <= bounds[handle - 1]) {\n return bounds[handle - 1];\n }\n if (handle < bounds.length - 1 && val >= bounds[handle + 1]) {\n return bounds[handle + 1];\n }\n }\n /* eslint-enable eqeqeq */\n return val;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _state2 = this.state,\n handle = _state2.handle,\n bounds = _state2.bounds;\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n vertical = _props2.vertical,\n included = _props2.included,\n disabled = _props2.disabled,\n min = _props2.min,\n max = _props2.max,\n handleGenerator = _props2.handle,\n trackStyle = _props2.trackStyle,\n handleStyle = _props2.handleStyle;\n\n\n var offsets = bounds.map(function (v) {\n return _this3.calcOffset(v);\n });\n\n var handleClassName = prefixCls + '-handle';\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, handleClassName + '-' + (i + 1), true), _classNames)),\n vertical: vertical,\n offset: offsets[i],\n value: v,\n dragging: handle === i,\n index: i,\n min: min,\n max: max,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this3.saveHandle(i, h);\n }\n });\n });\n\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-track', true), _defineProperty(_classNames2, prefixCls + '-track-' + i, true), _classNames2));\n return React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n\n return { tracks: tracks, handles: handles };\n }\n }]);\n\n return Range;\n}(React.Component);\n\nRange.displayName = 'Range';\nRange.propTypes = {\n defaultValue: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n pushable: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n allowCross: PropTypes.bool,\n disabled: PropTypes.bool\n};\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false\n};\n\n\nexport default createSlider(Range);","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport RcRange from 'rc-slider/es/Range';\nimport * as React from 'react';\n\nvar Range = function (_React$Component) {\n _inherits(Range, _React$Component);\n\n function Range() {\n _classCallCheck(this, Range);\n\n return _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).apply(this, arguments));\n }\n\n _createClass(Range, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n 'div',\n { className: this.props.prefixCls + '-wrapper' },\n React.createElement(RcRange, this.props)\n );\n }\n }]);\n\n return Range;\n}(React.Component);\n\nexport default Range;\n\nRange.defaultProps = {\n prefixCls: 'am-slider'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nfunction noop() {}\nfunction defaultParser(input) {\n return input.replace(/[^\\w\\.-]+/g, '');\n}\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\nvar SPEED = 200;\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\nvar DELAY = 600;\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar BaseComponent = function (_React$Component) {\n _inherits(BaseComponent, _React$Component);\n\n function BaseComponent(props) {\n _classCallCheck(this, BaseComponent);\n\n var _this = _possibleConstructorReturn(this, (BaseComponent.__proto__ || Object.getPrototypeOf(BaseComponent)).call(this, props));\n\n _this.onChange = function (e) {\n var _this$props = _this.props,\n parser = _this$props.parser,\n onChange = _this$props.onChange;\n\n var input = parser && parser(_this.getValueFromEvent(e).trim());\n _this.setState({ inputValue: input });\n onChange && onChange(_this.toNumberWhenUserInput(input)); // valid number or invalid string\n };\n _this.onFocus = function () {\n _this.setState({\n focused: true\n });\n var onFocus = _this.props.onFocus;\n\n onFocus && onFocus.apply(undefined, arguments);\n };\n _this.onBlur = function (e) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this.setState({\n focused: false\n });\n var value = _this.getCurrentValidValue(_this.state.inputValue);\n e.persist(); // fix https://github.com/react-component/input-number/issues/51\n _this.setValue(value, function () {\n var onBlur = _this.props.onBlur;\n\n onBlur && onBlur.apply(undefined, [e].concat(args));\n });\n };\n _this.getCurrentValidValue = function (value) {\n var val = value;\n if (val === '') {\n val = '';\n } else if (!_this.isNotCompleteNumber(val)) {\n val = _this.getValidValue(val);\n } else {\n val = _this.state.value;\n }\n return _this.toNumber(val);\n };\n _this.getValidValue = function (value) {\n var val = parseFloat(value);\n // https://github.com/ant-design/ant-design/issues/7358\n if (isNaN(val)) {\n return value;\n }\n if (val < _this.props.min) {\n val = _this.props.min;\n }\n if (val > _this.props.max) {\n val = _this.props.max;\n }\n return val;\n };\n _this.setValue = function (v, callback) {\n // trigger onChange\n var newValue = _this.isNotCompleteNumber(parseFloat(v)) ? undefined : parseFloat(v);\n var changed = newValue !== _this.state.value || '' + newValue !== '' + _this.state.inputValue; // https://github.com/ant-design/ant-design/issues/7363\n if (!('value' in _this.props)) {\n _this.setState({\n value: newValue,\n inputValue: _this.toPrecisionAsStep(v)\n }, callback);\n } else {\n // always set input value same as value\n _this.setState({\n inputValue: _this.toPrecisionAsStep(_this.state.value)\n }, callback);\n }\n if (changed) {\n var onChange = _this.props.onChange;\n\n onChange && onChange(newValue);\n }\n };\n _this.getPrecision = function (value) {\n if ('precision' in _this.props) {\n return _this.props.precision;\n }\n var valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n var precision = 0;\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n };\n // step={1.0} value={1.51}\n // press +\n // then value should be 2.51, rather than 2.5\n // if this.props.precision is undefined\n // https://github.com/react-component/input-number/issues/39\n _this.getMaxPrecision = function (currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if ('precision' in _this.props) {\n return _this.props.precision;\n }\n var step = _this.props.step;\n\n var ratioPrecision = _this.getPrecision(ratio);\n var stepPrecision = _this.getPrecision(step);\n var currentValuePrecision = _this.getPrecision(currentValue);\n if (!currentValue) {\n return ratioPrecision + stepPrecision;\n }\n return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n };\n _this.getPrecisionFactor = function (currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var precision = _this.getMaxPrecision(currentValue, ratio);\n return Math.pow(10, precision);\n };\n _this.toPrecisionAsStep = function (num) {\n if (_this.isNotCompleteNumber(num) || num === '') {\n return num;\n }\n var precision = Math.abs(_this.getMaxPrecision(num));\n if (!isNaN(precision)) {\n return Number(num).toFixed(precision);\n }\n return num.toString();\n };\n // '1.' '1x' 'xx' '' => are not complete numbers\n _this.isNotCompleteNumber = function (num) {\n return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n };\n _this.toNumber = function (num) {\n if (_this.isNotCompleteNumber(num)) {\n return num;\n }\n if ('precision' in _this.props) {\n return Number(Number(num).toFixed(_this.props.precision));\n }\n return Number(num);\n };\n // '1.0' '1.00' => may be a inputing number\n _this.toNumberWhenUserInput = function (num) {\n // num.length > 16 => prevent input large number will became Infinity\n if ((/\\.\\d*0$/.test(num) || num.length > 16) && _this.state.focused) {\n return num;\n }\n return _this.toNumber(num);\n };\n _this.stepCompute = function (type, val, rat) {\n var _this$props2 = _this.props,\n step = _this$props2.step,\n min = _this$props2.min;\n\n var precisionFactor = _this.getPrecisionFactor(val, rat);\n var precision = Math.abs(_this.getMaxPrecision(val, rat));\n var result = void 0;\n var direct = type === 'up' ? 1 : -1;\n if (typeof val === 'number') {\n result = ((precisionFactor * val + direct * precisionFactor * +step * rat) / precisionFactor).toFixed(precision);\n } else {\n result = min === -Infinity ? direct * +step : min;\n }\n return _this.toNumber(result);\n };\n _this.step = function (type, e) {\n var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (e) {\n e.preventDefault();\n }\n var props = _this.props;\n if (props.disabled) {\n return false;\n }\n var value = _this.getCurrentValidValue(_this.state.inputValue) || 0;\n if (_this.isNotCompleteNumber(value)) {\n return false;\n }\n var val = _this.stepCompute(type, value, ratio);\n var outOfRange = val > props.max || val < props.min;\n if (val > props.max) {\n val = props.max;\n } else if (val < props.min) {\n val = props.min;\n }\n _this.setValue(val);\n _this.setState({\n focused: true\n });\n return !outOfRange;\n };\n _this.stop = function () {\n if (_this.autoStepTimer) {\n clearTimeout(_this.autoStepTimer);\n }\n };\n _this.action = function (type, e, ratio, recursive) {\n if (e.persist) {\n e.persist();\n }\n _this.stop();\n if (_this.step(type, e, ratio)) {\n _this.autoStepTimer = setTimeout(function () {\n _this.action(type, e, ratio, true);\n }, recursive ? SPEED : DELAY);\n }\n };\n _this.down = function (e, ratio, recursive) {\n _this.action('down', e, ratio, recursive);\n };\n _this.up = function (e, ratio, recursive) {\n _this.action('up', e, ratio, recursive);\n };\n var value = void 0;\n if ('value' in props) {\n value = props.value;\n } else {\n value = props.defaultValue;\n }\n value = _this.toNumber(value);\n _this.state = {\n inputValue: _this.toPrecisionAsStep(value),\n value: value,\n focused: props.autoFocus\n };\n return _this;\n }\n\n _createClass(BaseComponent, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n var value = this.state.focused ? nextProps.value : this.getValidValue(nextProps.value);\n this.setState({\n value: value,\n inputValue: value\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stop();\n }\n }]);\n\n return BaseComponent;\n}(React.Component);\n\nexport default BaseComponent;\n\nBaseComponent.defaultProps = {\n max: MAX_SAFE_INTEGER,\n min: -MAX_SAFE_INTEGER,\n step: 1,\n style: {},\n onChange: noop,\n onFocus: noop,\n onBlur: noop,\n parser: defaultParser\n};\n;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React, { Component } from 'react';\nimport Touchable from 'rmc-feedback';\n\nvar InputHandler = function (_Component) {\n _inherits(InputHandler, _Component);\n\n function InputHandler() {\n _classCallCheck(this, InputHandler);\n\n return _possibleConstructorReturn(this, (InputHandler.__proto__ || Object.getPrototypeOf(InputHandler)).apply(this, arguments));\n }\n\n _createClass(InputHandler, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n disabled = _a.disabled,\n otherProps = __rest(_a, [\"prefixCls\", \"disabled\"]);\n return React.createElement(\n Touchable,\n { disabled: disabled, activeClassName: prefixCls + '-handler-active' },\n React.createElement('span', otherProps)\n );\n }\n }]);\n\n return InputHandler;\n}(Component);\n\nexport default InputHandler;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport classNames from 'classnames';\nimport BaseComponent from './base';\nimport InputHandler from './InputHandler';\nfunction noop() {}\nfunction preventDefault(e) {\n e.preventDefault();\n}\n\nvar InputNumber = function (_BaseComponent) {\n _inherits(InputNumber, _BaseComponent);\n\n function InputNumber() {\n _classCallCheck(this, InputNumber);\n\n var _this = _possibleConstructorReturn(this, (InputNumber.__proto__ || Object.getPrototypeOf(InputNumber)).apply(this, arguments));\n\n _this.setInput = function (input) {\n _this.input = input;\n };\n return _this;\n }\n\n _createClass(InputNumber, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate() {\n try {\n this.start = this.input.selectionStart;\n this.end = this.input.selectionEnd;\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 }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.focusOnUpDown && this.state.focused) {\n var selectionRange = this.input.setSelectionRange;\n if (selectionRange && typeof selectionRange === 'function' && this.start !== undefined && this.end !== undefined && this.start !== this.end) {\n this.input.setSelectionRange(this.start, this.end);\n } else {\n this.focus();\n }\n }\n }\n }, {\n key: 'getRatio',\n value: function getRatio(e) {\n var ratio = 1;\n if (e.metaKey || e.ctrlKey) {\n ratio = 0.1;\n } else if (e.shiftKey) {\n ratio = 10;\n }\n return ratio;\n }\n }, {\n key: 'getValueFromEvent',\n value: function getValueFromEvent(e) {\n return e.target.value;\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.input.focus();\n }\n }, {\n key: 'formatWrapper',\n value: function formatWrapper(num) {\n if (this.props.formatter) {\n return this.props.formatter(num);\n }\n return num;\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var props = _extends({}, this.props);\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === undefined ? '' : _props$prefixCls,\n disabled = props.disabled,\n readOnly = props.readOnly,\n max = props.max,\n min = props.min;\n\n var classes = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-focused', this.state.focused), _classNames));\n var upDisabledClass = '';\n var downDisabledClass = '';\n var value = this.state.value;\n\n if (value || value === 0) {\n if (!isNaN(value)) {\n var val = Number(value);\n if (val >= max) {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n }\n if (val <= min) {\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n } else {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n }\n var editable = !props.readOnly && !props.disabled;\n // focus state, show input value\n // unfocus state, show valid value\n var inputDisplayValue = void 0;\n if (this.state.focused) {\n inputDisplayValue = this.state.inputValue;\n } else {\n inputDisplayValue = this.toPrecisionAsStep(this.state.value);\n }\n if (inputDisplayValue === undefined || inputDisplayValue === null) {\n inputDisplayValue = '';\n }\n var upEvents = void 0;\n var downEvents = void 0;\n upEvents = {\n onTouchStart: editable && !upDisabledClass ? this.up : noop,\n onTouchEnd: this.stop\n };\n downEvents = {\n onTouchStart: editable && !downDisabledClass ? this.down : noop,\n onTouchEnd: this.stop\n };\n var inputDisplayValueFormat = this.formatWrapper(inputDisplayValue);\n var isUpDisabled = !!upDisabledClass || disabled || readOnly;\n var isDownDisabled = !!downDisabledClass || disabled || readOnly;\n return React.createElement(\n 'div',\n { className: classes, style: props.style },\n React.createElement(\n 'div',\n { className: prefixCls + '-handler-wrap' },\n React.createElement(\n InputHandler,\n _extends({ disabled: isUpDisabled, prefixCls: prefixCls, unselectable: 'unselectable' }, upEvents, { role: 'button', 'aria-label': 'Increase Value', 'aria-disabled': !!isUpDisabled, className: prefixCls + '-handler ' + prefixCls + '-handler-up ' + upDisabledClass }),\n this.props.upHandler || React.createElement('span', { unselectable: 'unselectable', className: prefixCls + '-handler-up-inner', onClick: preventDefault })\n ),\n React.createElement(\n InputHandler,\n _extends({ disabled: isDownDisabled, prefixCls: prefixCls, unselectable: 'unselectable' }, downEvents, { role: 'button', 'aria-label': 'Decrease Value', 'aria-disabled': !!isDownDisabled, className: prefixCls + '-handler ' + prefixCls + '-handler-down ' + downDisabledClass }),\n this.props.downHandler || React.createElement('span', { unselectable: 'unselectable', className: prefixCls + '-handler-down-inner', onClick: preventDefault })\n )\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-input-wrap', role: 'spinbutton', 'aria-valuemin': props.min, 'aria-valuemax': props.max, 'aria-valuenow': value },\n React.createElement('input', { className: prefixCls + '-input', tabIndex: props.tabIndex, autoComplete: 'off', onFocus: this.onFocus, onBlur: this.onBlur, autoFocus: props.autoFocus, readOnly: props.readOnly, disabled: props.disabled, max: props.max, min: props.min, step: props.step, onChange: this.onChange, ref: this.setInput, value: inputDisplayValueFormat })\n )\n );\n }\n }]);\n\n return InputNumber;\n}(BaseComponent);\n\nexport default InputNumber;\n\nInputNumber.defaultProps = _extends({}, BaseComponent.defaultProps, { focusOnUpDown: false, useTouch: false, prefixCls: 'rmc-input-number' });","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport RMCInputNumber from 'rmc-input-number';\nimport Icon from '../icon';\n\nvar Stepper = function (_React$Component) {\n _inherits(Stepper, _React$Component);\n\n function Stepper() {\n _classCallCheck(this, Stepper);\n\n return _possibleConstructorReturn(this, (Stepper.__proto__ || Object.getPrototypeOf(Stepper)).apply(this, arguments));\n }\n\n _createClass(Stepper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _a = this.props,\n className = _a.className,\n showNumber = _a.showNumber,\n restProps = __rest(_a, [\"className\", \"showNumber\"]);\n var stepperClass = classnames(className, _defineProperty({}, 'showNumber', !!showNumber));\n return React.createElement(RMCInputNumber, _extends({ upHandler: React.createElement(Icon, { type: 'plus', size: 'xxs' }), downHandler: React.createElement(Icon, { type: 'minus', size: 'xxs' }) }, restProps, { ref: function ref(el) {\n return _this2.stepperRef = el;\n }, className: stepperClass }));\n }\n }]);\n\n return Stepper;\n}(React.Component);\n\nexport default Stepper;\n\nStepper.defaultProps = {\n prefixCls: 'am-stepper',\n step: 1,\n readOnly: false,\n showNumber: false,\n focusOnUpDown: false\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport RcSteps from 'rmc-steps';\nimport Icon from '../icon';\n\nvar Steps = function (_React$Component) {\n _inherits(Steps, _React$Component);\n\n function Steps() {\n _classCallCheck(this, Steps);\n\n return _possibleConstructorReturn(this, (Steps.__proto__ || Object.getPrototypeOf(Steps)).apply(this, arguments));\n }\n\n _createClass(Steps, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.direction !== 'horizontal') {\n return;\n }\n // set tail's left position based on main's width for each step dynamically.\n this.stepRefs.forEach(function (s) {\n if (s.refs.tail) {\n s.refs.tail.style.left = s.refs.main.offsetWidth / 2 + 'px';\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n this.stepRefs = [];\n var _props = this.props,\n children = _props.children,\n status = _props.status,\n size = _props.size;\n\n var current = this.props.current;\n // flattern the array at first https://github.com/ant-design/ant-design-mobile/issues/934\n var filterChildren = [];\n if (children && children.length) {\n children.forEach(function (item) {\n if (React.isValidElement(item)) {\n filterChildren.push(item);\n }\n });\n }\n var newChildren = React.Children.map(filterChildren, function (item, index) {\n var className = item.props.className;\n if (index < filterChildren.length - 1 && filterChildren[index + 1].props.status === 'error') {\n className = className ? className + ' error-tail' : 'error-tail';\n }\n var icon = item.props.icon;\n if (!icon) {\n if (index < current) {\n // 对应 state: finish\n icon = 'check-circle-o';\n } else if (index > current) {\n // 对应 state: wait\n icon = 'ellipsis';\n className = className ? className + ' ellipsis-item' : 'ellipsis-item';\n }\n if (status === 'error' && index === current || item.props.status === 'error') {\n icon = 'cross-circle-o';\n }\n }\n icon = typeof icon === 'string' ? React.createElement(Icon, { type: icon, size: size === 'small' ? status === 'wait' ? 'xxs' : 'xs' : 'md' }) : icon;\n return React.cloneElement(item, {\n icon: icon,\n className: className,\n ref: function ref(c) {\n return _this2.stepRefs[index] = c;\n }\n });\n });\n return React.createElement(\n RcSteps,\n _extends({ ref: function ref(el) {\n return _this2.stepsRef = el;\n } }, this.props),\n newChildren\n );\n }\n }]);\n\n return Steps;\n}(React.Component);\n\nexport default Steps;\n\nSteps.Step = RcSteps.Step;\nSteps.defaultProps = {\n prefixCls: 'am-steps',\n iconPrefix: 'ant',\n labelPlacement: 'vertical',\n direction: 'vertical',\n current: 0\n};","/* tslint:disable:no-bitwise */\n// http://hammerjs.github.io/api/#directions\nexport var DIRECTION_NONE = 1; // 00001\nexport var DIRECTION_LEFT = 2; // 00010\nexport var DIRECTION_RIGHT = 4; // 00100\nexport var DIRECTION_UP = 8; // 01000\nexport var DIRECTION_DOWN = 16; // 10000\nexport var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; // 00110 6\nexport var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; // 11000 24\nexport var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; // 11110 30\n// http://hammerjs.github.io/recognizer-press/\nexport var PRESS = {\n time: 251\n};\n// http://hammerjs.github.io/recognizer-swipe/\nexport var SWIPE = {\n threshold: 10,\n velocity: 0.3\n};","/* tslint:disable:no-bitwise */\nimport { SWIPE, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN } from './config';\nfunction _calcTriangleDistance(x, y) {\n return Math.sqrt(x * x + y * y);\n}\nfunction _calcAngle(x, y) {\n var radian = Math.atan2(y, x);\n return 180 / (Math.PI / radian);\n}\nexport function now() {\n return Date.now();\n}\nexport function calcMutliFingerStatus(touches) {\n if (touches.length < 2) {\n return;\n }\n var _touches$ = touches[0],\n x1 = _touches$.x,\n y1 = _touches$.y;\n var _touches$2 = touches[1],\n x2 = _touches$2.x,\n y2 = _touches$2.y;\n\n var deltaX = x2 - x1;\n var deltaY = y2 - y1;\n return {\n x: deltaX,\n y: deltaY,\n z: _calcTriangleDistance(deltaX, deltaY),\n angle: _calcAngle(deltaX, deltaY)\n };\n}\nexport function calcMoveStatus(startTouches, touches, time) {\n var _startTouches$ = startTouches[0],\n x1 = _startTouches$.x,\n y1 = _startTouches$.y;\n var _touches$3 = touches[0],\n x2 = _touches$3.x,\n y2 = _touches$3.y;\n\n var deltaX = x2 - x1;\n var deltaY = y2 - y1;\n var deltaZ = _calcTriangleDistance(deltaX, deltaY);\n return {\n x: deltaX,\n y: deltaY,\n z: deltaZ,\n time: time,\n velocity: deltaZ / time,\n angle: _calcAngle(deltaX, deltaY)\n };\n}\nexport function calcRotation(startMutliFingerStatus, mutliFingerStatus) {\n var startAngle = startMutliFingerStatus.angle;\n var angle = mutliFingerStatus.angle;\n\n return angle - startAngle;\n}\nexport function getEventName(prefix, status) {\n return prefix + status[0].toUpperCase() + status.slice(1);\n}\nexport function shouldTriggerSwipe(delta, velocity) {\n return Math.abs(delta) >= SWIPE.threshold && Math.abs(velocity) > SWIPE.velocity;\n}\nexport function shouldTriggerDirection(direction, directionSetting) {\n if (directionSetting & direction) {\n return true;\n }\n return false;\n}\n/**\n * @private\n * get the direction between two points\n * Note: will change next version\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nexport function getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n if (Math.abs(x) >= Math.abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n/**\n * @private\n * get the direction between tow points when touch moving\n * Note: will change next version\n * @param {Object} point1 coordinate point, include x & y attributes\n * @param {Object} point2 coordinate point, include x & y attributes\n * @return {Number} direction\n */\nexport function getMovingDirection(point1, point2) {\n var x1 = point1.x,\n y1 = point1.y;\n var x2 = point2.x,\n y2 = point2.y;\n\n var deltaX = x2 - x1;\n var deltaY = y2 - y1;\n if (deltaX === 0 && deltaY === 0) {\n return DIRECTION_NONE;\n }\n if (Math.abs(deltaX) >= Math.abs(deltaY)) {\n return deltaX < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return deltaY < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\nexport function getDirectionEventName(direction) {\n var name = void 0;\n switch (direction) {\n case DIRECTION_NONE:\n break;\n case DIRECTION_LEFT:\n name = 'left';\n break;\n case DIRECTION_RIGHT:\n name = 'right';\n break;\n case DIRECTION_UP:\n name = 'up';\n break;\n case DIRECTION_DOWN:\n name = 'down';\n break;\n default:\n }\n return name;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:no-console */\nimport React, { Component } from 'react';\nimport { calcRotation, getEventName, now, calcMutliFingerStatus, calcMoveStatus, shouldTriggerSwipe, shouldTriggerDirection, getMovingDirection, getDirectionEventName } from './util';\nimport { PRESS, DIRECTION_ALL, DIRECTION_VERTICAL, DIRECTION_HORIZONTAL } from './config';\n;\n;\nvar directionMap = {\n all: DIRECTION_ALL,\n vertical: DIRECTION_VERTICAL,\n horizontal: DIRECTION_HORIZONTAL\n};\n\nvar Gesture = function (_Component) {\n _inherits(Gesture, _Component);\n\n function Gesture(props) {\n _classCallCheck(this, Gesture);\n\n var _this = _possibleConstructorReturn(this, (Gesture.__proto__ || Object.getPrototypeOf(Gesture)).call(this, props));\n\n _this.state = {};\n _this.triggerEvent = function (name) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var cb = _this.props[name];\n if (typeof cb === 'function') {\n // always give user gesture object as first params first\n cb.apply(undefined, [_this.getGestureState()].concat(args));\n }\n };\n _this.triggerCombineEvent = function (mainEventName, eventStatus) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n _this.triggerEvent.apply(_this, [mainEventName].concat(args));\n _this.triggerSubEvent.apply(_this, [mainEventName, eventStatus].concat(args));\n };\n _this.triggerSubEvent = function (mainEventName, eventStatus) {\n for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (eventStatus) {\n var subEventName = getEventName(mainEventName, eventStatus);\n _this.triggerEvent.apply(_this, [subEventName].concat(args));\n }\n };\n _this.triggerPinchEvent = function (mainEventName, eventStatus) {\n for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n\n var scale = _this.gesture.scale;\n\n if (eventStatus === 'move' && typeof scale === 'number') {\n if (scale > 1) {\n _this.triggerEvent('onPinchOut');\n }\n if (scale < 1) {\n _this.triggerEvent('onPinchIn');\n }\n }\n _this.triggerCombineEvent.apply(_this, [mainEventName, eventStatus].concat(args));\n };\n _this.initPressTimer = function () {\n _this.cleanPressTimer();\n _this.pressTimer = setTimeout(function () {\n _this.setGestureState({\n press: true\n });\n _this.triggerEvent('onPress');\n }, PRESS.time);\n };\n _this.cleanPressTimer = function () {\n /* tslint:disable:no-unused-expression */\n _this.pressTimer && clearTimeout(_this.pressTimer);\n };\n _this.setGestureState = function (params) {\n if (!_this.gesture) {\n _this.gesture = {};\n }\n // cache the previous touches\n if (_this.gesture.touches) {\n _this.gesture.preTouches = _this.gesture.touches;\n }\n _this.gesture = _extends({}, _this.gesture, params);\n };\n _this.getGestureState = function () {\n if (!_this.gesture) {\n return _this.gesture;\n } else {\n // shallow copy\n return _extends({}, _this.gesture);\n }\n };\n _this.cleanGestureState = function () {\n delete _this.gesture;\n };\n _this.getTouches = function (e) {\n return Array.prototype.slice.call(e.touches).map(function (item) {\n return {\n x: item.screenX,\n y: item.screenY\n };\n });\n };\n _this.triggerUserCb = function (status, e) {\n var cbName = getEventName('onTouch', status);\n if (cbName in _this.props) {\n _this.props[cbName](e);\n }\n };\n _this._handleTouchStart = function (e) {\n _this.triggerUserCb('start', e);\n _this.event = e;\n if (e.touches.length > 1) {\n e.preventDefault();\n }\n _this.initGestureStatus(e);\n _this.initPressTimer();\n _this.checkIfMultiTouchStart();\n };\n _this.initGestureStatus = function (e) {\n _this.cleanGestureState();\n // store the gesture start state\n var startTouches = _this.getTouches(e);\n var startTime = now();\n var startMutliFingerStatus = calcMutliFingerStatus(startTouches);\n _this.setGestureState({\n startTime: startTime,\n startTouches: startTouches,\n startMutliFingerStatus: startMutliFingerStatus,\n /* copy for next time touch move cala convenient*/\n time: startTime,\n touches: startTouches,\n mutliFingerStatus: startMutliFingerStatus,\n srcEvent: _this.event\n });\n };\n _this.checkIfMultiTouchStart = function () {\n var _this$props = _this.props,\n enablePinch = _this$props.enablePinch,\n enableRotate = _this$props.enableRotate;\n var touches = _this.gesture.touches;\n\n if (touches.length > 1 && (enablePinch || enableRotate)) {\n if (enablePinch) {\n var startMutliFingerStatus = calcMutliFingerStatus(touches);\n _this.setGestureState({\n startMutliFingerStatus: startMutliFingerStatus,\n /* init pinch status */\n pinch: true,\n scale: 1\n });\n _this.triggerCombineEvent('onPinch', 'start');\n }\n if (enableRotate) {\n _this.setGestureState({\n /* init rotate status */\n rotate: true,\n rotation: 0\n });\n _this.triggerCombineEvent('onRotate', 'start');\n }\n }\n };\n _this._handleTouchMove = function (e) {\n _this.triggerUserCb('move', e);\n _this.event = e;\n if (!_this.gesture) {\n // sometimes weird happen: touchstart -> touchmove..touchmove.. --> touchend --> touchmove --> touchend\n // so we need to skip the unnormal event cycle after touchend\n return;\n }\n // not a long press\n _this.cleanPressTimer();\n _this.updateGestureStatus(e);\n _this.checkIfSingleTouchMove();\n _this.checkIfMultiTouchMove();\n };\n _this.checkIfMultiTouchMove = function () {\n var _this$gesture = _this.gesture,\n pinch = _this$gesture.pinch,\n rotate = _this$gesture.rotate,\n touches = _this$gesture.touches,\n startMutliFingerStatus = _this$gesture.startMutliFingerStatus,\n mutliFingerStatus = _this$gesture.mutliFingerStatus;\n\n if (!pinch && !rotate) {\n return;\n }\n if (touches.length < 2) {\n _this.setGestureState({\n pinch: false,\n rotate: false\n });\n // Todo: 2 finger -> 1 finger, wait to test this situation\n pinch && _this.triggerCombineEvent('onPinch', 'cancel');\n rotate && _this.triggerCombineEvent('onRotate', 'cancel');\n return;\n }\n if (pinch) {\n var scale = mutliFingerStatus.z / startMutliFingerStatus.z;\n _this.setGestureState({\n scale: scale\n });\n _this.triggerPinchEvent('onPinch', 'move');\n }\n if (rotate) {\n var rotation = calcRotation(startMutliFingerStatus, mutliFingerStatus);\n _this.setGestureState({\n rotation: rotation\n });\n _this.triggerCombineEvent('onRotate', 'move');\n }\n };\n _this.allowGesture = function () {\n return shouldTriggerDirection(_this.gesture.direction, _this.directionSetting);\n };\n _this.checkIfSingleTouchMove = function () {\n var _this$gesture2 = _this.gesture,\n pan = _this$gesture2.pan,\n touches = _this$gesture2.touches,\n moveStatus = _this$gesture2.moveStatus,\n preTouches = _this$gesture2.preTouches,\n _this$gesture2$availa = _this$gesture2.availablePan,\n availablePan = _this$gesture2$availa === undefined ? true : _this$gesture2$availa;\n\n if (touches.length > 1) {\n _this.setGestureState({\n pan: false\n });\n // Todo: 1 finger -> 2 finger, wait to test this situation\n pan && _this.triggerCombineEvent('onPan', 'cancel');\n return;\n }\n // add avilablePan condition to fix the case in scrolling, which will cause unavailable pan move.\n if (moveStatus && availablePan) {\n var direction = getMovingDirection(preTouches[0], touches[0]);\n _this.setGestureState({ direction: direction });\n var eventName = getDirectionEventName(direction);\n if (!_this.allowGesture()) {\n // if the first move is unavailable, then judge all of remaining touch movings are also invalid.\n if (!pan) {\n _this.setGestureState({ availablePan: false });\n }\n return;\n }\n if (!pan) {\n _this.triggerCombineEvent('onPan', 'start');\n _this.setGestureState({\n pan: true,\n availablePan: true\n });\n } else {\n _this.triggerCombineEvent('onPan', eventName);\n _this.triggerSubEvent('onPan', 'move');\n }\n }\n };\n _this.checkIfMultiTouchEnd = function (status) {\n var _this$gesture3 = _this.gesture,\n pinch = _this$gesture3.pinch,\n rotate = _this$gesture3.rotate;\n\n if (pinch) {\n _this.triggerCombineEvent('onPinch', status);\n }\n if (rotate) {\n _this.triggerCombineEvent('onRotate', status);\n }\n };\n _this.updateGestureStatus = function (e) {\n var time = now();\n _this.setGestureState({\n time: time\n });\n if (!e.touches || !e.touches.length) {\n return;\n }\n var _this$gesture4 = _this.gesture,\n startTime = _this$gesture4.startTime,\n startTouches = _this$gesture4.startTouches,\n pinch = _this$gesture4.pinch,\n rotate = _this$gesture4.rotate;\n\n var touches = _this.getTouches(e);\n var moveStatus = calcMoveStatus(startTouches, touches, time - startTime);\n var mutliFingerStatus = void 0;\n if (pinch || rotate) {\n mutliFingerStatus = calcMutliFingerStatus(touches);\n }\n _this.setGestureState({\n /* update status snapshot */\n touches: touches,\n mutliFingerStatus: mutliFingerStatus,\n /* update duration status */\n moveStatus: moveStatus\n });\n };\n _this._handleTouchEnd = function (e) {\n _this.triggerUserCb('end', e);\n _this.event = e;\n if (!_this.gesture) {\n return;\n }\n _this.cleanPressTimer();\n _this.updateGestureStatus(e);\n _this.doSingleTouchEnd('end');\n _this.checkIfMultiTouchEnd('end');\n };\n _this._handleTouchCancel = function (e) {\n _this.triggerUserCb('cancel', e);\n _this.event = e;\n // Todo: wait to test cancel case\n if (!_this.gesture) {\n return;\n }\n _this.cleanPressTimer();\n _this.updateGestureStatus(e);\n _this.doSingleTouchEnd('cancel');\n _this.checkIfMultiTouchEnd('cancel');\n };\n _this.triggerAllowEvent = function (type, status) {\n if (_this.allowGesture()) {\n _this.triggerCombineEvent(type, status);\n } else {\n _this.triggerSubEvent(type, status);\n }\n };\n _this.doSingleTouchEnd = function (status) {\n var _this$gesture5 = _this.gesture,\n moveStatus = _this$gesture5.moveStatus,\n pinch = _this$gesture5.pinch,\n rotate = _this$gesture5.rotate,\n press = _this$gesture5.press,\n pan = _this$gesture5.pan,\n direction = _this$gesture5.direction;\n\n if (pinch || rotate) {\n return;\n }\n if (moveStatus) {\n var z = moveStatus.z,\n velocity = moveStatus.velocity;\n\n var swipe = shouldTriggerSwipe(z, velocity);\n _this.setGestureState({\n swipe: swipe\n });\n if (pan) {\n // pan need end, it's a process\n // sometimes, start with pan left, but end with pan right....\n _this.triggerAllowEvent('onPan', status);\n }\n if (swipe) {\n var directionEvName = getDirectionEventName(direction);\n // swipe just need a direction, it's a endpoint\n _this.triggerAllowEvent('onSwipe', directionEvName);\n return;\n }\n }\n if (press) {\n _this.triggerEvent('onPressUp');\n return;\n }\n _this.triggerEvent('onTap');\n };\n _this.getTouchAction = function () {\n var _this$props2 = _this.props,\n enablePinch = _this$props2.enablePinch,\n enableRotate = _this$props2.enableRotate;\n var directionSetting = _this.directionSetting;\n\n if (enablePinch || enableRotate || directionSetting === DIRECTION_ALL) {\n return 'pan-x pan-y';\n }\n if (directionSetting === DIRECTION_VERTICAL) {\n return 'pan-x';\n }\n if (directionSetting === DIRECTION_HORIZONTAL) {\n return 'pan-y';\n }\n return 'auto';\n };\n _this.directionSetting = directionMap[props.direction];\n return _this;\n }\n\n _createClass(Gesture, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.cleanPressTimer();\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n var child = React.Children.only(children);\n var touchAction = this.getTouchAction();\n var events = {\n onTouchStart: this._handleTouchStart,\n onTouchMove: this._handleTouchMove,\n onTouchCancel: this._handleTouchCancel,\n onTouchEnd: this._handleTouchEnd\n };\n return React.cloneElement(child, _extends({}, events, { style: _extends({ touchAction: touchAction }, child.props.style || {}) }));\n }\n }]);\n\n return Gesture;\n}(Component);\n\nexport default Gesture;\n\nGesture.defaultProps = {\n enableRotate: false,\n enablePinch: false,\n direction: 'all'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Gesture from 'rc-gesture';\nimport classnames from 'classnames';\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n// http://caniuse.com/#search=match\nfunction closest(el, selector) {\n var matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;\n while (el) {\n if (matchesSelector.call(el, selector)) {\n return el;\n } else {\n el = el.parentElement;\n }\n }\n return null;\n}\n\nvar Swipeout = function (_React$Component) {\n _inherits(Swipeout, _React$Component);\n\n function Swipeout(props) {\n _classCallCheck(this, Swipeout);\n\n var _this = _possibleConstructorReturn(this, (Swipeout.__proto__ || Object.getPrototypeOf(Swipeout)).call(this, props));\n\n _this.onCloseSwipe = function (ev) {\n if (!(_this.openedLeft || _this.openedRight)) {\n return;\n }\n var pNode = closest(ev.target, '.' + _this.props.prefixCls + '-actions');\n if (!pNode) {\n ev.preventDefault();\n _this.close();\n }\n };\n _this.onPanStart = function (e) {\n var direction = e.direction,\n moveStatus = e.moveStatus;\n var deltaX = moveStatus.x;\n // http://hammerjs.github.io/api/#directions\n\n var isLeft = direction === 2;\n var isRight = direction === 4;\n if (!isLeft && !isRight) {\n return;\n }\n var _this$props = _this.props,\n left = _this$props.left,\n right = _this$props.right;\n\n _this.needShowRight = isLeft && right.length > 0;\n _this.needShowLeft = isRight && left.length > 0;\n if (_this.left) {\n _this.left.style.visibility = _this.needShowRight ? 'hidden' : 'visible';\n }\n if (_this.right) {\n _this.right.style.visibility = _this.needShowLeft ? 'hidden' : 'visible';\n }\n if (_this.needShowLeft || _this.needShowRight) {\n _this.swiping = true;\n _this.setState({\n swiping: _this.swiping\n });\n _this._setStyle(deltaX);\n }\n };\n _this.onPanMove = function (e) {\n var moveStatus = e.moveStatus,\n srcEvent = e.srcEvent;\n var deltaX = moveStatus.x;\n\n if (!_this.swiping) {\n return;\n }\n // fixed scroll when it's pan and moving.\n if (srcEvent && srcEvent.preventDefault) {\n srcEvent.preventDefault();\n }\n _this._setStyle(deltaX);\n };\n _this.onPanEnd = function (e) {\n if (!_this.swiping) {\n return;\n }\n var moveStatus = e.moveStatus;\n var deltaX = moveStatus.x;\n\n var needOpenRight = _this.needShowRight && Math.abs(deltaX) > _this.btnsRightWidth / 2;\n var needOpenLeft = _this.needShowLeft && Math.abs(deltaX) > _this.btnsLeftWidth / 2;\n if (needOpenRight) {\n _this.doOpenRight();\n } else if (needOpenLeft) {\n _this.doOpenLeft();\n } else {\n _this.close();\n }\n _this.swiping = false;\n _this.setState({\n swiping: _this.swiping\n });\n _this.needShowLeft = false;\n _this.needShowRight = false;\n };\n _this.doOpenLeft = function () {\n _this.open(_this.btnsLeftWidth, true, false);\n };\n _this.doOpenRight = function () {\n _this.open(-_this.btnsRightWidth, true, false);\n };\n // set content & actions style\n _this._setStyle = function (value) {\n var limit = value > 0 ? _this.btnsLeftWidth : -_this.btnsRightWidth;\n var contentLeft = _this._getContentEasing(value, limit);\n _this.content.style.left = contentLeft + 'px';\n if (_this.cover) {\n _this.cover.style.display = Math.abs(value) > 0 ? 'block' : 'none';\n _this.cover.style.left = contentLeft + 'px';\n }\n };\n _this.open = function (value, openedLeft, openedRight) {\n if (!_this.openedLeft && !_this.openedRight && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this.openedLeft = openedLeft;\n _this.openedRight = openedRight;\n _this._setStyle(value);\n };\n _this.close = function () {\n if ((_this.openedLeft || _this.openedRight) && _this.props.onClose) {\n _this.props.onClose();\n }\n _this._setStyle(0);\n _this.openedLeft = false;\n _this.openedRight = false;\n };\n _this.onTouchMove = function (e) {\n if (_this.swiping) {\n e.preventDefault();\n }\n };\n _this.state = {\n swiping: false\n };\n _this.openedLeft = false;\n _this.openedRight = false;\n return _this;\n }\n\n _createClass(Swipeout, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.btnsLeftWidth = this.left ? this.left.offsetWidth : 0;\n this.btnsRightWidth = this.right ? this.right.offsetWidth : 0;\n document.body.addEventListener('touchstart', this.onCloseSwipe, true);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.body.removeEventListener('touchstart', this.onCloseSwipe, true);\n }\n // left & right button click\n\n }, {\n key: 'onBtnClick',\n value: function onBtnClick(ev, btn) {\n var onPress = btn.onPress;\n if (onPress) {\n onPress(ev);\n }\n if (this.props.autoClose) {\n this.close();\n }\n }\n }, {\n key: '_getContentEasing',\n value: function _getContentEasing(value, limit) {\n // limit content style left when value > actions width\n var delta = Math.abs(value) - Math.abs(limit);\n var isOverflow = delta > 0;\n var factor = limit > 0 ? 1 : -1;\n if (isOverflow) {\n value = limit + Math.pow(delta, 0.85) * factor;\n return Math.abs(value) > Math.abs(limit) ? limit : value;\n }\n return value;\n }\n }, {\n key: 'renderButtons',\n value: function renderButtons(buttons, _ref) {\n var _this2 = this;\n\n var prefixCls = this.props.prefixCls;\n return buttons && buttons.length ? React.createElement(\n 'div',\n { className: prefixCls + '-actions ' + prefixCls + '-actions-' + _ref, ref: function ref(el) {\n return _this2[_ref] = el;\n } },\n buttons.map(function (btn, i) {\n return React.createElement(\n 'div',\n { key: i, className: prefixCls + '-btn ' + (btn.hasOwnProperty('className') ? btn.className : ''), style: btn.style, role: 'button', onClick: function onClick(e) {\n return _this2.onBtnClick(e, btn);\n } },\n React.createElement(\n 'div',\n { className: prefixCls + '-btn-text' },\n btn.text || 'Click'\n )\n );\n })\n ) : null;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n left = _a.left,\n right = _a.right,\n disabled = _a.disabled,\n children = _a.children,\n restProps = __rest(_a, [\"prefixCls\", \"left\", \"right\", \"disabled\", \"children\"]);\n var autoClose = restProps.autoClose,\n onOpen = restProps.onOpen,\n onClose = restProps.onClose,\n divProps = __rest(restProps, [\"autoClose\", \"onOpen\", \"onClose\"]);\n\n var cls = classnames(prefixCls, _defineProperty({}, prefixCls + '-swiping', this.state.swiping));\n var refProps = {\n ref: function ref(el) {\n return _this3.content = ReactDOM.findDOMNode(el);\n }\n };\n return (left.length || right.length) && !disabled ? React.createElement(\n 'div',\n _extends({ className: cls }, divProps),\n React.createElement('div', { className: prefixCls + '-cover', ref: function ref(el) {\n return _this3.cover = el;\n } }),\n this.renderButtons(left, 'left'),\n this.renderButtons(right, 'right'),\n React.createElement(\n Gesture,\n _extends({ onTouchMove: this.onTouchMove, onPanStart: this.onPanStart, onPanMove: this.onPanMove, onPanEnd: this.onPanEnd, onPanCancel: this.onPanEnd, onSwipeLeft: this.doOpenRight, onSwipeRight: this.doOpenLeft, direction: 'horizontal' }, refProps),\n React.createElement(\n 'div',\n { className: prefixCls + '-content' },\n children\n )\n )\n ) : React.createElement(\n 'div',\n _extends({}, refProps, divProps),\n children\n );\n }\n }]);\n\n return Swipeout;\n}(React.Component);\n\nexport default Swipeout;\n\nSwipeout.defaultProps = {\n prefixCls: 'rc-swipeout',\n autoClose: false,\n disabled: false,\n left: [],\n right: [],\n onOpen: function onOpen() {},\n onClose: function onClose() {}\n};","import Swipeout from './Swipeout';\nexport default Swipeout;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport Swipeout from 'rc-swipeout';\nimport * as React from 'react';\n\nvar SwipeAction = function (_React$Component) {\n _inherits(SwipeAction, _React$Component);\n\n function SwipeAction() {\n _classCallCheck(this, SwipeAction);\n\n return _possibleConstructorReturn(this, (SwipeAction.__proto__ || Object.getPrototypeOf(SwipeAction)).apply(this, arguments));\n }\n\n _createClass(SwipeAction, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n style = _props.style,\n prefixCls = _props.prefixCls,\n _props$left = _props.left,\n left = _props$left === undefined ? [] : _props$left,\n _props$right = _props.right,\n right = _props$right === undefined ? [] : _props$right,\n autoClose = _props.autoClose,\n disabled = _props.disabled,\n onOpen = _props.onOpen,\n onClose = _props.onClose,\n children = _props.children;\n\n var wrapClass = classnames(prefixCls, className);\n return left.length || right.length ? React.createElement(\n 'div',\n { style: style, className: className },\n React.createElement(\n Swipeout,\n { prefixCls: prefixCls, left: left, right: right, autoClose: autoClose, disabled: disabled, onOpen: onOpen, onClose: onClose },\n children\n )\n ) : React.createElement(\n 'div',\n { style: style, className: wrapClass },\n children\n );\n }\n }]);\n\n return SwipeAction;\n}(React.Component);\n\nSwipeAction.defaultProps = {\n prefixCls: 'am-swipe',\n autoClose: false,\n disabled: false,\n left: [],\n right: [],\n onOpen: function onOpen() {},\n onClose: function onClose() {}\n};\nexport default SwipeAction;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar Switch = function (_React$Component) {\n _inherits(Switch, _React$Component);\n\n function Switch() {\n _classCallCheck(this, Switch);\n\n var _this = _possibleConstructorReturn(this, (Switch.__proto__ || Object.getPrototypeOf(Switch)).apply(this, arguments));\n\n _this.onChange = function (e) {\n var checked = e.target.checked;\n if (_this.props.onChange) {\n _this.props.onChange(checked);\n }\n };\n _this.onClick = function (e) {\n if (_this.props.onClick) {\n var val = void 0;\n // tslint:disable-next-line:prefer-conditional-expression\n if (e && e.target && e.target.checked !== undefined) {\n val = e.target.checked;\n } else {\n val = _this.props.checked;\n }\n _this.props.onClick(val);\n }\n };\n return _this;\n }\n\n _createClass(Switch, [{\n key: 'render',\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n name = _a.name,\n checked = _a.checked,\n disabled = _a.disabled,\n className = _a.className,\n platform = _a.platform,\n color = _a.color,\n restProps = __rest(_a, [\"prefixCls\", \"name\", \"checked\", \"disabled\", \"className\", \"platform\", \"color\"]);\n var wrapCls = classnames(prefixCls, className, _defineProperty({}, prefixCls + '-android', platform === 'android'));\n var fackInputCls = classnames('checkbox', _defineProperty({}, 'checkbox-disabled', disabled));\n var globalProps = Object.keys(restProps).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n prev[key] = restProps[key];\n }\n return prev;\n }, {});\n var style = this.props.style || {};\n if (color && checked) {\n style.backgroundColor = color;\n }\n return React.createElement(\n 'label',\n { className: wrapCls },\n React.createElement('input', _extends({ type: 'checkbox', name: name, className: prefixCls + '-checkbox', disabled: disabled, checked: checked, onChange: this.onChange, value: checked ? 'on' : 'off' }, !disabled ? { onClick: this.onClick } : {}, globalProps)),\n React.createElement('div', _extends({ className: fackInputCls, style: style }, disabled ? { onClick: this.onClick } : {}))\n );\n }\n }]);\n\n return Switch;\n}(React.Component);\n\nexport default Switch;\n\nSwitch.defaultProps = {\n prefixCls: 'am-switch',\n name: '',\n checked: false,\n disabled: false,\n onChange: function onChange() {},\n\n platform: 'ios',\n onClick: function onClick() {}\n};","export function getTransformPropValue(v) {\n return {\n transform: v,\n WebkitTransform: v,\n MozTransform: v\n };\n}\nexport function getPxStyle(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';\n var vertical = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n value = vertical ? '0px, ' + value + unit + ', 0px' : '' + value + unit + ', 0px, 0px';\n return 'translate3d(' + value + ')';\n}\nexport function setPxStyle(el, value) {\n var unit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'px';\n var vertical = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var useLeft = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n if (useLeft) {\n if (vertical) {\n el.style.top = '' + value + unit;\n } else {\n el.style.left = '' + value + unit;\n }\n } else {\n setTransform(el.style, getPxStyle(value, unit, vertical));\n }\n}\nexport function setTransform(style, v) {\n style.transform = v;\n style.webkitTransform = v;\n style.mozTransform = v;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React from 'react';\nimport { getPxStyle, getTransformPropValue } from './util';\nexport var TabPane = function (_React$PureComponent) {\n _inherits(TabPane, _React$PureComponent);\n\n function TabPane() {\n _classCallCheck(this, TabPane);\n\n var _this = _possibleConstructorReturn(this, (TabPane.__proto__ || Object.getPrototypeOf(TabPane)).apply(this, arguments));\n\n _this.offsetX = 0;\n _this.offsetY = 0;\n _this.setLayout = function (div) {\n _this.layout = div;\n };\n return _this;\n }\n\n _createClass(TabPane, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.active !== nextProps.active) {\n if (nextProps.active) {\n this.offsetX = 0;\n this.offsetY = 0;\n } else {\n this.offsetX = this.layout.scrollLeft;\n this.offsetY = this.layout.scrollTop;\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _a = this.props,\n active = _a.active,\n fixX = _a.fixX,\n fixY = _a.fixY,\n props = __rest(_a, [\"active\", \"fixX\", \"fixY\"]);\n var style = _extends({}, fixX && this.offsetX ? getTransformPropValue(getPxStyle(-this.offsetX, 'px', false)) : {}, fixY && this.offsetY ? getTransformPropValue(getPxStyle(-this.offsetY, 'px', true)) : {});\n return React.createElement(\n 'div',\n _extends({}, props, { style: style, ref: this.setLayout }),\n props.children\n );\n }\n }]);\n\n return TabPane;\n}(React.PureComponent);\nTabPane.defaultProps = {\n fixX: true,\n fixY: true\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport React from 'react';\nimport Gesture from 'rc-gesture';\nimport { setPxStyle, getTransformPropValue, getPxStyle } from './util';\nexport var StateType = function StateType() {\n _classCallCheck(this, StateType);\n\n this.transform = '';\n this.isMoving = false;\n this.showPrev = false;\n this.showNext = false;\n};\nexport var DefaultTabBar = function (_React$PureComponent) {\n _inherits(DefaultTabBar, _React$PureComponent);\n\n function DefaultTabBar(props) {\n _classCallCheck(this, DefaultTabBar);\n\n var _this = _possibleConstructorReturn(this, (DefaultTabBar.__proto__ || Object.getPrototypeOf(DefaultTabBar)).call(this, props));\n\n _this.onPan = function () {\n var lastOffset = 0;\n var finalOffset = 0;\n var getLastOffset = function getLastOffset() {\n var isVertical = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.isTabBarVertical();\n\n var offset = +('' + lastOffset).replace('%', '');\n if (('' + lastOffset).indexOf('%') >= 0) {\n offset /= 100;\n offset *= isVertical ? _this.layout.clientHeight : _this.layout.clientWidth;\n }\n return offset;\n };\n return {\n onPanStart: function onPanStart() {\n _this.setState({ isMoving: true });\n },\n onPanMove: function onPanMove(status) {\n if (!status.moveStatus || !_this.layout) return;\n var isVertical = _this.isTabBarVertical();\n var offset = getLastOffset() + (isVertical ? status.moveStatus.y : status.moveStatus.x);\n var canScrollOffset = isVertical ? -_this.layout.scrollHeight + _this.layout.clientHeight : -_this.layout.scrollWidth + _this.layout.clientWidth;\n offset = Math.min(offset, 0);\n offset = Math.max(offset, canScrollOffset);\n setPxStyle(_this.layout, offset, 'px', isVertical);\n finalOffset = offset;\n _this.setState({\n showPrev: -offset > 0,\n showNext: offset > canScrollOffset\n });\n },\n onPanEnd: function onPanEnd() {\n var isVertical = _this.isTabBarVertical();\n lastOffset = finalOffset;\n _this.setState({\n isMoving: false,\n transform: getPxStyle(finalOffset, 'px', isVertical)\n });\n },\n setCurrentOffset: function setCurrentOffset(offset) {\n return lastOffset = offset;\n }\n };\n }();\n _this.getTransformByIndex = function (props) {\n var activeTab = props.activeTab,\n tabs = props.tabs,\n _props$page = props.page,\n page = _props$page === undefined ? 0 : _props$page;\n\n var isVertical = _this.isTabBarVertical();\n var size = _this.getTabSize(page, tabs.length);\n var center = page / 2;\n var pos = Math.min(activeTab, tabs.length - center - .5);\n var skipSize = Math.min(-(pos - center + .5) * size, 0);\n _this.onPan.setCurrentOffset(skipSize + '%');\n return {\n transform: getPxStyle(skipSize, '%', isVertical),\n showPrev: activeTab > center - .5 && tabs.length > page,\n showNext: activeTab < tabs.length - center - .5 && tabs.length > page\n };\n };\n _this.onPress = function (index) {\n var _this$props = _this.props,\n goToTab = _this$props.goToTab,\n onTabClick = _this$props.onTabClick,\n tabs = _this$props.tabs;\n\n onTabClick && onTabClick(tabs[index], index);\n goToTab && goToTab(index);\n };\n _this.isTabBarVertical = function () {\n var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props.tabBarPosition;\n return position === 'left' || position === 'right';\n };\n _this.renderTab = function (t, i, size, isTabBarVertical) {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n renderTab = _this$props2.renderTab,\n activeTab = _this$props2.activeTab,\n tabBarTextStyle = _this$props2.tabBarTextStyle,\n tabBarActiveTextColor = _this$props2.tabBarActiveTextColor,\n tabBarInactiveTextColor = _this$props2.tabBarInactiveTextColor,\n instanceId = _this$props2.instanceId;\n\n var textStyle = _extends({}, tabBarTextStyle);\n var cls = prefixCls + '-tab';\n var ariaSelected = false;\n if (activeTab === i) {\n cls += ' ' + cls + '-active';\n ariaSelected = true;\n if (tabBarActiveTextColor) {\n textStyle.color = tabBarActiveTextColor;\n }\n } else if (tabBarInactiveTextColor) {\n textStyle.color = tabBarInactiveTextColor;\n }\n return React.createElement(\n 'div',\n { key: 't_' + i, style: _extends({}, textStyle, isTabBarVertical ? { height: size + '%' } : { width: size + '%' }), id: 'm-tabs-' + instanceId + '-' + i, role: 'tab', 'aria-selected': ariaSelected, className: cls, onClick: function onClick() {\n return _this.onPress(i);\n } },\n renderTab ? renderTab(t) : t.title\n );\n };\n _this.setContentLayout = function (div) {\n _this.layout = div;\n };\n _this.getTabSize = function (page, tabLength) {\n return 100 / Math.min(page, tabLength);\n };\n _this.state = _extends({}, new StateType(), _this.getTransformByIndex(props));\n return _this;\n }\n\n _createClass(DefaultTabBar, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.activeTab !== nextProps.activeTab || this.props.tabs !== nextProps.tabs || this.props.tabs.length !== nextProps.tabs.length) {\n this.setState(_extends({}, this.getTransformByIndex(nextProps)));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n animated = _props.animated,\n _props$tabs = _props.tabs,\n tabs = _props$tabs === undefined ? [] : _props$tabs,\n _props$page2 = _props.page,\n page = _props$page2 === undefined ? 0 : _props$page2,\n _props$activeTab = _props.activeTab,\n activeTab = _props$activeTab === undefined ? 0 : _props$activeTab,\n tabBarBackgroundColor = _props.tabBarBackgroundColor,\n tabBarUnderlineStyle = _props.tabBarUnderlineStyle,\n tabBarPosition = _props.tabBarPosition,\n renderUnderline = _props.renderUnderline;\n var _state = this.state,\n isMoving = _state.isMoving,\n transform = _state.transform,\n showNext = _state.showNext,\n showPrev = _state.showPrev;\n\n var isTabBarVertical = this.isTabBarVertical();\n var needScroll = tabs.length > page;\n var size = this.getTabSize(page, tabs.length);\n var Tabs = tabs.map(function (t, i) {\n return _this2.renderTab(t, i, size, isTabBarVertical);\n });\n var cls = prefixCls;\n if (animated && !isMoving) {\n cls += ' ' + prefixCls + '-animated';\n }\n var style = {\n backgroundColor: tabBarBackgroundColor || ''\n };\n var transformStyle = needScroll ? _extends({}, getTransformPropValue(transform)) : {};\n var _a = this.onPan,\n setCurrentOffset = _a.setCurrentOffset,\n onPan = __rest(_a, [\"setCurrentOffset\"]);\n var underlineProps = {\n style: _extends({}, isTabBarVertical ? { height: size + '%' } : { width: size + '%' }, isTabBarVertical ? { top: size * activeTab + '%' } : { left: size * activeTab + '%' }, tabBarUnderlineStyle),\n className: prefixCls + '-underline'\n };\n return React.createElement(\n 'div',\n { className: cls + ' ' + prefixCls + '-' + tabBarPosition, style: style },\n showPrev && React.createElement('div', { className: prefixCls + '-prevpage' }),\n React.createElement(\n Gesture,\n _extends({}, onPan, { direction: isTabBarVertical ? 'vertical' : 'horizontal' }),\n React.createElement(\n 'div',\n { role: 'tablist', className: prefixCls + '-content', style: transformStyle, ref: this.setContentLayout },\n Tabs,\n renderUnderline ? renderUnderline(underlineProps) : React.createElement('div', underlineProps)\n )\n ),\n showNext && React.createElement('div', { className: prefixCls + '-nextpage' })\n );\n }\n }]);\n\n return DefaultTabBar;\n}(React.PureComponent);\nDefaultTabBar.defaultProps = {\n prefixCls: 'rmc-tabs-tab-bar',\n animated: true,\n tabs: [],\n goToTab: function goToTab() {},\n activeTab: 0,\n page: 5,\n tabBarUnderlineStyle: {},\n tabBarBackgroundColor: '#fff',\n tabBarActiveTextColor: '',\n tabBarInactiveTextColor: '',\n tabBarTextStyle: {}\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport React from 'react';\nexport var StateType = function StateType() {\n _classCallCheck(this, StateType);\n};\nvar instanceId = 0;\nexport var Tabs = function (_React$PureComponent) {\n _inherits(Tabs, _React$PureComponent);\n\n function Tabs(props) {\n _classCallCheck(this, Tabs);\n\n var _this = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, props));\n\n _this.tabCache = {};\n _this.isTabVertical = function () {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props.tabDirection;\n return direction === 'vertical';\n };\n _this.shouldRenderTab = function (idx) {\n var _this$props$prerender = _this.props.prerenderingSiblingsNumber,\n prerenderingSiblingsNumber = _this$props$prerender === undefined ? 0 : _this$props$prerender;\n var _this$state$currentTa = _this.state.currentTab,\n currentTab = _this$state$currentTa === undefined ? 0 : _this$state$currentTa;\n\n return currentTab - prerenderingSiblingsNumber <= idx && idx <= currentTab + prerenderingSiblingsNumber;\n };\n _this.getOffsetIndex = function (current, width) {\n var threshold = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _this.props.distanceToChangeTab || 0;\n\n var ratio = Math.abs(current / width);\n var direction = ratio > _this.state.currentTab ? '<' : '>';\n var index = Math.floor(ratio);\n switch (direction) {\n case '<':\n return ratio - index > threshold ? index + 1 : index;\n case '>':\n return 1 - ratio + index > threshold ? index : index + 1;\n default:\n return Math.round(ratio);\n }\n };\n _this.getSubElements = function () {\n var children = _this.props.children;\n\n var subElements = {};\n return function () {\n var defaultPrefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '$i$-';\n var allPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '$ALL$';\n\n if (Array.isArray(children)) {\n children.forEach(function (child, index) {\n if (child.key) {\n subElements[child.key] = child;\n }\n subElements['' + defaultPrefix + index] = child;\n });\n } else if (children) {\n subElements[allPrefix] = children;\n }\n return subElements;\n };\n };\n _this.state = {\n currentTab: _this.getTabIndex(props)\n };\n _this.nextCurrentTab = _this.state.currentTab;\n _this.instanceId = instanceId++;\n return _this;\n }\n\n _createClass(Tabs, [{\n key: 'getTabIndex',\n value: function getTabIndex(props) {\n var page = props.page,\n initialPage = props.initialPage,\n tabs = props.tabs;\n\n var param = (page !== undefined ? page : initialPage) || 0;\n var index = 0;\n if (typeof param === 'string') {\n tabs.forEach(function (t, i) {\n if (t.key === param) {\n index = i;\n }\n });\n } else {\n index = param || 0;\n }\n return index < 0 ? 0 : index;\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.page !== nextProps.page && nextProps.page !== undefined) {\n this.goToTab(this.getTabIndex(nextProps), true, {}, nextProps);\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.prevCurrentTab = this.state.currentTab;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.prevCurrentTab = this.state.currentTab;\n }\n }, {\n key: 'goToTab',\n value: function goToTab(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var newState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props;\n\n if (!force && this.nextCurrentTab === index) {\n return false;\n }\n this.nextCurrentTab = index;\n var tabs = props.tabs,\n onChange = props.onChange;\n\n if (index >= 0 && index < tabs.length) {\n if (!force) {\n onChange && onChange(tabs[index], index);\n if (props.page !== undefined) {\n return false;\n }\n }\n this.setState(_extends({ currentTab: index }, newState));\n }\n return true;\n }\n }, {\n key: 'tabClickGoToTab',\n value: function tabClickGoToTab(index) {\n this.goToTab(index);\n }\n }, {\n key: 'getTabBarBaseProps',\n value: function getTabBarBaseProps() {\n var currentTab = this.state.currentTab;\n var _props = this.props,\n animated = _props.animated,\n onTabClick = _props.onTabClick,\n tabBarActiveTextColor = _props.tabBarActiveTextColor,\n tabBarBackgroundColor = _props.tabBarBackgroundColor,\n tabBarInactiveTextColor = _props.tabBarInactiveTextColor,\n tabBarPosition = _props.tabBarPosition,\n tabBarTextStyle = _props.tabBarTextStyle,\n tabBarUnderlineStyle = _props.tabBarUnderlineStyle,\n tabs = _props.tabs;\n\n return {\n activeTab: currentTab,\n animated: !!animated,\n goToTab: this.tabClickGoToTab.bind(this),\n onTabClick: onTabClick,\n tabBarActiveTextColor: tabBarActiveTextColor,\n tabBarBackgroundColor: tabBarBackgroundColor,\n tabBarInactiveTextColor: tabBarInactiveTextColor,\n tabBarPosition: tabBarPosition,\n tabBarTextStyle: tabBarTextStyle,\n tabBarUnderlineStyle: tabBarUnderlineStyle,\n tabs: tabs,\n instanceId: this.instanceId\n };\n }\n }, {\n key: 'renderTabBar',\n value: function renderTabBar(tabBarProps, DefaultTabBar) {\n var renderTabBar = this.props.renderTabBar;\n\n if (renderTabBar === false) {\n return null;\n } else if (renderTabBar) {\n // return React.cloneElement(this.props.renderTabBar(props), props);\n return renderTabBar(tabBarProps);\n } else {\n return React.createElement(DefaultTabBar, tabBarProps);\n }\n }\n }, {\n key: 'getSubElement',\n value: function getSubElement(tab, index, subElements) {\n var defaultPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '$i$-';\n var allPrefix = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '$ALL$';\n\n var key = tab.key || '' + defaultPrefix + index;\n var elements = subElements(defaultPrefix, allPrefix);\n var component = elements[key] || elements[allPrefix];\n if (component instanceof Function) {\n component = component(tab, index);\n }\n return component || null;\n }\n }]);\n\n return Tabs;\n}(React.PureComponent);\nTabs.defaultProps = {\n tabBarPosition: 'top',\n initialPage: 0,\n swipeable: true,\n animated: true,\n prerenderingSiblingsNumber: 1,\n tabs: [],\n destroyInactiveTab: false,\n usePaged: true,\n tabDirection: 'horizontal',\n distanceToChangeTab: .3\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _get from 'babel-runtime/helpers/get';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport Gesture from 'rc-gesture';\nimport { TabPane } from './TabPane';\nimport { DefaultTabBar } from './DefaultTabBar';\nimport { getTransformPropValue, setTransform, setPxStyle } from './util';\nimport { Tabs as Component, StateType as BaseStateType } from './Tabs.base';\nvar getPanDirection = function getPanDirection(direction) {\n switch (direction) {\n case 2:\n case 4:\n return 'horizontal';\n case 8:\n case 16:\n return 'vertical';\n default:\n return 'none';\n }\n};\nexport var StateType = function (_BaseStateType) {\n _inherits(StateType, _BaseStateType);\n\n function StateType() {\n _classCallCheck(this, StateType);\n\n var _this = _possibleConstructorReturn(this, (StateType.__proto__ || Object.getPrototypeOf(StateType)).apply(this, arguments));\n\n _this.contentPos = '';\n _this.isMoving = false;\n return _this;\n }\n\n return StateType;\n}(BaseStateType);\nexport var Tabs = function (_Component) {\n _inherits(Tabs, _Component);\n\n function Tabs(props) {\n _classCallCheck(this, Tabs);\n\n var _this2 = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, props));\n\n _this2.onPan = function () {\n var lastOffset = 0;\n var finalOffset = 0;\n var panDirection = void 0;\n var getLastOffset = function getLastOffset() {\n var isVertical = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this2.isTabVertical();\n\n var offset = +('' + lastOffset).replace('%', '');\n if (('' + lastOffset).indexOf('%') >= 0) {\n offset /= 100;\n offset *= isVertical ? _this2.layout.clientHeight : _this2.layout.clientWidth;\n }\n return offset;\n };\n return {\n onPanStart: function onPanStart(status) {\n if (!_this2.props.swipeable || !_this2.props.animated) return;\n panDirection = getPanDirection(status.direction);\n _this2.setState({\n isMoving: true\n });\n },\n onPanMove: function onPanMove(status) {\n var _this2$props = _this2.props,\n swipeable = _this2$props.swipeable,\n animated = _this2$props.animated,\n useLeftInsteadTransform = _this2$props.useLeftInsteadTransform;\n\n if (!status.moveStatus || !_this2.layout || !swipeable || !animated) return;\n var isVertical = _this2.isTabVertical();\n var offset = getLastOffset();\n if (isVertical) {\n offset += panDirection === 'horizontal' ? 0 : status.moveStatus.y;\n } else {\n offset += panDirection === 'vertical' ? 0 : status.moveStatus.x;\n }\n var canScrollOffset = isVertical ? -_this2.layout.scrollHeight + _this2.layout.clientHeight : -_this2.layout.scrollWidth + _this2.layout.clientWidth;\n offset = Math.min(offset, 0);\n offset = Math.max(offset, canScrollOffset);\n setPxStyle(_this2.layout, offset, 'px', isVertical, useLeftInsteadTransform);\n finalOffset = offset;\n },\n onPanEnd: function onPanEnd() {\n if (!_this2.props.swipeable || !_this2.props.animated) return;\n lastOffset = finalOffset;\n var isVertical = _this2.isTabVertical();\n var offsetIndex = _this2.getOffsetIndex(finalOffset, isVertical ? _this2.layout.clientHeight : _this2.layout.clientWidth);\n _this2.setState({\n isMoving: false\n });\n if (offsetIndex === _this2.state.currentTab) {\n if (_this2.props.usePaged) {\n setTransform(_this2.layout.style, _this2.getContentPosByIndex(offsetIndex, _this2.isTabVertical(), _this2.props.useLeftInsteadTransform));\n }\n } else {\n _this2.goToTab(offsetIndex);\n }\n },\n setCurrentOffset: function setCurrentOffset(offset) {\n return lastOffset = offset;\n }\n };\n }();\n _this2.onSwipe = function (status) {\n var _this2$props2 = _this2.props,\n tabBarPosition = _this2$props2.tabBarPosition,\n swipeable = _this2$props2.swipeable,\n usePaged = _this2$props2.usePaged;\n\n if (!swipeable || !usePaged || _this2.isTabVertical()) return;\n // DIRECTION_NONE\t1\n // DIRECTION_LEFT\t2\n // DIRECTION_RIGHT\t4\n // DIRECTION_UP\t8\n // DIRECTION_DOWN\t16\n // DIRECTION_HORIZONTAL\t6\n // DIRECTION_VERTICAL\t24\n // DIRECTION_ALL\t30\n switch (tabBarPosition) {\n case 'top':\n case 'bottom':\n switch (status.direction) {\n case 2:\n if (!_this2.isTabVertical()) {\n _this2.goToTab(_this2.prevCurrentTab + 1);\n }\n case 8:\n if (_this2.isTabVertical()) {\n _this2.goToTab(_this2.prevCurrentTab + 1);\n }\n break;\n case 4:\n if (!_this2.isTabVertical()) {\n _this2.goToTab(_this2.prevCurrentTab - 1);\n }\n case 16:\n if (_this2.isTabVertical()) {\n _this2.goToTab(_this2.prevCurrentTab - 1);\n }\n break;\n }\n break;\n }\n };\n _this2.setContentLayout = function (div) {\n _this2.layout = div;\n };\n _this2.state = _extends({}, _this2.state, new StateType(), { contentPos: _this2.getContentPosByIndex(_this2.getTabIndex(props), _this2.isTabVertical(props.tabDirection), props.useLeftInsteadTransform) });\n return _this2;\n }\n\n _createClass(Tabs, [{\n key: 'goToTab',\n value: function goToTab(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var usePaged = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.usePaged;\n var props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props;\n var tabDirection = props.tabDirection,\n useLeftInsteadTransform = props.useLeftInsteadTransform;\n\n var newState = {};\n if (usePaged) {\n newState = {\n contentPos: this.getContentPosByIndex(index, this.isTabVertical(tabDirection), useLeftInsteadTransform)\n };\n }\n return _get(Tabs.prototype.__proto__ || Object.getPrototypeOf(Tabs.prototype), 'goToTab', this).call(this, index, force, newState, props);\n }\n }, {\n key: 'tabClickGoToTab',\n value: function tabClickGoToTab(index) {\n this.goToTab(index, false, true);\n }\n }, {\n key: 'getContentPosByIndex',\n value: function getContentPosByIndex(index, isVertical) {\n var useLeft = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var value = -index * 100 + '%';\n this.onPan.setCurrentOffset(value);\n if (useLeft) {\n return '' + value;\n } else {\n var translate = isVertical ? '0px, ' + value : value + ', 0px';\n // fix: content overlay TabBar on iOS 10. ( 0px -> 1px )\n return 'translate3d(' + translate + ', 1px)';\n }\n }\n }, {\n key: 'renderContent',\n value: function renderContent() {\n var _this3 = this;\n\n var getSubElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSubElements();\n var _props = this.props,\n prefixCls = _props.prefixCls,\n tabs = _props.tabs,\n animated = _props.animated,\n destroyInactiveTab = _props.destroyInactiveTab,\n useLeftInsteadTransform = _props.useLeftInsteadTransform;\n var _state = this.state,\n currentTab = _state.currentTab,\n isMoving = _state.isMoving,\n contentPos = _state.contentPos;\n\n var isTabVertical = this.isTabVertical();\n var contentCls = prefixCls + '-content-wrap';\n if (animated && !isMoving) {\n contentCls += ' ' + contentCls + '-animated';\n }\n var contentStyle = animated ? useLeftInsteadTransform ? _extends({ position: 'relative' }, this.isTabVertical() ? { top: contentPos } : { left: contentPos }) : getTransformPropValue(contentPos) : _extends({ position: 'relative' }, this.isTabVertical() ? { top: -currentTab * 100 + '%' } : { left: -currentTab * 100 + '%' });\n\n var _getTabBarBaseProps = this.getTabBarBaseProps(),\n instanceId = _getTabBarBaseProps.instanceId;\n\n return React.createElement(\n 'div',\n { className: contentCls, style: contentStyle, ref: this.setContentLayout },\n tabs.map(function (tab, index) {\n var cls = prefixCls + '-pane-wrap';\n if (_this3.state.currentTab === index) {\n cls += ' ' + cls + '-active';\n } else {\n cls += ' ' + cls + '-inactive';\n }\n var key = tab.key || 'tab_' + index;\n // update tab cache\n if (_this3.shouldRenderTab(index)) {\n _this3.tabCache[index] = _this3.getSubElement(tab, index, getSubElements);\n } else if (destroyInactiveTab) {\n _this3.tabCache[index] = undefined;\n }\n return React.createElement(\n TabPane,\n { key: key, className: cls, active: currentTab === index, role: 'tabpanel', 'aria-hidden': currentTab !== index, 'aria-labelledby': 'm-tabs-' + instanceId + '-' + index, fixX: isTabVertical, fixY: !isTabVertical },\n _this3.tabCache[index]\n );\n })\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n tabBarPosition = _props2.tabBarPosition,\n tabDirection = _props2.tabDirection,\n useOnPan = _props2.useOnPan,\n noRenderContent = _props2.noRenderContent;\n\n var isTabVertical = this.isTabVertical(tabDirection);\n var tabBarProps = _extends({}, this.getTabBarBaseProps());\n var onPan = !isTabVertical && useOnPan ? this.onPan : {};\n var content = [React.createElement(\n 'div',\n { key: 'tabBar', className: prefixCls + '-tab-bar-wrap' },\n this.renderTabBar(tabBarProps, DefaultTabBar)\n ), !noRenderContent && React.createElement(\n Gesture,\n _extends({ key: '$content', onSwipe: this.onSwipe }, onPan),\n this.renderContent()\n )];\n return React.createElement(\n 'div',\n { className: prefixCls + ' ' + prefixCls + '-' + tabDirection + ' ' + prefixCls + '-' + tabBarPosition },\n tabBarPosition === 'top' || tabBarPosition === 'left' ? content : content.reverse()\n );\n }\n }]);\n\n return Tabs;\n}(Component);\nTabs.DefaultTabBar = DefaultTabBar;\nTabs.defaultProps = _extends({}, Component.defaultProps, { prefixCls: 'rmc-tabs', useOnPan: true });","import _createClass from 'babel-runtime/helpers/createClass';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { DefaultTabBar as RMCDefaultTabBar, Tabs as RMCTabs } from 'rmc-tabs';\nexport var DefaultTabBar = function (_RMCDefaultTabBar) {\n _inherits(DefaultTabBar, _RMCDefaultTabBar);\n\n function DefaultTabBar() {\n _classCallCheck(this, DefaultTabBar);\n\n return _possibleConstructorReturn(this, (DefaultTabBar.__proto__ || Object.getPrototypeOf(DefaultTabBar)).apply(this, arguments));\n }\n\n return DefaultTabBar;\n}(RMCDefaultTabBar);\nDefaultTabBar.defaultProps = _extends({}, RMCDefaultTabBar.defaultProps, { prefixCls: 'am-tabs-default-bar' });\n\nvar Tabs = function (_React$PureComponent) {\n _inherits(Tabs, _React$PureComponent);\n\n function Tabs() {\n _classCallCheck(this, Tabs);\n\n var _this2 = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).apply(this, arguments));\n\n _this2.renderTabBar = function (props) {\n var renderTab = _this2.props.renderTab;\n\n return React.createElement(DefaultTabBar, _extends({}, props, { renderTab: renderTab }));\n };\n return _this2;\n }\n\n _createClass(Tabs, [{\n key: 'render',\n value: function render() {\n return React.createElement(RMCTabs, _extends({ renderTabBar: this.renderTabBar }, this.props));\n }\n }]);\n\n return Tabs;\n}(React.PureComponent);\n\nexport default Tabs;\n\nTabs.DefaultTabBar = DefaultTabBar;\nTabs.defaultProps = {\n prefixCls: 'am-tabs'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport Badge from '../badge';\n\nvar Tab = function (_React$PureComponent) {\n _inherits(Tab, _React$PureComponent);\n\n function Tab() {\n _classCallCheck(this, Tab);\n\n var _this = _possibleConstructorReturn(this, (Tab.__proto__ || Object.getPrototypeOf(Tab)).apply(this, arguments));\n\n _this.renderIcon = function () {\n var _this$props = _this.props,\n dot = _this$props.dot,\n badge = _this$props.badge,\n selected = _this$props.selected,\n selectedIcon = _this$props.selectedIcon,\n icon = _this$props.icon,\n title = _this$props.title,\n prefixCls = _this$props.prefixCls;\n\n var iconRes = selected ? selectedIcon : icon;\n var iconDom = React.isValidElement(iconRes) ? iconRes : React.createElement('img', { className: prefixCls + '-image', src: iconRes ? iconRes.uri : iconRes, alt: title });\n if (badge) {\n return React.createElement(\n Badge,\n { text: badge, className: prefixCls + '-badge tab-badge' },\n ' ',\n iconDom,\n ' '\n );\n }\n if (dot) {\n return React.createElement(\n Badge,\n { dot: true, className: prefixCls + '-badge tab-dot' },\n iconDom\n );\n }\n return iconDom;\n };\n _this.onClick = function () {\n var onClick = _this.props.onClick;\n if (onClick) {\n onClick();\n }\n };\n return _this;\n }\n\n _createClass(Tab, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n title = _props.title,\n prefixCls = _props.prefixCls,\n selected = _props.selected,\n unselectedTintColor = _props.unselectedTintColor,\n tintColor = _props.tintColor;\n\n var iconColor = selected ? tintColor : unselectedTintColor;\n return React.createElement(\n 'div',\n _extends({}, this.props.dataAttrs, { onClick: this.onClick, className: '' + prefixCls }),\n React.createElement(\n 'div',\n { className: prefixCls + '-icon', style: { color: iconColor } },\n this.renderIcon()\n ),\n React.createElement(\n 'p',\n { className: prefixCls + '-title', style: { color: selected ? tintColor : unselectedTintColor } },\n title\n )\n );\n }\n }]);\n\n return Tab;\n}(React.PureComponent);\n\nexport default Tab;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport getDataAttr from '../_util/getDataAttr';\nimport Tabs from '../tabs';\nimport Tab from './Tab';\nexport var Item = function (_React$Component) {\n _inherits(Item, _React$Component);\n\n function Item() {\n _classCallCheck(this, Item);\n\n return _possibleConstructorReturn(this, (Item.__proto__ || Object.getPrototypeOf(Item)).apply(this, arguments));\n }\n\n _createClass(Item, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n style = _props.style;\n\n return React.createElement(\n 'div',\n { className: prefixCls, style: style },\n this.props.children\n );\n }\n }]);\n\n return Item;\n}(React.Component);\nItem.defaultProps = {\n prefixCls: 'am-tab-bar-item',\n title: ''\n};\n\nvar AntTabBar = function (_React$Component2) {\n _inherits(AntTabBar, _React$Component2);\n\n function AntTabBar() {\n _classCallCheck(this, AntTabBar);\n\n var _this2 = _possibleConstructorReturn(this, (AntTabBar.__proto__ || Object.getPrototypeOf(AntTabBar)).apply(this, arguments));\n\n _this2.getTabs = function () {\n var tabs = [];\n React.Children.forEach(_this2.props.children, function (c) {\n if (c) {\n tabs.push(_extends({}, c.props));\n }\n });\n return tabs;\n };\n _this2.renderTabBar = function () {\n var _this2$props = _this2.props,\n barTintColor = _this2$props.barTintColor,\n prefixCls = _this2$props.prefixCls,\n tintColor = _this2$props.tintColor,\n unselectedTintColor = _this2$props.unselectedTintColor,\n hidden = _this2$props.hidden,\n tabBarPosition = _this2$props.tabBarPosition;\n\n var tabsData = _this2.getTabs();\n var content = Array.isArray(tabsData) ? tabsData.map(function (cProps, index) {\n return React.createElement(Tab, { key: index, prefixCls: _this2.props.prefixCls + '-tab', badge: cProps.badge, dot: cProps.dot, selected: cProps.selected, icon: cProps.icon, selectedIcon: cProps.selectedIcon, title: cProps.title, tintColor: tintColor, unselectedTintColor: unselectedTintColor, dataAttrs: getDataAttr(cProps), onClick: function onClick() {\n return cProps.onPress && cProps.onPress();\n } });\n }) : null;\n var cls = prefixCls + '-bar';\n if (hidden) {\n cls += ' ' + prefixCls + '-bar-hidden-' + tabBarPosition;\n }\n return React.createElement(\n 'div',\n { className: cls, style: { backgroundColor: barTintColor } },\n content\n );\n };\n return _this2;\n }\n\n _createClass(AntTabBar, [{\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n children = _props2.children,\n animated = _props2.animated,\n swipeable = _props2.swipeable,\n noRenderContent = _props2.noRenderContent,\n prerenderingSiblingsNumber = _props2.prerenderingSiblingsNumber,\n tabBarPosition = _props2.tabBarPosition;\n\n var tabs = this.getTabs();\n var activeIndex = 0;\n if (Array.isArray(tabs)) {\n tabs.forEach(function (tab, index) {\n if (tab.selected) {\n activeIndex = index;\n }\n });\n }\n return React.createElement(\n 'div',\n { className: prefixCls },\n React.createElement(\n Tabs,\n { tabs: tabs, renderTabBar: this.renderTabBar, tabBarPosition: tabBarPosition, page: activeIndex < 0 ? undefined : activeIndex, animated: animated, swipeable: swipeable, noRenderContent: noRenderContent, prerenderingSiblingsNumber: prerenderingSiblingsNumber },\n children\n )\n );\n }\n }]);\n\n return AntTabBar;\n}(React.Component);\n\nAntTabBar.defaultProps = {\n prefixCls: 'am-tab-bar',\n barTintColor: 'white',\n tintColor: '#108ee9',\n hidden: false,\n unselectedTintColor: '#888',\n placeholder: '正在加载',\n animated: false,\n swipeable: false,\n prerenderingSiblingsNumber: 1,\n tabBarPosition: 'bottom'\n};\nAntTabBar.Item = Item;\nexport default AntTabBar;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport getDataAttr from '../_util/getDataAttr';\nimport Icon from '../icon';\n\nvar Tag = function (_React$Component) {\n _inherits(Tag, _React$Component);\n\n function Tag(props) {\n _classCallCheck(this, Tag);\n\n var _this = _possibleConstructorReturn(this, (Tag.__proto__ || Object.getPrototypeOf(Tag)).call(this, props));\n\n _this.onClick = function () {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange;\n\n if (disabled) {\n return;\n }\n var isSelect = _this.state.selected;\n _this.setState({\n selected: !isSelect\n }, function () {\n if (onChange) {\n onChange(!isSelect);\n }\n });\n };\n _this.onTagClose = function () {\n if (_this.props.onClose) {\n _this.props.onClose();\n }\n _this.setState({\n closed: true\n }, _this.props.afterClose);\n };\n _this.state = {\n selected: props.selected,\n closed: false\n };\n return _this;\n }\n\n _createClass(Tag, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.selected !== nextProps.selected) {\n this.setState({\n selected: nextProps.selected\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n prefixCls = _props.prefixCls,\n disabled = _props.disabled,\n closable = _props.closable,\n small = _props.small,\n style = _props.style;\n\n var wrapCls = classnames(className, prefixCls, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-normal', !disabled && (!this.state.selected || small || closable)), _defineProperty(_classnames, prefixCls + '-small', small), _defineProperty(_classnames, prefixCls + '-active', this.state.selected && !disabled && !small && !closable), _defineProperty(_classnames, prefixCls + '-disabled', disabled), _defineProperty(_classnames, prefixCls + '-closable', closable), _classnames));\n var closableDom = closable && !disabled && !small ? React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-close-active' },\n React.createElement(\n 'div',\n { className: prefixCls + '-close', role: 'button', onClick: this.onTagClose, 'aria-label': 'remove tag' },\n React.createElement(Icon, { type: 'cross-circle', size: 'xs', 'aria-hidden': 'true' })\n )\n ) : null;\n return !this.state.closed ? React.createElement(\n 'div',\n _extends({}, getDataAttr(this.props), { className: wrapCls, onClick: this.onClick, style: style }),\n React.createElement(\n 'div',\n { className: prefixCls + '-text' },\n children\n ),\n closableDom\n ) : null;\n }\n }]);\n\n return Tag;\n}(React.Component);\n\nexport default Tag;\n\nTag.defaultProps = {\n prefixCls: 'am-tag',\n disabled: false,\n selected: false,\n closable: false,\n small: false,\n onChange: function onChange() {},\n onClose: function onClose() {},\n afterClose: function afterClose() {}\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport * as React from 'react';\n\nvar View = function (_React$Component) {\n _inherits(View, _React$Component);\n\n function View() {\n _classCallCheck(this, View);\n\n return _possibleConstructorReturn(this, (View.__proto__ || Object.getPrototypeOf(View)).apply(this, arguments));\n }\n\n _createClass(View, [{\n key: 'render',\n value: function render() {\n var props = _extends({}, this.props);\n if (Array.isArray(props.style)) {\n var style = {};\n props.style.forEach(function (s) {\n style = _extends({}, style, s);\n });\n props.style = style;\n }\n\n var _props$Component = props.Component,\n Component = _props$Component === undefined ? 'div' : _props$Component,\n restProps = __rest(props, [\"Component\"]);\n\n return React.createElement(Component, restProps);\n }\n }]);\n\n return View;\n}(React.Component);\n\nexport default View;\n\nView.defaultProps = {\n Component: 'div'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport View from '../view';\n\nvar Text = function (_React$Component) {\n _inherits(Text, _React$Component);\n\n function Text() {\n _classCallCheck(this, Text);\n\n return _possibleConstructorReturn(this, (Text.__proto__ || Object.getPrototypeOf(Text)).apply(this, arguments));\n }\n\n _createClass(Text, [{\n key: 'render',\n value: function render() {\n return React.createElement(View, this.props);\n }\n }]);\n\n return Text;\n}(React.Component);\n\nexport default Text;\n\nText.defaultProps = {\n Component: 'span'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* tslint:disable:jsx-no-multiline-js */\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport TouchFeedback from 'rmc-feedback';\nimport { IS_IOS } from '../_util/exenv';\nfunction noop() {}\nfunction fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return value;\n}\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\n/g;\nfunction countSymbols() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n return text.replace(regexAstralSymbols, '_').length;\n}\n\nvar TextareaItem = function (_React$Component) {\n _inherits(TextareaItem, _React$Component);\n\n function TextareaItem(props) {\n _classCallCheck(this, TextareaItem);\n\n var _this = _possibleConstructorReturn(this, (TextareaItem.__proto__ || Object.getPrototypeOf(TextareaItem)).call(this, props));\n\n _this.focus = function () {\n _this.textareaRef.focus();\n };\n _this.reAlignHeight = function () {\n var textareaDom = _this.textareaRef;\n textareaDom.style.height = ''; // 字数减少时能自动减小高度\n textareaDom.style.height = textareaDom.scrollHeight + 'px';\n };\n _this.onChange = function (e) {\n var value = e.target.value;\n if ('value' in _this.props) {\n _this.setState({ value: _this.props.value });\n } else {\n _this.setState({ value: value });\n }\n var onChange = _this.props.onChange;\n\n if (onChange) {\n onChange(value);\n }\n // 设置 defaultValue 时,用户输入不会触发 componentDidUpdate ,此处手工调用\n _this.componentDidUpdate();\n };\n _this.onBlur = function (e) {\n _this.debounceTimeout = setTimeout(function () {\n if (document.activeElement !== _this.textareaRef) {\n _this.setState({\n focus: false\n });\n }\n }, 100);\n var value = e.currentTarget.value;\n if (_this.props.onBlur) {\n // fix autoFocus item blur with flash\n setTimeout(function () {\n // fix ios12 wechat browser click failure after input\n if (document.body) {\n document.body.scrollTop = document.body.scrollTop;\n }\n }, 100);\n _this.props.onBlur(value);\n }\n };\n _this.onFocus = function (e) {\n if (_this.debounceTimeout) {\n clearTimeout(_this.debounceTimeout);\n _this.debounceTimeout = null;\n }\n _this.setState({\n focus: true\n });\n var value = e.currentTarget.value;\n if (_this.props.onFocus) {\n _this.props.onFocus(value);\n }\n };\n _this.onErrorClick = function () {\n if (_this.props.onErrorClick) {\n _this.props.onErrorClick();\n }\n };\n _this.clearInput = function () {\n _this.setState({\n value: ''\n });\n if (_this.props.onChange) {\n _this.props.onChange('');\n }\n };\n _this.state = {\n focus: false,\n value: props.value || props.defaultValue || ''\n };\n return _this;\n }\n\n _createClass(TextareaItem, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n value: fixControlledValue(nextProps.value)\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.autoHeight) {\n this.reAlignHeight();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.autoHeight) {\n this.reAlignHeight();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames,\n _classnames2,\n _this2 = this;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n prefixListCls = _a.prefixListCls,\n editable = _a.editable,\n style = _a.style,\n clear = _a.clear,\n children = _a.children,\n error = _a.error,\n className = _a.className,\n count = _a.count,\n labelNumber = _a.labelNumber,\n title = _a.title,\n onErrorClick = _a.onErrorClick,\n autoHeight = _a.autoHeight,\n defaultValue = _a.defaultValue,\n otherProps = __rest(_a, [\"prefixCls\", \"prefixListCls\", \"editable\", \"style\", \"clear\", \"children\", \"error\", \"className\", \"count\", \"labelNumber\", \"title\", \"onErrorClick\", \"autoHeight\", \"defaultValue\"]);var disabled = otherProps.disabled;\n var _state = this.state,\n value = _state.value,\n focus = _state.focus;\n\n var hasCount = count > 0 && this.props.rows > 1;\n var wrapCls = classnames(className, prefixListCls + '-item', prefixCls + '-item', (_classnames = {}, _defineProperty(_classnames, prefixCls + '-disabled', disabled), _defineProperty(_classnames, prefixCls + '-item-single-line', this.props.rows === 1 && !autoHeight), _defineProperty(_classnames, prefixCls + '-error', error), _defineProperty(_classnames, prefixCls + '-focus', focus), _defineProperty(_classnames, prefixCls + '-has-count', hasCount), _classnames));\n var labelCls = classnames(prefixCls + '-label', (_classnames2 = {}, _defineProperty(_classnames2, prefixCls + '-label-2', labelNumber === 2), _defineProperty(_classnames2, prefixCls + '-label-3', labelNumber === 3), _defineProperty(_classnames2, prefixCls + '-label-4', labelNumber === 4), _defineProperty(_classnames2, prefixCls + '-label-5', labelNumber === 5), _defineProperty(_classnames2, prefixCls + '-label-6', labelNumber === 6), _defineProperty(_classnames2, prefixCls + '-label-7', labelNumber === 7), _classnames2));\n var characterLength = countSymbols(value);\n var lengthCtrlProps = {};\n if (count > 0) {\n // Note: If in the iOS environment of dev-tools, It will fail.\n if (IS_IOS) {\n var entValue = value ? value.replace(regexAstralSymbols, '_') : '';\n var entLen = entValue ? entValue.split('_').length - 1 : 0;\n lengthCtrlProps.maxLength = count + entLen - characterLength + (value ? value.length : 0);\n } else {\n lengthCtrlProps.maxLength = count - characterLength + (value ? value.length : 0);\n }\n }\n return React.createElement(\n 'div',\n { className: wrapCls },\n title && React.createElement(\n 'div',\n { className: labelCls },\n title\n ),\n React.createElement(\n 'div',\n { className: prefixCls + '-control' },\n React.createElement('textarea', _extends({ ref: function ref(el) {\n return _this2.textareaRef = el;\n } }, lengthCtrlProps, otherProps, { value: value, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, readOnly: !editable, style: style }))\n ),\n clear && editable && value && characterLength > 0 && React.createElement(\n TouchFeedback,\n { activeClassName: prefixCls + '-clear-active' },\n React.createElement('div', { className: prefixCls + '-clear', onClick: this.clearInput })\n ),\n error && React.createElement('div', { className: prefixCls + '-error-extra', onClick: this.onErrorClick }),\n hasCount && React.createElement(\n 'span',\n { className: prefixCls + '-count' },\n React.createElement(\n 'span',\n null,\n value ? characterLength : 0\n ),\n '/',\n count\n )\n );\n }\n }]);\n\n return TextareaItem;\n}(React.Component);\n\nexport default TextareaItem;\n\nTextareaItem.defaultProps = {\n prefixCls: 'am-textarea',\n prefixListCls: 'am-list',\n autoHeight: false,\n editable: true,\n disabled: false,\n placeholder: '',\n clear: false,\n rows: 1,\n onChange: noop,\n onBlur: noop,\n onFocus: noop,\n onErrorClick: noop,\n error: false,\n labelNumber: 5\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nvar Notice = function (_Component) {\n _inherits(Notice, _Component);\n\n function Notice() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Notice);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Notice.__proto__ || Object.getPrototypeOf(Notice)).call.apply(_ref, [this].concat(args))), _this), _this.close = function () {\n _this.clearCloseTimer();\n _this.props.onClose();\n }, _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n }, _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Notice, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: 'render',\n value: function render() {\n var _className;\n\n var props = this.props;\n var componentClass = props.prefixCls + '-notice';\n var className = (_className = {}, _defineProperty(_className, '' + componentClass, 1), _defineProperty(_className, componentClass + '-closable', props.closable), _defineProperty(_className, props.className, !!props.className), _className);\n return React.createElement(\n 'div',\n { className: classNames(className), style: props.style },\n React.createElement(\n 'div',\n { className: componentClass + '-content' },\n props.children\n ),\n props.closable ? React.createElement(\n 'a',\n { tabIndex: '0', onClick: this.close, className: componentClass + '-close' },\n React.createElement('span', { className: componentClass + '-close-x' })\n ) : null\n );\n }\n }]);\n\n return Notice;\n}(Component);\n\nNotice.propTypes = {\n duration: PropTypes.number,\n onClose: PropTypes.func,\n children: PropTypes.any\n};\nNotice.defaultProps = {\n onEnd: function onEnd() {},\n onClose: function onClose() {},\n\n duration: 1.5,\n style: {\n right: '50%'\n }\n};\nexport default Notice;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Animate from 'rc-animate';\nimport createChainedFunction from 'rc-util/es/createChainedFunction';\nimport classnames from 'classnames';\nimport Notice from './Notice';\n\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n return 'rcNotification_' + now + '_' + seed++;\n}\n\nvar Notification = function (_Component) {\n _inherits(Notification, _Component);\n\n function Notification() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Notification);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Notification.__proto__ || Object.getPrototypeOf(Notification)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n notices: []\n }, _this.add = function (notice) {\n var key = notice.key = notice.key || getUuid();\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n if (!notices.filter(function (v) {\n return v.key === key;\n }).length) {\n return {\n notices: notices.concat(notice)\n };\n }\n });\n }, _this.remove = function (key) {\n _this.setState(function (previousState) {\n return {\n notices: previousState.notices.filter(function (notice) {\n return notice.key !== key;\n })\n };\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Notification, [{\n key: 'getTransitionName',\n value: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this,\n _className;\n\n var props = this.props;\n var noticeNodes = this.state.notices.map(function (notice) {\n var onClose = createChainedFunction(_this2.remove.bind(_this2, notice.key), notice.onClose);\n return React.createElement(\n Notice,\n _extends({\n prefixCls: props.prefixCls\n }, notice, {\n onClose: onClose\n }),\n notice.content\n );\n });\n var className = (_className = {}, _defineProperty(_className, props.prefixCls, 1), _defineProperty(_className, props.className, !!props.className), _className);\n return React.createElement(\n 'div',\n { className: classnames(className), style: props.style },\n React.createElement(\n Animate,\n { transitionName: this.getTransitionName() },\n noticeNodes\n )\n );\n }\n }]);\n\n return Notification;\n}(Component);\n\nNotification.propTypes = {\n prefixCls: PropTypes.string,\n transitionName: PropTypes.string,\n animation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n style: PropTypes.object\n};\nNotification.defaultProps = {\n prefixCls: 'rmc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\n\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref2 = properties || {},\n getContainer = _ref2.getContainer,\n props = _objectWithoutProperties(_ref2, ['getContainer']);\n\n var div = void 0;\n if (getContainer) {\n div = getContainer();\n } else {\n div = document.createElement('div');\n document.body.appendChild(div);\n }\n var called = false;\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n\n component: notification,\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(div);\n if (!getContainer) {\n document.body.removeChild(div);\n }\n }\n });\n }\n ReactDOM.render(React.createElement(Notification, _extends({}, props, { ref: ref })), div);\n};\n\nexport default Notification;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport Notification from 'rmc-notification';\nimport Icon from '../icon';\nvar SHORT = 3;\nvar _config = {\n duration: SHORT,\n mask: true\n};\nvar messageInstance = void 0;\nvar messageNeedHide = void 0;\nvar prefixCls = 'am-toast';\nfunction getMessageInstance(mask, callback) {\n var _classnames;\n\n Notification.newInstance({\n prefixCls: prefixCls,\n style: {},\n transitionName: 'am-fade',\n className: classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-mask', mask), _defineProperty(_classnames, prefixCls + '-nomask', !mask), _classnames))\n }, function (notification) {\n return callback && callback(notification);\n });\n}\nfunction notice(content, type) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _config.duration;\n var _onClose = arguments[3];\n var mask = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _config.mask;\n\n var iconTypes = {\n info: '',\n success: 'success',\n fail: 'fail',\n offline: 'dislike',\n loading: 'loading'\n };\n var iconType = iconTypes[type];\n messageNeedHide = false;\n getMessageInstance(mask, function (notification) {\n if (!notification) {\n return;\n }\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n if (messageNeedHide) {\n notification.destroy();\n messageNeedHide = false;\n return;\n }\n messageInstance = notification;\n notification.notice({\n duration: duration,\n style: {},\n content: !!iconType ? React.createElement(\n 'div',\n { className: prefixCls + '-text ' + prefixCls + '-text-icon', role: 'alert', 'aria-live': 'assertive' },\n React.createElement(Icon, { type: iconType, size: 'lg' }),\n React.createElement(\n 'div',\n { className: prefixCls + '-text-info' },\n content\n )\n ) : React.createElement(\n 'div',\n { className: prefixCls + '-text', role: 'alert', 'aria-live': 'assertive' },\n React.createElement(\n 'div',\n null,\n content\n )\n ),\n closable: true,\n onClose: function onClose() {\n if (_onClose) {\n _onClose();\n }\n notification.destroy();\n notification = null;\n messageInstance = null;\n }\n });\n });\n}\nexport default {\n SHORT: SHORT,\n LONG: 8,\n show: function show(content, duration, mask) {\n return notice(content, 'info', duration, function () {}, mask);\n },\n info: function info(content, duration, onClose, mask) {\n return notice(content, 'info', duration, onClose, mask);\n },\n success: function success(content, duration, onClose, mask) {\n return notice(content, 'success', duration, onClose, mask);\n },\n fail: function fail(content, duration, onClose, mask) {\n return notice(content, 'fail', duration, onClose, mask);\n },\n offline: function offline(content, duration, onClose, mask) {\n return notice(content, 'offline', duration, onClose, mask);\n },\n loading: function loading(content, duration, onClose, mask) {\n return notice(content, 'loading', duration, onClose, mask);\n },\n hide: function hide() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n } else {\n messageNeedHide = true;\n }\n },\n config: function config() {\n var conf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _conf$duration = conf.duration,\n duration = _conf$duration === undefined ? SHORT : _conf$duration,\n mask = conf.mask;\n\n _config.duration = duration;\n if (mask === false) {\n _config.mask = false;\n }\n }\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar WhiteSpace = function (_React$Component) {\n _inherits(WhiteSpace, _React$Component);\n\n function WhiteSpace() {\n _classCallCheck(this, WhiteSpace);\n\n return _possibleConstructorReturn(this, (WhiteSpace.__proto__ || Object.getPrototypeOf(WhiteSpace)).apply(this, arguments));\n }\n\n _createClass(WhiteSpace, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n size = _props.size,\n className = _props.className,\n style = _props.style,\n onClick = _props.onClick;\n\n var wrapCls = classnames(prefixCls, prefixCls + '-' + size, className);\n return React.createElement('div', { className: wrapCls, style: style, onClick: onClick });\n }\n }]);\n\n return WhiteSpace;\n}(React.Component);\n\nexport default WhiteSpace;\n\nWhiteSpace.defaultProps = {\n prefixCls: 'am-whitespace',\n size: 'md'\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nvar WingBlank = function (_React$Component) {\n _inherits(WingBlank, _React$Component);\n\n function WingBlank() {\n _classCallCheck(this, WingBlank);\n\n return _possibleConstructorReturn(this, (WingBlank.__proto__ || Object.getPrototypeOf(WingBlank)).apply(this, arguments));\n }\n\n _createClass(WingBlank, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n size = _props.size,\n className = _props.className,\n children = _props.children,\n style = _props.style;\n\n var wrapCls = classnames(prefixCls, prefixCls + '-' + size, className);\n return React.createElement(\n 'div',\n { className: wrapCls, style: style },\n children\n );\n }\n }]);\n\n return WingBlank;\n}(React.Component);\n\nexport default WingBlank;\n\nWingBlank.defaultProps = {\n prefixCls: 'am-wingblank',\n size: 'lg'\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\n\nvar LocaleProvider = function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n function LocaleProvider() {\n _classCallCheck(this, LocaleProvider);\n\n return _possibleConstructorReturn(this, (LocaleProvider.__proto__ || Object.getPrototypeOf(LocaleProvider)).apply(this, arguments));\n }\n\n _createClass(LocaleProvider, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n antLocale: _extends({}, this.props.locale, { exist: true })\n };\n }\n }, {\n key: 'render',\n value: function render() {\n return React.Children.only(this.props.children);\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexport default LocaleProvider;\n\nLocaleProvider.propTypes = {\n locale: PropTypes.object\n};\nLocaleProvider.childContextTypes = {\n antLocale: PropTypes.object\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","/**\r\n * A collection of universal utility functions.\r\n */\r\nimport { Percent } from \"./Percent\";\r\nimport { isSafari } from \"./Browser\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $string from \"./String\";\r\nimport * as $strings from \"./Strings\";\r\nimport * as $object from \"./Object\";\r\nimport * as $array from \"./Array\";\r\n/**\r\n * ============================================================================\r\n * MISC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Marks a value as being used (e.g. because the value has side effects).\r\n */\r\nexport function used(value) { }\r\n/**\r\n * Copies all properties of one object to the other, omitting undefined.\r\n *\r\n * @param fromObject Source object\r\n * @param toObject Target object\r\n * @return Updated target object\r\n * @todo Maybe consolidate with utils.copy?\r\n */\r\nexport function copyProperties(source, target) {\r\n $object.each(source, function (key, value) {\r\n // only if value is set\r\n if ($type.hasValue(value)) {\r\n target[key] = value;\r\n }\r\n });\r\n return target;\r\n}\r\n/**\r\n * Removes target from url\r\n */\r\nexport function stripHash(url) {\r\n return /^[^#]*/.exec(url)[0];\r\n}\r\nexport function getBaseURI() {\r\n var url = \"#\";\r\n // Needed until https://bugs.webkit.org/show_bug.cgi?id=189499 is fixed\r\n if (isSafari()) {\r\n var baseURI = document.baseURI;\r\n if (baseURI) {\r\n baseURI = stripHash(baseURI);\r\n var loc = stripHash(location.href);\r\n if (baseURI !== loc) {\r\n url = loc + url;\r\n }\r\n }\r\n }\r\n return url;\r\n}\r\n/**\r\n * Copies all properties of one object to the other, omitting undefined, but only if property in target object doesn't have a value set.\r\n *\r\n * @param fromObject Source object\r\n * @param toObject Target object\r\n * @return Updated target object\r\n * @todo Maybe consolidate with utils.copy?\r\n */\r\nexport function softCopyProperties(source, target) {\r\n $object.each(source, function (key, value) {\r\n // only if value is set\r\n if ($type.hasValue(value) && !($type.hasValue(target[key]))) {\r\n target[key] = value;\r\n }\r\n });\r\n return target;\r\n}\r\n/**\r\n * Copies all properties of one object to the other.\r\n *\r\n * @param source Source object\r\n * @param recipient Target object\r\n * @return Updated target object\r\n */\r\nexport function copy(source, target) {\r\n $object.each(source, function (key, value) {\r\n target[key] = value;\r\n });\r\n return target;\r\n}\r\n/**\r\n * Checks if value is not empty (undefined or zero-length string).\r\n *\r\n * @param value Value to check\r\n * @return `true` if value is not \"empty\"\r\n */\r\nexport function isNotEmpty(value) {\r\n return $type.hasValue(value) && (value.toString() !== \"\");\r\n}\r\n/**\r\n * [relativeToValue description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param percent [description]\r\n * @param full [description]\r\n * @return [description]\r\n */\r\nexport function relativeToValue(percent, full) {\r\n if ($type.isNumber(percent)) {\r\n return percent;\r\n }\r\n else if (percent != null && $type.isNumber(percent.value) && $type.isNumber(full)) {\r\n return full * percent.value;\r\n }\r\n else {\r\n return 0;\r\n }\r\n}\r\n/**\r\n * [relativeRadiusToValue description]\r\n *\r\n * Differs from relativeToValue so that if a value is negative, it subtracts\r\n * it from full value.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param percent [description]\r\n * @param full [description]\r\n * @param subtractIfNegative [description]\r\n * @return [description]\r\n */\r\nexport function relativeRadiusToValue(percent, full, subtractIfNegative) {\r\n var value;\r\n if ($type.isNumber(percent)) {\r\n value = percent;\r\n if (value < 0) {\r\n if (subtractIfNegative) {\r\n value = full + value;\r\n }\r\n else {\r\n value = full - value;\r\n }\r\n }\r\n }\r\n else if (percent != null && $type.isNumber(percent.value)) {\r\n value = full * percent.value;\r\n }\r\n return value;\r\n}\r\n/**\r\n * [valueToRelative description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n * @param full [description]\r\n * @return [description]\r\n */\r\nexport function valueToRelative(value, full) {\r\n if (value instanceof Percent) {\r\n return value.value;\r\n }\r\n else {\r\n return value / full;\r\n }\r\n}\r\n/**\r\n * Returns pixel ratio of the current screen (used on retina displays).\r\n *\r\n * @return Pixel ratio\r\n */\r\nexport function getPixelRatio() {\r\n var ratio = window.devicePixelRatio || 1;\r\n return ratio;\r\n}\r\n/**\r\n * ============================================================================\r\n * STRING FORMATTING FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Converts camelCased text to dashed version:\r\n * (\"thisIsString\" > \"this-is-string\")\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function camelToDashed(str) {\r\n return str.replace(/\\W+/g, '-').replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase();\r\n}\r\n/**\r\n * Converts tring to uppercase.\r\n *\r\n * @param str String to convert\r\n * @return uppercased string\r\n * @todo Maybe make it better\r\n */\r\nexport function capitalize(str) {\r\n var arr = str.split(\"\");\r\n arr[0] = arr[0].toUpperCase();\r\n return arr.join(\"\");\r\n}\r\n/**\r\n * Converts any value into its string representation.\r\n *\r\n * @param value Value\r\n * @return String represantation of the value\r\n */\r\nexport function stringify(value) {\r\n return JSON.stringify(value);\r\n}\r\n/**\r\n * Escapes string so it can safely be used in a Regex.\r\n *\r\n * @param value Unsescaped string\r\n * @return Escaped string\r\n */\r\nexport function escapeForRgex(value) {\r\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n}\r\n/**\r\n * Splits the text into multiple lines, respecting maximum character count.\r\n * Prioretizes splitting on spaces and punctuation. Falls back on splitting\r\n * mid-word if there's no other option.\r\n *\r\n * @param text Text\r\n * @param maxChars Maximum number of characters per line\r\n * @return An array of split text\r\n */\r\nexport function splitTextByCharCount(text, maxChars, fullWords, rtl, fullWordFallback) {\r\n // Maybe the text fits?\r\n if (text.length <= maxChars) {\r\n return [text];\r\n }\r\n // Init result\r\n var res = [];\r\n // Split by words or by charts\r\n if (fullWords) {\r\n // Split by words first\r\n // Split by spacing\r\n var currentIndex = -1;\r\n //let tmpText = text.replace(/([,;:!?\\\\\\/\\.]+[\\s]+|[\\s])/g, $strings.PLACEHOLDER + \"$1\" + $strings.PLACEHOLDER);\r\n var tmpText = text.replace(/([,;:!?\\\\\\/]+|[\\s])/g, $strings.PLACEHOLDER + \"$1\" + $strings.PLACEHOLDER);\r\n var words = tmpText.split($strings.PLACEHOLDER);\r\n // Glue end-of-word punctuation to the word itself\r\n for (var i = 1; i < words.length; i++) {\r\n var word = words[i];\r\n if ((word == \".\" || word == \",\") && words[i - 1].match(/[\\w]+$/)) {\r\n words[i - 1] += word;\r\n words[i] = \"\";\r\n }\r\n }\r\n // Process each word\r\n for (var i = 0; i < words.length; i++) {\r\n // Get word and symbol count\r\n var word = words[i];\r\n var wordLength = word.length;\r\n // Ignore empty words\r\n if (wordLength === 0) {\r\n continue;\r\n }\r\n // Check word length\r\n if ((wordLength > maxChars) && (fullWords !== true || fullWordFallback != false)) {\r\n //if (wordLength > maxChars) {\r\n // A single word is longer than allowed symbol count\r\n // Break it up\r\n if (rtl) {\r\n word = reverseString(word);\r\n }\r\n var parts = word.match(new RegExp(\".{1,\" + maxChars + \"}\", \"g\"));\r\n // TODO is this correct ?\r\n if (parts) {\r\n if (rtl) {\r\n for (var x = 0; x < parts.length; x++) {\r\n parts[x] = reverseString(parts[x]);\r\n }\r\n //parts.reverse();\r\n }\r\n res = res.concat(parts);\r\n }\r\n }\r\n else {\r\n // Init current line\r\n if (currentIndex === -1) {\r\n res.push(\"\");\r\n currentIndex = 0;\r\n }\r\n // Check if we need to break into another line\r\n if (((res[currentIndex].length + wordLength + 1) > maxChars) && res[currentIndex] !== \"\") {\r\n res.push(\"\");\r\n currentIndex++;\r\n }\r\n // Add word\r\n res[currentIndex] += word;\r\n }\r\n // Update index\r\n currentIndex = res.length - 1;\r\n }\r\n }\r\n else {\r\n // Splitting by anywhere (living la vida facil)\r\n var parts = text.match(new RegExp(\".{1,\" + maxChars + \"}\", \"g\"));\r\n if (parts) {\r\n if (rtl) {\r\n for (var x = 0; x < parts.length; x++) {\r\n if (!rtl) {\r\n parts[x] = reverseString(parts[x]);\r\n }\r\n }\r\n }\r\n res = parts;\r\n }\r\n }\r\n // Do we have only one word that does not fit?\r\n // Since fullWords is set and we can't split the word, we end up with empty\r\n // set.\r\n if (res.length == 1 && fullWords && fullWordFallback && (res[0].length > maxChars)) {\r\n res = [];\r\n }\r\n return res;\r\n}\r\n/**\r\n * Truncates the text to certain character count.\r\n *\r\n * Will add ellipsis if the string is truncated. Optionally, can truncate on\r\n * full words only.\r\n *\r\n * For RTL support, pass in the fifth parameter as `true`.\r\n *\r\n * @param text Input text\r\n * @param maxChars Maximum character count of output\r\n * @param ellipsis Ellipsis string, i.e. \"...\"\r\n * @param fullWords If `true`, will not break mid-word, unless there's a single word and it does not with into `maxChars`\r\n * @param rtl Is this an RTL text?\r\n * @return Truncated text\r\n */\r\nexport function truncateWithEllipsis(text, maxChars, ellipsis, fullWords, rtl) {\r\n if (text.length <= maxChars) {\r\n return text;\r\n }\r\n // Calc max chars\r\n maxChars -= ellipsis.length;\r\n if (maxChars < 1) {\r\n maxChars = 1;\r\n //ellipsis = \"\";\r\n }\r\n // Get lines\r\n var lines = splitTextByCharCount(text, maxChars, fullWords, rtl);\r\n // Use first line\r\n return (lines[0] || \"\") + ellipsis;\r\n}\r\n/**\r\n * Removes whitespace from beginning and end of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function trim(str) {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\r\n}\r\n;\r\n/**\r\n * Removes whitespace from end of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function rtrim(str) {\r\n return str.replace(/[\\s\\uFEFF\\xA0]+$/g, \"\");\r\n}\r\n;\r\n/**\r\n * Removes whitespace from beginning of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function ltrim(str) {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+/g, \"\");\r\n}\r\n;\r\n/**\r\n * Reverses string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function reverseString(str) {\r\n return str.split(\"\").reverse().join(\"\");\r\n}\r\n/**\r\n * Removes quotes from the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function unquote(str) {\r\n var res = str.trim();\r\n res = str.replace(/^'(.*)'$/, \"$1\");\r\n if (res == str) {\r\n res = str.replace(/^\"(.*)\"$/, \"$1\");\r\n }\r\n return res;\r\n}\r\n/**\r\n * Pads a string with additional characters to certain length.\r\n *\r\n * @param value A numeric value\r\n * @param len Result string length in characters\r\n * @param char A character to use for padding\r\n * @return Padded value as string\r\n */\r\nexport function padString(value, len, char) {\r\n if (len === void 0) { len = 0; }\r\n if (char === void 0) { char = \"0\"; }\r\n if (typeof value !== \"string\") {\r\n value = value.toString();\r\n }\r\n return len > value.length ? Array(len - value.length + 1).join(char) + value : value;\r\n}\r\n/**\r\n * Tries to determine format type.\r\n *\r\n * @ignore Exclude from docs\r\n * @param format Format string\r\n * @return Format type (\"string\" | \"number\" | \"date\" | \"duration\")\r\n */\r\nexport function getFormat(format) {\r\n // Undefined?\r\n if (typeof format === \"undefined\") {\r\n return $strings.STRING;\r\n }\r\n // Cleanup and lowercase format\r\n format = format.toLowerCase().replace(/^\\[[^\\]]*\\]/, \"\");\r\n // Remove style tags\r\n format = format.replace(/\\[[^\\]]+\\]/, \"\");\r\n // Trim\r\n format = format.trim();\r\n // Check for any explicit format hints (i.e. /Date)\r\n var hints = format.match(/\\/(date|number|duration)$/);\r\n if (hints) {\r\n return hints[1];\r\n }\r\n // Check for explicit hints\r\n if (format === $strings.NUMBER) {\r\n return $strings.NUMBER;\r\n }\r\n if (format === $strings.DATE) {\r\n return $strings.DATE;\r\n }\r\n if (format === $strings.DURATION) {\r\n return $strings.DURATION;\r\n }\r\n // Detect number formatting symbols\r\n if (format.match(/[#0]/)) {\r\n return $strings.NUMBER;\r\n }\r\n // Detect date formatting symbols\r\n if (format.match(/[ymwdhnsqaxkzgtei]/)) {\r\n return $strings.DATE;\r\n }\r\n // Nothing? Let's display as string\r\n return $strings.STRING;\r\n}\r\n/**\r\n * Cleans up format:\r\n * * Strips out formatter hints\r\n *\r\n * @ignore Exclude from docs\r\n * @param format Format\r\n * @return Cleaned format\r\n */\r\nexport function cleanFormat(format) {\r\n return format.replace(/\\/(date|number|duration)$/i, \"\");\r\n}\r\n/**\r\n * Strips all tags from the string.\r\n *\r\n * @param text Source string\r\n * @return String without tags\r\n */\r\nexport function stripTags(text) {\r\n return text ? text.replace(/<[^>]*>/g, \"\") : text;\r\n}\r\n/**\r\n * Removes new lines and tags from a string.\r\n *\r\n * @param text String to conver\r\n * @return Converted string\r\n */\r\nexport function plainText(text) {\r\n return text ? stripTags((\"\" + text).replace(/[\\n\\r]+/g, \". \")) : text;\r\n}\r\n/**\r\n * ============================================================================\r\n * TYPE CONVERSION FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Converts numeric value into string. Deals with large or small numbers that\r\n * would otherwise use exponents.\r\n *\r\n * @param value Numeric value\r\n * @return Numeric value as string\r\n */\r\nexport function numberToString(value) {\r\n // TODO handle Infinity and -Infinity\r\n if ($type.isNaN(value)) {\r\n return \"NaN\";\r\n }\r\n if (value === Infinity) {\r\n return \"Infinity\";\r\n }\r\n if (value === -Infinity) {\r\n return \"-Infinity\";\r\n }\r\n // Negative 0\r\n if ((value === 0) && (1 / value === -Infinity)) {\r\n return \"-0\";\r\n }\r\n // Preserve negative and deal with absoute values\r\n var negative = value < 0;\r\n value = Math.abs(value);\r\n // TODO test this\r\n var parsed = $type.getValue(/^([0-9]+)(?:\\.([0-9]+))?(?:e[\\+\\-]([0-9]+))?$/.exec(\"\" + value));\r\n var digits = parsed[1];\r\n var decimals = parsed[2] || \"\";\r\n var res;\r\n // Leave the nummber as it is if it does not use exponents\r\n if (parsed[3] == null) {\r\n res = (decimals === \"\" ? digits : digits + \".\" + decimals);\r\n }\r\n else {\r\n var exponent = +parsed[3];\r\n // Deal with decimals\r\n if (value < 1) {\r\n var zeros = exponent - 1;\r\n res = \"0.\" + $string.repeat(\"0\", zeros) + digits + decimals;\r\n // Deal with integers\r\n }\r\n else {\r\n var zeros = exponent - decimals.length;\r\n if (zeros === 0) {\r\n res = digits + decimals;\r\n }\r\n else if (zeros < 0) {\r\n res = digits + decimals.slice(0, zeros) + \".\" + decimals.slice(zeros);\r\n }\r\n else {\r\n res = digits + decimals + $string.repeat(\"0\", zeros);\r\n }\r\n }\r\n }\r\n return negative ? \"-\" + res : res;\r\n}\r\n/**\r\n * Converts anything to Date object.\r\n *\r\n * @param value A value of any type\r\n * @return Date object representing a value\r\n */\r\nexport function anyToDate(value) {\r\n if ($type.isDate(value)) {\r\n // TODO maybe don't create a new Date ?\r\n var date = new Date(value);\r\n // This is needed because IE does not copy over milliseconds\r\n date.setMilliseconds(value.getMilliseconds());\r\n return date;\r\n }\r\n else if ($type.isNumber(value)) {\r\n return new Date(value);\r\n }\r\n else {\r\n // Try converting to number (assuming timestamp)\r\n var num = Number(value);\r\n if (!$type.isNumber(num)) {\r\n return new Date(value);\r\n }\r\n else {\r\n return new Date(num);\r\n }\r\n }\r\n}\r\n/**\r\n * Tries converting any value to a number.\r\n *\r\n * @param value Source value\r\n * @return Number\r\n */\r\nexport function anyToNumber(value) {\r\n if ($type.isDate(value)) {\r\n return value.getTime();\r\n }\r\n else if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n else if ($type.isString(value)) {\r\n // Try converting to number (assuming timestamp)\r\n var num = Number(value);\r\n if (!$type.isNumber(num)) {\r\n // Failing\r\n return undefined;\r\n }\r\n else {\r\n return num;\r\n }\r\n }\r\n}\r\n/**\r\n * ============================================================================\r\n * DATE-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns a year day.\r\n *\r\n * @param date Date\r\n * @param utc Assume UTC dates?\r\n * @return Year day\r\n * @todo Account for UTC\r\n */\r\nexport function getYearDay(date, utc) {\r\n if (utc === void 0) { utc = false; }\r\n var start = new Date(date.getFullYear(), 0, 0);\r\n var diff = (date.getTime() - start.getTime()) + ((start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000);\r\n var oneDay = 1000 * 60 * 60 * 24;\r\n return Math.floor(diff / oneDay);\r\n}\r\n/**\r\n * Returns week number for a given date.\r\n *\r\n * @param date Date\r\n * @param utc Assume UTC dates?\r\n * @return Week number\r\n * @todo Account for UTC\r\n */\r\nexport function getWeek(date, _utc) {\r\n if (_utc === void 0) { _utc = false; }\r\n var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\r\n var day = d.getUTCDay() || 7;\r\n d.setUTCDate(d.getUTCDate() + 4 - day);\r\n var firstDay = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));\r\n return Math.ceil((((d.getTime() - firstDay.getTime()) / 86400000) + 1) / 7);\r\n}\r\n/**\r\n * Returns a week number in the month.\r\n *\r\n * @param date Source Date\r\n * @param utc Assume UTC dates?\r\n * @return Week number in month\r\n */\r\nexport function getMonthWeek(date, utc) {\r\n if (utc === void 0) { utc = false; }\r\n var firstWeek = getWeek(new Date(date.getFullYear(), date.getMonth(), 1), utc);\r\n var currentWeek = getWeek(date, utc);\r\n if (currentWeek == 1) {\r\n currentWeek = 53;\r\n }\r\n return currentWeek - firstWeek + 1;\r\n}\r\n/**\r\n * Returns a year day out of the given week number.\r\n *\r\n * @param week Week\r\n * @param year Year\r\n * @param weekday Weekday\r\n * @param utc Assume UTC dates\r\n * @return Day in a year\r\n */\r\nexport function getDayFromWeek(week, year, weekday, utc) {\r\n if (weekday === void 0) { weekday = 1; }\r\n if (utc === void 0) { utc = false; }\r\n var date = new Date(year, 0, 4, 0, 0, 0, 0);\r\n if (utc) {\r\n date.setUTCFullYear(year);\r\n }\r\n var day = week * 7 + weekday - ((date.getDay() || 7) + 3);\r\n return day;\r\n}\r\n/**\r\n * Returns 12-hour representation out of the 24-hour hours.\r\n *\r\n * @param hours 24-hour number\r\n * @return 12-hour number\r\n */\r\nexport function get12Hours(hours, base) {\r\n if (hours > 12) {\r\n hours -= 12;\r\n }\r\n else if (hours === 0) {\r\n hours = 12;\r\n }\r\n return $type.hasValue(base) ? hours + (base - 1) : hours;\r\n}\r\n/**\r\n * Returns a string name of the tome zone.\r\n *\r\n * @param date Date object\r\n * @param long Should return long (\"Pacific Standard Time\") or short abbreviation (\"PST\")\r\n * @param savings Include information if it's in daylight savings mode\r\n * @param utc Assume UTC dates\r\n * @return Time zone name\r\n */\r\nexport function getTimeZone(date, long, savings, utc) {\r\n if (long === void 0) { long = false; }\r\n if (savings === void 0) { savings = false; }\r\n if (utc === void 0) { utc = false; }\r\n if (utc) {\r\n return long ? \"Coordinated Universal Time\" : \"UTC\";\r\n }\r\n var wotz = date.toLocaleString(\"UTC\");\r\n var wtz = date.toLocaleString(\"UTC\", { timeZoneName: long ? \"long\" : \"short\" }).substr(wotz.length);\r\n //wtz = wtz.replace(/[+-]+[0-9]+$/, \"\");\r\n if (savings === false) {\r\n wtz = wtz.replace(/ (standard|daylight|summer|winter) /i, \" \");\r\n }\r\n return wtz;\r\n}\r\n/**\r\n * ============================================================================\r\n * NUMBER-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns a random number between `from` and `to`.\r\n *\r\n * @param from From number\r\n * @param to To number\r\n * @return Random number\r\n */\r\nexport function random(from, to) {\r\n return Math.floor(Math.random() * (to - from)) + from;\r\n}\r\n/**\r\n * Fits the number into specific `min` and `max` bounds.\r\n *\r\n * @param value Input value\r\n * @param min Minimum value\r\n * @param max Maximum value\r\n * @return Possibly adjusted value\r\n */\r\nexport function fitNumber(value, min, max) {\r\n if (value > max) {\r\n return max;\r\n }\r\n else if (value < min) {\r\n return min;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Fits the number into specific `min` and `max` bounds.\r\n *\r\n * If the value is does not fit withing specified range, it \"wraps\" around the\r\n * values.\r\n *\r\n * For example, if we have input value 10 with min set at 1 and max set at 8,\r\n * the value will not fit. The remainder that does not fit (2) will be added\r\n * to `min`, resulting in 3.\r\n *\r\n * The output of regular `fitNumber()` would return 8 instead.\r\n *\r\n * @param value Input value\r\n * @param min Minimum value\r\n * @param max Maximum value\r\n * @return Possibly adjusted value\r\n */\r\nexport function fitNumberRelative(value, min, max) {\r\n var gap = max - min;\r\n if (value > max) {\r\n value = min + (value - gap * Math.floor(value / gap));\r\n }\r\n else if (value < min) {\r\n value = min + (value - gap * Math.floor(value / gap));\r\n }\r\n return value;\r\n}\r\n/**\r\n * ============================================================================\r\n * SPRITE-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Converts SVG element coordinates to coordinates within specific [[Sprite]].\r\n *\r\n * @param point SVG coordinates\r\n * @param sprite Sprite\r\n * @return Sprite coordinates\r\n */\r\nexport function svgPointToSprite(point, sprite) {\r\n var x = point.x;\r\n var y = point.y;\r\n var sprites = [];\r\n if (sprite) {\r\n while ($type.hasValue(sprite.parent)) {\r\n sprites.push(sprite);\r\n sprite = sprite.parent;\r\n }\r\n sprites.reverse();\r\n for (var i = 0; i < sprites.length; i++) {\r\n var sprite_1 = sprites[i];\r\n var angle = sprite_1.rotation;\r\n var relativeX = x - sprite_1.pixelX - sprite_1.ex;\r\n var relativeY = y - sprite_1.pixelY - sprite_1.ey;\r\n if (sprite_1.dx) {\r\n x -= sprite_1.dx;\r\n }\r\n if (sprite_1.dy) {\r\n y -= sprite_1.dy;\r\n }\r\n var scale = sprite_1.scale;\r\n // this handles nonscaling\r\n if (sprite_1.group) {\r\n scale = sprite_1.group.scale;\r\n }\r\n x = ($math.cos(-angle) * relativeX - $math.sin(-angle) * relativeY) / scale - sprite_1.pixelPaddingLeft;\r\n y = ($math.cos(-angle) * relativeY + $math.sin(-angle) * relativeX) / scale - sprite_1.pixelPaddingTop;\r\n }\r\n }\r\n return { x: x, y: y };\r\n}\r\n/**\r\n * Converts coordinates within [[Sprite]] to coordinates relative to the whole\r\n * SVG element.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @return SVG coordinates\r\n */\r\nexport function spritePointToSvg(point, sprite) {\r\n var x = point.x;\r\n var y = point.y;\r\n if (sprite) {\r\n while ($type.hasValue(sprite.parent)) {\r\n var angle = sprite.rotation;\r\n x += sprite.pixelPaddingLeft + sprite.ex;\r\n y += sprite.pixelPaddingTop + sprite.ey;\r\n var scale = sprite.scale;\r\n // this handles nonscaling\r\n if (sprite.group) {\r\n scale = sprite.group.scale;\r\n }\r\n var relativeX = sprite.pixelX + ((x * $math.cos(angle) - y * $math.sin(angle))) * scale;\r\n var relativeY = sprite.pixelY + ((x * $math.sin(angle) + y * $math.cos(angle))) * scale;\r\n if (sprite.dx) {\r\n relativeX += sprite.dx;\r\n }\r\n if (sprite.dy) {\r\n relativeY += sprite.dy;\r\n }\r\n x = relativeX;\r\n y = relativeY;\r\n sprite = sprite.parent;\r\n }\r\n }\r\n return { x: x, y: y };\r\n}\r\n/**\r\n * Converts coordinates of one sprite to another.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @param toSprite Sprite\r\n * @return converted coordinates\r\n */\r\nexport function spritePointToSprite(point, sprite, toSprite) {\r\n return svgPointToSprite(spritePointToSvg(point, sprite), toSprite);\r\n}\r\n/**\r\n * Converts a rectangle expressed in SVG element coordinates to coordinates\r\n * within specific [[Sprite]].\r\n *\r\n * @param rect SVG rectangle\r\n * @param sprite Sprite\r\n * @return Sprite rectangle\r\n */\r\nexport function svgRectToSprite(rect, sprite) {\r\n var p1 = svgPointToSprite(rect, sprite);\r\n var p2 = svgPointToSprite({ x: rect.x + rect.width, y: rect.y + rect.height }, sprite);\r\n return { x: p1.x, y: p1.y, width: p2.x - p1.x, height: p2.y - p1.y };\r\n}\r\n/**\r\n * Converts a rectangle expressed in [[Sprite]] coordinates to SVG coordinates.\r\n *\r\n * @param rect Sprite rectangle\r\n * @param sprite Sprite\r\n * @return SVG rectangle\r\n */\r\nexport function spriteRectToSvg(rect, sprite) {\r\n var p1 = spritePointToSvg(rect, sprite);\r\n var p2 = spritePointToSvg({ x: rect.x + rect.width, y: rect.y + rect.height }, sprite);\r\n return { x: p1.x, y: p1.y, width: p2.x - p1.x, height: p2.y - p1.y };\r\n}\r\n/**\r\n * Converts global document-wide coordinates to coordinates within SVG element.\r\n *\r\n * @param point Global coordinates\r\n * @param svgContainer SVG element\r\n * @return SVG coordinates\r\n */\r\nexport function documentPointToSvg(point, svgContainer, cssScale) {\r\n try {\r\n var bbox = svgContainer.getBoundingClientRect();\r\n if (!$type.isNumber(cssScale)) {\r\n cssScale = 1;\r\n }\r\n return {\r\n \"x\": (point.x - bbox.left) / cssScale,\r\n \"y\": (point.y - bbox.top) / cssScale\r\n };\r\n }\r\n catch (e) {\r\n return point;\r\n }\r\n}\r\n/**\r\n * Converts SVG coordinates to global document-wide coordinates.\r\n *\r\n * @param point SVG coordinates\r\n * @param svgContainer SVG element\r\n * @return Global coordinates\r\n */\r\nexport function svgPointToDocument(point, svgContainer) {\r\n try {\r\n var bbox = svgContainer.getBoundingClientRect();\r\n return {\r\n \"x\": point.x + bbox.left,\r\n \"y\": point.y + bbox.top\r\n };\r\n }\r\n catch (e) {\r\n return point;\r\n }\r\n}\r\n/**\r\n * Converts document-wide global coordinates to coordinates within specific\r\n * [[Sprite]].\r\n *\r\n * @param point Global coordinates\r\n * @param sprite Sprite\r\n * @return Sprite coordinates\r\n */\r\nexport function documentPointToSprite(point, sprite) {\r\n if (sprite && sprite.htmlContainer) {\r\n var svgPoint = documentPointToSvg(point, $type.getValue(sprite.htmlContainer), sprite.svgContainer.cssScale);\r\n return svgPointToSprite(svgPoint, sprite);\r\n }\r\n else {\r\n return point;\r\n }\r\n}\r\n/**\r\n * Converts coordinates within [[Sprite]] to global document coordinates.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @return Global coordinates\r\n */\r\nexport function spritePointToDocument(point, sprite) {\r\n if (sprite && sprite.htmlContainer) {\r\n var svgPoint = spritePointToSvg(point, sprite);\r\n return svgPointToDocument(svgPoint, $type.getValue(sprite.htmlContainer));\r\n }\r\n else {\r\n return point;\r\n }\r\n}\r\n/**\r\n * ============================================================================\r\n * DEPRECATED FUNCTIONS\r\n * @todo Review and remove\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns element's width.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Width (px)\r\n * @deprecated Not used anywhere\r\n */\r\nexport function width(element) {\r\n var cs = getComputedStyle(element);\r\n var paddingX = parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight);\r\n var borderX = parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth);\r\n return element.clientWidth - paddingX - borderX;\r\n}\r\n/**\r\n * Returns element's height.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Height (px)\r\n * @deprecated Not used anywhere\r\n */\r\nexport function height(element) {\r\n var cs = getComputedStyle(element);\r\n var paddingY = parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom);\r\n var borderY = parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth);\r\n return element.clientHeight - paddingY - borderY;\r\n}\r\n/**\r\n * Returns number of decimals\r\n *\r\n * @ignore Exclude from docs\r\n * @param number Input number\r\n * @return Number of decimals\r\n */\r\nexport function decimalPlaces(number) {\r\n var match = ('' + number).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n return Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\r\n}\r\nvar urlRegexp = /^([a-zA-Z][a-zA-Z0-9\\+\\.\\-]*:)?(?:(\\/\\/)([^\\@]+\\@)?([^\\/\\?\\#\\:]*)(\\:[0-9]+)?)?([^\\?\\#]*)(\\?[^\\#]*)?(\\#.*)?$/;\r\n/**\r\n * Parses a URL\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO test this\r\nexport function parseUrl(url) {\r\n var match = urlRegexp.exec(url);\r\n return {\r\n protocol: (match && match[1]) || \"\",\r\n separator: (match && match[2]) || \"\",\r\n authority: (match && match[3]) || \"\",\r\n domain: (match && match[4]) || \"\",\r\n port: (match && match[5]) || \"\",\r\n path: (match && match[6]) || \"\",\r\n query: (match && match[7]) || \"\",\r\n hash: (match && match[8]) || \"\"\r\n };\r\n}\r\n/**\r\n * Serializes a Url into a string\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function serializeUrl(url) {\r\n return url.protocol + url.separator + url.authority + url.domain + url.port + url.path + url.query + url.hash;\r\n}\r\n/**\r\n * Checks whether a Url is relative or not\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO is this correct ?\r\nfunction isRelativeUrl(url) {\r\n return url.protocol === \"\" &&\r\n url.separator === \"\" &&\r\n url.authority === \"\" &&\r\n url.domain === \"\" &&\r\n url.port === \"\";\r\n}\r\n/**\r\n * Joins together two URLs, resolving relative URLs correctly\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO test this\r\nexport function joinUrl(left, right) {\r\n var parsedLeft = parseUrl(left);\r\n var parsedRight = parseUrl(right);\r\n if (isRelativeUrl(parsedLeft)) {\r\n throw new Error(\"Left URL is not absolute\");\r\n }\r\n if (isRelativeUrl(parsedRight)) {\r\n // TODO is this correct ?\r\n if (parsedRight.path !== \"\") {\r\n if (parsedRight.path[0] === \"/\") {\r\n parsedLeft.path = parsedRight.path;\r\n // TODO is this correct ?\r\n }\r\n else {\r\n var leftPath = parsedLeft.path.split(/\\//);\r\n var rightPath = parsedRight.path.split(/\\//);\r\n // TODO is this correct ?\r\n if (leftPath.length === 0) {\r\n if (rightPath.length !== 0) {\r\n leftPath.push(\"\");\r\n }\r\n }\r\n else if (leftPath.length > 1) {\r\n leftPath.pop();\r\n }\r\n $array.pushAll(leftPath, rightPath);\r\n parsedLeft.path = leftPath.join(\"/\");\r\n if (parsedLeft.path !== \"\" && parsedLeft.path[0] !== \"/\") {\r\n throw new Error(\"URL path must start with /\");\r\n }\r\n }\r\n }\r\n // TODO is this correct ?\r\n parsedLeft.query = parsedRight.query;\r\n parsedLeft.hash = parsedRight.hash;\r\n return serializeUrl(parsedLeft);\r\n }\r\n else {\r\n return serializeUrl(parsedRight);\r\n }\r\n}\r\n/**\r\n * Detects MSIE.\r\n *\r\n * @return Is IE?\r\n */\r\nexport function isIE() {\r\n return !!window.MSInputMethodContext && !!document.documentMode;\r\n}\r\n//# sourceMappingURL=Utils.js.map","import * as $math from \"./Math\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * ============================================================================\r\n * UTILITY FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Searches `array` for `value`.\r\n *\r\n * Returns -1 if not found.\r\n *\r\n * @param array Source array\r\n * @param value Value to search\r\n * @returns Index\r\n */\r\nexport function indexOf(array, value) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n // TODO handle NaN\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls `test` for each element in `array`.\r\n *\r\n * If `test` returns `true` then it immediately returns `true`.\r\n *\r\n * If `test` returns `false` for all of the elements in `array` then it returns `false`.\r\n *\r\n * @param array Source array\r\n * @param test Function which is called on each element\r\n * @returns Whether `test` returned true or not\r\n */\r\nexport function any(array, test) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n if (test(array[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Calls `fn` function for every member of array and returns a new array out\r\n * of all outputs.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n * @returns New array\r\n */\r\nexport function map(array, fn) {\r\n var length = array.length;\r\n var output = new Array(length);\r\n for (var i = 0; i < length; ++i) {\r\n output[i] = fn(array[i], i);\r\n }\r\n return output;\r\n}\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function each(array, fn) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n fn(array[i], i);\r\n }\r\n}\r\n/**\r\n * Iterates through all items in array in reverse order and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function eachReverse(array, fn) {\r\n var i = array.length;\r\n while (i--) {\r\n fn(array[i], i);\r\n }\r\n}\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * If `fn` call evaluates to `false`, further iteration is cancelled.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function eachContinue(array, fn) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n if (!fn(array[i], i)) {\r\n break;\r\n }\r\n }\r\n}\r\n/**\r\n * Shifts an item at `index` towards beginning of the array.\r\n *\r\n * @param array Source array\r\n * @param index Target element index\r\n */\r\nexport function shiftLeft(array, index) {\r\n var length = array.length;\r\n for (var i = index; i < length; ++i) {\r\n array[i - index] = array[i];\r\n }\r\n array.length = length - index;\r\n}\r\n/**\r\n * Returns the last item of the array.\r\n *\r\n * @param array Source array\r\n * @returns Last item\r\n */\r\nexport function last(array) {\r\n var length = array.length;\r\n return length ? array[length - 1] : undefined;\r\n}\r\n/**\r\n * Returns the first item of the array.\r\n *\r\n * @param array Source array\r\n * @returns Last item\r\n */\r\nexport function first(array) {\r\n return array[0];\r\n}\r\n/**\r\n * Inserts `element` into `array` at `index`.\r\n *\r\n * Caps `index` to be between `0` and `array.length`\r\n *\r\n * @param array Source array\r\n * @param element Item to insert\r\n * @param array Index to insert item at\r\n */\r\nexport function insert(array, element, index) {\r\n //if (array) {\r\n index = $math.fitToRange(index, 0, array.length);\r\n array.splice(index, 0, element);\r\n //}\r\n}\r\n/**\r\n * Removes all copies of `element` from `array` (if they exist) and then\r\n * inserts `element` at `index`.\r\n *\r\n * @param array Source array\r\n * @param element Item\r\n * @param array Index to move item to\r\n */\r\nexport function setIndex(array, element, index) {\r\n remove(array, element);\r\n insert(array, element, index);\r\n}\r\n/**\r\n * Pushes all of the elements from `input` into `array`.\r\n *\r\n * @param array Output array\r\n * @param input Input array\r\n */\r\nexport function pushAll(array, input) {\r\n var length = input.length;\r\n for (var i = 0; i < length; ++i) {\r\n array.push(input[i]);\r\n }\r\n}\r\n/**\r\n * Removes `element` from `array`.\r\n *\r\n * If there are multiple copies of `element`, they are all removed.\r\n *\r\n * @param array Source array\r\n * @param element Item to remove\r\n */\r\nexport function remove(array, element) {\r\n var found = false;\r\n var index = array.indexOf(element);\r\n if (index !== -1) {\r\n found = true;\r\n array.splice(index, 1);\r\n var length_1 = array.length;\r\n while (index < length_1) {\r\n // TODO handle NaN\r\n if (array[index] === element) {\r\n array.splice(index, 1);\r\n --length_1;\r\n }\r\n else {\r\n ++index;\r\n }\r\n }\r\n }\r\n return found;\r\n}\r\n/**\r\n * Adds an `element` to `array`.\r\n *\r\n * If array already contains and item like this, it is removed before adding\r\n * it again.\r\n *\r\n * Optionally `toIndex` can be specified to add element at specific index.\r\n *\r\n * @param array Source array\r\n * @param element Item to add\r\n * @param array Index to move item to\r\n */\r\nexport function move(array, element, toIndex) {\r\n // @todo this implementation must be the same as the List.moveValue method\r\n // @todo don't do anything if the desired index is the same as the current index\r\n var index = indexOf(array, element);\r\n // @todo remove all old values rather than only the first ?\r\n if (index !== -1) {\r\n removeIndex(array, index);\r\n }\r\n if (toIndex == null) {\r\n array.push(element);\r\n }\r\n else {\r\n insertIndex(array, toIndex, element);\r\n }\r\n}\r\n/**\r\n * Inserts `element` into `array` at `index`.\r\n *\r\n * If `index` is not provided, it will insert `element` at the end of `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to add\r\n * @param array Index to add item at\r\n */\r\nexport function add(array, element, index) {\r\n // Append to the end if index is not set\r\n if (!$type.isNumber(index)) {\r\n array.push(element);\r\n }\r\n // Add to the beginning of array if index is 0\r\n else if (index === 0) {\r\n array.unshift(element);\r\n }\r\n // Add to indicated place if index is set\r\n else {\r\n array.splice(index, 0, element);\r\n }\r\n}\r\n/**\r\n * Removes `element` from `array` (if it exists) and then inserts `element` at\r\n * `index`.\r\n *\r\n * If `index` is not provided, it will insert `element` at the end of `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to remove\r\n * @param array Index to move item to\r\n */\r\nexport function replace(array, element, index) {\r\n // check if exists\r\n var ind = array.indexOf(element);\r\n // remove if exists\r\n if (ind !== -1) {\r\n array.splice(ind, 1);\r\n }\r\n // add to end if index is not set\r\n if (!$type.isNumber(index)) {\r\n array.push(element);\r\n }\r\n // add to indicated place if index is set\r\n else {\r\n array.splice(index, 0, element);\r\n }\r\n}\r\n/**\r\n * Wraps `input` in an array, if it isn't already an array.\r\n *\r\n * @param input Source value\r\n * @return An array\r\n */\r\nexport function toArray(input) {\r\n if (Array.isArray(input)) {\r\n return input;\r\n }\r\n else {\r\n return [input];\r\n }\r\n}\r\n/**\r\n * Returns `true` if `element` exists in `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to search for\r\n * @returns Item in array?\r\n */\r\nexport function has(array, element) {\r\n return indexOf(array, element) !== -1;\r\n}\r\n/**\r\n * Returns a shallow copy of `array`.\r\n *\r\n * @param array Source array\r\n * @returns Copy of the array\r\n */\r\nexport function copy(array) {\r\n var length = array.length;\r\n // It's faster to create the array with a pre-defined length\r\n var output = new Array(length);\r\n for (var i = 0; i < length; ++i) {\r\n // Because the array has a pre-defined length, we have to assign rather than push\r\n // This is also faster than pushing\r\n output[i] = array[i];\r\n }\r\n return output;\r\n}\r\n/**\r\n * Returns a copy of `array` which contains all the elements between `start`\r\n * and `end`. (including `start` and excluding `end`)\r\n *\r\n * If `end` is not provided, it defaults to `array.length`.\r\n *\r\n * @param array Source array\r\n * @param start Start index\r\n * @param end End index\r\n * @returns Part of the array\r\n */\r\nexport function slice(array, start, end) {\r\n if (end === void 0) { end = array.length; }\r\n var output = new Array(end - start);\r\n for (var i = start; i < end; ++i) {\r\n output[i - start] = array[i];\r\n }\r\n return output;\r\n}\r\n/**\r\n * Inserts a value into array at specific index.\r\n *\r\n * @param array Source array\r\n * @param index Index\r\n * @param value Value to insert\r\n */\r\nexport function insertIndex(array, index, value) {\r\n array.splice(index, 0, value);\r\n}\r\n/**\r\n * Removes a value from array at specific index.\r\n *\r\n * @param array Source array\r\n * @param index Index\r\n */\r\nexport function removeIndex(array, index) {\r\n array.splice(index, 1);\r\n}\r\n/**\r\n * Orders an array using specific `ordering` function and returns index of\r\n * the `value`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param array Source array\r\n * @param ordering An ordering function\r\n * @param value Value to search for\r\n * @returns Result of the search\r\n */\r\nexport function getSortedIndex(array, ordering, value) {\r\n var start = 0;\r\n var end = array.length;\r\n var found = false;\r\n while (start < end) {\r\n // TODO is this faster/slower than using Math.floor ?\r\n var pivot = (start + end) >> 1;\r\n var order = ordering(value, array[pivot]);\r\n // less\r\n if (order < 0) {\r\n end = pivot;\r\n // equal\r\n }\r\n else if (order === 0) {\r\n found = true;\r\n start = pivot + 1;\r\n // more\r\n }\r\n else {\r\n start = pivot + 1;\r\n }\r\n }\r\n return {\r\n found: found,\r\n index: (found ? start - 1 : start)\r\n };\r\n}\r\n/**\r\n * Searches the array using custom function and returns index of the item if\r\n * found.\r\n *\r\n * Will call `matches` function on all items of the array. If return value\r\n * evaluates to `true`, index is returned.\r\n *\r\n * Otherwise returns -1.\r\n *\r\n * @param array Source array\r\n * @param matches Search function\r\n * @returns Index of the item if found\r\n */\r\nexport function findIndex(array, matches) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n if (matches(array[i], i)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Searches the array using custom function and returns item if found.\r\n *\r\n * Will call `matches` function on all items of the array. If return value\r\n * evaluates to `true`, index is returned.\r\n *\r\n * Otherwise returns `undefined`.\r\n *\r\n * @param array Source array\r\n * @param matches Search function\r\n * @returns Item if found\r\n */\r\nexport function find(array, matches) {\r\n var index = findIndex(array, matches);\r\n if (index !== -1) {\r\n return array[index];\r\n }\r\n}\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function shuffle(array) {\r\n // https://stackoverflow.com/a/2450976/449477\r\n var currentIndex = array.length, temporaryValue, randomIndex;\r\n // While there remain elements to shuffle...\r\n while (0 !== currentIndex) {\r\n // Pick a remaining element...\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex -= 1;\r\n // And swap it with the current element.\r\n temporaryValue = array[currentIndex];\r\n array[currentIndex] = array[randomIndex];\r\n array[randomIndex] = temporaryValue;\r\n }\r\n}\r\nexport function keepIf(array, keep) {\r\n var length = array.length;\r\n var i = 0;\r\n while (i < length) {\r\n if (keep(array[i])) {\r\n ++i;\r\n }\r\n else {\r\n array.splice(i, 1);\r\n --length;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=Array.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","import * as $array from \"./Array\";\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function fromArray(array) {\r\n return function (push) {\r\n var length = array.length;\r\n for (var i = 0; i < length; ++i) {\r\n if (!push(array[i])) {\r\n break;\r\n }\r\n }\r\n };\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function length(iter) {\r\n var sum = 0;\r\n iter(function (_) {\r\n ++sum;\r\n return true;\r\n });\r\n return sum;\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function toArray(iter) {\r\n var output = [];\r\n iter(function (value) {\r\n output.push(value);\r\n return true;\r\n });\r\n return output;\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function eachContinue(iter, fn) {\r\n iter(fn);\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function each(iter, fn) {\r\n iter(function (value) {\r\n fn(value);\r\n return true;\r\n });\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function sort(iter, fn) {\r\n return fromArray(toArray(iter).sort(fn));\r\n}\r\n/**\r\n * [A description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function map(iter, fn) {\r\n return function (push) { return iter(function (value) { return push(fn(value)); }); };\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function filter(iter, fn) {\r\n return function (push) { return iter(function (value) {\r\n if (fn(value)) {\r\n return push(value);\r\n }\r\n else {\r\n return true;\r\n }\r\n }); };\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function concat() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return function (push) {\r\n var go = true;\r\n var push2 = function (value) { return (go = push(value)); };\r\n var length = args.length;\r\n for (var i = 0; i < length; ++i) {\r\n args[i](push2);\r\n if (!go) {\r\n break;\r\n }\r\n }\r\n };\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function flatten(iter) {\r\n return function (push) {\r\n var go = true;\r\n var push2 = function (value) { return (go = push(value)); };\r\n iter(function (value) {\r\n value(push2);\r\n return go;\r\n });\r\n };\r\n}\r\n/**\r\n * [number description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function indexed(iter) {\r\n return function (push) {\r\n var index = 0;\r\n iter(function (value) { return push([index++, value]); });\r\n };\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function findIndex(iter, matches) {\r\n var found = false;\r\n var i = 0;\r\n iter(function (value) {\r\n if (matches(value)) {\r\n found = true;\r\n return false;\r\n }\r\n else {\r\n ++i;\r\n return true;\r\n }\r\n });\r\n return (found ? i : -1);\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function find(iter, matches) {\r\n var output;\r\n iter(function (value) {\r\n if (matches(value)) {\r\n output = value;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n return output;\r\n}\r\n/**\r\n * [A description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function findMap(iter, matches) {\r\n var output;\r\n iter(function (value) {\r\n var v = matches(value);\r\n if (v !== null) {\r\n output = v;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n return output;\r\n}\r\n/**\r\n * [iter description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function contains(iter, matches) {\r\n var output = false;\r\n iter(function (value) {\r\n if (matches(value)) {\r\n output = true;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n return output;\r\n}\r\n/**\r\n * [A description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport function foldl(iter, init, fn) {\r\n iter(function (value) {\r\n init = fn(init, value);\r\n return true;\r\n });\r\n return init;\r\n}\r\n/**\r\n * [min2 description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param left [description]\r\n * @param right [description]\r\n * @return [description]\r\n */\r\nfunction min2(left, right) {\r\n if (left == null || right < left) {\r\n return right;\r\n }\r\n else {\r\n return left;\r\n }\r\n}\r\n/**\r\n * [min description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Verify that this works correctly\r\n * @todo Description\r\n * @param a [description]\r\n * @return [description]\r\n */\r\nexport function min(a) {\r\n return foldl(a, null, min2);\r\n}\r\n/**\r\n * [max2 description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param left [description]\r\n * @param right [description]\r\n * @return [description]\r\n */\r\nfunction max2(left, right) {\r\n if (left == null || right > left) {\r\n return right;\r\n }\r\n else {\r\n return left;\r\n }\r\n}\r\n/**\r\n * [max description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Verify that this works correctly\r\n * @todo Description\r\n * @param a [description]\r\n * @return [description]\r\n */\r\nexport function max(a) {\r\n return foldl(a, null, max2);\r\n}\r\n/**\r\n * [join description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param iter [description]\r\n * @param separator [description]\r\n * @return [description]\r\n */\r\nexport function join(iter, separator) {\r\n if (separator === void 0) { separator = \"\"; }\r\n var first = true;\r\n var init = \"\";\r\n iter(function (value) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n init += separator;\r\n }\r\n init += value;\r\n return true;\r\n });\r\n return init;\r\n}\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar ListIterator = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param list [description]\r\n * @param create [description]\r\n */\r\n function ListIterator(list, create) {\r\n // flag specifies if iterator should create new list item if it is reqested for a nextItem but there is no more left in the list\r\n this.createNewItems = false;\r\n this.list = list;\r\n this._create = create;\r\n this.reset();\r\n }\r\n ListIterator.prototype.reset = function () {\r\n this._listCopy = toArray(this.list.iterator());\r\n };\r\n ListIterator.prototype.clear = function () {\r\n this._listCopy.length = 0;\r\n };\r\n ListIterator.prototype.getFirst = function () {\r\n return this.returnItem(0);\r\n };\r\n ListIterator.prototype.getLast = function () {\r\n return this.returnItem(this._listCopy.length - 1);\r\n };\r\n ListIterator.prototype.find = function (fn) {\r\n var index = $array.findIndex(this._listCopy, fn);\r\n if (index !== -1) {\r\n var item = this._listCopy[index];\r\n // TODO use removeIndex instead ?\r\n $array.remove(this._listCopy, item);\r\n return item;\r\n }\r\n else {\r\n return this.getLast();\r\n }\r\n };\r\n ListIterator.prototype.removeItem = function (item) {\r\n return $array.remove(this._listCopy, item);\r\n };\r\n ListIterator.prototype.returnItem = function (index) {\r\n if (index >= 0 && index < this._listCopy.length) {\r\n var item = this._listCopy[index];\r\n // TODO use removeIndex instead ?\r\n $array.remove(this._listCopy, item);\r\n return item;\r\n }\r\n else if (this.createNewItems) {\r\n return this._create();\r\n }\r\n };\r\n ListIterator.prototype.iterator = function () {\r\n return fromArray(this._listCopy);\r\n };\r\n return ListIterator;\r\n}());\r\nexport { ListIterator };\r\n//# sourceMappingURL=Iterator.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * ============================================================================\r\n * UTILITY FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Returns an iterator for all entries in object.\r\n *\r\n * Can be used to safely iterate through all properties of the object.\r\n *\r\n * @param object Source object\r\n * @returns Iterator\r\n */\r\nexport function entries(object) {\r\n return function (push) {\r\n // TODO make this more efficient ?\r\n for (var key in object) {\r\n if (hasKey(object, key)) {\r\n if (!push([key, object[key]])) {\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n}\r\n/**\r\n * Returns an array of object's property names.\r\n *\r\n * @param object Source object\r\n * @returns Object property names\r\n */\r\nexport function keys(object) {\r\n var output = [];\r\n for (var key in object) {\r\n if (hasKey(object, key)) {\r\n output.push(key);\r\n }\r\n }\r\n return output;\r\n}\r\n/**\r\n * Returns an array of object's property names ordered using specific ordering\r\n * function.\r\n *\r\n * @param object Source object\r\n * @param order Ordering function\r\n * @returns Object property names\r\n */\r\nexport function keysOrdered(object, order) {\r\n return keys(object).sort(order);\r\n}\r\n/**\r\n * Checks if `object` has a specific `key`.\r\n *\r\n * @param object Source object\r\n * @param key Property name\r\n * @returns Has key?\r\n */\r\nexport function hasKey(object, key) {\r\n return {}.hasOwnProperty.call(object, key);\r\n}\r\n/**\r\n * Returns value of the specific `key`.\r\n *\r\n * @param object Source object\r\n * @param key Property name\r\n * @returns Key value\r\n */\r\nexport function getKey(object, key) {\r\n return object[key];\r\n}\r\n/**\r\n * Iterates through all properties of the object calling `fn` for each of them.\r\n *\r\n * If return value of the function evaluates to `false` further iteration is\r\n * cancelled.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n */\r\nexport function eachContinue(object, fn) {\r\n for (var key in object) {\r\n if (hasKey(object, key)) {\r\n if (!fn(key, object[key])) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Iterates through all properties of the object calling `fn` for each of them.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n */\r\nexport function each(object, fn) {\r\n eachContinue(object, function (key, value) {\r\n fn(key, value);\r\n return true;\r\n });\r\n}\r\n/**\r\n * Orders object properties using custom `ord` function and iterates through\r\n * them calling `fn` for each of them.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n * @param order Ordering function\r\n */\r\nexport function eachOrdered(object, fn, ord) {\r\n $array.each(keysOrdered(object, ord), function (key) {\r\n fn(key, object[key]);\r\n });\r\n}\r\n/**\r\n * Returns a copy of the object.\r\n *\r\n * @param object Source object\r\n * @returns Copy of the object\r\n */\r\nexport function copy(object) {\r\n return Object.assign({}, object);\r\n}\r\n/**\r\n * Merges two objects and returns a new object that contains properties from\r\n * both source objects.\r\n *\r\n * @param object1 Source object #1\r\n * @param object2 Source object #2\r\n * @returns Combined object\r\n */\r\nexport function merge(object1, object2) {\r\n return Object.assign({}, object1, object2);\r\n}\r\n/**\r\n * Returns object clone.\r\n *\r\n * @param object Source object\r\n * @returns Clone\r\n */\r\nexport function clone(object) {\r\n return JSON.parse(JSON.stringify(object));\r\n}\r\n/**\r\n * Copies a list of properties from one object to another.\r\n *\r\n * Will not copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function copyProperties(source, target, keys) {\r\n $array.each(keys, function (key) {\r\n if ($type.hasValue(source[key])) {\r\n target[key] = source[key];\r\n }\r\n });\r\n}\r\n/**\r\n * Copies a list of properties from one object to another only if target does't have value of the property set.\r\n *\r\n * Will not copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function softCopyProperties(source, target, keys) {\r\n $array.each(keys, function (key) {\r\n if ($type.hasValue(source[key]) && !($type.hasValue(target[key]))) {\r\n target[key] = source[key];\r\n }\r\n });\r\n}\r\n/**\r\n * Copies a list of properties from one object to another.\r\n *\r\n * Will copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function forceCopyProperties(source, target, keys) {\r\n $array.each(keys, function (key) {\r\n target[key] = source[key];\r\n });\r\n}\r\n/**\r\n * Copies all properties from one object to another.\r\n *\r\n * @param from Source object\r\n * @param to Target object\r\n */\r\nexport function copyAllProperties(from, to) {\r\n copyProperties(from, to, keys(from));\r\n}\r\n//# sourceMappingURL=Object.js.map","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","import { __extends, __generator } from \"tslib\";\r\nimport { Disposer, MultiDisposer } from \"./Disposer\";\r\nimport { EventDispatcher } from \"./EventDispatcher\";\r\nimport * as $array from \"./Array\";\r\nimport * as $iter from \"./Iterator\";\r\n/**\r\n * @todo Description\r\n */\r\nvar IndexedIterable = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param array List items\r\n * @param start Start index\r\n * @param end End index\r\n */\r\n function IndexedIterable(array, start, end) {\r\n this._array = array;\r\n this._start = start;\r\n this._end = end;\r\n }\r\n /**\r\n * Returns a list item iterator.\r\n *\r\n * @return Iterator\r\n */\r\n IndexedIterable.prototype.iterator = function () {\r\n var _this = this;\r\n return function (push) {\r\n if (_this._start !== _this._end) {\r\n if (_this._start < _this._end) {\r\n for (var i = _this._start; i < _this._end; ++i) {\r\n if (!push(_this._array[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = _this._start - 1; i >= _this._end; --i) {\r\n if (!push(_this._array[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n };\r\n /**\r\n * Returns an interable list sorted backwards than current list.\r\n *\r\n * @return List\r\n */\r\n IndexedIterable.prototype.backwards = function () {\r\n return new IndexedIterable(this._array, this._end, this._start);\r\n };\r\n /**\r\n * Returns a new list consisting only of specific range of items between\r\n * `start` and `end` indexes.\r\n *\r\n * @param start Start index\r\n * @param end End index\r\n * @return List\r\n */\r\n IndexedIterable.prototype.range = function (start, end) {\r\n if (start <= end) {\r\n if (this._start === this._end) {\r\n return this;\r\n }\r\n else if (this._start < this._end) {\r\n var diff = end - start;\r\n start = Math.max(this._start + start, this._start);\r\n end = Math.min(start + diff, this._end);\r\n return new IndexedIterable(this._array, start, end);\r\n }\r\n else {\r\n var diff = end - start;\r\n start = Math.max(this._start - start, this._end);\r\n end = Math.max(start - diff, this._end);\r\n return new IndexedIterable(this._array, start, end);\r\n }\r\n }\r\n else {\r\n throw new Error(\"Start index must be lower than end index\");\r\n }\r\n };\r\n return IndexedIterable;\r\n}());\r\nexport { IndexedIterable };\r\n/**\r\n * ListGrouper organizes [[List]] items into groups.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar ListGrouper = /** @class */ (function (_super) {\r\n __extends(ListGrouper, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function ListGrouper(list, getKey, sort) {\r\n var _this = _super.call(this, [\r\n list.events.on(\"inserted\", function (x) {\r\n var value = x.newValue;\r\n var key = _this._getKey(value);\r\n var index = 0;\r\n $iter.eachContinue(list.iterator(), function (x) {\r\n if (x === value) {\r\n return false;\r\n }\r\n else if (_this._getKey(x) === key) {\r\n ++index;\r\n }\r\n return true;\r\n });\r\n _this._insert(value, key, index);\r\n }, undefined, false),\r\n list.events.on(\"removed\", function (x) {\r\n _this._remove(x.oldValue);\r\n }, undefined, false)\r\n ]) || this;\r\n /**\r\n * Grouping keys.\r\n */\r\n _this._keys = [];\r\n /**\r\n * List item groups.\r\n */\r\n _this._groups = {};\r\n _this._getKey = getKey;\r\n _this._sort = sort;\r\n $iter.each(list.iterator(), function (x) {\r\n _this._insert(x, getKey(x));\r\n });\r\n return _this;\r\n }\r\n /**\r\n * Inserts an item (`x`) to a specific group (`key`) and specific `index`.\r\n *\r\n * @param x Item\r\n * @param key Group name\r\n * @param index Index\r\n */\r\n ListGrouper.prototype._insert = function (x, key, index) {\r\n if (this._groups[key] == null) {\r\n this._groups[key] = [];\r\n // TODO code duplication with SortedList\r\n var _a = $array.getSortedIndex(this._keys, this._sort, key), found = _a.found, index_1 = _a.index;\r\n if (found) {\r\n throw new Error(\"Key already exists: \" + key);\r\n }\r\n else {\r\n $array.insertIndex(this._keys, index_1, key);\r\n }\r\n }\r\n if (index == null) {\r\n this._groups[key].push(x);\r\n }\r\n else {\r\n $array.insertIndex(this._groups[key], index, x);\r\n }\r\n };\r\n /**\r\n * Removes an item from the list.\r\n *\r\n * @param x Item to remove\r\n */\r\n ListGrouper.prototype._remove = function (x) {\r\n var key = this._getKey(x);\r\n var values = this._groups[key];\r\n if (values != null) {\r\n $array.remove(values, x);\r\n if (values.length === 0) {\r\n delete this._groups[key];\r\n var _a = $array.getSortedIndex(this._keys, this._sort, key), found = _a.found, index = _a.index;\r\n if (found) {\r\n $array.removeIndex(this._keys, index);\r\n }\r\n else {\r\n throw new Error(\"Key doesn't exist: \" + key);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Returns an iterator for the list.\r\n *\r\n * The iterator will iterate through all items in all groups.\r\n *\r\n * @return Iterator\r\n */\r\n ListGrouper.prototype.iterator = function () {\r\n var _this = this;\r\n return $iter.flatten($iter.map($iter.fromArray(this._keys), function (key) {\r\n return $iter.fromArray(_this._groups[key]);\r\n }));\r\n };\r\n return ListGrouper;\r\n}(MultiDisposer));\r\nexport { ListGrouper };\r\n/**\r\n * A disposable list, which when disposed itself will call `dispose()` method\r\n * on all its items.\r\n */\r\nvar ListDisposer = /** @class */ (function (_super) {\r\n __extends(ListDisposer, _super);\r\n function ListDisposer(list, disposeOnRemove) {\r\n if (disposeOnRemove === void 0) { disposeOnRemove = true; }\r\n var _this = this;\r\n if (disposeOnRemove) {\r\n var disposer_1 = list.events.on(\"removed\", function (x) {\r\n x.oldValue.dispose();\r\n }, undefined, false);\r\n _this = _super.call(this, function () {\r\n disposer_1.dispose();\r\n // TODO clear the list ?\r\n $iter.each(list.iterator(), function (x) {\r\n x.dispose();\r\n });\r\n }) || this;\r\n }\r\n else {\r\n _this = _super.call(this, function () {\r\n // TODO clear the list ?\r\n $iter.each(list.iterator(), function (x) {\r\n x.dispose();\r\n });\r\n }) || this;\r\n }\r\n return _this;\r\n }\r\n return ListDisposer;\r\n}(Disposer));\r\nexport { ListDisposer };\r\n/**\r\n * Checks if specific index fits into length.\r\n *\r\n * @param index Index\r\n * @param len Length\r\n */\r\nfunction checkBounds(index, len) {\r\n if (!(index >= 0 && index < len)) {\r\n throw new Error(\"Index out of bounds: \" + index);\r\n }\r\n}\r\n/**\r\n * A List class is used to hold a number of indexed items of the same type.\r\n */\r\nvar List = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param initial Inital list of values to add to list\r\n */\r\n function List(initial) {\r\n if (initial === void 0) { initial = []; }\r\n /**\r\n * Event dispatcher.\r\n */\r\n this.events = new EventDispatcher();\r\n this._values = initial;\r\n }\r\n Object.defineProperty(List.prototype, \"values\", {\r\n /**\r\n * An array of values in the list.\r\n *\r\n * Do not use this property to add values. Rather use dedicated methods, like\r\n * `push()`, `removeIndex()`, etc.\r\n *\r\n * @readonly\r\n * @return List values\r\n */\r\n get: function () {\r\n return this._values;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if list contains specific item reference.\r\n *\r\n * @param item Item to search for\r\n * @return `true` if found, `false` if not found\r\n */\r\n List.prototype.contains = function (value) {\r\n return this._values.indexOf(value) !== -1;\r\n };\r\n /**\r\n * Removes specific item from the list.\r\n *\r\n * @param item An item to remove\r\n */\r\n List.prototype.removeValue = function (value) {\r\n var i = 0;\r\n var length = this._values.length;\r\n while (i < length) {\r\n // TODO handle NaN\r\n if (this._values[i] === value) {\r\n this.removeIndex(i);\r\n --length;\r\n }\r\n else {\r\n ++i;\r\n }\r\n }\r\n };\r\n /**\r\n * Searches the list for specific item and returns its index.\r\n *\r\n * @param item An item to search for\r\n * @return Index or -1 if not found\r\n */\r\n List.prototype.indexOf = function (value) {\r\n return $array.indexOf(this._values, value);\r\n };\r\n Object.defineProperty(List.prototype, \"length\", {\r\n /**\r\n * Number of items in list.\r\n *\r\n * @readonly\r\n * @return Number of items\r\n */\r\n get: function () {\r\n return this._values.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if there's a value at specific index.\r\n *\r\n * @param index Index\r\n * @return Value exists?\r\n */\r\n List.prototype.hasIndex = function (index) {\r\n return index >= 0 && index < this._values.length;\r\n };\r\n /**\r\n * Returns an item at specified index.\r\n *\r\n * @param index Index\r\n * @return List item\r\n */\r\n List.prototype.getIndex = function (index) {\r\n return this._values[index];\r\n };\r\n /**\r\n * Sets value at specific index.\r\n *\r\n * If there's already a value at the index, it is overwritten.\r\n *\r\n * @param index Index\r\n * @param value New value\r\n * @return New value\r\n */\r\n List.prototype.setIndex = function (index, value) {\r\n checkBounds(index, this._values.length);\r\n var oldValue = this._values[index];\r\n // Do nothing if the old value and the new value are the same\r\n if (oldValue !== value) {\r\n this._values[index] = value;\r\n if (this.events.isEnabled(\"setIndex\")) {\r\n this.events.dispatchImmediately(\"setIndex\", {\r\n type: \"setIndex\",\r\n target: this,\r\n index: index,\r\n oldValue: oldValue,\r\n newValue: value\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n oldValue: oldValue\r\n });\r\n }\r\n if (this.events.isEnabled(\"inserted\")) {\r\n this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: this,\r\n newValue: value\r\n });\r\n }\r\n }\r\n return oldValue;\r\n };\r\n /**\r\n * Adds an item to the list at a specific index, which pushes all the other\r\n * items further down the list.\r\n *\r\n * @param index Index\r\n * @param item An item to add\r\n */\r\n List.prototype.insertIndex = function (index, value) {\r\n checkBounds(index, this._values.length + 1);\r\n $array.insertIndex(this._values, index, value);\r\n if (this.events.isEnabled(\"insertIndex\")) {\r\n this.events.dispatchImmediately(\"insertIndex\", {\r\n type: \"insertIndex\",\r\n target: this,\r\n index: index,\r\n newValue: value\r\n });\r\n }\r\n if (this.events.isEnabled(\"inserted\")) {\r\n this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: this,\r\n newValue: value\r\n });\r\n }\r\n };\r\n /**\r\n * [_sortQuicksort description]\r\n *\r\n * @todo Description\r\n * @param low [description]\r\n * @param high [description]\r\n * @param order [description]\r\n */\r\n List.prototype._sortQuicksort = function (low, high, order) {\r\n if (low < high) {\r\n var p = this._sortPartition(low, high, order);\r\n this._sortQuicksort(low, p, order);\r\n this._sortQuicksort(p + 1, high, order);\r\n }\r\n };\r\n /**\r\n * [_sortPartition description]\r\n *\r\n * @todo Description\r\n * @param low [description]\r\n * @param high [description]\r\n * @param order [description]\r\n * @return [description]\r\n */\r\n List.prototype._sortPartition = function (low, high, order) {\r\n var values = this._values;\r\n var pivot = values[low];\r\n var i = low - 1;\r\n var j = high + 1;\r\n for (;;) {\r\n do {\r\n ++i;\r\n } while (order(values[i], pivot) < 0);\r\n do {\r\n --j;\r\n } while (order(values[j], pivot) > 0);\r\n if (i >= j) {\r\n return j;\r\n }\r\n else {\r\n this.swap(i, j);\r\n }\r\n }\r\n };\r\n /**\r\n * Reorders list items according to specific ordering function.\r\n *\r\n * @param order Ordering function\r\n */\r\n List.prototype.sort = function (order) {\r\n // https://en.wikipedia.org/wiki/Quicksort#Hoare_partition_scheme\r\n // @todo faster implementation of this\r\n // @todo test this\r\n this._sortQuicksort(0, this._values.length - 1, order);\r\n };\r\n /**\r\n * Swaps indexes of two items in the list.\r\n *\r\n * @param a Item 1\r\n * @param b Item 2\r\n */\r\n List.prototype.swap = function (a, b) {\r\n var len = this._values.length;\r\n checkBounds(a, len);\r\n checkBounds(b, len);\r\n if (a !== b) {\r\n var value_a = this._values[a];\r\n var value_b = this._values[b];\r\n this._values[a] = value_b;\r\n if (this.events.isEnabled(\"setIndex\")) {\r\n this.events.dispatchImmediately(\"setIndex\", {\r\n type: \"setIndex\",\r\n target: this,\r\n index: a,\r\n oldValue: value_a,\r\n newValue: value_b\r\n });\r\n }\r\n this._values[b] = value_a;\r\n if (this.events.isEnabled(\"setIndex\")) {\r\n this.events.dispatchImmediately(\"setIndex\", {\r\n type: \"setIndex\",\r\n target: this,\r\n index: b,\r\n oldValue: value_b,\r\n newValue: value_a\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Removes a value at specific index.\r\n *\r\n * @param index Index of value to remove\r\n * @return Removed value\r\n */\r\n List.prototype.removeIndex = function (index) {\r\n checkBounds(index, this._values.length);\r\n var oldValue = this._values[index];\r\n $array.removeIndex(this._values, index);\r\n if (this.events.isEnabled(\"removeIndex\")) {\r\n this.events.dispatchImmediately(\"removeIndex\", {\r\n type: \"removeIndex\",\r\n target: this,\r\n index: index,\r\n oldValue: oldValue\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n oldValue: oldValue\r\n });\r\n }\r\n return oldValue;\r\n };\r\n /**\r\n * Moves an item to a specific index within the list.\r\n *\r\n * If the index is not specified it will move the item to the end of the\r\n * list.\r\n *\r\n * @param value Item to move\r\n * @param index Index to place item at\r\n */\r\n List.prototype.moveValue = function (value, toIndex) {\r\n // TODO don't do anything if the desired index is the same as the current index\r\n var index = this.indexOf(value);\r\n // TODO remove all old values rather than only the first ?\r\n if (index !== -1) {\r\n var oldValue = this._values[index];\r\n $array.removeIndex(this._values, index);\r\n if (this.events.isEnabled(\"removeIndex\")) {\r\n this.events.dispatchImmediately(\"removeIndex\", {\r\n type: \"removeIndex\",\r\n target: this,\r\n index: index,\r\n oldValue: oldValue\r\n });\r\n }\r\n }\r\n if (toIndex == null) {\r\n toIndex = this._values.length;\r\n this._values.push(value);\r\n }\r\n else {\r\n $array.insertIndex(this._values, toIndex, value);\r\n }\r\n if (this.events.isEnabled(\"insertIndex\")) {\r\n this.events.dispatchImmediately(\"insertIndex\", {\r\n type: \"insertIndex\",\r\n target: this,\r\n index: toIndex,\r\n newValue: value\r\n });\r\n }\r\n if (index === -1) {\r\n if (this.events.isEnabled(\"inserted\")) {\r\n this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: this,\r\n newValue: value\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Adds an item to the end of the list.\r\n *\r\n * @param item An item to add\r\n */\r\n List.prototype.push = function (value) {\r\n var index = this._values.push(value) - 1;\r\n if (this.events.isEnabled(\"insertIndex\")) {\r\n this.events.dispatchImmediately(\"insertIndex\", {\r\n type: \"insertIndex\",\r\n target: this,\r\n index: index,\r\n newValue: value\r\n });\r\n }\r\n if (this.events.isEnabled(\"inserted\")) {\r\n this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: this,\r\n newValue: value\r\n });\r\n }\r\n return value;\r\n };\r\n /**\r\n * Adds an item as a first item in the list.\r\n *\r\n * @param item An item to add\r\n */\r\n List.prototype.unshift = function (value) {\r\n this.insertIndex(0, value);\r\n };\r\n /**\r\n * Adds multiple items to the list.\r\n *\r\n * @param items An Array of items to add\r\n */\r\n List.prototype.pushAll = function (values) {\r\n var _this = this;\r\n $array.each(values, function (value) {\r\n _this.push(value);\r\n });\r\n };\r\n /**\r\n * Copies and adds items from abother list.\r\n *\r\n * @param source A list top copy items from\r\n */\r\n List.prototype.copyFrom = function (source) {\r\n this.pushAll(source._values);\r\n };\r\n /**\r\n * Returns the last item from the list, and removes it.\r\n *\r\n * @return Item\r\n */\r\n List.prototype.pop = function () {\r\n var index = this._values.length - 1;\r\n return index < 0 ? undefined : this.removeIndex(this._values.length - 1);\r\n };\r\n /**\r\n * Returns the first item from the list, and removes it.\r\n *\r\n * @return Item\r\n */\r\n List.prototype.shift = function () {\r\n return this._values.length ? this.removeIndex(0) : undefined;\r\n };\r\n /**\r\n * Sets multiple items to the list.\r\n *\r\n * All current items are removed.\r\n *\r\n * @param newArray New items\r\n */\r\n List.prototype.setAll = function (newArray) {\r\n var _this = this;\r\n // @tod if a value exists in both the new and old arrays, don't send remove/insert events\r\n var oldArray = $array.copy(this._values);\r\n this._values.length = 0;\r\n $array.each(newArray, function (value) {\r\n _this._values.push(value);\r\n });\r\n if (this.events.isEnabled(\"setAll\")) {\r\n this.events.dispatchImmediately(\"setAll\", {\r\n type: \"setAll\",\r\n target: this,\r\n oldArray: oldArray,\r\n newArray: this._values // TODO make a copy ?\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n $array.each(oldArray, function (x) {\r\n _this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: _this,\r\n oldValue: x\r\n });\r\n });\r\n }\r\n if (this.events.isEnabled(\"inserted\")) {\r\n $array.each(this._values, function (x) {\r\n _this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: _this,\r\n newValue: x\r\n });\r\n });\r\n }\r\n };\r\n /**\r\n * Removes all items from the list.\r\n */\r\n List.prototype.clear = function () {\r\n this.setAll([]);\r\n };\r\n /**\r\n * Returns a list iterator.\r\n *\r\n * @return Iterator\r\n */\r\n List.prototype.iterator = function () {\r\n return $iter.fromArray(this._values);\r\n };\r\n /**\r\n * Returns an ES6 iterator for the list.\r\n */\r\n List.prototype[Symbol.iterator] = function () {\r\n var length, i;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n length = this._values.length;\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < length)) return [3 /*break*/, 4];\r\n return [4 /*yield*/, this._values[i]];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n ++i;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n };\r\n /**\r\n * Calls `f` for each element in the list.\r\n *\r\n * `f` should have at least one parameter defined which will get a current\r\n * item, with optional second argument - index.\r\n */\r\n List.prototype.each = function (f) {\r\n $array.each(this._values, f);\r\n };\r\n /**\r\n * Returns a specific range of list items, which can be iterated.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Code duplication with IndexedIterable\r\n * @param start Start index\r\n * @param end End index\r\n * @return Range\r\n */\r\n List.prototype.range = function (start, end) {\r\n if (start <= end) {\r\n var diff = end - start;\r\n start = Math.max(start, 0);\r\n end = Math.min(start + diff, this._values.length);\r\n return new IndexedIterable(this._values, start, end);\r\n }\r\n else {\r\n throw new Error(\"Start index must be lower than end index\");\r\n }\r\n };\r\n /**\r\n * Returns an iterator that has list items sorted backwards.\r\n *\r\n * @ignore Exclude from docs\r\n * @return List\r\n */\r\n List.prototype.backwards = function () {\r\n return new IndexedIterable(this._values, this._values.length, 0);\r\n };\r\n return List;\r\n}());\r\nexport { List };\r\n/**\r\n * A version of a [[List]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nvar ListTemplate = /** @class */ (function (_super) {\r\n __extends(ListTemplate, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param t Template object\r\n */\r\n function ListTemplate(t) {\r\n var _this = _super.call(this) || this;\r\n _this.template = t;\r\n return _this;\r\n }\r\n Object.defineProperty(ListTemplate.prototype, \"template\", {\r\n /**\r\n * @return Template object\r\n */\r\n get: function () {\r\n return this._template;\r\n },\r\n /**\r\n * A \"template\" object to copy all properties from when creating new list\r\n * items.\r\n *\r\n * @param v Template object\r\n */\r\n set: function (v) {\r\n v.isTemplate = true;\r\n this._template = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all elements from other list.\r\n *\r\n * @param source Source list\r\n */\r\n ListTemplate.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source.iterator(), function (value) {\r\n _this.push(value.clone());\r\n });\r\n };\r\n ListTemplate.prototype.create = function (make) {\r\n var clone = (make != null\r\n ? new make()\r\n : this.template.clone());\r\n this.push(clone);\r\n return clone;\r\n };\r\n /**\r\n * Creates an exact clone of the list, including its items and template.\r\n *\r\n * @return New list\r\n */\r\n ListTemplate.prototype.clone = function () {\r\n var out = new ListTemplate(this.template);\r\n var values = this.values;\r\n var length = values.length;\r\n for (var i = 0; i < length; ++i) {\r\n out.push(values[i].clone());\r\n }\r\n return out;\r\n };\r\n return ListTemplate;\r\n}(List));\r\nexport { ListTemplate };\r\n//# sourceMappingURL=List.js.map","/**\r\n * This module contains Color object definition\r\n */\r\nimport { registry } from \"../Registry\";\r\nimport * as $colors from \"./Colors\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * Represents a color.\r\n *\r\n * `Color` accepts value only in [[iRGB]] object format. To create `Color`\r\n * object by parsing it from any supported string-based formats, use helper\r\n * [[color]] function:\r\n *\r\n * ```TypeScript\r\n * am4core.color(\"#ff0000\");\r\n * am4core.color(\"#f00\");\r\n * am4core.color(\"rgb(255, 0, 0)\");\r\n * am4core.color(\"rgba(255, 0, 0, 0.5)\");\r\n * am4core.color({ r: 255, g: 0, b: 0 });\r\n * am4core.color(\"red\");\r\n * ```\r\n * ```JavaScript\r\n * am4core.color(\"#ff0000\");\r\n * am4core.color(\"#f00\");\r\n * am4core.color(\"rgb(255, 0, 0)\");\r\n * am4core.color(\"rgba(255, 0, 0, 0.5)\");\r\n * am4core.color({ r: 255, g: 0, b: 0 });\r\n * am4core.color(\"red\");\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nvar Color = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param color Source color\r\n */\r\n function Color(color) {\r\n this._value = color;\r\n }\r\n Object.defineProperty(Color.prototype, \"rgb\", {\r\n /**\r\n * Returns [[iRGB]] representation of the color.\r\n *\r\n * @return RGB object\r\n */\r\n get: function () {\r\n return this._value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Color.prototype, \"hex\", {\r\n /**\r\n * Returns color hex value string, e.g. \"#FF0000\".\r\n *\r\n * @return Hex color code\r\n */\r\n get: function () {\r\n return this._value ? $colors.rgbToHex(this._value) : \"none\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Color.prototype, \"rgba\", {\r\n /**\r\n * Returns an `rgba()` representation of the color, e.g.:\r\n * `rgba(255, 0, 0, 0.5)`.\r\n *\r\n * @return rgba color string\r\n */\r\n get: function () {\r\n return this._value ? $colors.rgbToRGBA(this._value) : \"none\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Color.prototype, \"alpha\", {\r\n /**\r\n * Returns current transparency.\r\n *\r\n * @return Alpha (0-1)\r\n */\r\n get: function () {\r\n if (this._value != null && this._value.a != null) {\r\n return this._value.a;\r\n }\r\n else {\r\n return 1;\r\n }\r\n },\r\n /**\r\n * Set alpha (transparency) of the color.\r\n *\r\n * @param value Alpha (0-1)\r\n */\r\n set: function (value) {\r\n if (this._value) {\r\n this._value.a = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Color.prototype, \"lightColor\", {\r\n /**\r\n * Returns current light color setting.\r\n *\r\n * @return Color\r\n */\r\n get: function () {\r\n if (!this._lightColor) {\r\n this._lightColor = new Color({ r: 255, g: 255, b: 255 });\r\n }\r\n return this._lightColor;\r\n },\r\n /**\r\n * Sets \"light\" color. Used when determining contrasting color.\r\n *\r\n * @param color Color\r\n */\r\n set: function (color) {\r\n this._lightColor = color;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Color.prototype, \"darkColor\", {\r\n /**\r\n * Returns current dark color setting.\r\n *\r\n * @return Color\r\n */\r\n get: function () {\r\n if (!this._darkColor) {\r\n this._darkColor = new Color({ r: 0, g: 0, b: 0 });\r\n }\r\n return this._darkColor;\r\n },\r\n /**\r\n * Sets \"dark\" color. Used when determining contrasting color.\r\n *\r\n * @param color Color\r\n */\r\n set: function (color) {\r\n this._darkColor = color;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Overrides `toString` method so that [[Color]] object can be used as\r\n * string.\r\n *\r\n * @ignore Exclude from docs\r\n * @return String represantion of color (usable in CSS)\r\n */\r\n Color.prototype.toString = function () {\r\n return this.alpha < 1 ? this.rgba : this.hex;\r\n };\r\n /**\r\n * Returns a new [[Color]] which is percent lighter (positive value),\r\n * or darker (negative value).\r\n *\r\n * Parameter is in the scale of -1 to 1.\r\n *\r\n * @param percent Increase/decrease lightness by X\r\n * @return New Color\r\n */\r\n Color.prototype.lighten = function (percent) {\r\n return new Color($colors.lighten(this.rgb, percent));\r\n };\r\n /**\r\n * Returns a new [[Color]] which is percent brighter (positive value),\r\n * or darker (negative value).\r\n *\r\n * Parameter is in the scale of -1 to 1.\r\n *\r\n * @param percent Increase/decrease brightness by X\r\n * @return New Color\r\n */\r\n Color.prototype.brighten = function (percent) {\r\n return new Color($colors.brighten(this.rgb, percent));\r\n };\r\n /**\r\n * Returns a new [[Color]] based on current color with specific saturation\r\n * applied.\r\n *\r\n * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\r\n * saturated).\r\n *\r\n * @param saturation Saturation (0-1)\r\n * @return New (saturated) color\r\n */\r\n Color.prototype.saturate = function (saturation) {\r\n return new Color($colors.saturate(this.rgb, saturation));\r\n };\r\n Object.defineProperty(Color.prototype, \"alternative\", {\r\n /**\r\n * Returns a either light or dark color that contrasts specifically with\r\n * this color.\r\n *\r\n * Uses properties `darkColor` (default black) and `lightColor` (default\r\n * white).\r\n *\r\n * Useful when determining which color label should be on a colored\r\n * background, so that it stands out.\r\n *\r\n * @return Contrasting color\r\n */\r\n get: function () {\r\n if (this.rgb != null) {\r\n return $colors.isLight(this.rgb) ? this.darkColor : this.lightColor;\r\n }\r\n else {\r\n throw new Error(\"Color does not exist\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Color;\r\n}());\r\nexport { Color };\r\n/**\r\n * Resolves an input variable to a normal [[iRGB]] color and creates [[Color]]\r\n * object for it.\r\n *\r\n * @param value Input value\r\n * @param alpha Alpha (0-1)\r\n * @return Color object\r\n */\r\nexport function color(value, alpha) {\r\n if (!$type.hasValue(value)) {\r\n return new Color(undefined);\r\n }\r\n if (typeof value == \"string\") {\r\n var cacheId = \"_color_\" + value + \"_\" + (alpha || \"1\");\r\n var cached = registry.getCache(cacheId);\r\n if (cached) {\r\n return new Color({\r\n r: cached.r,\r\n g: cached.g,\r\n b: cached.b,\r\n a: cached.a\r\n });\r\n }\r\n var rgb = $colors.rgb(value, alpha);\r\n registry.setCache(cacheId, rgb);\r\n return new Color(rgb);\r\n }\r\n // Check if it's already a Color object\r\n if (value instanceof Color) {\r\n if ($type.hasValue(alpha)) {\r\n value.alpha = alpha;\r\n }\r\n return value;\r\n }\r\n // Not a string or Color instance, it's the iRGB object then\r\n return new Color(value);\r\n}\r\n/**\r\n * Checks if supplied argument is instance of [[Color]].\r\n *\r\n * @param value Input value\r\n * @return Is Color?\r\n */\r\nexport function isColor(value) {\r\n return value instanceof Color;\r\n}\r\n/**\r\n * Converts any value to [[Color]].\r\n *\r\n * @param value Input value\r\n * @return Color\r\n */\r\nexport function castColor(value) {\r\n return color(value);\r\n}\r\n/**\r\n * Converts any value into a [[Color]].\r\n *\r\n * @param value Source value\r\n * @return Color object\r\n */\r\nexport function toColor(value) {\r\n if ($type.hasValue(value) && !isColor(value)) {\r\n return castColor(value);\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=Color.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcNotification = _interopRequireDefault(require(\"rc-notification\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar defaultDuration = 3;\nvar defaultTop;\nvar messageInstance;\nvar key = 1;\nvar prefixCls = 'ant-message';\nvar transitionName = 'move-up';\nvar getContainer;\nvar maxCount;\n\nfunction getMessageInstance(callback) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n\n _rcNotification[\"default\"].newInstance({\n prefixCls: prefixCls,\n transitionName: transitionName,\n style: {\n top: defaultTop\n },\n getContainer: getContainer,\n maxCount: maxCount\n }, function (instance) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n\n messageInstance = instance;\n callback(instance);\n });\n}\n\nfunction notice(args) {\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var iconType = {\n info: 'info-circle',\n success: 'check-circle',\n error: 'close-circle',\n warning: 'exclamation-circle',\n loading: 'loading'\n }[args.type];\n var target = args.key || key++;\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n\n return resolve(true);\n };\n\n getMessageInstance(function (instance) {\n var iconNode = /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: iconType,\n theme: iconType === 'loading' ? 'outlined' : 'filled'\n });\n var switchIconNode = iconType ? iconNode : '';\n instance.notice({\n key: target,\n duration: duration,\n style: {},\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-custom-content\").concat(args.type ? \" \".concat(prefixCls, \"-\").concat(args.type) : '')\n }, args.icon ? args.icon : switchIconNode, /*#__PURE__*/React.createElement(\"span\", null, args.content)),\n onClose: callback\n });\n });\n });\n\n var result = function result() {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n\n result.promise = closePromise;\n return result;\n}\n\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\n\nvar api = {\n open: notice,\n config: function config(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n }\n\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n },\n destroy: function destroy() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n }\n};\n['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n api[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return api.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n\n return api.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n});\napi.warn = api.warning;\nvar _default = api;\nexports[\"default\"] = _default;","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","/**\r\n * A collection of DOM-related functions.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Disposer } from \"./Disposer\";\r\nimport { readFrame, writeFrame } from \"./AsyncPending\";\r\nimport { options } from \"../Options\";\r\nimport * as $object from \"./Object\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * SVG namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var SVGNS = \"http://www.w3.org/2000/svg\";\r\n/**\r\n * XML namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var XMLNS = \"http://www.w3.org/2000/xmlns/\";\r\n/**\r\n * XLINK namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var XLINK = \"http://www.w3.org/1999/xlink\";\r\n/**\r\n * Function that adds a disposable event listener directly to a DOM element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dom A DOM element to add event to\r\n * @param type Event type\r\n * @param listener Event listener\r\n * @returns Disposable event\r\n */\r\nexport function addEventListener(dom, type, listener, options) {\r\n //@todo proper type check for options: EventListenerOptions | boolean (TS for some reason gives error on passive parameter)\r\n //console.log(type, dom);\r\n dom.addEventListener(type, listener, options || false);\r\n return new Disposer(function () {\r\n dom.removeEventListener(type, listener, options || false);\r\n });\r\n}\r\n/**\r\n * Finds and returns an element reference using following logic:\r\n * * If we pass in an element instance, we just return it back.\r\n * * If we pass in a string, the function looks for an element with such id.\r\n * * If no element with such id is found, we grab the first element with a tag name like this.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el Element definition (reference, or id, or tag name)\r\n * @return Element reference\r\n * @todo Review this function as it seems pretty fuzzy and hacky\r\n */\r\nexport function getElement(el) {\r\n if ($type.isString(el)) {\r\n var e = document.getElementById(el);\r\n if (e == null) {\r\n e = document.getElementsByClassName(el)[0];\r\n }\r\n if (e instanceof HTMLElement) {\r\n return e;\r\n }\r\n }\r\n else if (el instanceof HTMLElement) {\r\n return el;\r\n }\r\n}\r\n/**\r\n * Adds a class name to an HTML or SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @param className Class name to add\r\n */\r\nexport function addClass(element, className) {\r\n if (!element) {\r\n return;\r\n }\r\n if (element.classList) {\r\n var classes = className.split(\" \");\r\n $array.each(classes, function (name) {\r\n element.classList.add(name);\r\n });\r\n }\r\n else {\r\n var currentClassName = element.getAttribute(\"class\");\r\n if (currentClassName) {\r\n element.setAttribute(\"class\", currentClassName.split(\" \").filter(function (item) {\r\n return item !== className;\r\n }).join(\" \") + \" \" + className);\r\n }\r\n else {\r\n element.setAttribute(\"class\", className);\r\n }\r\n //element.className = element.className.replace(new RegExp(\"^\" + className + \"| \" + className), \"\") + \" \" + className;\r\n }\r\n}\r\n/**\r\n * Removes a class name from an HTML or SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @param className Class name to add\r\n */\r\nexport function removeClass(element, className) {\r\n if (!element) {\r\n return;\r\n }\r\n if (element.classList) {\r\n element.classList.remove(className);\r\n }\r\n else {\r\n var currentClassName = element.getAttribute(\"class\");\r\n if (currentClassName) {\r\n element.setAttribute(\"class\", currentClassName.split(\" \").filter(function (item) {\r\n return item !== className;\r\n }).join(\" \"));\r\n }\r\n //element.className = element.className.replace(new RegExp(\"^\" + className + \"| \" + className), \"\");\r\n }\r\n}\r\n/**\r\n * Sets style property on DOM element.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Still needed?\r\n */\r\nexport function setStyle(element, property, value) {\r\n element.style[property] = value;\r\n}\r\n/**\r\n * Gets the computed style value for an element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function getComputedStyle(element, property) {\r\n if (element.currentStyle) {\r\n return element.currentStyle[property];\r\n }\r\n return document.defaultView.getComputedStyle(element, null).getPropertyValue(property);\r\n}\r\n/**\r\n * Removes focus from any element by shifting focus to body.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function blur() {\r\n if (document.activeElement && document.activeElement != document.body) {\r\n if (document.activeElement.blur) {\r\n document.activeElement.blur();\r\n }\r\n else {\r\n var input = document.createElement(\"button\");\r\n input.style.position = \"fixed\";\r\n input.style.top = \"0px\";\r\n input.style.left = \"-10000px\";\r\n document.body.appendChild(input);\r\n input.focus();\r\n input.blur();\r\n document.body.removeChild(input);\r\n }\r\n }\r\n}\r\n/**\r\n * Tries to focus the element.\r\n *\r\n * @ignore Exlude from docs\r\n * @param element Element to focus\r\n */\r\nexport function focus(element) {\r\n if (element instanceof HTMLElement) {\r\n element.focus();\r\n }\r\n else {\r\n var input = document.createElement(\"input\");\r\n var fo = document.createElementNS(SVGNS, \"foreignObject\");\r\n fo.appendChild(input);\r\n element.appendChild(fo);\r\n input.focus();\r\n input.disabled = true;\r\n fo.remove();\r\n }\r\n /*if ((element).focus != undefined) {\r\n (element).focus();\r\n }\r\n else if (element instanceof SVGSVGElement) {\r\n // Not implemented\r\n // @todo implement focus fallback\r\n }*/\r\n}\r\n/**\r\n * Returns markup for the element including the element tag itself.\r\n * SVG elements do not support `outerHTML` so this functions applies of\r\n * a workaround which creates a new temporary wrapper, clones element and uses\r\n * wrapper's `innerHTML`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element to get full markup for\r\n * @return Markup\r\n * @deprecated Not in use anywhere\r\n */\r\nexport function outerHTML(element) {\r\n if (element.outerHTML) {\r\n return element.outerHTML;\r\n }\r\n else {\r\n var twrap = document.createElement(\"div\");\r\n var tnode = element.cloneNode(true);\r\n twrap.appendChild(tnode);\r\n var content = twrap.innerHTML;\r\n return content;\r\n }\r\n}\r\n/**\r\n * Checks if element is a valid DOM node.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el Element\r\n * @return `true` if element is a valid DOM node\r\n */\r\nexport function isElement(el) {\r\n return el instanceof Object && el && el.nodeType === 1;\r\n}\r\n/**\r\n * Checks of element `a` contains element `b`.\r\n *\r\n * @param a Aleged ascendant\r\n * @param b Aleged descendant\r\n * @return Contains?\r\n */\r\nexport function contains(a, b) {\r\n var cursor = b;\r\n while (true) {\r\n if (a === cursor) {\r\n return true;\r\n }\r\n else if (cursor.parentNode == null) {\r\n // TODO better ShadowRoot detection\r\n if (cursor.host == null) {\r\n return false;\r\n }\r\n else {\r\n cursor = cursor.host;\r\n }\r\n }\r\n else {\r\n cursor = cursor.parentNode;\r\n }\r\n }\r\n}\r\n/**\r\n * Returns the shadow root of the element or null\r\n *\r\n * @param a Node\r\n * @return Root\r\n */\r\nexport function getShadowRoot(a) {\r\n var cursor = a;\r\n while (true) {\r\n if (cursor.parentNode == null) {\r\n // TODO better ShadowRoot detection\r\n if (cursor.host != null) {\r\n return cursor;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n cursor = cursor.parentNode;\r\n }\r\n }\r\n}\r\n/**\r\n * Returns the root of the element (either the Document or the ShadowRoot)\r\n *\r\n * @param a Node\r\n * @return Root\r\n */\r\nexport function getRoot(a) {\r\n // TODO replace with Node.prototype.getRootNode\r\n var owner = a.ownerDocument;\r\n var cursor = a;\r\n while (true) {\r\n if (cursor.parentNode == null) {\r\n // If the cursor is the document, or it is a ShadowRoot\r\n // TODO better ShadowRoot detection\r\n if (cursor === owner || cursor.host != null) {\r\n return cursor;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n cursor = cursor.parentNode;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets the true target of the Event.\r\n *\r\n * This is needed to make events work with the shadow DOM.\r\n *\r\n * @param event Event\r\n * @return EventTarget\r\n */\r\nexport function eventTarget(event) {\r\n if (typeof event.composedPath === \"function\") {\r\n return event.composedPath()[0];\r\n }\r\n else {\r\n return event.target;\r\n }\r\n}\r\n/**\r\n * Copies attributes from one element to another.\r\n *\r\n * @ignore Exclude from docs\r\n * @param source Element to copy attributes from\r\n * @param target Element to copy attributes to\r\n */\r\nexport function copyAttributes(source, target) {\r\n $array.each(source.attributes, function (attr) {\r\n // TODO what if it's null ?\r\n if (attr.value != null) {\r\n target.setAttribute(attr.name, attr.value);\r\n }\r\n });\r\n}\r\n/**\r\n * [fixPixelPerfect description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param el Element\r\n */\r\nexport function fixPixelPerfect(el) {\r\n readFrame(function () {\r\n // sometimes IE doesn't like this\r\n // TODO figure out a way to remove this\r\n try {\r\n var rect = el.getBoundingClientRect();\r\n var left_1 = rect.left - Math.round(rect.left);\r\n var top_1 = rect.top - Math.round(rect.top);\r\n if (left_1 !== 0) {\r\n writeFrame(function () {\r\n el.style.left = left_1 + \"px\";\r\n });\r\n }\r\n if (top_1 !== 0) {\r\n writeFrame(function () {\r\n el.style.top = top_1 + \"px\";\r\n });\r\n }\r\n }\r\n catch (e) { }\r\n });\r\n}\r\n/**\r\n * [rootStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar rootStylesheet;\r\n/**\r\n * [getStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\nfunction getStylesheet(element) {\r\n if (element == null) {\r\n if (!$type.hasValue(rootStylesheet)) {\r\n // TODO use createElementNS ?\r\n var e = document.createElement(\"style\");\r\n e.type = \"text/css\";\r\n if (options.nonce != \"\") {\r\n e.setAttribute(\"nonce\", options.nonce);\r\n }\r\n document.head.appendChild(e);\r\n rootStylesheet = e.sheet;\r\n }\r\n return rootStylesheet;\r\n }\r\n else {\r\n // TODO use createElementNS ?\r\n var e = document.createElement(\"style\");\r\n e.type = \"text/css\";\r\n if (options.nonce != \"\") {\r\n e.setAttribute(\"nonce\", options.nonce);\r\n }\r\n element.appendChild(e);\r\n return e.sheet;\r\n }\r\n}\r\n/**\r\n * [makeStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param selector [description]\r\n * @return [description]\r\n */\r\nfunction appendStylesheet(root, selector) {\r\n var index = root.cssRules.length;\r\n root.insertRule(selector + \"{}\", index);\r\n return root.cssRules[index];\r\n}\r\n/**\r\n * Defines a class for a CSS rule.\r\n *\r\n * Can be used to dynamically add CSS to the document.\r\n */\r\nvar StyleRule = /** @class */ (function (_super) {\r\n __extends(StyleRule, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param selector CSS selector\r\n * @param styles An object of style attribute - value pairs\r\n */\r\n function StyleRule(element, selector, styles) {\r\n var _this = this;\r\n var root = getStylesheet(element);\r\n // TODO test this\r\n _this = _super.call(this, function () {\r\n // TODO a bit hacky\r\n var index = $array.indexOf(root.cssRules, _this._rule);\r\n if (index === -1) {\r\n throw new Error(\"Could not dispose StyleRule\");\r\n }\r\n else {\r\n // TODO if it's empty remove it from the DOM ?\r\n root.deleteRule(index);\r\n }\r\n }) || this;\r\n _this._rule = appendStylesheet(root, selector);\r\n $object.each(styles, function (key, value) {\r\n _this.setStyle(key, value);\r\n });\r\n return _this;\r\n }\r\n Object.defineProperty(StyleRule.prototype, \"selector\", {\r\n /**\r\n * @return CSS selector\r\n */\r\n get: function () {\r\n return this._rule.selectorText;\r\n },\r\n /**\r\n * A CSS selector text.\r\n *\r\n * E.g.: `.myClass p`\r\n *\r\n * @param selector CSS selector\r\n */\r\n set: function (selector) {\r\n this._rule.selectorText = selector;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets the same style properties with browser-specific prefixes.\r\n *\r\n * @param name Attribute name\r\n * @param value Attribute value\r\n */\r\n StyleRule.prototype._setVendorPrefixName = function (name, value) {\r\n var style = this._rule.style;\r\n style.setProperty(\"-webkit-\" + name, value, \"\");\r\n style.setProperty(\"-moz-\" + name, value, \"\");\r\n style.setProperty(\"-ms-\" + name, value, \"\");\r\n style.setProperty(\"-o-\" + name, value, \"\");\r\n style.setProperty(name, value, \"\");\r\n };\r\n /**\r\n * Sets a value for specific style attribute.\r\n *\r\n * @param name Attribute\r\n * @param value Value\r\n */\r\n StyleRule.prototype.setStyle = function (name, value) {\r\n if (name === \"transition\") {\r\n this._setVendorPrefixName(name, value);\r\n }\r\n else {\r\n this._rule.style.setProperty(name, value, \"\");\r\n }\r\n };\r\n return StyleRule;\r\n}(Disposer));\r\nexport { StyleRule };\r\n/**\r\n * An internal counter for unique style ids.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar styleId = 0;\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar StyleClass = /** @class */ (function (_super) {\r\n __extends(StyleClass, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param styles An object of style attribute - value pairs\r\n * @param name Class name\r\n */\r\n function StyleClass(element, styles, name) {\r\n var _this = this;\r\n var className = (!$type.hasValue(name)\r\n // TODO generate the classname randomly\r\n ? \"__style_\" + (++styleId) + \"__\"\r\n : name);\r\n _this = _super.call(this, element, \".\" + className, styles) || this;\r\n _this._className = className;\r\n return _this;\r\n }\r\n Object.defineProperty(StyleClass.prototype, \"className\", {\r\n /**\r\n * @return Class name\r\n */\r\n get: function () {\r\n return this._className;\r\n },\r\n /**\r\n * Class name.\r\n *\r\n * @param name Class name\r\n */\r\n set: function (name) {\r\n this._className = name;\r\n this.selector = \".\" + name;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts the whole class to\r\n * @ignore Exclude from docs\r\n */\r\n StyleClass.prototype.toString = function () {\r\n return this._className;\r\n };\r\n return StyleClass;\r\n}(StyleRule));\r\nexport { StyleClass };\r\nexport function ready(f) {\r\n if (document.readyState !== \"loading\") {\r\n f();\r\n }\r\n else {\r\n var listener_1 = function () {\r\n if (document.readyState !== \"loading\") {\r\n document.removeEventListener(\"readystatechange\", listener_1);\r\n f();\r\n }\r\n };\r\n document.addEventListener(\"readystatechange\", listener_1);\r\n }\r\n}\r\n/**\r\n * Returns a font fmaily name for the element (directly set or\r\n * computed/inherited).\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Font family\r\n */\r\nexport function findFont(element) {\r\n // Check if element has styles set\r\n var font = getComputedStyle(element, \"font-family\");\r\n if (!font) {\r\n // Completely transparent. Look for a parent\r\n var parent_1 = element.parentElement || element.parentNode;\r\n if (parent_1) {\r\n return findFont(parent_1);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return font;\r\n }\r\n}\r\n/**\r\n * Returns a font fmaily name for the element (directly set or\r\n * computed/inherited).\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Font family\r\n */\r\nexport function findFontSize(element) {\r\n // Check if element has styles set\r\n var font = getComputedStyle(element, \"font-size\");\r\n if (!font) {\r\n // Completely transparent. Look for a parent\r\n var parent_2 = element.parentElement || element.parentNode;\r\n if (parent_2) {\r\n return findFontSize(parent_2);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return font;\r\n }\r\n}\r\n/**\r\n * Checks whether element is not visible, whether directly or via its\r\n * ascendants.\r\n *\r\n * @param element Target element\r\n * @return Hidden?\r\n */\r\nexport function isHidden(element) {\r\n return (element.offsetParent === null);\r\n}\r\n/**\r\n * Checks wthether element is in the current viewport.\r\n *\r\n * @since 2.5.5\r\n * @param el Element\r\n * @return Within viewport?\r\n */\r\nexport function isElementInViewport(el, viewportTarget) {\r\n // Get position data of the element\r\n var rect = el.getBoundingClientRect();\r\n // Convert to array\r\n var targets = $type.isArray(viewportTarget) ? viewportTarget : viewportTarget ? [viewportTarget] : [];\r\n // Should we measure against specific viewport element?\r\n if (targets.length) {\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n // Check if viewport itself is visible\r\n if (!isElementInViewport(target)) {\r\n return false;\r\n }\r\n // Check if element is visible within the viewport\r\n var viewportRect = target.getBoundingClientRect();\r\n if (rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.top <= (viewportRect.top + viewportRect.height) &&\r\n rect.left <= (viewportRect.left + viewportRect.width)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n return (rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.left <= (window.innerWidth || document.documentElement.clientWidth));\r\n}\r\n//# sourceMappingURL=DOM.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * A base class for disposable objects.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar Disposer = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param dispose Function that disposes object\r\n */\r\n function Disposer(dispose) {\r\n this._disposed = false;\r\n this._dispose = dispose;\r\n }\r\n /**\r\n * Checks if object is disposed.\r\n *\r\n * @return Disposed?\r\n */\r\n Disposer.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Disposes the object.\r\n */\r\n Disposer.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n this._dispose();\r\n }\r\n };\r\n return Disposer;\r\n}());\r\nexport { Disposer };\r\n/**\r\n * A collection of related disposers that can be disposed in one go.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar MultiDisposer = /** @class */ (function (_super) {\r\n __extends(MultiDisposer, _super);\r\n function MultiDisposer(disposers) {\r\n return _super.call(this, function () {\r\n $array.each(disposers, function (x) {\r\n x.dispose();\r\n });\r\n }) || this;\r\n }\r\n return MultiDisposer;\r\n}(Disposer));\r\nexport { MultiDisposer };\r\n/**\r\n * A special kind of Disposer that has attached value set.\r\n *\r\n * If a new value is set using `set()` method, the old disposer value is\r\n * disposed.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar MutableValueDisposer = /** @class */ (function (_super) {\r\n __extends(MutableValueDisposer, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function MutableValueDisposer() {\r\n var _this = _super.call(this, function () {\r\n if ($type.hasValue(_this._disposer)) {\r\n _this._disposer.dispose();\r\n _this._disposer = undefined;\r\n }\r\n }) || this;\r\n return _this;\r\n }\r\n /**\r\n * Returns current value.\r\n *\r\n * @return Value\r\n */\r\n MutableValueDisposer.prototype.get = function () {\r\n return this._value;\r\n };\r\n /**\r\n * Sets value and disposes previous disposer if it was set.\r\n *\r\n * @param value New value\r\n * @param disposer Disposer\r\n */\r\n MutableValueDisposer.prototype.set = function (value, disposer) {\r\n if ($type.hasValue(this._disposer)) {\r\n this._disposer.dispose();\r\n }\r\n this._disposer = disposer;\r\n this._value = value;\r\n };\r\n /**\r\n * Resets the disposer value.\r\n */\r\n MutableValueDisposer.prototype.reset = function () {\r\n this.set(undefined, undefined);\r\n };\r\n return MutableValueDisposer;\r\n}(Disposer));\r\nexport { MutableValueDisposer };\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar CounterDisposer = /** @class */ (function (_super) {\r\n __extends(CounterDisposer, _super);\r\n function CounterDisposer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * [_counter description]\r\n *\r\n * @todo Description\r\n */\r\n _this._counter = 0;\r\n return _this;\r\n }\r\n /**\r\n * [increment description]\r\n *\r\n * @todo Description\r\n */\r\n CounterDisposer.prototype.increment = function () {\r\n var _this = this;\r\n // TODO throw an error if it is disposed\r\n ++this._counter;\r\n // TODO make this more efficient\r\n return new Disposer(function () {\r\n --_this._counter;\r\n if (_this._counter === 0) {\r\n _this.dispose();\r\n }\r\n });\r\n };\r\n return CounterDisposer;\r\n}(Disposer));\r\nexport { CounterDisposer };\r\n//# sourceMappingURL=Disposer.js.map","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","/**\r\n * This is the main class that encapsulates every object on the chart.\r\n *\r\n * If it's an element that is to be displayed on the screen at some point, its\r\n * class must extend [[Sprite]] class.\r\n */\r\nimport { __extends, __values } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SpriteState } from \"./SpriteState\";\r\nimport { SpriteEventDispatcher } from \"./SpriteEvents\";\r\nexport { SpriteEventDispatcher };\r\nimport { BaseObjectEvents } from \"./Base\";\r\nimport { Adapter, globalAdapter } from \"./utils/Adapter\";\r\nimport { Dictionary, DictionaryTemplate, DictionaryDisposer } from \"./utils/Dictionary\";\r\nimport { ListDisposer, List } from \"./utils/List\";\r\nimport { MultiDisposer, Disposer, MutableValueDisposer } from \"./utils/Disposer\";\r\nimport { Animation, AnimationDisposer } from \"./utils/Animation\";\r\nimport { getGhostPaper } from \"./rendering/Paper\";\r\nimport { Container } from \"./Container\";\r\nimport { Pattern } from \"./rendering/fills/Pattern\";\r\nimport { LinearGradient } from \"./rendering/fills/LinearGradient\";\r\nimport { RadialGradient } from \"./rendering/fills/RadialGradient\";\r\nimport { Color, color, toColor } from \"./utils/Color\";\r\nimport { getInteraction } from \"./interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"./interaction/Mouse\";\r\nimport { options } from \"./Options\";\r\nimport { registry } from \"./Registry\";\r\nimport { NumberFormatter } from \"./formatters/NumberFormatter\";\r\nimport { DateFormatter } from \"./formatters/DateFormatter\";\r\nimport { DurationFormatter } from \"./formatters/DurationFormatter\";\r\nimport { getTextFormatter } from \"./formatters/TextFormatter\";\r\nimport { Language } from \"./utils/Language\";\r\nimport { Export } from \"./export/Export\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $strings from \"./utils/Strings\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $iter from \"./utils/Iterator\";\r\nimport { system } from \"./System\";\r\nimport { Percent, percent } from \"./utils/Percent\";\r\n/**\r\n * Defines list ofvisual properties\r\n */\r\nexport var visualProperties = [\"fill\", \"fillOpacity\", \"stroke\", \"strokeOpacity\", \"strokeWidth\", \"strokeDasharray\", \"strokeDashoffset\", \"strokeLinecap\", \"strokeLinejoin\"]; // do not add opacity here, as it is used for showing/hiding\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Sprite represents any displayable element.\r\n *\r\n * This is the main class that encapsulates every object on the chart.\r\n *\r\n * If it's an element that is to be displayed on the screen at some point, its\r\n * class must extend [[Sprite]] class.\r\n *\r\n * [[Sprite]] class represents the a hierarchical structure. Every object that\r\n * extends [[Sprite]] can have children, that would inherit their properties,\r\n * such as language, formatters, etc.\r\n *\r\n * @see {@link SpriteState}\r\n * @see {@link ISpriteEvents} for a list of available events\r\n * @see {@link ISpriteAdapters} for a list of available Adapters\r\n *\r\n * @todo Review child elements that need to go into `_disposers`\r\n * @important\r\n */\r\nvar Sprite = /** @class */ (function (_super) {\r\n __extends(Sprite, _super);\r\n /**\r\n * Constructor:\r\n * * Creates initial node\r\n * * Sets default properties\r\n * * Creates required default states\r\n * * Inits accessibility\r\n */\r\n function Sprite() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Holds values for Sprite's properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * @ignore\r\n */\r\n _this._eventDispatcher = new SpriteEventDispatcher(_this);\r\n /**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this._bindings = {};\r\n /**\r\n * Holds indicator if this Sprite is a \"template\" to be used for creating\r\n * other Sprites from and should not be treated as full-fledged element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._isTemplate = false;\r\n _this._isPath = false;\r\n /**\r\n * Holds indicator whether this sprite was already initialized.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._inited = false;\r\n /**\r\n * Holds indicator whether this sprite was already initialized and ready.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._ready = false;\r\n /**\r\n * If `sprite.hide()` is called and we have \"hidden\" state and\r\n * `transitionDuration > 0`, we set `isHiding` flag to `true` in order to\r\n * avoid restarting animations in case `hide()` method is called multiple\r\n * times.\r\n */\r\n _this.isHiding = false;\r\n /**\r\n * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.\r\n * This was added becaus hidden state might have visibility set to true and so\r\n * there would not be possible to find out if a sprite is technically hidden or not.\r\n */\r\n _this._isHidden = false;\r\n /**\r\n * This property indicates if Sprite is currently being revealed from hidden\r\n * state. This is used to prevent multiple calls to `sprite.show()` to\r\n * restart reveal animation. (if enabled)\r\n */\r\n _this.isShowing = false;\r\n /**\r\n * Indicates if this element is a standalone instance. A \"standalone\r\n * instance\" means this is a autonomous object which maintains its own\r\n * set of controls like Preloader, Export, etc.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.isStandaloneInstance = false;\r\n /**\r\n * Indicates if togglable Sprite is currently active (toggled on).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._isActive = false;\r\n /**\r\n * A Sprite element to use as a mask for this Sprite.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._mask = new MutableValueDisposer();\r\n /**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this._positionPrecision = 3;\r\n /**\r\n * An instance of [[Language]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._language = new MutableValueDisposer();\r\n /**\r\n * Holds [[Export]] object.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._exporting = new MutableValueDisposer();\r\n /**\r\n * Should this Sprite be included when exporting?\r\n */\r\n _this._exportable = true;\r\n /**\r\n * Defines bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._bbox = { x: 0, y: 0, width: 0, height: 0 };\r\n /**\r\n * Indicates if this element is invalid and should be re-validated (redrawn).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.invalid = false;\r\n /**\r\n * Indicates if this elements position is invalid and should be repositioned\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.positionInvalid = false;\r\n /**\r\n * A collection of key/value pairs that can be used to bind specific Sprite\r\n * properties to [[DataItem]].\r\n *\r\n * For example: `fill` property can be bound to `myCustomColor` field in\r\n * DataItem. The Sprite will automatically get the value for `fill` from its\r\n * DataItem.\r\n *\r\n * Can be set for each [[SpriteState]] individually to override default\r\n * bindings.\r\n *\r\n * @see {@link SpriteState}\r\n */\r\n _this.propertyFields = {};\r\n /**\r\n * Specifies if property changes on this object should be propagated to the\r\n * objects cloned from this object.\r\n *\r\n * This setting affects property changes *after* cloning, since at the moment\r\n * of cloning all of properties from source object are copied to the clone\r\n * anyway.\r\n *\r\n * @default false\r\n */\r\n _this.applyOnClones = false;\r\n // unrotated unscaled\r\n _this._measuredWidthSelf = 0;\r\n _this._measuredHeightSelf = 0;\r\n // read only, sprite extreme coordinates\r\n /**\r\n * @ignore\r\n */\r\n _this.maxLeft = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxRight = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxTop = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxBottom = 0;\r\n // not rotated and not scaled\r\n /**\r\n * @ignore\r\n */\r\n _this.maxLeftSelf = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxRightSelf = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxTopSelf = 0;\r\n /**\r\n * @ignore\r\n */\r\n _this.maxBottomSelf = 0;\r\n _this._isDragged = false;\r\n _this._isResized = false;\r\n /**\r\n * @deprecated Moved to [[SpriteProperties]]\r\n */\r\n _this._disabled = false;\r\n _this._internalDisabled = false;\r\n _this._updateDisabled = false;\r\n _this._internalDefaultsApplied = false;\r\n /**\r\n * Time in milliseconds after which rollout event happens when user rolls-out of the sprite. This helps to avoid flickering in some cases.\r\n */\r\n _this.rollOutDelay = 0;\r\n /**\r\n * This flag is set to `true` for the initial sprite you create and place\r\n * to the div so that we could clear all additional\r\n * sprites/containers when this sprite is disposed.\r\n *\r\n * @ignore\r\n */\r\n _this.isBaseSprite = false;\r\n /**\r\n * Indicates whether this sprite should be cloned when cloning its parent\r\n * container. We set this to `false` in those cases when a sprite is created\r\n * by the class, so that when cloning a duplicate sprite would not appear.\r\n */\r\n _this.shouldClone = true;\r\n /**\r\n * A read-only flag which indicates if a sprite has completed its initial\r\n * animation (if `showOnInit = true`).\r\n *\r\n * In case `showOnInit = false`, `appeared` is set to `true` on init.\r\n *\r\n * @readonly\r\n */\r\n _this.appeared = false;\r\n /**\r\n * [ex description]\r\n *\r\n * @todo Description\r\n * @ignore\r\n */\r\n _this.ex = 0;\r\n /**\r\n * [ey description]\r\n *\r\n * @todo Description\r\n * @ignore\r\n */\r\n _this.ey = 0;\r\n /**\r\n * Indicates if the sprite can be moved around when resizing it with two fingers (will only work if draggable = false)\r\n * @ignore\r\n */\r\n _this.dragWhileResize = false;\r\n /**\r\n * @ignore\r\n */\r\n _this.measureFailed = false;\r\n /**\r\n * If this flag is set to true, calling show() will not reveal the sprite.\r\n *\r\n * @ignore\r\n */\r\n _this.preventShow = false;\r\n /**\r\n * When cloning a sprite, if the template has it's own tooltip assigned, this tooltip is also cloned by default.\r\n * This is not good for cpu and sometimes you might only need one single tooltip for all clones. Set this to false in order not to clone tooltip.\r\n */\r\n _this.cloneTooltip = true;\r\n _this.className = \"Sprite\";\r\n _this._disposers.push(_this._eventDispatcher);\r\n // Generate a unique ID\r\n $utils.used(_this.uid);\r\n // Create SVG group to hold everything in\r\n _this.group = _this.paper.addGroup(\"g\");\r\n // Set defaults\r\n // it is better to set defauls like this in order to save invaliation calls and events\r\n _this.setPropertyValue(\"scale\", 1);\r\n _this.setPropertyValue(\"rotation\", 0);\r\n _this.setPropertyValue(\"align\", \"none\");\r\n _this.setPropertyValue(\"valign\", \"none\");\r\n _this.setPropertyValue(\"pixelPerfect\", false);\r\n _this.setPropertyValue(\"visible\", true);\r\n _this.setPropertyValue(\"tooltipPosition\", \"fixed\");\r\n _this.setPropertyValue(\"verticalCenter\", \"none\");\r\n _this.setPropertyValue(\"horizontalCenter\", \"none\");\r\n _this.setPropertyValue(\"tooltipX\", percent(50));\r\n _this.setPropertyValue(\"tooltipX\", percent(50));\r\n _this.setPropertyValue(\"marginTop\", 0);\r\n _this.setPropertyValue(\"marginBottom\", 0);\r\n _this.setPropertyValue(\"marginLeft\", 0);\r\n _this.setPropertyValue(\"marginRight\", 0);\r\n _this.setPropertyValue(\"dx\", 0);\r\n _this.setPropertyValue(\"dy\", 0);\r\n _this.setPropertyValue(\"paddingTop\", 0);\r\n _this.setPropertyValue(\"paddingBottom\", 0);\r\n _this.setPropertyValue(\"paddingRight\", 0);\r\n _this.setPropertyValue(\"paddingLeft\", 0);\r\n _this.setPropertyValue(\"togglable\", false);\r\n _this.setPropertyValue(\"hidden\", false);\r\n _this.setPropertyValue(\"urlTarget\", \"_self\");\r\n _this.setPropertyValue(\"alwaysShowTooltip\", false);\r\n _this.setPropertyValue(\"showTooltipOn\", \"hover\");\r\n _this._prevMeasuredWidth = 0;\r\n _this._prevMeasuredHeight = 0;\r\n _this._measuredWidth = 0;\r\n _this._measuredHeight = 0;\r\n _this._isMeasured = true;\r\n // Invalidate the Sprite so that renderer knows it needs to be drawn\r\n _this.invalidate();\r\n //this.states.create(\"default\").properties.opacity = 1;\r\n // Apply the theme\r\n _this.applyTheme();\r\n //this._disposers.push(this._clickable);\r\n // Decorate adapter with events so that we can apply its settings whenever\r\n // it is modified\r\n // @todo Think what to do here. We can't just apply the adapter value to\r\n // property since not all of those are for properties. Commented out for\r\n // now.\r\n /*this.adapter.events.on(\"inserted\", (ev: any) => {\r\n (this)[ev.newValue.key] = (this)[ev.newValue.key];\r\n });\r\n this.adapter.events.on(\"removed\", (ev: any) => {\r\n (this)[ev.newValue.key] = (this)[ev.newValue.key];\r\n });*/\r\n // Add disposable dependencies to `_disposers` so they are automatically\r\n // disposed of when this object is disposed\r\n _this._disposers.push(_this.events);\r\n _this._disposers.push(_this.group);\r\n _this._disposers.push(_this._mask);\r\n _this._disposers.push(_this._language);\r\n _this._disposers.push(_this._exporting);\r\n //this._disposers.push(this._parent);\r\n //this._disposers.push(this._modal);\r\n _this._disposers.push(new Disposer(function () {\r\n $object.each(_this._bindings, function (key, value) {\r\n value.dispose();\r\n });\r\n }));\r\n _this.setPropertyValue(\"interactionsEnabled\", true);\r\n return _this;\r\n }\r\n Object.defineProperty(Sprite.prototype, \"events\", {\r\n /**\r\n * Event dispatcher.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/event-listeners/} for more info about Events\r\n */\r\n get: function () {\r\n return this._eventDispatcher;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"adapter\", {\r\n /**\r\n * Holds Adapter.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/adapters/} for more info about Adapters\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n this._adapterO = new Adapter(this);\r\n }\r\n return this._adapterO;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * ==========================================================================\r\n * ELEMENT VALIDATION, INIT, AND DRAWING STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Applies properties from all assigned themes.\r\n *\r\n * We do this here so that we can apply class names as well.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.applyTheme = function () {\r\n _super.prototype.applyTheme.call(this);\r\n if (options.autoSetClassName) {\r\n this.setClassName();\r\n }\r\n };\r\n /**\r\n * Returns theme(s) used by this object either set explicitly on this\r\n * element, inherited from parent, or inherited from [[System]].\r\n *\r\n * @return An array of theme references\r\n */\r\n Sprite.prototype.getCurrentThemes = function () {\r\n var themes = this._themes;\r\n if (themes) {\r\n return themes;\r\n }\r\n else {\r\n var parent_1 = this._parent;\r\n if (parent_1) {\r\n return parent_1.getCurrentThemes();\r\n }\r\n else {\r\n return registry.themes;\r\n }\r\n }\r\n };\r\n /**\r\n * Called just before element's validation, this function allows setting\r\n * defaults.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.applyInternalDefaults = function () {\r\n // Nothing here, but extending classes might override this function\r\n // so that they can set their defaults\r\n this._internalDefaultsApplied = true;\r\n };\r\n /**\r\n * Invalidates element.\r\n *\r\n * Object will be redrawn during the next update cycle.\r\n *\r\n * Please note that in most cases elements will auto-invalidate when needed. If\r\n * everything works, DO NOT use this method. Use it only if some changes do\r\n * not take otherwise.\r\n */\r\n Sprite.prototype.invalidate = function () {\r\n if (this.disabled || this._isTemplate || this.__disabled) {\r\n return;\r\n }\r\n // We no longer reset this on each invalidate, so that they are applied\r\n // only once, and do not overwrite user-defined settings\r\n //this._internalDefaultsApplied = false;\r\n if (!this.invalid) {\r\n this.invalid = true;\r\n registry.addToInvalidSprites(this);\r\n system.requestFrame();\r\n }\r\n };\r\n /**\r\n * Validates element:\r\n * * Triggers events\r\n * * Redraws the element\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.validate = function () {\r\n this.dispatchImmediately(\"beforevalidated\");\r\n // prevents from drawing if topparent is 0x0\r\n /*\r\n let topParent = this.topParent;\r\n\r\n if (topParent) {\r\n if (!topParent.maxWidth || !topParent.maxHeight) {\r\n this._disposers.push(topParent.events.once(\"maxsizechanged\", this.invalidate, this));\r\n }\r\n }*/\r\n // Set internal defaults\r\n if (!this._internalDefaultsApplied) {\r\n this.applyInternalDefaults();\r\n }\r\n this.beforeDraw();\r\n this.draw();\r\n this.invalid = false;\r\n registry.removeFromInvalidSprites(this);\r\n this.afterDraw();\r\n };\r\n /**\r\n * Invalidates element's position.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.invalidatePosition = function () {\r\n if (this.disabled || this._isTemplate) {\r\n return;\r\n }\r\n if (!this.positionInvalid) {\r\n this.positionInvalid = true;\r\n registry.addToInvalidPositions(this);\r\n system.requestFrame();\r\n }\r\n };\r\n /**\r\n * Transforms the element.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.validatePosition = function () {\r\n var pixelX = this.pixelX;\r\n var pixelY = this.pixelY;\r\n var dx = this.dx;\r\n var dy = this.dy;\r\n var x = pixelX + dx;\r\n var y = pixelY + dy;\r\n if (this._updateDisabled) {\r\n if (this._internalDisabled) {\r\n this.group.attr({ \"display\": \"none\" });\r\n }\r\n else {\r\n if (!this.disabled) {\r\n this.removeSVGAttribute(\"display\");\r\n }\r\n }\r\n this._updateDisabled = false;\r\n }\r\n var sizeChanged = this.measure();\r\n //if (!this.invalid) {\r\n var prevGroupTransform = this.group.transformString;\r\n this.group.moveTo({ x: x, y: y });\r\n this.group.rotation = this.rotation;\r\n if (this.nonScaling) {\r\n this.group.scale = this.scale / this.globalScale;\r\n }\r\n else {\r\n this.group.scale = this.scale;\r\n }\r\n if (prevGroupTransform != this.group.transformString || sizeChanged) {\r\n // not yet sure, this is to avoid many transforms=>container layout invalidation on initial buid\r\n if (prevGroupTransform == null) {\r\n this.dispatch(\"transformed\");\r\n }\r\n else {\r\n this.dispatchImmediately(\"transformed\");\r\n }\r\n // TODO clear existing positionchanged dispatches ?\r\n this.dispatch(\"positionchanged\");\r\n if (this.showTooltipOn == \"hit\" || this.showTooltipOn == \"always\") {\r\n this.updateTooltipPosition();\r\n }\r\n }\r\n //}\r\n // it might happen that x and y changed again, so we only remove if they didn't\r\n if (pixelX + dx == x && pixelY + dy == y) {\r\n registry.removeFromInvalidPositions(this);\r\n this.positionInvalid = false;\r\n }\r\n var maskRectangle = this._maskRectangle;\r\n // todo: verify this\r\n if (maskRectangle) {\r\n this._clipElement.moveTo({ x: maskRectangle.x - pixelX, y: maskRectangle.y - pixelY });\r\n }\r\n };\r\n /**\r\n * A placeholder method that is called **before** element begins to be drawn.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.beforeDraw = function () {\r\n };\r\n /**\r\n * A placeholder method that draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.draw = function () {\r\n };\r\n /**\r\n * A placeholder method that is called **after** element finishes drawing\r\n * itself.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.afterDraw = function () {\r\n var e_1, _a;\r\n if (this.isMeasured || this.horizontalCenter !== \"none\" || this.verticalCenter !== \"none\") {\r\n this.measureElement();\r\n }\r\n //this.applyMask();\r\n if (!this._inited) {\r\n if (this._adapterO) {\r\n try {\r\n // used to be applySVGAttrbutes here, this is more efficient\r\n for (var _b = __values(this._adapterO.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var key = _c.value;\r\n switch (key) {\r\n case \"mask\":\r\n case \"fill\":\r\n case \"opacity\":\r\n case \"fillOpacity\":\r\n case \"stroke\":\r\n case \"strokeOpacity\":\r\n case \"strokeWidth\":\r\n case \"shapeRendering\":\r\n case \"strokeDasharray\":\r\n case \"strokeDashoffset\":\r\n case \"strokeLinecap\":\r\n case \"strokeLinejoin\":\r\n case \"textDecoration\":\r\n case \"fontSize\":\r\n case \"fontFamily\":\r\n case \"fontWeight\":\r\n //case \"focusable\":\r\n //case \"tabindex\":\r\n //case \"role\":\r\n this[key] = this[key];\r\n break;\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n this.applyFilters();\r\n this.visible = this.visible;\r\n this.interactionsEnabled = this.getPropertyValue(\"interactionsEnabled\"); // can't use .interactionsEnabled as it get's parent's\r\n this._inited = true;\r\n if (!this.showOnInit) {\r\n this.appeared = true;\r\n }\r\n if (this.hidden) {\r\n this.hide(0);\r\n }\r\n this.applyMask();\r\n this.dispatch(\"validated\");\r\n this.dispatch(\"inited\");\r\n this.dispatchReady();\r\n }\r\n else {\r\n this.dispatch(\"validated\");\r\n }\r\n if (this.showTooltipOn == \"always\") {\r\n if (this.visible && !this.disabled && !this.__disabled) {\r\n this.showTooltip();\r\n }\r\n else {\r\n this.hideTooltip(0);\r\n }\r\n }\r\n };\r\n /**\r\n * Dispatches `\"ready\"` event. Sprite dispatches it right after `\"inited\"` event.\r\n *\r\n * @ignore\r\n */\r\n Sprite.prototype.dispatchReady = function () {\r\n if (!this.isReady()) {\r\n this._ready = true;\r\n this.dispatch(\"ready\");\r\n }\r\n };\r\n /**\r\n * Triggers a re-initialization of this element.\r\n *\r\n * Will result in complete redrawing of the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.reinit = function () {\r\n this._inited = false;\r\n this.setState(this.defaultState);\r\n this.invalidate();\r\n };\r\n /**\r\n * Handles the situation where parent element is resized.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.handleGlobalScale = function () {\r\n this.dispatch(\"globalscalechanged\");\r\n if (this.nonScalingStroke) {\r\n this.strokeWidth = this.strokeWidth;\r\n }\r\n if (this.nonScaling) {\r\n this.validatePosition();\r\n }\r\n this.updateFilterScale();\r\n };\r\n /**\r\n * Updates filter properties which might depend on scale\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.updateFilterScale = function () {\r\n var _this = this;\r\n $iter.each(this.filters.iterator(), function (filter) {\r\n filter.scale = _this.globalScale;\r\n });\r\n };\r\n /**\r\n * Removes itself from system's invalid lists.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.removeFromInvalids = function () {\r\n registry.removeFromInvalidSprites(this);\r\n registry.removeFromInvalidPositions(this);\r\n };\r\n /**\r\n * Copies all parameters from another [[Sprite]].\r\n *\r\n * @param source Source Sprite\r\n */\r\n Sprite.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, source);\r\n this.isMeasured = source.isMeasured;\r\n this.states.copyFrom(source.states);\r\n if (source.filters.length > 0) {\r\n source.filters.each(function (filter) {\r\n _this.filters.push(filter.clone());\r\n });\r\n }\r\n if (source._adapterO) {\r\n this.adapter.copyFrom(source._adapterO);\r\n }\r\n //helps to avoid calling getter which creates instance\r\n if (source[\"_interaction\"]) {\r\n this.interactions.copyFrom(source.interactions);\r\n }\r\n if (source[\"_plugins\"]) {\r\n this.plugins.copyFrom(source.plugins);\r\n }\r\n this.configField = source.configField;\r\n this.applyOnClones = source.applyOnClones;\r\n // this.numberFormatter = source.numberFormatter; // todo: this creates loose number formatter and copies it to all clones. somehow we need to know if source had numberFormatter explicitly created and not just because a getter was called.\r\n //this.mask = source.mask; need to think about this, generally this causes a lot of problems\r\n this.disabled = source.disabled;\r\n this.virtualParent = source.virtualParent;\r\n this.exportable = source.exportable;\r\n //@todo: create tooltip if it's on source but not on this?\r\n //const tooltip = this._tooltip;\r\n //if (tooltip) {\r\n //\ttooltip.copyFrom(source.tooltip);\r\n //}\r\n if (source._tooltip) {\r\n if (this._tooltip) {\r\n this._tooltip.copyFrom(source.tooltip);\r\n }\r\n else {\r\n if (source.cloneTooltip) {\r\n this.tooltip = source.tooltip.clone();\r\n }\r\n else {\r\n this._tooltip = source.tooltip;\r\n }\r\n }\r\n }\r\n //if ((source)[\"_tooltip\"] && !this._tooltip) {\r\n //\tthis._tooltip = (source)[\"_tooltip\"];\r\n //}\r\n this._showSystemTooltip = source.showSystemTooltip;\r\n $utils.copyProperties(source.propertyFields, this.propertyFields);\r\n $utils.copyProperties(source.properties, this);\r\n if (source.fillModifier) {\r\n this.fillModifier = source.fillModifier.clone();\r\n }\r\n if (source.strokeModifier) {\r\n this.strokeModifier = source.strokeModifier.clone();\r\n }\r\n if (source.focusFilter) {\r\n this.focusFilter = source.focusFilter.clone();\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n Sprite.prototype.dispose = function () {\r\n if (!this.isDisposed()) {\r\n if (this.showTooltipOn == \"always\" && this.tooltip) {\r\n this.tooltip.hide();\r\n }\r\n this.dispatchImmediately(\"beforedisposed\");\r\n if (this.isBaseSprite) {\r\n if (this.htmlContainer) {\r\n while (this.htmlContainer.childNodes.length > 0) {\r\n this.htmlContainer.removeChild(this.htmlContainer.firstChild);\r\n }\r\n }\r\n this.isBaseSprite = false;\r\n }\r\n _super.prototype.dispose.call(this);\r\n // Clear adapters\r\n if (this._adapterO) {\r\n this._adapterO.clear();\r\n }\r\n if (this.applyOnClones) {\r\n if (this._clones) {\r\n for (var i = this._clones.length - 1; i >= 0; i--) {\r\n var clone = this._clones.getIndex(i);\r\n clone.dispose();\r\n }\r\n }\r\n }\r\n if (this._svgContainer) {\r\n this._svgContainer.dispose();\r\n }\r\n if (this._interactionDisposer) {\r\n this._interactionDisposer.dispose();\r\n this._interactionDisposer = undefined;\r\n }\r\n if (this._urlDisposer) {\r\n this._urlDisposer.dispose();\r\n }\r\n this.removeFromInvalids();\r\n if (this.element) {\r\n this.element.dispose();\r\n }\r\n if (this.group) {\r\n this.group.dispose();\r\n }\r\n if (this._numberFormatter) {\r\n this._numberFormatter.dispose();\r\n }\r\n if (this._focusFilter) {\r\n this._focusFilter.dispose();\r\n }\r\n var stroke = this.stroke;\r\n if (stroke && !(stroke instanceof Color) && stroke.dispose) {\r\n if (this.clonedFrom && this.clonedFrom.stroke == stroke) {\r\n // do nothing\r\n }\r\n else {\r\n stroke.dispose();\r\n }\r\n }\r\n // TODO a bit hacky\r\n var fill = this.fill;\r\n if (fill && !(fill instanceof Color) && fill.dispose) {\r\n if (this.clonedFrom && this.clonedFrom.fill == fill) {\r\n // do nothing\r\n }\r\n else {\r\n fill.dispose();\r\n }\r\n }\r\n // remove from map\r\n if ($type.hasValue(this.id)) {\r\n this.map.removeKey(this.id);\r\n }\r\n this.parent = undefined;\r\n if (this._filters) {\r\n while (this._filters.length > 0) {\r\n var filter = this._filters.getIndex(0);\r\n filter.dispose();\r\n this._filters.removeValue(filter);\r\n }\r\n }\r\n this._alwaysShowDisposers = undefined;\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"isTemplate\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Is template?\r\n */\r\n get: function () {\r\n return this._isTemplate;\r\n },\r\n /**\r\n * Indicates if this element is a \"template\".\r\n *\r\n * Template Sprites act only as a holders for config for other \"real\"\r\n * elements to be cloned from.\r\n *\r\n * Templates are treated differently, as they are not validated, redrawn, or\r\n * otherwise are processed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Is template?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this._isTemplate != value) {\r\n this._isTemplate = value;\r\n if (this instanceof Container) {\r\n $iter.each(this.children.iterator(), function (child) {\r\n child.isTemplate = value;\r\n });\r\n }\r\n if (value) {\r\n this.parent = this._parent;\r\n this.removeFromInvalids();\r\n }\r\n else {\r\n this.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"showSystemTooltip\", {\r\n /**\r\n * @return Show system tooltip?\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._showSystemTooltip)) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.showSystemTooltip;\r\n }\r\n else if (this._parent) {\r\n return this._parent.showSystemTooltip;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return this._showSystemTooltip;\r\n },\r\n /**\r\n * Indicates whether the element should attempt to construct itself in a way\r\n * so that system tooltip is shown if its `readerTitle` is set.\r\n *\r\n * @param value Show system tooltip?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this._showSystemTooltip != value) {\r\n this._showSystemTooltip = value;\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"topParent\", {\r\n /**\r\n * ==========================================================================\r\n * HIERARCHY AND STRUCTURE RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Sprites's top-level [[Container]].\r\n *\r\n * Please note that in most cases it won't be the chart element.\r\n *\r\n * To access base chart element, use `baseSprite` instead.\r\n *\r\n * @return Top-level ascendant\r\n */\r\n get: function () {\r\n if (this._topParent) {\r\n return this._topParent;\r\n }\r\n else {\r\n if (this._parent) {\r\n return this._parent.topParent;\r\n }\r\n }\r\n },\r\n /**\r\n * @ignore\r\n * @param value {Container} top parent of a sprite\r\n */\r\n set: function (value) {\r\n this._topParent = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"parent\", {\r\n /**\r\n * @return Parent container\r\n */\r\n get: function () {\r\n return this._parent;\r\n },\r\n /**\r\n * Elements' parent [[Container]].\r\n *\r\n * @param parent Parent container\r\n */\r\n set: function (parent) {\r\n if (this._isTemplate) {\r\n return;\r\n }\r\n // TODO is this needed ?\r\n $utils.used(this.paper);\r\n var oldParent = this._parent;\r\n if (oldParent != parent) {\r\n if (oldParent) {\r\n oldParent.children.removeValue(this);\r\n }\r\n this._parent = parent;\r\n if (parent) {\r\n this.topParent = parent.topParent;\r\n if (parent.isTemplate) {\r\n this.isTemplate = true;\r\n }\r\n this.baseId = parent.baseId;\r\n parent.children.push(this);\r\n // insert handler at Container invalidates + invalidatesLayout + adds to group\r\n if (this._tooltip && !this._tooltipContainer) {\r\n this._tooltip.parent = parent.tooltipContainer;\r\n }\r\n if (!this._dataItem) {\r\n this.dataItem = parent.dataItem;\r\n }\r\n this.handleAlwaysShowTooltip();\r\n if (this.dataItem) {\r\n // No need to apply accessibility if there's no data item\r\n // The whole reason of applying it here is to populate data\r\n // placesholders, and if tehre's no data item, it won't work anyway\r\n this.applyAccessibility();\r\n }\r\n this.dispatchImmediately(\"parentset\");\r\n }\r\n else {\r\n this.topParent = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.handleAlwaysShow = function () {\r\n this.showTooltip();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.handleAlwaysShowTooltip = function () {\r\n var sprite = this;\r\n var oldDisposers = this._alwaysShowDisposers;\r\n if (oldDisposers) {\r\n $array.each(oldDisposers, function (oldDisposer) {\r\n oldDisposer.dispose();\r\n });\r\n }\r\n this._alwaysShowDisposers = [];\r\n if (this.showTooltipOn == \"always\") {\r\n while (sprite != undefined) {\r\n var disposer = sprite.events.on(\"visibilitychanged\", this.handleAlwaysShow, this, false);\r\n this.addDisposer(disposer);\r\n this._alwaysShowDisposers.push(disposer);\r\n sprite = sprite.parent;\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"virtualParent\", {\r\n /**\r\n * @return Virtual parent\r\n */\r\n get: function () {\r\n return this._virtualParent;\r\n },\r\n /**\r\n * Element's \"virtual\" parent.\r\n *\r\n * This is required in ordere to maintain proper inheritance (like\r\n * formatters).\r\n *\r\n * Sometimes an element is a \"logical\" parent, even though it's not a direct\r\n * ascendant.\r\n *\r\n * Example: a bullet is not a child of the axis, but it would make sense\r\n * for it to inherit series' formatters.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Virtual parent\r\n */\r\n set: function (value) {\r\n this._virtualParent = value;\r\n if (this.dataItem) {\r\n // No need to apply accessibility if there's no data item\r\n // The whole reason of applying it here is to populate data\r\n // placesholders, and if tehre's no data item, it won't work anyway\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Moves `` to correct place in DOM.\r\n *\r\n * Some elements are initially created in \"ghost\" container. When moving\r\n * those into proper place in DOM, their respective `` need to be moved\r\n * as well.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.appendDefs = function () {\r\n if (this.filterElement) {\r\n this.paper.appendDef(this.filterElement);\r\n }\r\n var fill = this.fill;\r\n if (fill && fill.element) {\r\n this.paper.appendDef(fill.element);\r\n }\r\n var stroke = this.stroke;\r\n if (stroke && stroke.element) {\r\n this.paper.appendDef(stroke.element);\r\n }\r\n if (this.fillModifier && this.fill instanceof Color) {\r\n var fill_1 = this.fillModifier.modify(this.fill);\r\n if (fill_1 && fill_1.element) {\r\n this.paper.appendDef(fill_1.element);\r\n }\r\n }\r\n if (this.strokeModifier && this.stroke instanceof Color) {\r\n var stroke_1 = this.strokeModifier.modify(this.stroke);\r\n if (stroke_1 && stroke_1.element) {\r\n this.paper.appendDef(stroke_1.element);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this.paper.appendDef(this._clipPath);\r\n }\r\n if (this._exportable === false) {\r\n this.exportable = false;\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"map\", {\r\n /**\r\n * Returns a [[Dictionary]] which maps object ids with their respective\r\n * objects.\r\n *\r\n * Can be used to retrieve any object by id, e.g.:\r\n *\r\n * ```TypeScript\r\n * console.log(mySprite.map.getKey(\"myid\"));\r\n * ```\r\n * ```JavaScript\r\n * console.log(mySprite.map.getKey(\"myid\"));\r\n * ```\r\n *\r\n * @return Map collection\r\n */\r\n get: function () {\r\n var top = this.topParent;\r\n if (top) {\r\n return top.map;\r\n }\r\n else if (!this._map) {\r\n this._map = new Dictionary();\r\n }\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"delayedMap\", {\r\n /**\r\n * @ignore\r\n * @return Map collection\r\n */\r\n get: function () {\r\n var top = this.topParent;\r\n if (top) {\r\n return top.delayedMap;\r\n }\r\n else if (!this._delayedMap) {\r\n this._delayedMap = new Dictionary();\r\n }\r\n return this._delayedMap;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"id\", {\r\n /**\r\n * @return ID\r\n */\r\n get: function () {\r\n return this._id;\r\n },\r\n /**\r\n * Element's user-defined ID.\r\n *\r\n * Will throw an Error if there already is an object with the same ID.\r\n *\r\n * Please note that above check will be performed withing the scope of the\r\n * current chart instance. It will not do checks across other chart instances\r\n * or in globally in DOM.\r\n *\r\n * Make sure the IDs are unique.\r\n *\r\n * @param value ID\r\n */\r\n set: function (value) {\r\n if (this._id != value) {\r\n this._id = value;\r\n if (this.map.hasKey(value)) {\r\n throw Error(\"Duplicate id (\" + value + \") used on multiple objects.\");\r\n }\r\n else {\r\n this.map.setKey(value, this);\r\n }\r\n if (options.autoSetClassName) {\r\n this.setClassName();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"dom\", {\r\n /**\r\n * ==========================================================================\r\n * ELEMENT AND DOM TREE MANIPULATION AND MEASURING\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns DOM element reference associated with this element.\r\n *\r\n * @readonly\r\n * @return DOM element\r\n */\r\n get: function () {\r\n return this.group.node;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n else {\r\n var parent_2 = this._parent;\r\n if (parent_2) {\r\n return parent_2.paper;\r\n }\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * A [[Paper]] instance to place elements on.\r\n *\r\n * If there's no Paper set for this element, it goes up the ascendant tree\r\n * until it finds one.\r\n *\r\n * This method is used by important `addChild()` method, so it's essential\r\n * to have a [[Paper]] instance.\r\n *\r\n * If this element has a separate `htmlContainer` set, it will have a\r\n * [[Paper]] instance itself.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n this.setPaper(paper);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets [[Paper]] instance to use to draw elements.\r\n * @ignore\r\n * @param paper Paper\r\n * @return true if paper was changed, false, if it's the same\r\n */\r\n Sprite.prototype.setPaper = function (paper) {\r\n var oldPaper = this._paper;\r\n if (oldPaper != paper) {\r\n this._paper = paper;\r\n this.appendDefs();\r\n return true;\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"htmlContainer\", {\r\n /**\r\n * @return HTML element\r\n */\r\n get: function () {\r\n if (this._htmlContainer) {\r\n return this._htmlContainer;\r\n }\r\n else {\r\n var parent_3 = this._parent;\r\n if (parent_3) {\r\n return parent_3.htmlContainer;\r\n }\r\n }\r\n },\r\n /**\r\n * An HTML element to be used when placing wrapper element (`
`)\r\n * for the whole chart.\r\n *\r\n * This is the same for **all** elements within the same chart.\r\n *\r\n * @param htmlContainer HTML element\r\n */\r\n set: function (htmlContainer) {\r\n this._htmlContainer = htmlContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"titleElement\", {\r\n /**\r\n * Creates (if not yet created) and returns element's `` element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Title element\r\n */\r\n get: function () {\r\n if (!this._titleElement) {\r\n this._titleElement = this.paper.add(\"title\");\r\n this.group.add(this._titleElement);\r\n }\r\n return this._titleElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"descriptionElement\", {\r\n /**\r\n * Creates (if not yet created) and returns element's `<desc>` element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Desc element\r\n */\r\n get: function () {\r\n if (!this._descriptionElement) {\r\n this._descriptionElement = this.paper.add(\"desc\");\r\n this.group.add(this._descriptionElement);\r\n }\r\n return this._descriptionElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"filters\", {\r\n /**\r\n * Returns list of SVG filters (effects) applied to element. If the filter\r\n * list is not yet initilized, creates and returns an empty one.\r\n * Note, not all filters combine well with one another. We recommend using one filter per sprite.\r\n *\r\n * @return List of filters\r\n */\r\n get: function () {\r\n if (!this._filters) {\r\n this._filters = new List();\r\n // TODO only add certain events ?\r\n this._disposers.push(this._filters.events.onAll(this.applyFilters, this));\r\n this._disposers.push(new ListDisposer(this._filters));\r\n }\r\n return this._filters;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets required SVG attributes. Must be called every time an element is\r\n * redrawn so that attributes are (re)applied.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.setSVGAttributes = function () {\r\n this.fill = this.fill;\r\n this.opacity = this.opacity;\r\n this.fillOpacity = this.fillOpacity;\r\n this.stroke = this.stroke;\r\n this.strokeOpacity = this.strokeOpacity;\r\n this.shapeRendering = this.shapeRendering;\r\n this.strokeDasharray = this.strokeDasharray;\r\n this.strokeDashoffset = this.strokeDashoffset;\r\n this.strokeLinecap = this.strokeLinecap;\r\n this.strokeLinejoin = this.strokeLinejoin;\r\n this.focusable = this.focusable;\r\n this.tabindex = this.tabindex;\r\n this.role = this.role;\r\n };\r\n /**\r\n * Sets an attribute directly on an SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param attribute Attribute object\r\n */\r\n Sprite.prototype.setSVGAttribute = function (attribute) {\r\n this.group.attr(attribute);\r\n };\r\n /**\r\n * Removes an attribute directly from SVG element.\r\n *\r\n * @param attribute Attribute key to remove\r\n */\r\n Sprite.prototype.removeSVGAttribute = function (attribute) {\r\n this.group.removeAttr(attribute);\r\n };\r\n /**\r\n * Sets `class` attribute of the elements SVG node.\r\n *\r\n * Uses `am4core.options.classNamePrefix`.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.setClassName = function () {\r\n var className = this.className;\r\n var classNamePrefix = options.classNamePrefix;\r\n if (this.element) {\r\n this.element.addClass(classNamePrefix + className);\r\n }\r\n this.group.addClass(classNamePrefix + className + \"-group\");\r\n if ($type.hasValue(this.id)) {\r\n this.group.addClass(classNamePrefix + this.id);\r\n }\r\n if (this.userClassName) {\r\n this.group.addClass(this.userClassName);\r\n }\r\n };\r\n /**\r\n * Adds an `id` attribute the the element and returns the id.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Element's ID\r\n */\r\n Sprite.prototype.uidAttr = function () {\r\n this.setSVGAttribute({ \"id\": this.uid });\r\n return this.uid;\r\n };\r\n /**\r\n * [updateClipPath description]\r\n *\r\n * @todo Description\r\n */\r\n Sprite.prototype.updateClipPath = function () {\r\n var element = this._clipElement;\r\n if (element) {\r\n element.moveTo({ x: this.mask.pixelX, y: this.mask.pixelY });\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.createClipPath = function () {\r\n if (!this._clipPath) {\r\n this._clipPath = this.paper.addGroup(\"clipPath\");\r\n this.paper.appendDef(this._clipPath);\r\n this._disposers.push(this._clipPath);\r\n var id = registry.getUniqueId();\r\n this._clipPath.attr({ \"id\": id });\r\n this.group.attr({ \"clip-path\": \"url(\\\"\" + $utils.getBaseURI() + id + \"\\\")\" });\r\n }\r\n };\r\n /**\r\n * Applies the mask Sprite.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.applyMask = function () {\r\n var mask = this.mask;\r\n if (this._clipPath && mask) {\r\n // Container\r\n if (mask instanceof Container) {\r\n this._clipElement.attr({ \"width\": $math.max(0, mask.pixelWidth), \"height\": $math.max(0, mask.pixelHeight) });\r\n var point = $utils.spritePointToSprite({ x: mask.pixelX, y: mask.pixelY }, mask.parent, this);\r\n this._clipPath.x = point.x;\r\n this._clipPath.y = point.y;\r\n }\r\n // Sprite\r\n else {\r\n if (mask.element && mask.element != this._clipElement) {\r\n this._clipElement = mask.element;\r\n this._clipPath.add(this._clipElement);\r\n }\r\n this._clipPath.scale = mask.scale;\r\n this._clipPath.x = mask.pixelX;\r\n this._clipPath.y = mask.pixelY;\r\n this._clipPath.rotation = mask.rotation;\r\n }\r\n }\r\n };\r\n /**\r\n * Applies filters to the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.applyFilters = function () {\r\n var _this = this;\r\n // we create a separate filter for each sprite as otherwise it would be impossible to animate filter.\r\n // svg doesn't support multiple filters applied to one element, so we put all the primitives to one filterElement of a sprite.\r\n if (this._filters && this._filters.length > 0) {\r\n var width_1 = 100;\r\n var height_1 = 100;\r\n if (!this.filterElement) {\r\n this.filterElement = this.paper.addGroup(\"filter\");\r\n this._disposers.push(this.filterElement);\r\n }\r\n else {\r\n this.filterElement.removeChildNodes();\r\n }\r\n this.paper.appendDef(this.filterElement);\r\n var id = \"filter-\" + this.uid;\r\n this.filterElement.attr({ \"id\": id });\r\n $iter.each(this.filters.iterator(), function (filter) {\r\n filter.sprite = _this;\r\n filter.paper = _this.paper;\r\n _this.filterElement.attr({ filterUnits: filter.filterUnits });\r\n filter.appendPrimitives(_this.filterElement);\r\n if (filter.width > width_1) {\r\n width_1 = filter.width;\r\n }\r\n if (filter.height > height_1) {\r\n height_1 = filter.height;\r\n }\r\n filter.scale = _this.globalScale;\r\n });\r\n var w = width_1 + \"%\";\r\n var h = height_1 + \"%\";\r\n /* temporarily removed as it is breaking tooltips on Safari @todo come back to this\r\n if (this._measuredHeight <= 1) {\r\n h = height + \"\";\r\n }\r\n\r\n if (this._measuredWidth <= 1) {\r\n h = width + \"\";\r\n }*/\r\n this.filterElement.attr({ \"width\": w, \"height\": h, \"x\": -(width_1 - 100) / 2 + \"%\", \"y\": -(height_1 - 100) / 2 + \"%\" });\r\n this.group.attr({ \"filter\": \"url(\\\"\" + $utils.getBaseURI() + id + \"\\\")\" });\r\n }\r\n else if (this.filterElement) {\r\n this.group.removeAttr(\"filter\");\r\n this.filterElement.removeChildNodes();\r\n }\r\n };\r\n /**\r\n * [removeClipPath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Sprite.prototype.removeClipPath = function () {\r\n if (this._clipPath) {\r\n //this._clipPath.dispose();\r\n this.removeDispose(this._clipPath);\r\n this._clipPath = undefined;\r\n }\r\n };\r\n /**\r\n * [setElement description]\r\n *\r\n * @ignore\r\n * @todo Description\r\n * @param element [description]\r\n */\r\n Sprite.prototype.setElement = function (element) {\r\n this.element = element;\r\n this.setSVGAttributes();\r\n this.applyAccessibility();\r\n };\r\n Object.defineProperty(Sprite.prototype, \"element\", {\r\n /**\r\n * @return Element\r\n */\r\n get: function () {\r\n return this._element;\r\n },\r\n /**\r\n * The main element for this Sprite, usually an SVG `<g>`.\r\n *\r\n * All other sub-elements are created in it.\r\n *\r\n * @param element Element\r\n */\r\n set: function (element) {\r\n // Destroy previous element if there was one before\r\n this.removeElement();\r\n // Set new element\r\n this._element = element;\r\n // Add element to group\r\n // Since we are adding Element to group, which is already in the\r\n // `.disposers` it will be removed automatically when Sprite is disposed\r\n // of\r\n this.group.add(element);\r\n if (element.node instanceof SVGPathElement) {\r\n this._isPath = true;\r\n }\r\n // This is needed if someone is setting element not in draw method but\r\n // from outside\r\n if (!this.invalid) {\r\n this.validate();\r\n }\r\n if (options.autoSetClassName) {\r\n this.setClassName();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"svgContainer\", {\r\n /**\r\n * HTML container (`<div>`) which is used to place chart's `<svg>` element\r\n * in.\r\n *\r\n * @return Container for chart elements\r\n */\r\n get: function () {\r\n if (this._svgContainer) {\r\n return this._svgContainer;\r\n }\r\n else if (this._parent) {\r\n return this._parent.svgContainer;\r\n }\r\n },\r\n /**\r\n * Sets HTML container to add SVG and other chart elements to.\r\n *\r\n * @param svgContainer Container for chart elements\r\n */\r\n set: function (svgContainer) {\r\n this._svgContainer = svgContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Measures main element.\r\n *\r\n * Saves measurements into private `_bbox` property.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.measureElement = function () {\r\n if (this.element) {\r\n if (this.definedBBox) {\r\n this._bbox = this.definedBBox;\r\n }\r\n else {\r\n var svgBBox = this.element.getBBox();\r\n this._bbox = { x: svgBBox.x, y: svgBBox.y, width: svgBBox.width, height: svgBBox.height };\r\n }\r\n }\r\n };\r\n /**\r\n * Positions element according its center settings.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.updateCenter = function () {\r\n if (this.element) {\r\n var prevElementTransform = this.element.transformString;\r\n var bbox = this.bbox;\r\n var ex = 0;\r\n var ey = 0;\r\n var elementX = bbox.x;\r\n var elementY = bbox.y;\r\n var elementWidth = bbox.width;\r\n var elementHeigth = bbox.height;\r\n var pixelPaddingLeft = this.pixelPaddingLeft;\r\n var pixelPaddingRight = this.pixelPaddingRight;\r\n var pixelPaddingTop = this.pixelPaddingTop;\r\n var pixelPaddingBottom = this.pixelPaddingBottom;\r\n // add padding to the measured size\r\n var measuredWidth = $math.max(elementWidth + pixelPaddingLeft + pixelPaddingRight, this.pixelWidth);\r\n var measuredHeight = $math.max(elementHeigth + pixelPaddingTop + pixelPaddingBottom, this.pixelHeight);\r\n // extremes\r\n var left = bbox.x;\r\n var right = bbox.x + measuredWidth;\r\n var top_1 = bbox.y;\r\n var bottom = bbox.y + measuredHeight;\r\n var horizontalCenter = this.horizontalCenter;\r\n var verticalCenter = this.verticalCenter;\r\n switch (horizontalCenter) {\r\n case \"none\":\r\n ex = elementX + pixelPaddingLeft;\r\n break;\r\n case \"left\":\r\n ex = pixelPaddingLeft;\r\n break;\r\n case \"middle\":\r\n ex = pixelPaddingLeft - (elementWidth + pixelPaddingRight + pixelPaddingLeft) / 2;\r\n break;\r\n case \"right\":\r\n ex = -pixelPaddingRight - elementWidth;\r\n break;\r\n }\r\n switch (verticalCenter) {\r\n case \"none\":\r\n ey = elementY + pixelPaddingTop;\r\n break;\r\n case \"top\":\r\n ey = pixelPaddingTop;\r\n break;\r\n case \"middle\":\r\n ey = pixelPaddingTop - (elementHeigth + pixelPaddingBottom + pixelPaddingTop) / 2;\r\n break;\r\n case \"bottom\":\r\n ey = -pixelPaddingBottom - elementHeigth;\r\n break;\r\n }\r\n this._measuredHeight = measuredHeight;\r\n this._measuredWidth = measuredWidth;\r\n var x = $math.round(ex - elementX, this._positionPrecision, true);\r\n var y = $math.round(ey - elementY, this._positionPrecision, true);\r\n this.ex = x - pixelPaddingLeft;\r\n this.ey = y - pixelPaddingTop;\r\n this.maxLeft = left + x - pixelPaddingLeft;\r\n this.maxRight = right + x - pixelPaddingLeft;\r\n this.maxTop = top_1 + y - pixelPaddingTop;\r\n this.maxBottom = bottom + y - pixelPaddingTop;\r\n if (this.pixelPerfect && options.pixelPerfectPrecision == 0) {\r\n x -= 0.5;\r\n y -= 0.5;\r\n }\r\n this.element.moveTo({ x: x, y: y });\r\n if (prevElementTransform != this.element.transformString) {\r\n this.dispatchImmediately(\"transformed\");\r\n }\r\n }\r\n };\r\n /**\r\n * Measures the whole element.\r\n *\r\n * Returns `true` if the size has changed from the last measurement.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Did the size changed from the last measurement?\r\n */\r\n Sprite.prototype.measure = function () {\r\n this.updateCenter();\r\n var measuredWidth = this._measuredWidth;\r\n var measuredHeight = this._measuredHeight;\r\n // extremes\r\n var left = this.maxLeft;\r\n var right = this.maxRight;\r\n var top = this.maxTop;\r\n var bottom = this.maxBottom;\r\n // non-parent wise size\r\n this._measuredWidthSelf = measuredWidth;\r\n this._measuredHeightSelf = measuredHeight;\r\n var positionPrecision = this._positionPrecision;\r\n this.maxLeftSelf = this.maxLeft;\r\n this.maxRightSelf = this.maxRight;\r\n this.maxTopSelf = this.maxTop;\r\n this.maxBottomSelf = this.maxBottom;\r\n // if a sprite is rotated or scaled, calculate measured size after transformations\r\n if (this.rotation !== 0 || this.scale !== 1 || this.nonScaling) {\r\n // not good to handleGlobalScale here.\r\n if (this.nonScalingStroke) {\r\n this.strokeWidth = this.strokeWidth;\r\n }\r\n var svg = this.paper.svg;\r\n var matrix = svg.createSVGMatrix();\r\n var rotation = this.rotation;\r\n var scale = this.scale;\r\n if (this.nonScaling) {\r\n scale = this.scale / this.globalScale;\r\n }\r\n matrix.a = $math.cos(rotation) * scale;\r\n matrix.c = -$math.sin(rotation) * scale;\r\n matrix.e = 0;\r\n matrix.b = $math.sin(rotation) * scale;\r\n matrix.d = $math.cos(rotation) * scale;\r\n matrix.f = 0;\r\n var p1 = svg.createSVGPoint();\r\n p1.x = left;\r\n p1.y = top;\r\n var p2 = svg.createSVGPoint();\r\n p2.x = right;\r\n p2.y = top;\r\n var p3 = svg.createSVGPoint();\r\n p3.x = right;\r\n p3.y = bottom;\r\n var p4 = svg.createSVGPoint();\r\n p4.x = left;\r\n p4.y = bottom;\r\n var pt1 = p1.matrixTransform(matrix);\r\n var pt2 = p2.matrixTransform(matrix);\r\n var pt3 = p3.matrixTransform(matrix);\r\n var pt4 = p4.matrixTransform(matrix);\r\n left = Math.min(pt1.x, pt2.x, pt3.x, pt4.x);\r\n right = Math.max(pt1.x, pt2.x, pt3.x, pt4.x);\r\n top = Math.min(pt1.y, pt2.y, pt3.y, pt4.y);\r\n bottom = Math.max(pt1.y, pt2.y, pt3.y, pt4.y);\r\n measuredWidth = right - left;\r\n measuredHeight = bottom - top;\r\n this.maxLeft = $math.round(left, positionPrecision, true);\r\n this.maxRight = $math.round(right, positionPrecision, true);\r\n this.maxTop = $math.round(top, positionPrecision, true);\r\n this.maxBottom = $math.round(bottom, positionPrecision, true);\r\n }\r\n this._measuredWidth = $math.round(measuredWidth, positionPrecision, true);\r\n this._measuredHeight = $math.round(measuredHeight, positionPrecision, true);\r\n // dispatch event\r\n if (this._measuredWidth != this._prevMeasuredWidth || this._measuredHeight != this._prevMeasuredHeight) {\r\n this._prevMeasuredHeight = this._measuredHeight;\r\n this._prevMeasuredWidth = this._measuredWidth;\r\n // TODO clear existing sizechanged dispatches ?\r\n this.dispatch(\"sizechanged\");\r\n if ((this.isHover || this.showTooltipOn == \"hit\" || this.showTooltipOn == \"always\") && this.tooltip && this.tooltip.visible && ($type.hasValue(this.tooltipText) || $type.hasValue(this.tooltipHTML))) {\r\n this.updateTooltipPosition();\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Insert this element before sibling element.\r\n *\r\n * @param sprite Target element\r\n * @return This element\r\n */\r\n Sprite.prototype.insertBefore = function (sprite) {\r\n var parent = this._parent;\r\n if (parent) {\r\n var index = parent.children.indexOf(sprite);\r\n if (index !== -1) {\r\n parent.children.moveValue(this, index);\r\n parent.sortChildren();\r\n }\r\n }\r\n return this;\r\n };\r\n /**\r\n * Insert this element after sibling element.\r\n *\r\n * @param sprite Target element\r\n * @return This element\r\n */\r\n Sprite.prototype.insertAfter = function (sprite) {\r\n var parent = this._parent;\r\n if (parent) {\r\n var index = parent.children.indexOf(sprite);\r\n if (index !== -1) {\r\n parent.children.moveValue(this, index + 1);\r\n parent.sortChildren();\r\n }\r\n }\r\n return this;\r\n };\r\n /**\r\n * Removes the main SVG element.\r\n *\r\n * This does not destroy the whole Sprite element. To do that use\r\n * `dispose()` instead.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.removeElement = function () {\r\n // remove visual element\r\n if (this._element) {\r\n this.removeDispose(this._element);\r\n this._element = undefined;\r\n }\r\n };\r\n /**\r\n * Returns relative (percent) value of the X coordindate within this element.\r\n *\r\n * A relative value is a hundredth of a percent. So 100% would result in a 1\r\n * as relative value.\r\n *\r\n * @param value Absolute or relative X coordinate\r\n * @return Relative value\r\n */\r\n Sprite.prototype.getRelativeX = function (value) {\r\n if (value instanceof Percent) {\r\n return value.value;\r\n }\r\n else if (this._parent) {\r\n return value / this._parent.innerWidth;\r\n }\r\n return 0;\r\n };\r\n /**\r\n * Returns relative (percent) value of the Y coordindate within this element.\r\n *\r\n * A relative value is a hundredth of a percent. So 100% would result in a 1\r\n * as relative value.\r\n *\r\n * @param value Absolute or relative Y coordinate\r\n * @return Relative value\r\n */\r\n Sprite.prototype.getRelativeY = function (value) {\r\n if (value instanceof Percent) {\r\n return value.value;\r\n }\r\n else if (this._parent) {\r\n return value / this._parent.innerHeight;\r\n }\r\n return 0;\r\n };\r\n /**\r\n * Returns an X coordinate in pixel within the element.\r\n *\r\n * If number is passed in as parameter, the same number will be returned\r\n * back.\r\n *\r\n * If [[Percent]] is passed in, it will be recalculated to pixels.\r\n *\r\n * @param value Absolute or relative X coordinate\r\n * @return X coordinate in pixels\r\n */\r\n Sprite.prototype.getPixelX = function (value) {\r\n // we don't use $utils.valueToRelative as this would mean that we should access parent.innerWidth\r\n // all the time and this would result chain of the same actions and will slow down the system a lot\r\n var pixel = 0;\r\n if ($type.isNumber(value)) {\r\n pixel = value;\r\n }\r\n else if (value instanceof Percent) {\r\n var relative = value.value;\r\n if (this._parent) {\r\n pixel = $math.round(this._parent.innerWidth * relative, this._positionPrecision, true);\r\n }\r\n }\r\n return pixel;\r\n };\r\n /**\r\n * Returns an Y coordinate in pixel within the element.\r\n *\r\n * If number is passed in as parameter, the same number will be returned\r\n * back.\r\n *\r\n * If [[Percent]] is passed in, it will be recalculated to pixels.\r\n *\r\n * @param value Absolute or relative Y coordinate\r\n * @return Y coordinate in pixels\r\n */\r\n Sprite.prototype.getPixelY = function (value) {\r\n // we don't use $utils.valueToRelative as this would mean that we should access parent.innerWidth\r\n // all the time and this would result chain of the same actions and will slow down the system a lot\r\n var pixel = 0;\r\n if ($type.isNumber(value)) {\r\n pixel = value;\r\n }\r\n else if (value instanceof Percent) {\r\n var relative = value.value;\r\n if (this._parent) {\r\n pixel = $math.round(this._parent.innerHeight * relative, this._positionPrecision, true);\r\n }\r\n }\r\n return pixel;\r\n };\r\n /**\r\n * Moves the element to a specified coordinates.\r\n *\r\n * Using this method is preferred method of moving element, as it saves some\r\n * CPU processing power over setting `x` and `y` properties separately.\r\n *\r\n * The method respects element's center settings. The element will be\r\n * positioned so that `point` coordinates come in whatever \"center\" of the\r\n * element is, as set in `horizontalCenter` and `verticalCenter`.\r\n *\r\n * Besides moving the element, you can also at the same time scale and\r\n * rotate the element.\r\n *\r\n * @param point New coordinates\r\n * @param rotation New rotation\r\n * @param scale New Scale\r\n */\r\n Sprite.prototype.moveTo = function (point, rotation, scale, isDragged) {\r\n if (this.isDragged && !isDragged) {\r\n return;\r\n }\r\n if (point) {\r\n if ($type.isNumber(point.x)) {\r\n this.setPropertyValue(\"x\", $math.round(point.x, this._positionPrecision, true));\r\n }\r\n if ($type.isNumber(point.y)) {\r\n this.setPropertyValue(\"y\", $math.round(point.y, this._positionPrecision, true));\r\n }\r\n }\r\n if ($type.isNumber(rotation)) {\r\n this.rotation = rotation;\r\n }\r\n if ($type.isNumber(scale)) {\r\n this.scale = scale;\r\n }\r\n // must leave this\r\n this.invalidatePosition();\r\n };\r\n Object.defineProperty(Sprite.prototype, \"mask\", {\r\n /**\r\n * Returns [[Sprite]] element currently used as mask for this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return A [[Sprite]] to use as mask\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n return this._mask.get();\r\n }\r\n else {\r\n return this._adapterO.apply(\"mask\", this._mask.get());\r\n }\r\n },\r\n /**\r\n * Sets another [[Sprite]] element as this elements mask.\r\n *\r\n * @ignore Exclude from docs\r\n * @param mask A [[Sprite]] to use as mask\r\n */\r\n set: function (mask) {\r\n var _this = this;\r\n if (this._mask.get() !== mask) {\r\n // this is good\r\n if (mask) {\r\n this.createClipPath();\r\n if (!(mask instanceof Container)) {\r\n mask.isMeasured = false;\r\n if (mask.element) {\r\n this._clipElement = mask.element;\r\n }\r\n }\r\n else {\r\n this._clipElement = this.paper.add(\"rect\");\r\n }\r\n if (this._clipElement) {\r\n this._clipPath.add(this._clipElement);\r\n }\r\n this._mask.set(mask, new MultiDisposer([\r\n //mask.addEventListener(SpriteEvent.TRANSFORMED, this.applyMask, false, this);\r\n mask.events.on(\"maxsizechanged\", function () { if (_this.inited) {\r\n _this.applyMask();\r\n } }, undefined, false),\r\n mask.events.on(\"validated\", this.applyMask, this, false),\r\n mask.events.on(\"positionchanged\", this.applyMask, this, false)\r\n ]));\r\n this.applyMask();\r\n }\r\n else {\r\n this._mask.reset();\r\n this.group.removeAttr(\"clip-path\");\r\n this.removeClipPath();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"maskRectangle\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Mask Rectangle\r\n */\r\n get: function () {\r\n return this._maskRectangle;\r\n },\r\n // you can set IRectangle as a mask instead o a sprite. Note, the changes of the object won't be monitored\r\n /**\r\n * Instead of creating a [[Sprite]] for mask, you can just use a\r\n * [[Rectangle]] by setting this accessor.\r\n *\r\n * Please note that the element will not monitor any changes to the mask\r\n * rectangle.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rect Mask Rectangle\r\n */\r\n set: function (rect) {\r\n if (rect) {\r\n this.createClipPath();\r\n if (!this._clipElement) {\r\n this._clipElement = this.paper.add(\"rect\");\r\n this._clipPath.add(this._clipElement);\r\n }\r\n this._clipElement.attr({ \"width\": rect.width, \"height\": rect.height });\r\n }\r\n else {\r\n this.removeClipPath();\r\n this._clipElement = undefined;\r\n }\r\n this._maskRectangle = rect;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isMeasured\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Was element already measured?\r\n */\r\n get: function () {\r\n return this._isMeasured;\r\n },\r\n /**\r\n * Indicates if this element was already measured.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Was element already measured?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (!value) {\r\n this._measuredWidth = 0;\r\n this._measuredHeight = 0;\r\n //this._pixelHeight = 0;\r\n //this._pixelWidth = 0;\r\n }\r\n if (this._isMeasured != value) {\r\n this._isMeasured = value;\r\n this.invalidatePosition();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if the this element has any of its parts overlapping with another\r\n * element.\r\n *\r\n * @todo Description (review)\r\n * @param sprite Second element to test again\r\n * @return Overlapping?\r\n */\r\n Sprite.prototype.hitTest = function (sprite) {\r\n // validate, otherwise we will not know measuredWidth and measuredHeight\r\n if (this.invalid) {\r\n this.validate();\r\n }\r\n if (sprite.invalid) {\r\n sprite.validate();\r\n }\r\n var ax1 = this.pixelX + this.maxLeft;\r\n var ay1 = this.pixelY + this.maxTop;\r\n var ax2 = ax1 + this.maxRight;\r\n var ay2 = ay1 + this.maxBottom;\r\n var bx1 = sprite.pixelX + sprite.maxLeft;\r\n var by1 = sprite.pixelY + sprite.maxTop;\r\n var bx2 = bx1 + sprite.maxRight;\r\n var by2 = by1 + sprite.maxBottom;\r\n return !(bx1 > ax2 || bx2 < ax1 || by1 > ay2 || by2 < ay1);\r\n };\r\n Object.defineProperty(Sprite.prototype, \"inited\", {\r\n /**\r\n * ==========================================================================\r\n * STATE-RELATED\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns `true` if Sprite has already finished initializing.\r\n *\r\n * @return Initialized?\r\n */\r\n get: function () {\r\n return this._inited;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns `true` if Sprite has already finished initializing and is ready.\r\n *\r\n * If this object is a [[Container]] it will wait for all of its children\r\n * are ready before becoming ready itself and firing a `\"ready\"` event.\r\n *\r\n * @return is ready?\r\n */\r\n Sprite.prototype.isReady = function () {\r\n return this._ready;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"states\", {\r\n /**\r\n * Returns a collection of element's available [[SpriteState]] entries.\r\n *\r\n * @see {@link SpriteState}\r\n * @return States\r\n */\r\n get: function () {\r\n if (!this._states) {\r\n var state = new SpriteState();\r\n // works\r\n this._states = new DictionaryTemplate(state);\r\n // TODO what about removeKey ?\r\n this._disposers.push(this._states.events.on(\"insertKey\", this.processState, this, false));\r\n this._disposers.push(this._states.events.on(\"setKey\", this.processState, this, false));\r\n this._disposers.push(new DictionaryDisposer(this._states));\r\n this._disposers.push(state);\r\n }\r\n return this._states;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"hiddenState\", {\r\n /**\r\n * Returns a [[SpriteState]] object for \"hidden\" state.\r\n *\r\n * This is a shortcut to `this.states.getKey(\"hidden\")`.\r\n *\r\n * @return Hidden state\r\n */\r\n get: function () {\r\n if (!this.states.getKey(\"hidden\")) {\r\n var hiddenState = this.states.create(\"hidden\");\r\n hiddenState.properties.opacity = 0;\r\n hiddenState.properties.visible = false;\r\n }\r\n return this.states.getKey(\"hidden\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"defaultState\", {\r\n /**\r\n * Returns a [[SpriteState]] object for \"default\" state.\r\n *\r\n * This is a shortcut to `this.states.getKey(\"default\")`.\r\n *\r\n * @return Hidden state\r\n */\r\n get: function () {\r\n if (!this.states.getKey(\"default\")) {\r\n var defaultState = this.states.create(\"default\");\r\n defaultState.properties.opacity = 1;\r\n }\r\n return this.states.getKey(\"default\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if some key states are defined and updates Sprite properties\r\n * accordingly.\r\n *\r\n * For example if there's a state \"down\" defined for Sprite, we automatically\r\n * make it \"clickable\".\r\n *\r\n * @ignore Exclude from docs\r\n * @param event An event which caused state list update\r\n */\r\n Sprite.prototype.processState = function (event) {\r\n var state = event.newValue;\r\n state.sprite = this;\r\n state.name = event.key;\r\n if (this.states.hasKey(\"hover\") || (this.showTooltipOn == \"hover\" && ($type.hasValue(this.tooltipHTML) || $type.hasValue(this.tooltipText)))) {\r\n this.hoverable = true;\r\n }\r\n if (this.states.hasKey(\"down\") || (this.showTooltipOn == \"hover\" && ($type.hasValue(this.tooltipHTML) || $type.hasValue(this.tooltipText)))) {\r\n this.clickable = true;\r\n }\r\n if (this.states.hasKey(\"focus\")) {\r\n this.focusable = true;\r\n }\r\n // Propagate the new state to clones\r\n if (this.applyOnClones) {\r\n var clones = this.clones.values;\r\n var length_1 = clones.length;\r\n for (var i = 0; i < length_1; ++i) {\r\n var clone = clones[i];\r\n if (!clone.isDisposed()) {\r\n clone.states.setKey(state.name, state);\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"animations\", {\r\n /**\r\n * Returns a list elements's animations currently being played.\r\n *\r\n * If the list has not been initialized it is created.\r\n *\r\n * @return List of animations\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts element's local coordinates to the coordinates within the main\r\n * chart container.\r\n *\r\n * @param point Local point\r\n * @return Global point\r\n */\r\n Sprite.prototype.getSvgPoint = function (point) {\r\n try {\r\n // Calculate SVG point\r\n var bbox = this.htmlContainer.getBoundingClientRect();\r\n return {\r\n \"x\": point.x - bbox.left,\r\n \"y\": point.y - bbox.top\r\n };\r\n }\r\n catch (e) {\r\n return point;\r\n }\r\n };\r\n /**\r\n * Creates and starts an [[Animation]] with given `animationOptions`.\r\n *\r\n * @see {@link Animation} for additional information about available options\r\n * @param animationOptions Animation options\r\n * @param duration Duration in milliseconds\r\n * @param easing Easing function\r\n * @return Animation instance\r\n */\r\n Sprite.prototype.animate = function (animationOptions, duration, easing) {\r\n return new Animation(this, animationOptions, duration, easing).start();\r\n };\r\n /**\r\n * Applies a [[SpriteState]] on this element.\r\n *\r\n * The first parameter can either be a name state or a [[SpriteState]]\r\n * instance.\r\n *\r\n * When run, this method will apply SVG properties defined in a\r\n * [[SpriteState]], but only those that are relevant to this particular\r\n * element, i.e. are in the `properties` array.\r\n *\r\n * @see {@link SpriteState}\r\n * @param value A state - name key or instance\r\n * @param transitionDuration Duration of the transition between current and new state\r\n * @param easing An easing function\r\n */\r\n Sprite.prototype.setState = function (value, transitionDuration, easing) {\r\n var state;\r\n if (value instanceof SpriteState) {\r\n this.states.setKey(value.name, value);\r\n state = value;\r\n }\r\n else {\r\n state = this.states.getKey(value);\r\n if (!state) {\r\n return;\r\n }\r\n }\r\n // stop previous transition\r\n // not good - foe expample, we are animating to some \"active\" state and in them middle \"hover\" state happens. then \"active\" stat won't be applied\r\n //if (this._transition) {\r\n //this._transition.stop();\r\n //}\r\n if (state.name == \"hover\") {\r\n if (this.isHidden) {\r\n return;\r\n }\r\n this.isHover = true;\r\n }\r\n if (state.name == \"hidden\") {\r\n this.isHiding = true;\r\n }\r\n else {\r\n if (!this.visible) {\r\n this.setVisibility(state.properties.visible || this.defaultState.properties.visible);\r\n }\r\n }\r\n if (state.name == \"active\") {\r\n this.isActive = true;\r\n }\r\n // we do not set isActive = false here if it's not active, but container does that if setStateOnChildren = true\r\n if (!$type.isNumber(transitionDuration)) {\r\n transitionDuration = state.transitionDuration;\r\n }\r\n if (!$type.hasValue(easing)) {\r\n easing = state.transitionEasing;\r\n }\r\n return this.transitTo(state, transitionDuration, easing);\r\n };\r\n /**\r\n * Applies proper state based on the condition of the element. A condition is\r\n * deducted in this order:\r\n * * \"hover\" if Sprite has currently any pointers over it\r\n * * \"down\" if Sprite has any pointers (touch or mouse) currently pressed over it\r\n * * \"focus\" if Sprite has currently got focus (accessibility)\r\n * * \"hidden\" if Sprite is currently hidden\r\n *\r\n * Returns an [[Animation]] object, which is handling gradual transition from\r\n * current values of properties, to the new target state(s).\r\n *\r\n * @param duration Duration for the animation (ms)\r\n * @return [[Animation]] object which is handling the transition\r\n */\r\n Sprite.prototype.applyCurrentState = function (duration) {\r\n //if (!this.isHidden) { // this was done for hover state not to take effect if \"hidden\" is actually visible, need to think about it.\r\n var animation = this.setState(this.defaultState, duration);\r\n if (this.isHover) {\r\n animation = this.setState(\"hover\", duration);\r\n }\r\n if (this.isDown && this.interactions.downPointers.length) {\r\n animation = this.setState(\"down\", duration);\r\n }\r\n this.isFocused = this.isFocused;\r\n if (this.isActive) {\r\n animation = this.setState(\"active\", duration);\r\n if (this.isHover && this.states.hasKey(\"hoverActive\")) {\r\n animation = this.setState(\"hoverActive\", duration);\r\n }\r\n }\r\n return animation;\r\n //}\r\n };\r\n /**\r\n * Starts an [[Animation]] of the properties to specific values as they are\r\n * set in `state`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param state Target State\r\n * @param duration Duration in milliseconds\r\n * @param easing Easing function\r\n * @return Transition Animation\r\n */\r\n Sprite.prototype.transitTo = function (state, duration, easing) {\r\n var _this = this;\r\n // Init\r\n var options = [], propValues = state.allValues, transition;\r\n // todo: do this for numeric/color properties only?\r\n // @todo use state.getPropertyValue instead\r\n $object.each(propValues, function (propertyName, finalValue) {\r\n var currentValue = _this[propertyName];\r\n // save current value to default state. this solves a big problem where values must be set both on sprite and default state\r\n if (finalValue != currentValue && _this.defaultState.properties[propertyName] == undefined) {\r\n _this.defaultState.properties[propertyName] = currentValue;\r\n }\r\n //if (finalValue != currentValue && $type.hasValue(finalValue)) {\r\n if (finalValue != \"__unset\") {\r\n var option = { from: currentValue, to: finalValue, property: propertyName };\r\n options.push(option);\r\n }\r\n });\r\n if (options.length > 0) {\r\n transition = this.animate(options, duration, easing);\r\n if (transition && !transition.isFinished()) {\r\n // TODO should this use events.once ?\r\n // TODO push onto _disposers array ?\r\n this._disposers.push(transition.events.on(\"animationended\", function () {\r\n _this.dispatchImmediately(\"transitionended\");\r\n }));\r\n }\r\n else {\r\n this.dispatchImmediately(\"transitionended\");\r\n }\r\n }\r\n // apply filters if set\r\n if (state.filters.length > 0) {\r\n var newFilters_1 = [];\r\n // check for the same filters\r\n $iter.each(state.filters.iterator(), function (stateFilter) {\r\n var newFilter = stateFilter.clone();\r\n newFilters_1.push(newFilter);\r\n var animationOptions = [];\r\n $iter.each(_this.filters.iterator(), function (currentFilter) {\r\n // if we have the same filters\r\n if (currentFilter.className == newFilter.className) {\r\n if (!$iter.contains(_this.defaultState.filters.iterator(), function (x) { return x.className === newFilter.className; })) {\r\n _this.defaultState.filters.push(currentFilter);\r\n }\r\n $object.each(newFilter.properties, function (propertyName, newValue) {\r\n var currentValue = currentFilter.properties[propertyName];\r\n // if values are not the same, push to animation options array\r\n if (currentValue != newValue) {\r\n animationOptions.push({ property: propertyName, from: currentValue, to: newValue });\r\n }\r\n });\r\n }\r\n });\r\n // animate to new value\r\n newFilter.animate(animationOptions, duration, easing);\r\n });\r\n this.filters.clear();\r\n this.filters.pushAll(newFilters_1);\r\n }\r\n return transition;\r\n };\r\n /**\r\n * Returns `true` if Sprite is currently transiting from one state/value to\r\n * another.\r\n *\r\n * @return Is in transition?\r\n */\r\n Sprite.prototype.isInTransition = function () {\r\n return this.animations.length > 0;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"isHover\", {\r\n /**\r\n * @return Is hovered?\r\n */\r\n get: function () {\r\n if (this.isInteractive()) {\r\n return this.interactions.isHover;\r\n }\r\n return false;\r\n },\r\n /**\r\n * Indicates if this element has a mouse pointer currently hovering\r\n * over it, or if it has any touch pointers pressed on it.\r\n *\r\n * You can force element to be \"hovered\" manually, by setting this property\r\n * to `true`.\r\n *\r\n * @param value Is hovered?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (value !== this.isHover) {\r\n if (this.isInteractive()) {\r\n this.interactions.isHover = value;\r\n if (value) {\r\n this.handleOver();\r\n }\r\n else {\r\n this.interactions.isRealHover = false;\r\n this.handleOut();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isDragged\", {\r\n /**\r\n * Returns indicator if this element is being dragged at the moment.\r\n *\r\n * @return Is dragged?\r\n */\r\n get: function () {\r\n return this._isDragged;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isResized\", {\r\n /**\r\n * Returns indicator if this element is being resized at the moment.\r\n *\r\n * @return Is resized?\r\n */\r\n get: function () {\r\n return this._isResized;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isDown\", {\r\n /**\r\n * @return Is down?\r\n */\r\n get: function () {\r\n if (this.isInteractive()) {\r\n return this.interactions.isDown;\r\n }\r\n return false;\r\n },\r\n /**\r\n * Indicates if this element has any pointers (mouse or touch) pressing down\r\n * on it.\r\n *\r\n * @param value Is down?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.isInteractive() && this.isDown != value) {\r\n this.interactions.isDown = value;\r\n if (value) {\r\n this.handleDown();\r\n }\r\n else {\r\n this.handleUp();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isFocused\", {\r\n /**\r\n * @return Is focused?\r\n */\r\n get: function () {\r\n if (this.isInteractive()) {\r\n return this.interactions.isFocused;\r\n }\r\n return false;\r\n },\r\n /**\r\n * Indicates if this element is focused (possibly by tab navigation).\r\n *\r\n * @param value Is focused?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.focusable && this.isFocused != value) {\r\n if (this.isInteractive()) {\r\n this.interactions.isFocused = value;\r\n if (value === true) {\r\n this.handleFocus();\r\n }\r\n else {\r\n this.handleBlur();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"isActive\", {\r\n /**\r\n * @return Is active?\r\n */\r\n get: function () {\r\n return this._isActive;\r\n },\r\n /**\r\n * Indicates if this element is currently active (toggled on) or not\r\n * (toggled off).\r\n *\r\n * @param value Is active?\r\n */\r\n set: function (value) {\r\n this.setActive(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Sprite.prototype.setActive = function (value) {\r\n value = $type.toBoolean(value);\r\n if (this._isActive !== value) {\r\n this._isActive = value;\r\n if (value && this.states.hasKey(\"active\")) {\r\n this.setState(\"active\");\r\n if (this.isHover && this.states.hasKey(\"hoverActive\")) {\r\n this.setState(\"hoverActive\");\r\n }\r\n }\r\n else {\r\n this.applyCurrentState();\r\n }\r\n this.dispatchImmediately(\"toggled\");\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"disabled\", {\r\n /**\r\n * @return Disabled?\r\n */\r\n get: function () {\r\n //if(this._internalDisabled){\r\n //\treturn true;\r\n //}\r\n var current = this.getPropertyValue(\"disabled\");\r\n if ($type.hasValue(current)) {\r\n return current;\r\n }\r\n else {\r\n if (this.virtualParent) {\r\n return this.virtualParent.disabled;\r\n }\r\n if (this._parent) {\r\n return this._parent.disabled;\r\n }\r\n }\r\n return false;\r\n },\r\n /**\r\n * Controls if element is disabled.\r\n *\r\n * A disabled element is hidden, and is removed from any processing, layout\r\n * calculations, and generally treated as if it does not exist.\r\n *\r\n * The element itself is not destroyed, though. Setting this back to `false`,\r\n * will \"resurrect\" the element.\r\n *\r\n * @param value Disabled?\r\n */\r\n set: function (value) {\r\n this.setDisabled(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Sprite.prototype.setDisabled = function (value) {\r\n value = $type.toBoolean(value);\r\n var current = this.getPropertyValue(\"disabled\");\r\n if (current != value) {\r\n this.setPropertyValue(\"disabled\", value, true);\r\n if (value) {\r\n this.parent = this._parent;\r\n this.removeFromInvalids();\r\n this.group.attr({ \"display\": \"none\" });\r\n this.dispatch(\"disabled\");\r\n }\r\n else {\r\n if (this._parent) {\r\n var group = this._parent.element;\r\n if (!group.hasChild(this.group)) {\r\n group.add(this.group);\r\n }\r\n }\r\n if (this instanceof Container) {\r\n this.deepInvalidate();\r\n if (this._background) {\r\n this._background.invalidate();\r\n }\r\n }\r\n else {\r\n this.invalidate();\r\n }\r\n if (!this.__disabled) {\r\n this.removeSVGAttribute(\"display\");\r\n }\r\n this.dispatch(\"enabled\");\r\n }\r\n this.dispatch(\"transformed\");\r\n system.requestFrame();\r\n return true;\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"__disabled\", {\r\n /**\r\n * @ignore\r\n * @return Disabled?\r\n */\r\n get: function () {\r\n return this._internalDisabled;\r\n },\r\n /**\r\n * Internal disable method.\r\n *\r\n * Do not use it for disabling elements. Use `disabled` accessor instead.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Disabled?\r\n */\r\n set: function (value) {\r\n if (this._internalDisabled != value) {\r\n this._internalDisabled = value;\r\n this._updateDisabled = true;\r\n this.invalidatePosition(); // better use this instead of invalidate()\r\n if (!value) {\r\n this.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"numberFormatter\", {\r\n /**\r\n * @return A [[NumberFormatter]] instance to be used\r\n */\r\n get: function () {\r\n if (this._numberFormatter) {\r\n return this._numberFormatter;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.numberFormatter;\r\n }\r\n else if (this._parent) {\r\n return this._parent.numberFormatter;\r\n }\r\n this._numberFormatter = new NumberFormatter();\r\n this._numberFormatter.language = this.language;\r\n return this.numberFormatter;\r\n },\r\n /**\r\n * ==========================================================================\r\n * FORMATTERS AND OTHER EXTERNAL HELPERS\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * A [[NumberFormatter]] instance.\r\n *\r\n * This is used to format numbers.\r\n *\r\n * ```TypeScript\r\n * chart.numberFormatter.numberFormat = \"#,###.#####\";\r\n * ```\r\n * ```JavaScript\r\n * chart.numberFormatter.numberFormat = \"#,###.#####\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"numberFormatter\": {\r\n * \"numberFormat\": \"#,###.#####\"\r\n * }\r\n * }\r\n * ```\r\n *\r\n * You can set a separate instance of formatter for each\r\n * individual element. However that would be unnecessary overhead as\r\n * all elements would automatically inherit formatter from their parents,\r\n * all the way up to the chart itself.\r\n *\r\n *\r\n * @see {@link NumberFormatter} for more info on formatting numbers\r\n * @param value An instance of NumberFormatter\r\n */\r\n set: function (value) {\r\n this._numberFormatter = value;\r\n this._numberFormatter.language = this.language;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"dateFormatter\", {\r\n /**\r\n * @return An instance of DateFormatter\r\n */\r\n get: function () {\r\n if (this._dateFormatter) {\r\n return this._dateFormatter;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.dateFormatter;\r\n }\r\n else if (this._parent) {\r\n return this._parent.dateFormatter;\r\n }\r\n this._dateFormatter = new DateFormatter();\r\n this._dateFormatter.language = this.language;\r\n return this.dateFormatter;\r\n },\r\n /**\r\n * A [[DateFormatter]] instance.\r\n *\r\n * This is used to format dates, e.g. on a date axes, balloons, etc.\r\n *\r\n * ```TypeScript\r\n * chart.dateFormatter.dateFormat = \"yyyy-MM-dd\";\r\n * ```\r\n * ```JavaScript\r\n * chart.dateFormatter.dateFormat = \"yyyy-MM-dd\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"dateFormatter\": {\r\n * \"dateFormat\": \"yyyy-MM-dd\"\r\n * }\r\n * }\r\n * ```\r\n *\r\n * You can set a separate instance of formatter for each\r\n * individual element. However that would be unnecessary overhead as\r\n * all elements would automatically inherit formatter from their parents,\r\n * all the way up to the chart itself.\r\n *\r\n * @see {@link DateFormatter} for more info on dates formatting\r\n * @param value An instance of DateFormatter\r\n */\r\n set: function (value) {\r\n this._dateFormatter = value;\r\n this._dateFormatter.language = this.language;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"durationFormatter\", {\r\n /**\r\n * @return An instance of DurationFormatter\r\n */\r\n get: function () {\r\n if (this._durationFormatter) {\r\n return this._durationFormatter;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.durationFormatter;\r\n }\r\n else if (this._parent) {\r\n return this._parent.durationFormatter;\r\n }\r\n this._durationFormatter = new DurationFormatter();\r\n this._durationFormatter.language = this.language;\r\n return this.durationFormatter;\r\n },\r\n /**\r\n * A [[DurationFormatter]] instance.\r\n *\r\n * This is used to format numbers as durations, e.g. on a value axes.\r\n *\r\n * You can set a separate instance of formatter for each\r\n * individual element. However that would be unnecessary overhead as\r\n * all elements would automatically inherit formatter from their parents,\r\n * all the way up to the chart itself.\r\n *\r\n * @see {@link DurationFormatter} for more info on durations\r\n * @param value An instance of DurationFormatter\r\n */\r\n set: function (value) {\r\n this._durationFormatter = value;\r\n this._durationFormatter.language = this.language;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"language\", {\r\n /**\r\n * @return An instance of Language\r\n */\r\n get: function () {\r\n var language = this._language.get();\r\n if (language) {\r\n return language;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.language;\r\n }\r\n else if (this._parent) {\r\n return this._parent.language;\r\n }\r\n language = new Language();\r\n this.language = language;\r\n return language;\r\n },\r\n /**\r\n * A [[Language]] instance to use for translations.\r\n *\r\n * Normally it is enough to set language for the top-most element - chart.\r\n *\r\n * All other element child elements will automatically re-use that language\r\n * object.\r\n *\r\n * @param value An instance of Language\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this._language.get() !== value) {\r\n this._language.set(value, value.events.on(\"localechanged\", function (ev) {\r\n if (_this._numberFormatter) {\r\n _this._numberFormatter.language = _this.language;\r\n }\r\n if (_this._dateFormatter) {\r\n _this._dateFormatter.language = _this.language;\r\n }\r\n if (_this._durationFormatter) {\r\n _this._durationFormatter.language = _this.language;\r\n }\r\n if (_this._exporting.get()) {\r\n var exporting = _this._exporting.get();\r\n exporting.numberFormatter.language = _this.language;\r\n exporting.dateFormatter.language = _this.language;\r\n exporting.durationFormatter.language = _this.language;\r\n exporting.language = _this.language;\r\n }\r\n if (_this instanceof Container) {\r\n _this.deepInvalidate();\r\n }\r\n }));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * ==========================================================================\r\n * DATA-RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Parses the string for meta tags `{tag}` and replaces them with a real\r\n * value. Supports straight up tags referring to the field in data, i.e.\r\n * `{value}` or tags with additional formatting info. E.g.:\r\n *\r\n * ```Text\r\n * {myfield.formatDate(\"yyyy-MM-dd\")}\r\n * {myfield.formatDate()}\r\n * {myfield.formatNumber(\"#,####.00\")}\r\n * {myfield.formatNumber()}\r\n * {myField.formatDuration(\"mm:ss\")}\r\n * ```\r\n *\r\n * Etc.\r\n *\r\n * This method Will automatically detect and use proper formatter for the\r\n * value.\r\n *\r\n * The source value will be looked up in various places: (in order)\r\n * * Sprite's own `dataItem`\r\n * * Sprite's properties\r\n * * Parent's `dataItem`\r\n * * Parent's properties\r\n *\r\n * @ignore Exclude from docs\r\n * @param string A string to format\r\n * @param dataItem DataItem\r\n * @return Formatted string\r\n */\r\n Sprite.prototype.populateString = function (string, dataItem) {\r\n if ($type.hasValue(string)) {\r\n string = $type.castString(string);\r\n string = getTextFormatter().escape(string);\r\n var tags = string.match(/\\{([^}]+)\\}/g);\r\n var i = void 0;\r\n if (tags) {\r\n for (i = 0; i < tags.length; i++) {\r\n var tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\r\n var value = this.getTagValue(tag, \"\", dataItem);\r\n if (!$type.hasValue(value)) {\r\n value = \"\";\r\n }\r\n string = string.split(tags[i]).join(value);\r\n }\r\n }\r\n string = getTextFormatter().unescape(string);\r\n }\r\n else {\r\n string = \"\";\r\n }\r\n if (!this._adapterO) {\r\n return string;\r\n }\r\n else {\r\n return this._adapterO.apply(\"populateString\", string);\r\n }\r\n };\r\n /**\r\n * Gets the value from data item and formats it according to specified format.\r\n *\r\n * If `format` is specified, it will use its contents to choose formatter for\r\n * the value. Otherwise it will select formatter accordingly to actual value\r\n * type.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Ability to force certain formatter on known numeric and date values\r\n * @see {@link NumberFormatter}\r\n * @see {@link DateFormatter}\r\n * @see {@link DurationFormatter}\r\n * @param tagName Tag name to replace\r\n * @param format Format to use\r\n * @param dataItem DataItem\r\n * @return Formatted value\r\n */\r\n Sprite.prototype.getTagValue = function (tagName, format, dataItem) {\r\n var value;\r\n if (!$type.hasValue(dataItem)) {\r\n dataItem = this.dataItem;\r\n }\r\n // Parse parts\r\n var parts = [];\r\n var reg = /([^.]+)\\(([^)]*)\\)|([^.]+)/g;\r\n ;\r\n var matches;\r\n while (true) {\r\n matches = reg.exec(tagName);\r\n if (matches === null) {\r\n break;\r\n }\r\n if (matches[3]) {\r\n // Simple property\r\n parts.push({\r\n prop: matches[3]\r\n });\r\n }\r\n else {\r\n // Method\r\n // Parse parameters\r\n var params = [];\r\n if ($utils.trim(matches[2]) != \"\") {\r\n var reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\r\n var matches2 = void 0;\r\n while (true) {\r\n matches2 = reg2.exec(matches[2]);\r\n if (matches2 === null) {\r\n break;\r\n }\r\n params.push(matches2[1] || matches2[2] || matches2[3]);\r\n }\r\n }\r\n parts.push({\r\n method: matches[1],\r\n params: params\r\n });\r\n }\r\n }\r\n // Check if we can retrieve the value from data item\r\n if (dataItem) {\r\n // Check values\r\n value = this.getTagValueFromObject(parts, dataItem.values);\r\n // Check properties\r\n if (!$type.hasValue(value) || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and won't get to the dateX date.\r\n value = this.getTagValueFromObject(parts, dataItem);\r\n }\r\n // Check data context\r\n var dataContext = dataItem.dataContext;\r\n if (!$type.hasValue(value) && dataContext) {\r\n value = this.getTagValueFromObject(parts, dataItem.dataContext);\r\n // Maybe it's a literal dot-separated name of the key in dataContext?\r\n if (!$type.hasValue(value)) {\r\n value = this.getTagValueFromObject([{\r\n prop: tagName\r\n }], dataContext);\r\n }\r\n // scond data context level sometimes exist (tree map)\r\n if (!$type.hasValue(value) && dataContext.dataContext) {\r\n value = this.getTagValueFromObject(parts, dataContext.dataContext);\r\n }\r\n }\r\n // Check component's data item\r\n if (!$type.hasValue(value) && dataItem.component && dataItem.component.dataItem !== dataItem) {\r\n value = dataItem.component.getTagValue(tagName, format);\r\n }\r\n }\r\n // Check sprite's properties\r\n if (!$type.hasValue(value)) {\r\n value = this.getTagValueFromObject(parts, this.populateStringFrom || this);\r\n }\r\n // Finally, check the parent\r\n if (!$type.hasValue(value) && this._parent) {\r\n value = this._parent.getTagValue(tagName, format);\r\n }\r\n return value;\r\n };\r\n /**\r\n * Tries to retrieve values from properties of any object, then applies\r\n * proper formatting to it.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (improve)\r\n * @param parts Properties ant methods to access\r\n * @param object Source object\r\n * @param format A specific format to apply\r\n * @return Formatted value\r\n */\r\n Sprite.prototype.getTagValueFromObject = function (parts, object, format) {\r\n var current = object;\r\n var formatApplied = false;\r\n for (var i = 0, len = parts.length; i < len; i++) {\r\n var part = parts[i];\r\n if (part.prop) {\r\n // Regular property\r\n current = current[part.prop];\r\n if (!$type.hasValue(current)) {\r\n // Not set, return undefined\r\n return;\r\n }\r\n }\r\n else {\r\n // Method\r\n switch (part.method) {\r\n case \"formatNumber\":\r\n var numberValue = $utils.anyToNumber(current);\r\n if ($type.hasValue(numberValue)) {\r\n current = this.numberFormatter.format(numberValue, format || part.params[0] || undefined);\r\n formatApplied = true;\r\n }\r\n break;\r\n case \"formatDate\":\r\n var dateValue = void 0;\r\n if ($type.isString(current)) {\r\n dateValue = this.dateFormatter.parse(current);\r\n }\r\n else {\r\n dateValue = $utils.anyToDate(current);\r\n }\r\n if (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\r\n // Was not able to get date out of value, quitting and letting\r\n // calling method try another value\r\n return;\r\n }\r\n if ($type.hasValue(dateValue)) {\r\n current = this.dateFormatter.format(dateValue, format || part.params[0] || undefined);\r\n formatApplied = true;\r\n }\r\n break;\r\n case \"formatDuration\":\r\n var durationValue = $utils.anyToNumber(current);\r\n if ($type.hasValue(durationValue)) {\r\n current = this.durationFormatter.format(durationValue, format || part.params[0] || undefined, part.params[1] || undefined);\r\n formatApplied = true;\r\n }\r\n break;\r\n case \"urlEncode\":\r\n case \"encodeURIComponent\":\r\n current = encodeURIComponent(current);\r\n break;\r\n default:\r\n if (current[part.method]) {\r\n current[part.method].apply(this, part.params);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n // Apply default format if it wasn't applied explicitly\r\n if (!formatApplied) {\r\n var formatParts = [{\r\n method: \"\",\r\n params: format\r\n }];\r\n if (!$type.hasValue(format)) {\r\n // Format is not set\r\n // Determine from the type of the value\r\n if ($type.isNumber(current)) {\r\n formatParts[0].method = \"formatNumber\";\r\n formatParts[0].params = \"\";\r\n }\r\n else if ($type.isDate(current)) {\r\n formatParts[0].method = \"formatDate\";\r\n formatParts[0].params = \"\";\r\n }\r\n }\r\n else {\r\n // Format set\r\n // Try to determine formatter based on the format\r\n var formatterType = $utils.getFormat(format);\r\n // format\r\n if (formatterType === $strings.NUMBER) {\r\n formatParts[0].method = \"formatNumber\";\r\n }\r\n else if (formatterType === $strings.DATE) {\r\n formatParts[0].method = \"formatDate\";\r\n }\r\n else if (formatterType === $strings.DURATION) {\r\n formatParts[0].method = \"formatDuration\";\r\n }\r\n }\r\n // Apply format\r\n if (formatParts[0].method) {\r\n current = this.getTagValueFromObject(formatParts, current);\r\n }\r\n }\r\n return current;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"dataItem\", {\r\n /**\r\n * @return [[DataItem]]\r\n */\r\n get: function () {\r\n if (!this._dataItem) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.dataItem;\r\n }\r\n if (this._parent) {\r\n return this._parent.dataItem;\r\n }\r\n }\r\n return this._dataItem;\r\n },\r\n /**\r\n * A [[DataItem]] to use as element's data source.\r\n *\r\n * @todo Review type\r\n * @param dataItem DataItem\r\n */\r\n set: function (dataItem) {\r\n //an not use this[\"_dataItem\"] here, as we return parent data item if this sprite doesn't have one.\r\n // @todo:think about it\r\n this.setDataItem(dataItem);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets currently used [[DataItem]].\r\n *\r\n * If the element has also `configField` set, it will also look for any\r\n * config in DataItem's data context to apply to this element.\r\n *\r\n * @param dataItem DataItem\r\n */\r\n Sprite.prototype.setDataItem = function (dataItem) {\r\n var _this = this;\r\n if (this._dataItem != dataItem) {\r\n this._dataItem = dataItem;\r\n if (dataItem) {\r\n if (this.configField) {\r\n var dataContext_1 = dataItem.dataContext;\r\n if (dataContext_1) {\r\n this.config = dataContext_1[this.configField];\r\n if (!this.config && dataContext_1.dataContext) {\r\n this.config = dataContext_1.dataContext[this.configField];\r\n }\r\n }\r\n }\r\n var dataContext_2 = dataItem.dataContext;\r\n if (dataContext_2) {\r\n var dataContext2_1 = dataContext_2.dataContext;\r\n $object.each(this.propertyFields, function (propertyName, fieldValue) {\r\n if ($type.hasValue(dataContext_2[fieldValue])) {\r\n var anyThis = _this;\r\n anyThis[propertyName] = dataContext_2[fieldValue];\r\n }\r\n else {\r\n if (dataContext2_1) {\r\n var value = dataContext2_1[fieldValue];\r\n if ($type.hasValue(value)) {\r\n var anyThis = _this;\r\n anyThis[propertyName] = value;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n this.invalidate();\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * PROPERTY UTILITIES\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns element's property value.\r\n *\r\n * Will check if there are any bindings with [[DataItem]].\r\n *\r\n * Will also apply any adapters bound to `propertyName`.\r\n *\r\n * @param propertyName Property name\r\n * @return Property value\r\n */\r\n Sprite.prototype.getPropertyValue = function (propertyName) {\r\n var propValue = this.properties[propertyName];\r\n // Apply adapter\r\n if (!this._isTemplate) {\r\n if (this._adapterO) {\r\n propValue = this._adapterO.apply(propertyName, propValue);\r\n }\r\n propValue = globalAdapter.applyAll(this, propertyName, propValue);\r\n }\r\n return propValue;\r\n };\r\n Sprite.prototype.setColorProperty = function (property, value, invalidate) {\r\n var currentValue = this.properties[property];\r\n if (value instanceof Color && currentValue instanceof Color && value.toString() == currentValue.toString()) {\r\n return false;\r\n }\r\n else {\r\n return this.setPropertyValue(property, value, invalidate);\r\n }\r\n };\r\n Sprite.prototype.setPercentProperty = function (property, value, invalidate, transform, precision, floor) {\r\n value = $type.toNumberOrPercent(value);\r\n if ($type.isNumber(value)) {\r\n if ($type.isNumber(precision)) {\r\n value = $math.round(value, precision, floor);\r\n }\r\n return this.setPropertyValue(property, value, invalidate, transform);\r\n }\r\n else {\r\n var currentValue = this.properties[property];\r\n if (value instanceof Percent && currentValue instanceof Percent && value.value == currentValue.value) {\r\n return false;\r\n }\r\n else {\r\n return this.setPropertyValue(property, value, invalidate, transform);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets elements's property value. Will also propagate the same property value\r\n * on all element's clones.\r\n *\r\n * @param property Property\r\n * @param value Value\r\n * @param invalidate Should the sprite be invalidated, cause it's re-rendering\r\n * @param transform Re-apply positioning of the element\r\n * @return Did the value change? It will return `true` if the new value and the old value of the property are not the same\r\n * @todo Review propagation to clones. Right now we simply check if clone is disposed before setting the same property on it. It's better to remove from clone list altogether.\r\n */\r\n Sprite.prototype.setPropertyValue = function (property, value, invalidate, transform) {\r\n if (this.properties[property] !== value && !this.isDisposed()) {\r\n this.properties[property] = value;\r\n if (this.events.isEnabled(\"propertychanged\")) {\r\n var event_1 = {\r\n type: \"propertychanged\",\r\n target: this,\r\n property: property\r\n };\r\n this.events.dispatchImmediately(\"propertychanged\", event_1);\r\n }\r\n if (invalidate) {\r\n this.invalidate();\r\n }\r\n if (transform) {\r\n this.invalidatePosition();\r\n }\r\n if (this.applyOnClones) {\r\n var clones = this.clones.values;\r\n var length_2 = clones.length;\r\n for (var i = 0; i < length_2; ++i) {\r\n var clone = clones[i];\r\n if (!clone.isDisposed()) {\r\n //(<Sprite>clone).setPropertyValue(<any>property, value, invalidate, transform);\r\n clone[property] = value;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Sprite.prototype.bind = function (property, source, bindToProperty, modifier) {\r\n var _this = this;\r\n if (bindToProperty === void 0) { bindToProperty = property; }\r\n if ($type.hasValue(this._bindings[property])) {\r\n this._bindings[property].dispose();\r\n }\r\n // set current value\r\n this[property] = source[bindToProperty];\r\n //source.addEventListener(AMEvent.PROPERTY_CHANGED, this.handleBindings, false, this);\r\n this._bindings[property] = source.events.on(\"propertychanged\", function (event) {\r\n if (event.property === bindToProperty) {\r\n var value = source[bindToProperty];\r\n if (modifier) {\r\n value = modifier(value);\r\n }\r\n // TODO clonesById\r\n _this[property] = value;\r\n }\r\n });\r\n };\r\n /**\r\n * Sets up and obeserver function to monitor changes in particular property\r\n * or properties.\r\n *\r\n * @ignore Exclude from docs\r\n * @param property Element's property name\r\n * @param listener Handler function\r\n * @param context Context for handler function\r\n * @returns Event Disposer\r\n */\r\n Sprite.prototype.observe = function (property, listener, context, shouldClone) {\r\n var _this = this;\r\n return new MultiDisposer($array.map($array.toArray(property), function (prop) {\r\n return _this.events.on(\"propertychanged\", function (e) {\r\n if (e.property === prop) {\r\n listener.call(context, e);\r\n }\r\n }, context, shouldClone);\r\n }));\r\n };\r\n /**\r\n * ==========================================================================\r\n * ACCESSIBILITY-RELATED PROPERTIES\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Applies accessibility to the SVG element.\r\n *\r\n * Adds `<title>` and `<description>` elements as well as `aria-labelledby`\r\n * and `role` properties.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.applyAccessibility = function () {\r\n // Check if we need to add label and description\r\n var title = this.readerTitle, description = this.readerDescription, role = this.role, hidden = this.readerHidden, checked = this.readerChecked, controls = this.readerControls, live = this.readerLive, orientation = this.readerOrientation, valueNow = this.readerValueNow, valueText = this.readerValueText;\r\n // Init label/describe ids\r\n var labelledByIds = [];\r\n var describedByIds = [];\r\n var labelledBy = this.readerLabelledBy;\r\n if (labelledBy) {\r\n labelledByIds.push(labelledBy);\r\n }\r\n var describedBy = this.readerDescribedBy;\r\n if (describedBy) {\r\n describedByIds.push(describedBy);\r\n }\r\n // Add arial-label attribute if present\r\n // If not readerTitle and labelledBy is set we will use <title> element\r\n // instead of aria-label\r\n // TODO: should we check agains this.showSystemTooltip?\r\n if (title) {\r\n if (labelledByIds.length || this.showSystemTooltip) {\r\n var titleElement = this.titleElement;\r\n var titleId = this.uid + \"-title\";\r\n if (titleElement.node.textContent != title) {\r\n titleElement.node.textContent = title;\r\n titleElement.attr({ id: titleId });\r\n }\r\n labelledByIds.push(titleId);\r\n }\r\n else {\r\n if (this._titleElement) {\r\n this.group.removeElement(this._titleElement);\r\n this._titleElement = undefined;\r\n }\r\n this.setSVGAttribute({\r\n \"aria-label\": title\r\n });\r\n }\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-label\");\r\n if (this._titleElement) {\r\n this.group.removeElement(this._titleElement);\r\n this._titleElement = undefined;\r\n }\r\n }\r\n // Add description\r\n if (description) {\r\n var descriptionElement = this.descriptionElement;\r\n var descriptionId = this.uid + \"-description\";\r\n if (descriptionElement.node.textContent != description) {\r\n descriptionElement.node.textContent = description;\r\n descriptionElement.attr({ id: descriptionId });\r\n }\r\n describedByIds.push(descriptionId);\r\n }\r\n else if (this._descriptionElement) {\r\n this.group.removeElement(this._descriptionElement);\r\n this._descriptionElement = undefined;\r\n }\r\n // Add label and described properties\r\n if (labelledByIds.length) {\r\n this.setSVGAttribute({ \"aria-labelledby\": labelledByIds.join(\" \") });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-labelledby\");\r\n }\r\n if (describedByIds.length) {\r\n this.setSVGAttribute({ \"aria-describedby\": describedByIds.join(\" \") });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-describedby\");\r\n }\r\n // Apply role\r\n if (role) {\r\n this.setSVGAttribute({ \"role\": role });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"role\");\r\n }\r\n // Apply aria-hidden\r\n if (hidden) {\r\n this.setSVGAttribute({ \"aria-hidden\": \"true\" });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-hidden\");\r\n }\r\n // Apply aria-checked\r\n if (checked) {\r\n this.setSVGAttribute({ \"aria-checked\": \"true\" });\r\n }\r\n else if (checked === false) {\r\n this.setSVGAttribute({ \"aria-checked\": \"false\" });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-checked\");\r\n }\r\n // Apply aria-controls\r\n if (controls) {\r\n this.setSVGAttribute({ \"aria-controls\": controls });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-controls\");\r\n }\r\n // Apply aria-live\r\n if (live) {\r\n this.setSVGAttribute({ \"aria-live\": live });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-live\");\r\n }\r\n // Apply aria-orientation\r\n if (orientation) {\r\n this.setSVGAttribute({ \"aria-orientation\": orientation });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-orientation\");\r\n }\r\n // Apply aria-valuenow\r\n if (valueNow) {\r\n this.setSVGAttribute({ \"aria-valuenow\": valueNow });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-valuenow\");\r\n }\r\n // Apply aria-valuetext\r\n if (valueText) {\r\n this.setSVGAttribute({ \"aria-valuetext\": valueText });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-valuetext\");\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"readerTitle\", {\r\n /**\r\n * @return Title\r\n */\r\n get: function () {\r\n var title = this.getPropertyValue(\"readerTitle\");\r\n if ($type.hasValue(title) && this.dataItem) {\r\n return this.populateString(title);\r\n }\r\n return title;\r\n },\r\n /**\r\n * Screen reader title of the element.\r\n *\r\n * @param value Title\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerTitle\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerDescription\", {\r\n /**\r\n * @return Description\r\n */\r\n get: function () {\r\n var description = this.getPropertyValue(\"readerDescription\");\r\n if ($type.hasValue(description) && this.dataItem) {\r\n return this.populateString(description);\r\n }\r\n return this.getPropertyValue(\"readerDescription\");\r\n },\r\n /**\r\n * Screen reader description of the element.\r\n *\r\n * @param value Description\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerDescription\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"role\", {\r\n /**\r\n * @return Role\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"role\");\r\n },\r\n /**\r\n * A WAI-ARIA role for the element.\r\n *\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#role_definitions} for more information on WAI-ARIA roles\r\n * @param value Role\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"role\", value)) {\r\n this.applyAccessibility();\r\n if (value == \"slider\") {\r\n this.setSVGAttribute({ \"aria-valuemin\": \"0\" });\r\n this.setSVGAttribute({ \"aria-valuemax\": \"100\" });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerHidden\", {\r\n /**\r\n * @return Hidden?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerHidden\");\r\n },\r\n /**\r\n * Controls if element should be hidden from screen readers.\r\n *\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-hidden} for more information\r\n * @param value Hidden?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"readerHidden\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerChecked\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Checked?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerChecked\");\r\n },\r\n /**\r\n * Controls if element is currently marked as \"checked\".\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-checked} for more information\r\n * @param value Checked?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"readerChecked\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerControls\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Setting value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerControls\");\r\n },\r\n /**\r\n * A `uid` of an element this element controls.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-controls} for more information\r\n * @param value Setting value\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerControls\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerLive\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Setting value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerLive\");\r\n },\r\n /**\r\n * Controls accessibility setting \"aria-live\" for the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions} for more information\r\n * @param value Setting value\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerLive\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerLabelledBy\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Target element\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerLabelledBy\");\r\n },\r\n /**\r\n * A `uid` of an element that describes this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby} for more information\r\n * @param value Target element\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerLabelledBy\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerDescribedBy\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Target element\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerDescribedBy\");\r\n },\r\n /**\r\n * A `uid` of an element that describes this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-describedby} for more information\r\n * @param value Target element\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerDescribedBy\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerOrientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerOrientation\");\r\n },\r\n /**\r\n * Orientation of the element.\r\n *\r\n * @since 4.7.16\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerOrientation\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerValueNow\", {\r\n /**\r\n * @return Current value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerValueNow\");\r\n },\r\n /**\r\n * Current value of the element.\r\n *\r\n * @since 4.7.16\r\n * @param value Current value\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerValueNow\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"readerValueText\", {\r\n /**\r\n * @return Current value (text)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"readerValueText\");\r\n },\r\n /**\r\n * Text representation of the current value of the element.\r\n *\r\n * @since 4.7.16\r\n * @param value Current value (text)\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerValueText\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"keyboardOptions\", {\r\n /**\r\n * ==========================================================================\r\n * USER INTERACTIONS\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns elements keyboard options.\r\n *\r\n * @return Keyboard options\r\n */\r\n get: function () {\r\n if (!this.interactions.keyboardOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.keyboardOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.keyboardOptions;\r\n }\r\n }\r\n return this.interactions.keyboardOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"mouseOptions\", {\r\n /**\r\n * Mouse options.\r\n *\r\n * Enables controlling options related to the mouse, for example sensitivity\r\n * of its mouse wheel.\r\n *\r\n * E.g. the below will reduce chart's wheel-zoom speed to half its default\r\n * speed:\r\n *\r\n * ```TypeScript\r\n * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n * ```\r\n * ```JavaScript\r\n * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"plotContainer\": {\r\n * \"mouseOptions\": {\r\n * \"sensitivity\": 0.5\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @return Mouse options\r\n */\r\n get: function () {\r\n if (!this.interactions.mouseOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.mouseOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.mouseOptions;\r\n }\r\n }\r\n return this.interactions.mouseOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"interactions\", {\r\n /**\r\n * Returns (creates if necessary) an [[InteractionObject]] associated with\r\n * this element.\r\n *\r\n * [[InteractionObject]] is used to attach all kinds of user-interactions to\r\n * the element, e.g. click/touch, dragging, hovering, and similar events.\r\n *\r\n * @return Interaction object\r\n */\r\n get: function () {\r\n if (!this._interaction) {\r\n var interaction = getInteraction().getInteraction(this.dom);\r\n this._interaction = interaction;\r\n interaction.clickable = this.clickable;\r\n interaction.hoverable = this.hoverable;\r\n interaction.trackable = this.trackable;\r\n interaction.draggable = this.draggable;\r\n interaction.swipeable = this.swipeable;\r\n interaction.resizable = this.resizable;\r\n interaction.wheelable = this.wheelable;\r\n interaction.contextMenuDisabled = this.contextMenuDisabled;\r\n interaction.inert = this.inert;\r\n interaction.sprite = this;\r\n this._disposers.push(interaction);\r\n }\r\n return this._interaction;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns true if interactions object was created. Mostly used just to avoid creating interactions object if not needed.\r\n * @return Is Sprite interactive?\r\n */\r\n Sprite.prototype.isInteractive = function () {\r\n if (this._interaction) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"focusable\", {\r\n /**\r\n * @return Can element be focused?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"focusable\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * ELEMENT FOCUS-RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Controls if the element can gain focus.\r\n *\r\n * Focusable element will be selectable via TAB key.\r\n *\r\n * Please note, clicking it with a mouse or touching will not add focus to\r\n * it.\r\n *\r\n * Focused element will show a system-specific highlight, which might ruin\r\n * the overal look. This is why we don't focus element on click/touch.\r\n *\r\n * A default setting varies for different elements. By default all elements\r\n * are not focusable, except certain items like buttons, legend items, etc.\r\n *\r\n * @default undefined (auto)\r\n * @param value Can element be focused?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"focusable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n }\r\n else {\r\n this.interactions.focusable = value;\r\n if (value) {\r\n this.setSVGAttribute({ \"focusable\": value });\r\n if (!$type.hasValue(this._tabindex)) {\r\n this.tabindex = 0;\r\n }\r\n }\r\n else {\r\n this.removeSVGAttribute(\"focusable\");\r\n this.tabindex = undefined;\r\n }\r\n // Set focus events that would apply \"focus\" state\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-focusable\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"blur\", _this.handleBlur, _this, false),\r\n _this.events.on(\"focus\", _this.handleFocus, _this, false)\r\n ]); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Applies filters (if set) when element gains focus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Original event\r\n */\r\n Sprite.prototype.handleFocus = function (ev) {\r\n if (this.focusable) {\r\n if (this.topParent) {\r\n this.topParent.hasFocused = true;\r\n this.topParent.focusedElement = this;\r\n }\r\n if (this.focusFilter) {\r\n // Any `filters` manipulation will trigger `applyFilters()` so we don't\r\n // need to call it here\r\n this.filters.push(this.focusFilter);\r\n }\r\n if (this.hoverOnFocus) {\r\n // Trigger a hover event as well\r\n this.isHover = true;\r\n this.handleOver();\r\n }\r\n }\r\n };\r\n /**\r\n * Removes focus filter (if set) when elementloses focus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Original event\r\n */\r\n Sprite.prototype.handleBlur = function (ev) {\r\n if (this.focusable) {\r\n if (this.topParent) {\r\n this.topParent.hasFocused = false;\r\n this.topParent.focusedElement = undefined;\r\n }\r\n if (this.focusFilter) {\r\n // Any `filters` manipulation will trigger `applyFilters()` so we don't\r\n // need to call it here\r\n this.filters.removeValue(this.focusFilter);\r\n }\r\n if (this.hoverOnFocus) {\r\n // Trigger a out event as well\r\n this.isHover = false;\r\n this.handleOut();\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"focusFilter\", {\r\n /**\r\n * A reference to a [[Filter]] to apply to element when it gains focus.\r\n *\r\n * Normally, browsers will draw a default ugly square around focused element,\r\n * which totally makes sense because its purpose is to help identify active\r\n * element for visually impaired people.\r\n *\r\n * However, if you would rather apply a filter, so you can modify how focused\r\n * element looks like, use `focusFilter`.\r\n *\r\n * Simply set it to an anstance of [[FocusFilter]], or any other filter\r\n * object.\r\n *\r\n * ```TypeScript\r\n * chart.focusFilter = new am4core.FocusFilter();\r\n * ```\r\n * ```JavaScript\r\n * chart.focusFilter = new am4core.FocusFilter();\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"focusFilter\": {\r\n * \"type\": \"FocusFilter\"\r\n * },\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @see {@link Filter}\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/accessibility/} more about accessibility\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/changing-appearance-of-focused-items/} cusomizing focus appearance\r\n * @ignore Exclude from docs\r\n * @return Focused element filter\r\n */\r\n get: function () {\r\n /*if (!this._focusFilter) {\r\n this._focusFilter = new FocusFilter();\r\n this._disposers.push(this._focusFilter);\r\n }*/\r\n //return this._focusFilter;\r\n var focusFilter = this._focusFilter;\r\n if (focusFilter) {\r\n return focusFilter;\r\n }\r\n if (this.virtualParent) {\r\n return this.virtualParent.focusFilter;\r\n }\r\n else if (this._parent) {\r\n return this._parent.focusFilter;\r\n }\r\n //this._focusFilter = new FocusFilter();\r\n //this._disposers.push(this._focusFilter);\r\n },\r\n /**\r\n * @see {@link Filter}\r\n * @ignore Exclude from docs\r\n * @todo This is still experimental, don't use it\r\n */\r\n set: function (value) {\r\n this._focusFilter = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"hoverOnFocus\", {\r\n /**\r\n * @return Trigger hover on focus?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hoverOnFocus\");\r\n },\r\n /**\r\n * If set to `true`, this element will also trigger `\"over\"` event with all\r\n * the related consequences, like \"hover\" state being applied and tooltip\r\n * being shown.\r\n *\r\n * Useful as an accessibility feature to display rollover tooltips on items\r\n * selected via keyboard.\r\n *\r\n * @param value Trigger hover on focus?\r\n * @default false\r\n */\r\n set: function (value) {\r\n if (value !== this.hoverOnFocus) {\r\n this.setPropertyValue(\"hoverOnFocus\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tabindex\", {\r\n /**\r\n * @return TAB index\r\n */\r\n get: function () {\r\n var index = this._tabindex;\r\n if (index != null) {\r\n return index;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.tabindex;\r\n }\r\n else if (this._parent) {\r\n return this._parent.tabindex;\r\n }\r\n },\r\n /**\r\n * Sets or returns TAB index.\r\n *\r\n * Tab index maintains the order in which focusable elements gain focus when\r\n * TAB key is pressed.\r\n *\r\n * Please note, tab index is not local to the chart. It affects the whole\r\n * of the page, including non-SVG elements. Maintain extreme causion when\r\n * setting tab indexes, as it affects the user experience for the whole\r\n * web page.\r\n *\r\n * @param value TAB index\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n if (this.setPropertyValue(\"tabindex\", value) && $type.isNumber(value)) {\r\n this.interactions.tabindex = value;\r\n this.setSVGAttribute({ \"tabindex\": value });\r\n this._tabindex = value;\r\n this.focusable = true;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"inertiaOptions\", {\r\n /**\r\n * ==========================================================================\r\n * DRAGGING AND RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns element's options to be used for inertia. This setting is\r\n * inheritable, meaning that if not set directly, it will search in all its\r\n * ascendants until very top.\r\n *\r\n * Inertia is used only if element's `inert` is set to `true`.\r\n *\r\n * \"Inert\" element, when dragged and released, will carry the momentum of the\r\n * movement, and will continue moving in the same drag direction, gradually\r\n * reducing in speed until finally stops.\r\n *\r\n * Check [[IInertiaOptions]] for how you tweak inertia animations.\r\n *\r\n * @return Inertia options\r\n */\r\n get: function () {\r\n if (!this.interactions.inertiaOptions) {\r\n if (this._parent) {\r\n return this._parent.inertiaOptions;\r\n }\r\n }\r\n return this.interactions.inertiaOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"draggable\", {\r\n /**\r\n * @return `true` if element can be dragged\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"draggable\");\r\n },\r\n /**\r\n * Controls if the element is draggable.\r\n *\r\n * @param value `true` if element can be dragged\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"draggable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.draggable = value;\r\n //interaction.processDraggable(this);\r\n // Add events\r\n // @todo Maybe attach to InteractionObject's multidisposer so that\r\n // sprites events get disposed together with them?\r\n // this.interactions.disposers.getItem(\"movable\")\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-draggable\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"down\", _this.handleDown, _this, false),\r\n _this.events.on(\"dragstart\", _this.handleDragStart, _this, false),\r\n _this.events.on(\"drag\", _this.handleDragMove, _this, false),\r\n _this.events.on(\"dragstop\", _this.handleDragStop, _this, false)\r\n ]); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Executes when dragged element is being started to drag.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.handleDragStart = function (ev) {\r\n if (!this.interactions.isTouchProtected || !ev.touch) {\r\n this.interactions.originalPosition = {\r\n x: this.pixelX,\r\n y: this.pixelY\r\n };\r\n this._isDragged = true;\r\n this.hideTooltip(0);\r\n }\r\n };\r\n /**\r\n * Tell this element to start being dragged. This is useful if you want to\r\n * drag items by interactions performed not directly on the target element.\r\n *\r\n * Parameter `pointer` is highly recommended. By passing in the Pointer you\r\n * will ensure that movement is tracked for the pointer that you want. If not\r\n * supplied, the system will try to determine the most logical pointer.\r\n *\r\n * However this may fail if you have more than one pointer active, which\r\n * might happen if you have several objects being dragged on a touch device.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pointer Pointer to use for movement\r\n */\r\n Sprite.prototype.dragStart = function (pointer) {\r\n //this.dragStop(pointer);\r\n //this.draggable = true;\r\n this._isDragged = true;\r\n getInteraction().dragStart(this.interactions, pointer);\r\n };\r\n /**\r\n * Executes when dragged element is being dropped.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype.handleDragStop = function (ev) {\r\n if (!this.interactions.isTouchProtected || !ev.touch) {\r\n this._isDragged = false;\r\n this.showTooltip();\r\n this.interactions.originalPosition = undefined;\r\n }\r\n };\r\n /**\r\n * Stops manually initiated dragging of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pointer Pointer to use as a reference\r\n */\r\n Sprite.prototype.dragStop = function (pointer, cancelled) {\r\n //this.draggable = false;\r\n this._isDragged = false;\r\n getInteraction().dragStop(this.interactions, pointer, cancelled);\r\n //this.handleDragStop();\r\n };\r\n /**\r\n * Executes when {Sprite} is being dragged.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n * @todo Implement parent position offset calculation\r\n */\r\n Sprite.prototype.handleDragMove = function (ev) {\r\n if (!this.interactions.isTouchProtected || !ev.touch) {\r\n var point = this.interactions.originalPosition;\r\n if (point && this._isDragged) {\r\n var globalScale = this._parent.globalScale * this.svgContainer.cssScale;\r\n this.moveTo({ x: point.x + ev.shift.x / globalScale, y: point.y + ev.shift.y / globalScale }, undefined, undefined, true);\r\n }\r\n this.dispatchImmediately(\"dragged\", ev);\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"inert\", {\r\n /**\r\n * @return `true` if element should use inertia when animated\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"inert\");\r\n },\r\n /**\r\n * Controls if the element should use inertia when interacted with.\r\n *\r\n * \"Inert\" element, when dragged and released, will carry the momentum of the\r\n * movement, and will continue moving in the same drag direction, gradually\r\n * reducing in speed until finally stops.\r\n *\r\n * @default false\r\n * @param value `true` if element should use inertia when animated\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"inert\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.interactions.inert = value;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"hoverOptions\", {\r\n /**\r\n * ==========================================================================\r\n * HOVERING\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns Sprite's hover options.\r\n *\r\n * @see {@link IHoverOptions} for available options.\r\n * @return Options\r\n */\r\n get: function () {\r\n if (!this.interactions.hoverOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.hoverOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.hoverOptions;\r\n }\r\n }\r\n return this.interactions.hoverOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"hoverable\", {\r\n /**\r\n * @return `true` if element is hoverable\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hoverable\");\r\n },\r\n /**\r\n * Controls if the element is hoverable (hover events are registered).\r\n *\r\n * Use `over` and `out` events, to watch for those respective actions.\r\n *\r\n * @default false\r\n * @param value `true` if element can be hovered\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"hoverable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.hoverable = value;\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-hoverable\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"over\", _this.handleOver, _this, false),\r\n _this.events.on(\"out\", _this.handleOut, _this, false),\r\n ]); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles tasks when element becomes hovered:\r\n * * Shows [[Tooltip]] if applicable\r\n * * Applies \"hover\" state\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Sprite.prototype.handleOver = function (ev) {\r\n if (this._outTimeout) {\r\n this._outTimeout.dispose();\r\n }\r\n if (this.isHover) {\r\n if (this.states.hasKey(\"hover\")) {\r\n //this.setState(\"hover\");\r\n // This will check `isHover` and will set \"hover\" state\r\n if (!this.isHidden) {\r\n this.applyCurrentState();\r\n }\r\n }\r\n var point = void 0;\r\n if (ev && ev.pointer) {\r\n point = $utils.documentPointToSvg(ev.pointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale);\r\n }\r\n if (this.showTooltipOn == \"hover\") {\r\n this.showTooltip(point);\r\n }\r\n }\r\n else {\r\n if (this.showTooltipOn == \"hover\") {\r\n this.hideTooltip();\r\n }\r\n if (!this.isHidden && this.states.hasKey(\"hover\")) {\r\n this.applyCurrentState();\r\n }\r\n }\r\n };\r\n /**\r\n * Handles tasks when element loses hover:\r\n *\r\n * * Hides [[Tooltip]]\r\n * * Applies default state\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev [description]\r\n */\r\n Sprite.prototype.handleOut = function (ev) {\r\n var _this = this;\r\n if (this.tooltip && this.tooltip.targetSprite == this && this.tooltip.keepTargetHover) {\r\n this._outTimeout = this.setTimeout(function () {\r\n if (!_this.tooltip.isHover) {\r\n if (_this.tooltip.targetSprite == _this) {\r\n _this.hideTooltip();\r\n }\r\n _this._outTimeout = _this.setTimeout(_this.handleOutReal.bind(_this), _this.rollOutDelay);\r\n }\r\n }, 10);\r\n return;\r\n }\r\n if (this.showTooltipOn == \"hover\") {\r\n this.hideTooltip();\r\n }\r\n this._outTimeout = this.setTimeout(this.handleOutReal.bind(this), this.rollOutDelay);\r\n };\r\n /**\r\n * [handleOutReal description]\r\n *\r\n * @ignore\r\n * @todo description\r\n */\r\n Sprite.prototype.handleOutReal = function () {\r\n if (!this.isHidden && !this.isHiding && this.states.hasKey(\"hover\")) {\r\n this.applyCurrentState();\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"hitOptions\", {\r\n /**\r\n * ==========================================================================\r\n * CLICKING/TAPPING AND TOGGLING STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns Sprite's click (hit) options.\r\n *\r\n * Click (hit) options control things like double-click, timeouts, etc.\r\n *\r\n * @see {@link IHitOptions} for available options.\r\n * @return Options\r\n */\r\n get: function () {\r\n if (!this.interactions.hitOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.hitOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.hitOptions;\r\n }\r\n }\r\n return this.interactions.hitOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Prepares element's after `down` event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event\r\n */\r\n Sprite.prototype.handleDown = function (ev) {\r\n if (this.interactions.downPointers.length === 1) {\r\n this.interactions.originalPosition = {\r\n x: this.pixelX,\r\n y: this.pixelY\r\n };\r\n this.interactions.originalAngle = this.rotation;\r\n this.interactions.originalScale = this.scale;\r\n if (this.states.hasKey(\"down\")) {\r\n this.setState(\"down\");\r\n }\r\n }\r\n };\r\n /**\r\n * Prepares element's after `up` event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event\r\n */\r\n Sprite.prototype.handleUp = function (ev) {\r\n var _this = this;\r\n /*if (!this.isDown) {\r\n this.interactions.originalPosition = null;\r\n this.interactions.originalAngle = null;\r\n this.interactions.originalScale = null;\r\n }*/\r\n this._isResized = false;\r\n if (this.states.hasKey(\"down\")) {\r\n this.applyCurrentState();\r\n }\r\n if (this.showTooltipOn == \"hit\") {\r\n this.updateTooltipPosition(ev.pointer ? ev.pointer.point : undefined);\r\n this._disposers.push(registry.events.once(\"exitframe\", function () {\r\n _this.showTooltip();\r\n }));\r\n this._disposers.push(getInteraction().body.events.once(\"down\", function (ev) {\r\n _this.hideTooltip();\r\n }));\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"clickable\", {\r\n /**\r\n * @return {boolean}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"clickable\");\r\n },\r\n /**\r\n * Indicates if the element is clickable.\r\n *\r\n * Some type of the elements, like buttons are clickable by default.\r\n *\r\n * Most of the elements are not clickable by default.\r\n *\r\n * Use `hit`, `doublehit`, `up`, `down`, `toggled` events to watch for\r\n * respective click/touch actions.\r\n *\r\n * @param value `true` if element can be clicked\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"clickable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.clickable = value;\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-clickable\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"down\", _this.handleDown, _this, false),\r\n _this.events.on(\"up\", _this.handleUp, _this, false)\r\n ]); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"togglable\", {\r\n /**\r\n * @return Is togglable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"togglable\");\r\n },\r\n /**\r\n * Indicates if element can be toggled on and off by subsequent clicks/taps.\r\n *\r\n * Togglable element will alternate its `isActive` property between `true`\r\n * and `false` with each click.\r\n *\r\n * @param value Is togglable?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"togglable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-togglable\", value, function () { return _this.events.on(\"hit\", _this.handleToggle, _this, false); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles toggling of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event\r\n */\r\n Sprite.prototype.handleToggle = function (ev) {\r\n this.isActive = !this.isActive;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"contextMenuDisabled\", {\r\n /**\r\n * @return Context menu disabled?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"contextMenuDisabled\");\r\n },\r\n /**\r\n * Should element prevent context menu to be displayed, e.g. when\r\n * right-clicked?\r\n *\r\n * @default false\r\n * @param value Context menu disabled?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"contextMenuDisabled\", value)) {\r\n this.interactions.contextMenuDisabled = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"url\", {\r\n /**\r\n * @return URL\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"url\");\r\n },\r\n /**\r\n * Click-through URL for this element.\r\n *\r\n * If set, clicking/tapping this element will open the new URL in a target\r\n * window/tab as set by `urlTarget`.\r\n *\r\n * Please note that URL will be parsed by data placeholders in curly\r\n * brackets, to be populated from data. E.g.:\r\n *\r\n * ```TypeScript\r\n * series.columns.template.url = \"https://www.google.com/search?q={category.urlEncode()}\";\r\n * ```\r\n * ```JavaScript\r\n * series.columns.template.url = \"https://www.google.com/search?q={category.urlEncode()}\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"columns\": {\r\n * \"url\": \"https://www.google.com/search?q={category.urlEncode()}\"\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @param value URL\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"url\", value)) {\r\n if (this._urlDisposer) {\r\n this._urlDisposer.dispose();\r\n }\r\n // If URL is not empty, set up events\r\n if ($utils.isNotEmpty(value)) {\r\n this._urlDisposer = this.events.on(\"hit\", this.urlHandler, this, false);\r\n // Set other required parameters\r\n this.clickable = true;\r\n this.cursorOverStyle = MouseCursorStyle.pointer;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"baseId\", {\r\n /**\r\n * [baseId description]\r\n *\r\n * @ignore\r\n * @return [description]\r\n */\r\n get: function () {\r\n if (!this._baseId && this._parent) {\r\n this.baseId = this._parent.baseId;\r\n }\r\n return this._baseId;\r\n },\r\n /**\r\n * [baseId description]\r\n *\r\n * @ignore\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setBaseId(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Sprite.prototype.setBaseId = function (value) {\r\n if (value != this._baseId) {\r\n if (this.invalid) {\r\n this.invalid = false;\r\n registry.removeFromInvalidSprites(this);\r\n this.invalidate();\r\n }\r\n this._baseId = value;\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"baseSprite\", {\r\n /**\r\n * Returns the mail chart object that this element belongs to.\r\n *\r\n * In most cases it will mean the chart object.\r\n *\r\n * Can be used to retrieve chart object in various events and adapters.\r\n *\r\n * ```TypeScript\r\n * chart.seriesContainer.events.on(\"hit\", function(ev) {\r\n * console.log(ev.target.baseSprite);\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * chart.seriesContainer.events.on(\"hit\", function(ev) {\r\n * console.log(ev.target.baseSprite);\r\n * });\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"seriesContainer\": {\r\n * \"events\": {\r\n * \"hit\": function(ev) {\r\n * console.log(ev.target.baseSprite);\r\n * }\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @readonly\r\n * @return Base chart object\r\n */\r\n get: function () {\r\n if (this.isBaseSprite) {\r\n return this;\r\n }\r\n else if (this._parent) {\r\n return this._parent.baseSprite;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"urlTarget\", {\r\n /**\r\n * @return URL target\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"urlTarget\");\r\n },\r\n /**\r\n * Target to use for URL clicks:\r\n *\r\n * * _blank\r\n * * _self (default)\r\n * * _parent\r\n * * _top\r\n * * Name of the window/frame\r\n *\r\n * Ignored if `url` is not set.\r\n *\r\n * @param value URL target\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"urlTarget\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles URL transition on element click.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev An event object\r\n */\r\n Sprite.prototype.urlHandler = function (ev) {\r\n // Is URL set?\r\n if ($utils.isNotEmpty(this.url)) {\r\n // Proceed to the URL\r\n var url = this.populateString(this.url);\r\n if (this.urlTarget === \"_self\") {\r\n window.location.href = url;\r\n }\r\n else {\r\n window.open(url, this.urlTarget);\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"swipeOptions\", {\r\n /**\r\n * ==========================================================================\r\n * SWIPING GESTURE TRACKING\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns element's swipe gesture options.\r\n *\r\n * @return Swipe gesture options\r\n */\r\n get: function () {\r\n if (!this.interactions.swipeOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.swipeOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.swipeOptions;\r\n }\r\n }\r\n return this.interactions.swipeOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"swipeable\", {\r\n /**\r\n * @return Element swipable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"swipeable\");\r\n },\r\n /**\r\n * Controls if element is swipeable.\r\n *\r\n * Swipable element will invoke `swipe`, `swipeleft` and `swiperight` events,\r\n * when quick horizontal drag action is performed with either mouse or touch.\r\n *\r\n * Please note that combining swipe and drag is possible, however will incur\r\n * a slight but noticeable delay in drag start.\r\n *\r\n * @param value Element swipable?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"swipeable\", value)) {\r\n this.applyCursorStyle();\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.interactions.swipeable = value;\r\n }\r\n //interaction.processSwipeable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"trackable\", {\r\n /**\r\n * @return Track cursor movement over element?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"trackable\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * POINTER TRACKING\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Indicates if the element is trackable (mouse position over it is reported to\r\n * event listeners).\r\n *\r\n * Will invoke `track` events whenever pointer (cursor) changes position\r\n * while over element.\r\n *\r\n * Please note, touch devices will also invoke `track` events when touch\r\n * point is moved while holding down on a trackable element.\r\n *\r\n * @param value Track cursor movement over element?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"trackable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.trackable = value;\r\n }\r\n //interaction.processTrackable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"wheelable\", {\r\n /**\r\n * @return Mouse wheel events enabled?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wheelable\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * MOUSE-WHEEL RELATED\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Indicates if the element can be interacted with mouse wheel.\r\n *\r\n * Will invoke `wheel`, `wheelup`, `wheeldown`, `wheelleft`, and `wheelright`\r\n * events when using mouse wheel over the element.\r\n *\r\n * @param value Mouse wheel events enabled?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"wheelable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.wheelable = value;\r\n }\r\n //interaction.processWheelable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"resizable\", {\r\n /**\r\n * @return Element resizable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"resizable\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * RESIZE\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Indicates if this element is resizable.\r\n *\r\n * Enabling resize will turn on various interactions on the element. Their\r\n * actual functionality will depend on other properties.\r\n *\r\n * If the element also `draggable`, resize will only happen with two points\r\n * of contact on a touch device.\r\n *\r\n * If the element is not draggable, resize can be performed with just one\r\n * point of contact, touch or mouse.\r\n *\r\n * Will invoke `resize` event every time the size of the element changes.\r\n *\r\n * @param value Element resizable?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"resizable\", value)) {\r\n if (!value && !this.isInteractive()) {\r\n // void\r\n }\r\n else {\r\n this.applyCursorStyle();\r\n this.interactions.resizable = value;\r\n // setEventDisposer will also remove listeners if value == false\r\n this.interactions.setEventDisposer(\"sprite-resizable\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"down\", _this.handleDown, _this, false),\r\n _this.events.on(\"resize\", _this.handleResize, _this, false)\r\n ]); });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles resize intermediate step.\r\n *\r\n * By default this method resizes actual element. Each element, can override\r\n * this method to implement their own resize logic.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Sprite.prototype.handleResize = function (ev) {\r\n if (!this.interactions.isTouchProtected || !ev.touch) {\r\n this._isResized = true;\r\n this.scale = this.interactions.originalScale * ev.scale;\r\n this.validatePosition();\r\n /*center: (io.draggable\r\n ? $math.getMidPoint(point1, point2)\r\n : {\r\n \"x\": io.originalPosition.x,\r\n \"y\": io.originalPosition.y\r\n })*/\r\n //this.moveTo(this.originalPosition.x + ev.shift.x, this.originalPosition.y + ev.shift.y);\r\n if (this.draggable || this.dragWhileResize) {\r\n this._isDragged = false;\r\n var svgPoint1 = $utils.documentPointToSvg(ev.point1, this.htmlContainer, this.svgContainer.cssScale);\r\n var svgPoint2 = $utils.documentPointToSvg(ev.point2, this.htmlContainer, this.svgContainer.cssScale);\r\n var svgMidPoint = $math.getMidPoint(svgPoint1, svgPoint2);\r\n var parentPoint1 = $utils.documentPointToSprite(ev.startPoint1, this._parent);\r\n var parentPoint2 = $utils.documentPointToSprite(ev.startPoint2, this._parent);\r\n var originalPosition = this.interactions.originalPosition;\r\n var originalScale = this.interactions.originalScale;\r\n if (originalPosition) {\r\n var spritePoint1 = { x: (parentPoint1.x - originalPosition.x) / originalScale, y: (parentPoint1.y - originalPosition.y) / originalScale };\r\n var spritePoint2 = { x: (parentPoint2.x - originalPosition.x) / originalScale, y: (parentPoint2.y - originalPosition.y) / originalScale };\r\n var spriteMidPoint = $math.getMidPoint(spritePoint1, spritePoint2);\r\n var parentPoint = $utils.svgPointToSprite(svgMidPoint, this._parent);\r\n this.moveTo({ x: parentPoint.x - spriteMidPoint.x * this.scale, y: parentPoint.y - spriteMidPoint.y * this.scale }, undefined, undefined, true);\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"cursorOptions\", {\r\n /**\r\n * ==========================================================================\r\n * MOUSE-RELATED\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns element's cursor options.\r\n *\r\n * Cursor options usually define cursor style for various states of the\r\n * hovered element.\r\n *\r\n * Elements inherit `cursorOptions` from their parents if they don't have\r\n * them set explicitly.\r\n *\r\n * @see {@link ICursorOptions} for a list of available options\r\n * @return Cursor options\r\n */\r\n get: function () {\r\n if (!this.interactions.cursorOptions) {\r\n if (this.virtualParent) {\r\n return this.virtualParent.cursorOptions;\r\n }\r\n if (this._parent) {\r\n return this._parent.cursorOptions;\r\n }\r\n }\r\n return this.interactions.cursorOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"cursorOverStyle\", {\r\n /**\r\n * A shortcut to setting mouse cursor on hover.\r\n *\r\n * Example:\r\n *\r\n * ```TypeScript\r\n * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\r\n * ```\r\n * ```JavaScript\r\n * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": {\r\n * // ...\r\n * \"slices\": {\r\n * \"cursorOverStyle\": \"pointer\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @param style An array of styles to apply onhover\r\n */\r\n set: function (style) {\r\n if (!this.cursorOptions.overStyle) {\r\n this.interactions.cursorOptions = {\r\n defaultStyle: this.cursorOptions.defaultStyle\r\n };\r\n }\r\n this.cursorOptions.overStyle = style;\r\n getInteraction().applyCursorOverStyle(this.interactions);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"cursorDownStyle\", {\r\n /**\r\n * A shortcut to setting mouse cursor when button is pressed down.\r\n *\r\n * Example:\r\n *\r\n * ```TypeScript\r\n * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;\r\n * ```\r\n * ```JavaScript\r\n * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": {\r\n * // ...\r\n * \"slices\": {\r\n * \"cursorDownStyle\": \"grabbing\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @param style An array of styles to apply onhover\r\n */\r\n set: function (style) {\r\n this.cursorOptions.downStyle = style;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Applies default cursor styles for interactable elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Determine if this is necessary. Maybe let's not apply any cursor styles by default\r\n */\r\n Sprite.prototype.applyCursorStyle = function () {\r\n // Draggable styles\r\n /*if (this.draggable) {\r\n\r\n if (!$type.hasValue(this.cursorOptions.overStyle)) {\r\n this.cursorOptions.overStyle = MouseCursorStyle.grab;\r\n }\r\n\r\n if (!$type.hasValue(this.cursorOptions.downStyle)) {\r\n this.cursorOptions.downStyle = MouseCursorStyle.grabbing;\r\n }\r\n }*/\r\n };\r\n Object.defineProperty(Sprite.prototype, \"interactionsEnabled\", {\r\n /**\r\n * @return Is interaction enabled for this element?\r\n */\r\n get: function () {\r\n var value = this.getPropertyValue(\"interactionsEnabled\");\r\n if (value === false) {\r\n return false;\r\n }\r\n if (this.virtualParent) {\r\n return this.virtualParent.interactionsEnabled;\r\n }\r\n if (this._parent) {\r\n return this._parent.interactionsEnabled;\r\n }\r\n return true;\r\n },\r\n /**\r\n * Setting this to `false` will effectively disable all interactivity on the\r\n * element.\r\n *\r\n * @param value Is interaction enabled for this element?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"interactionsEnabled\", value)) {\r\n var pointerEvents = null; // must be null, not \"null\"!\r\n if (!value) {\r\n pointerEvents = \"none\";\r\n }\r\n else {\r\n // this is for IE\r\n this.group.node.style.pointerEvents = \"\";\r\n }\r\n this.group.node.style.pointerEvents = pointerEvents;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"exporting\", {\r\n /**\r\n * @return Export instance\r\n */\r\n get: function () {\r\n return this.getExporting();\r\n },\r\n /**\r\n * ==========================================================================\r\n * EXPORT-RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * An [[Export]] instance.\r\n *\r\n * Used to access API of the chart export functionality.\r\n *\r\n * If `exporting` is not set, the element inherits [[Export]] instance from\r\n * its parents.\r\n *\r\n * Upon request, if no parent has such instance, a new one is created, using\r\n * default settings, what in most cases is just enough.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/exporting/} for more info about exporting\r\n * @param exp Export\r\n */\r\n set: function (exp) {\r\n this._exporting.set(exp, exp);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * This is here as a method so that inheriting classes could override it.\r\n *\r\n * @return Export instance\r\n */\r\n Sprite.prototype.getExporting = function () {\r\n var _export = this._exporting.get();\r\n if (_export) {\r\n return _export;\r\n }\r\n else {\r\n if (this.isStandaloneInstance || !this._parent) {\r\n _export = new Export(this.svgContainer.SVGContainer);\r\n _export.sprite = this;\r\n _export.language = this.language;\r\n _export.numberFormatter = this.numberFormatter;\r\n _export.dateFormatter = this.dateFormatter;\r\n _export.durationFormatter = this.durationFormatter;\r\n this._exporting.set(_export, _export);\r\n }\r\n else {\r\n return this._parent.exporting;\r\n }\r\n }\r\n return _export;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"exportable\", {\r\n /**\r\n * @return Export?\r\n */\r\n get: function () {\r\n return this._exportable;\r\n /*const svgContainer = this.svgContainer;\r\n return !svgContainer || $array.indexOf(svgContainer.nonExportableSprites, this) == -1;*/\r\n },\r\n /**\r\n * If set to `false` this element will be omitted when exporting the chart\r\n * to an image.\r\n *\r\n * @default true\r\n * @param value Export?\r\n */\r\n set: function (value) {\r\n var svgContainer = this.svgContainer;\r\n this._exportable = value;\r\n if (svgContainer) {\r\n if (value) {\r\n $array.remove(svgContainer.nonExportableSprites, this);\r\n }\r\n else if ($array.indexOf(svgContainer.nonExportableSprites, this) == -1) {\r\n svgContainer.nonExportableSprites.push(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * ==========================================================================\r\n * MODAL/POPUP RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Private method to be used for \"classPrefix\" adapter for modals/popups.\r\n *\r\n * @param value Prefix\r\n */\r\n Sprite.prototype.modalPrefix = function (value) {\r\n value = options.classNamePrefix + value;\r\n return value;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"modal\", {\r\n /**\r\n * Returns a [[Modal]] instance, associated with this chart.\r\n * (elements top parent)\r\n *\r\n * Accessing modal does not make it appear. To make a modal appear, use\r\n * `showModal()` method.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @return Modal instance\r\n */\r\n get: function () {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n var modal = svgContainer.modal;\r\n if (!modal.adapter.has(\"classPrefix\", this.modalPrefix)) {\r\n modal.adapter.add(\"classPrefix\", this.modalPrefix);\r\n }\r\n return modal;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Opens a modal window with specific content (`text` parameter) and,\r\n * optionally, `title`.\r\n *\r\n * The `text` parameter can contain HTML content.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @param text Modal contents\r\n * @param title Title for the modal window\r\n */\r\n Sprite.prototype.openModal = function (text, title) {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n return svgContainer.openModal(text, title);\r\n }\r\n };\r\n /**\r\n * Hides modal window if there is one currently open.\r\n */\r\n Sprite.prototype.closeModal = function () {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n svgContainer.closeModal();\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"popups\", {\r\n /**\r\n * A list of popups for this chart.\r\n *\r\n * @return Popups\r\n */\r\n get: function () {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n var popups = svgContainer.popups;\r\n popups.template.sprite = this;\r\n if (!popups.template.adapter.has(\"classPrefix\", this.modalPrefix)) {\r\n popups.template.adapter.add(\"classPrefix\", this.modalPrefix);\r\n }\r\n return popups;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates, opens, and returns a new [[Popup]] window.\r\n *\r\n * `text` can be any valid HTML.\r\n *\r\n * `title` is currently not supported.\r\n *\r\n * @param text Popup contents\r\n * @param title Popup title\r\n * @return Popup instance\r\n */\r\n Sprite.prototype.openPopup = function (text, title) {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n return svgContainer.openPopup(text, title);\r\n }\r\n };\r\n /**\r\n * Closes all currently open popup windows\r\n */\r\n Sprite.prototype.closeAllPopups = function () {\r\n var svgContainer = this.svgContainer;\r\n if (svgContainer) {\r\n svgContainer.closeAllPopups();\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"x\", {\r\n /**\r\n * @return X coordinate\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"x\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * POSITIONAL PROPERTIES AND RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Element's absolute or relative X coordinate.\r\n *\r\n * If setting both X and Y, please consider using `moveTo()` method instead,\r\n * as it will be faster to set both coordinates at once.\r\n *\r\n * @param value X coordinate\r\n */\r\n set: function (value) {\r\n if (!this.isDragged) {\r\n this.setPercentProperty(\"x\", value, false, true, this._positionPrecision, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelX\", {\r\n /**\r\n * Returns element's current absolute X coordinate in pixels.\r\n *\r\n * @readonly\r\n * @return X coordinate (px)\r\n */\r\n get: function () {\r\n var value = $math.fitToRange(this.getPixelX(this.x), this.minX, this.maxX);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelX\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeX\", {\r\n /**\r\n * Returns element's current relative X coordinate in [[Percent]].\r\n *\r\n * @return X coordinate ([[Percent]])\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n return this.getRelativeX(this.x);\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeX\", this.getRelativeX(this.x));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"minX\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Min X (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minX\");\r\n },\r\n /**\r\n * The smallest allowable absolute X coordinate for this element.\r\n *\r\n * This is used to contain element movement within certain boundaries.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Min X (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"minX\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"maxX\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Max X (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxX\");\r\n },\r\n /**\r\n * The biggest allowable absolute X coordinate for this element.\r\n *\r\n * This is used to contain element movement within certain boundaries.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Max X (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"maxX\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"y\", {\r\n /**\r\n * @return Y coordinate\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"y\");\r\n },\r\n /**\r\n * Element's absolute or relative Y coordinate.\r\n *\r\n * If setting both X and Y, please consider using `moveTo()` method instead,\r\n * as it will be faster to set both coordinates at once.\r\n *\r\n * @param value Y coordinate\r\n */\r\n set: function (value) {\r\n if (!this.isDragged) {\r\n this.setPercentProperty(\"y\", value, false, true, this._positionPrecision, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelY\", {\r\n /**\r\n * Returns element's current absolute Y coordinate in pixels.\r\n *\r\n * @readonly\r\n * @return Y coordinate (px)\r\n */\r\n get: function () {\r\n var value = $math.fitToRange(this.getPixelY(this.y), this.minY, this.maxY);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelY\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeY\", {\r\n /**\r\n * Returns element's current relative Y coordinate in [[Percent]].\r\n *\r\n * @readonly\r\n * @return Y coordinate ([[Percent]])\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n return this.getRelativeX(this.y);\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeY\", this.getRelativeX(this.y));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"minY\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Min Y (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minY\");\r\n },\r\n /**\r\n * The smallest allowable absolute Y coordinate for this element.\r\n *\r\n * This is used to contain element movement within certain boundaries.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Min Y (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"minY\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"maxY\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Max Y (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxY\");\r\n },\r\n /**\r\n * The biggest allowable absolute Y coordinate for this element.\r\n *\r\n * This is used to contain element movement within certain boundaries.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Max Y (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"maxY\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"dx\", {\r\n /**\r\n * @return Horizontal offset (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"dx\");\r\n },\r\n /**\r\n * A horizontal offset for the element in pixels.\r\n *\r\n * Can be negative value for offset to the left.\r\n *\r\n * @param value Horizontal offset (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"dx\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"dy\", {\r\n /**\r\n * @return Vertical offset (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"dy\");\r\n },\r\n /**\r\n * A vertical offset for the element in pixels.\r\n *\r\n * Can be negative value for offset upwards.\r\n *\r\n * @param value Vertical offset (px)\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n value = $math.round(value, this._positionPrecision, true);\r\n this.setPropertyValue(\"dy\", value, false, true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation (0-360)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"rotation\");\r\n },\r\n /**\r\n * Rotation of the element in degrees. (0-360)\r\n *\r\n * Note: For convenience purposes, negative values (for counter-clockwise\r\n * rotation) and values exceeding 360 can also be used.\r\n *\r\n * @param value Rotation (0-360)\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n this.setPropertyValue(\"rotation\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"align\", {\r\n /**\r\n * @return Horizontal align\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"align\");\r\n },\r\n /**\r\n * Controls horizontal alignment of the element.\r\n *\r\n * This is used by parent [[Container]] when layouting its children.\r\n *\r\n * @param value Horizontal align\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"align\", value)) {\r\n if (this._parent) {\r\n this._parent.invalidateLayout();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"valign\", {\r\n /**\r\n * @return Vertical align\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"valign\");\r\n },\r\n /**\r\n * Controls vertical alignment of the element.\r\n *\r\n * This is used by parent [[Container]] when layouting its children.\r\n *\r\n * @param value Vertical align\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"valign\", value)) {\r\n if (this._parent) {\r\n this._parent.invalidateLayout();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"horizontalCenter\", {\r\n /**\r\n * @return Horizontal center\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"horizontalCenter\");\r\n },\r\n /**\r\n * Controls which part of the element to treat as a horizontal center.\r\n *\r\n * The setting will be used when positioning, resizing and rotating the\r\n * element.\r\n *\r\n * @param value Horizontal center\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"horizontalCenter\", value)) {\r\n this.updateCenter();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"verticalCenter\", {\r\n /**\r\n * @return Vertical center\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"verticalCenter\");\r\n },\r\n /**\r\n * Controls which part of the element to treat as a vertical center.\r\n *\r\n * The setting will be used when positioning, resizing and rotating the\r\n * element.\r\n *\r\n * @param value Vertical center\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"verticalCenter\", value)) {\r\n this.updateCenter();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"maxWidth\", {\r\n /**\r\n * @return Maximum width (px)\r\n */\r\n get: function () {\r\n var maxWidth = this.getPropertyValue(\"maxWidth\");\r\n if (!$type.isNumber(maxWidth)) {\r\n if (this._parent) {\r\n var parentWidth = this._parent.maxWidth;\r\n if (this._parent.layout != \"absolute\" && this.align != \"none\" && this.align != undefined) {\r\n parentWidth = parentWidth - this.pixelMarginLeft - this.pixelMarginRight;\r\n }\r\n return parentWidth;\r\n }\r\n }\r\n return maxWidth;\r\n },\r\n /**\r\n * ==========================================================================\r\n * DIMENSIONAL PROPERTIES AND RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Maximum allowed width for the element in pixels.\r\n *\r\n * @param value Maximum width (px)\r\n */\r\n set: function (value) {\r\n this.setMaxWidth(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Sprite.prototype.setMaxWidth = function (value) {\r\n var prevWidth = this.maxWidth;\r\n var prevHeight = this.maxHeight;\r\n if (this.setPropertyValue(\"maxWidth\", value)) {\r\n if ($type.isNumber(this.relativeWidth)) {\r\n this.invalidate();\r\n }\r\n var event_2 = {\r\n type: \"maxsizechanged\",\r\n target: this,\r\n previousWidth: prevWidth,\r\n previousHeight: prevHeight\r\n };\r\n this.dispatchImmediately(\"maxsizechanged\", event_2);\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"maxHeight\", {\r\n /**\r\n * @return Maximum height (px)\r\n */\r\n get: function () {\r\n var maxHeight = this.getPropertyValue(\"maxHeight\");\r\n if (!$type.isNumber(maxHeight)) {\r\n if (this._parent) {\r\n var parentHeight = this._parent.maxHeight;\r\n if (this._parent.layout != \"absolute\" && this.valign != \"none\" && this.valign != undefined) {\r\n parentHeight = parentHeight - this.pixelMarginTop - this.pixelMarginBottom;\r\n }\r\n return parentHeight;\r\n }\r\n }\r\n return maxHeight;\r\n },\r\n /**\r\n * Maximum allowed height for the element in pixels.\r\n *\r\n * @param value Maximum height (px)\r\n */\r\n set: function (value) {\r\n this.setMaxHeight(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Sprite.prototype.setMaxHeight = function (value) {\r\n var prevWidth = this.maxWidth;\r\n var prevHeight = this.maxHeight;\r\n if (this.setPropertyValue(\"maxHeight\", value)) {\r\n if ($type.isNumber(this.relativeHeight)) {\r\n this.invalidate();\r\n }\r\n var event_3 = {\r\n type: \"maxsizechanged\",\r\n target: this,\r\n previousWidth: prevWidth,\r\n previousHeight: prevHeight\r\n };\r\n this.dispatchImmediately(\"maxsizechanged\", event_3);\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"minWidth\", {\r\n /**\r\n * @return Minimum width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minWidth\");\r\n },\r\n /**\r\n * Minimum width of the element in pixels.\r\n *\r\n * Set to `undefined` to remove the limit.\r\n *\r\n * @param value Minimum width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"minHeight\", {\r\n /**\r\n * @return Minimum height (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minHeight\");\r\n },\r\n /**\r\n * Minimum height for the element in pixels.\r\n *\r\n * Set to `undefined` to remove the limit.\r\n *\r\n * @param value Minimum height (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minHeight\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"width\", {\r\n /**\r\n * @return Width (absolute or relative)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"width\");\r\n },\r\n /**\r\n * Element's absolute or relative width.\r\n *\r\n * The width can either be absolute, set in numeric pixels, or relative, set\r\n * in [[Percent]].\r\n *\r\n * Relative width will be calculated using closest measured ancestor\r\n * [[Container]].\r\n *\r\n * NOTE: `width` is an accessor, which allows setting width in pixels or\r\n * percent. It is a sort of a \"shortcut\" for the users. Actual renderer does\r\n * not ever use it. It uses either `pixelWidth` or `percentWidth`, so if\r\n * you need to add an adapter for width add it for either of the two\r\n * properties - whichever suits your requirements.\r\n *\r\n * @param value Width (numeric in pixels or relative)\r\n */\r\n set: function (value) {\r\n var changed = this.setPercentProperty(\"width\", value, true, false, this._positionPrecision, true);\r\n if (changed) {\r\n this.percentWidth = undefined;\r\n this.relativeWidth = undefined;\r\n if (value instanceof Percent) {\r\n this.percentWidth = value.percent;\r\n if ($type.isNumber(this._pixelWidth)) {\r\n this.maxWidth = undefined;\r\n }\r\n this._pixelWidth = undefined;\r\n }\r\n else {\r\n this._pixelWidth = Number(value);\r\n //this._measuredWidth = this._pixelWidth;\r\n this.maxWidth = this._pixelWidth;\r\n }\r\n this.invalidatePosition();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"height\", {\r\n /**\r\n * @return height (absolute or relative)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"height\");\r\n },\r\n /**\r\n * Element's absolute or relative height.\r\n *\r\n * The height can either be absolute, set in numeric pixels, or relative, set\r\n * in [[Percent]].\r\n *\r\n * Relative height will be calculated using closest measured ancestor\r\n * [[Container]].\r\n *\r\n * NOTE: `height` is an accessor, which allows setting height in pixels or\r\n * percent. It is a sort of a \"shortcut\" for the users. Actual renderer does\r\n * not ever use it. It uses either `pixelHeight` or `percentHeight`, so if\r\n * you need to add an adapter for height add it for either of the two\r\n * properties - whichever suits your requirements.\r\n *\r\n * @param value Height (numeric in pixels or relative)\r\n */\r\n set: function (value) {\r\n var changed = this.setPercentProperty(\"height\", value, true, false, this._positionPrecision, true);\r\n if (changed) {\r\n this.percentHeight = undefined;\r\n this._relativeHeight = undefined;\r\n if (value instanceof Percent) {\r\n this.percentHeight = value.percent;\r\n if ($type.isNumber(this._pixelHeight)) {\r\n this.maxHeight = undefined;\r\n }\r\n this._pixelHeight = undefined;\r\n }\r\n else {\r\n this._pixelHeight = Number(value);\r\n //this._measuredHeight = this._pixelHeight;\r\n this.maxHeight = this._pixelHeight; // yes, we reset maxWidth\r\n }\r\n this.invalidatePosition();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelWidth\", {\r\n /**\r\n * Returns element's width in pixels, if width was set. For actual width use measuredWidth property.\r\n *\r\n * @readonly\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n var width;\r\n if ($type.isNumber(this.percentWidth)) {\r\n width = this.maxWidth;\r\n }\r\n else if ($type.isNumber(this._pixelWidth)) {\r\n width = this._pixelWidth;\r\n }\r\n else {\r\n width = 0;\r\n }\r\n var minWidth = this.minWidth;\r\n if (minWidth != null && width < minWidth) {\r\n width = minWidth;\r\n }\r\n var value = $math.round(width, this._positionPrecision, true);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelWidth\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelHeight\", {\r\n /**\r\n * Returns element's height in pixels. For actual height use measuredHeight property.\r\n *\r\n * @readonly\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n var height;\r\n if ($type.isNumber(this.percentHeight)) {\r\n height = this.maxHeight;\r\n }\r\n else if ($type.isNumber(this._pixelHeight)) {\r\n height = this._pixelHeight;\r\n }\r\n else {\r\n height = 0; //this._measuredHeightSelf;\r\n }\r\n var minHeight = this.minHeight;\r\n if (minHeight != null && height < minHeight) {\r\n height = minHeight;\r\n }\r\n var value = $math.round(height, this._positionPrecision, true);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelHeight\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeWidth\", {\r\n /**\r\n * @return Relative width\r\n * @ignore\r\n */\r\n get: function () {\r\n var relativeWidth = this._relativeWidth;\r\n if ($type.isNumber(relativeWidth)) {\r\n if (!this._adapterO) {\r\n return relativeWidth;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeWidth\", relativeWidth);\r\n }\r\n }\r\n },\r\n /**\r\n * Element's relative width in [[Percent]].\r\n * @ignore\r\n *\r\n * @param value Relative width\r\n */\r\n set: function (value) {\r\n if (this._relativeWidth != value) {\r\n this._relativeWidth = value;\r\n //\t\t\tthis.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeHeight\", {\r\n /**\r\n * @return Relative height\r\n * @ignore\r\n */\r\n get: function () {\r\n var relativeHeight = this._relativeHeight;\r\n if ($type.isNumber(relativeHeight)) {\r\n if (!this._adapterO) {\r\n return relativeHeight;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeHeight\", relativeHeight);\r\n }\r\n }\r\n },\r\n /**\r\n * Element's relative height in [[Percent]].\r\n *\r\n * @param value Relative height\r\n * @ignore\r\n */\r\n set: function (value) {\r\n if (this._relativeHeight != value) {\r\n this._relativeHeight = value;\r\n //\t\t\tthis.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"measuredWidth\", {\r\n /**\r\n * Returns element's measured width in pixels.\r\n *\r\n * A measured width is actual width of contents plus `paddingRight` and* `paddingLeft`, relative to sprite parent, meaning that\r\n * rotation and scale is taken into account.\r\n *\r\n * @readonly\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n if (this.disabled || this.__disabled) {\r\n return 0;\r\n }\r\n if (!this._adapterO) {\r\n return this._measuredWidth;\r\n }\r\n else {\r\n return this._adapterO.apply(\"measuredWidth\", this._measuredWidth);\r\n }\r\n // it's not good to fit to min/max range as then rotations and scale won't be taken into account\r\n //return this.adapter.apply(\"measuredWidth\", $math.fitToRange(this._measuredWidth, this.minWidth, this.maxWidth));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"measuredHeight\", {\r\n /**\r\n * Returns elements's measured height in pixels.\r\n *\r\n * A measured height is actual height of contents plus `paddingTop` and `paddingBottom`, relative to sprite parent, meaning that\r\n * rotation and scale taken into account.\r\n *\r\n * @readonly\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n if (this.disabled || this.__disabled) {\r\n return 0;\r\n }\r\n // it's not good to fit to min/max range as then rotations and scale won't be taken into account\r\n //return this.adapter.apply(\"measuredHeight\", $math.fitToRange(this._measuredHeight, this.minHeight, this.maxHeight));\r\n if (!this._adapterO) {\r\n return this._measuredHeight;\r\n }\r\n else {\r\n return this._adapterO.apply(\"measuredHeight\", this._measuredHeight);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"outerWidth\", {\r\n /**\r\n * Returns element's measured width plus its left and right margins in\r\n * pixels.\r\n *\r\n * @readonly\r\n * @return Outer width (px)\r\n */\r\n get: function () {\r\n var value = this.pixelWidth + this.pixelMarginRight + this.pixelMarginLeft;\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"outerWidth\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"outerHeight\", {\r\n /**\r\n * Returns element's measured height plus its top and bottom margins in\r\n * pixels.\r\n *\r\n * @readonly\r\n * @return Outer height (px)\r\n */\r\n get: function () {\r\n var value = this.pixelHeight + this.pixelMarginTop + this.pixelMarginBottom;\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"outerHeight\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"innerWidth\", {\r\n /**\r\n * Returns element's measured inner width in pixels.\r\n *\r\n * Inner width is actual available space for content, e.g. element's width\r\n * minus horizontal padding.\r\n *\r\n * @readonly\r\n * @return Inner width (px)\r\n */\r\n get: function () {\r\n var value = Math.max(0, this.pixelWidth - this.pixelPaddingRight - this.pixelPaddingLeft);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"innerWidth\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"innerHeight\", {\r\n /**\r\n * Returns element's measured inner height in pixels.\r\n *\r\n * Inner height is actual available space for content, e.g. element's height\r\n * minus vertical padding.\r\n *\r\n * @readonly\r\n * @return Inner height (px)\r\n */\r\n get: function () {\r\n var value = Math.max(0, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"innerHeight\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"globalScale\", {\r\n /**\r\n * Returns element's current \"global\" scale.\r\n *\r\n * Scale values accumulate over hierarchy of elements.\r\n *\r\n * E.g. if a [[Container]] has `scale = 2` and it's child has a `scale = 2`,\r\n * the child's `globalScale` will be 4. (a multitude of `2 x 2`)\r\n *\r\n * @readonly\r\n * @return Global scale\r\n */\r\n get: function () {\r\n var scale = this.scale;\r\n if (this._parent) {\r\n scale = scale * this._parent.globalScale;\r\n }\r\n if (!this._adapterO) {\r\n return scale;\r\n }\r\n else {\r\n return this._adapterO.apply(\"globalScale\", scale);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"scale\", {\r\n /**\r\n * @return Scale (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"scale\");\r\n },\r\n /**\r\n * Scale of the element.\r\n *\r\n * The scale is set from 0 (element reduced to nothing) to 1 (default size).\r\n * * 2 will mean element is increased twice.\r\n * * 0.5 - reduced by 50%.\r\n *\r\n * Etc.\r\n *\r\n * @param value Scale (0-1)\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n if (value != this.getPropertyValue(\"scale\")) {\r\n this.setPropertyValue(\"scale\", value, false, true);\r\n this.handleGlobalScale();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets all four margins for the element at once.\r\n *\r\n * Margins are set in pixels.\r\n *\r\n * @param top Top margin\r\n * @param right Right margin\r\n * @param bottom Bottom margin\r\n * @param left Left margin\r\n * @return Current element\r\n */\r\n Sprite.prototype.margin = function (top, right, bottom, left) {\r\n this.marginTop = top;\r\n this.marginRight = right;\r\n this.marginBottom = bottom;\r\n this.marginLeft = left;\r\n return this;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"marginLeft\", {\r\n /**\r\n * @return Margin value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"marginLeft\");\r\n },\r\n /**\r\n * Left margin - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Margin value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"marginLeft\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"marginRight\", {\r\n /**\r\n * @return Margin value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"marginRight\");\r\n },\r\n /**\r\n * Right margin - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Margin value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"marginRight\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"marginTop\", {\r\n /**\r\n * @return Margin value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"marginTop\");\r\n },\r\n /**\r\n * Top margin - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Margin value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"marginTop\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"marginBottom\", {\r\n /**\r\n * @return Margin value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"marginBottom\");\r\n },\r\n /**\r\n * Bottom margin - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Margin value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"marginBottom\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelMarginRight\", {\r\n /**\r\n * Returns current right margin in pixels.\r\n *\r\n * @readonly\r\n * @return Right margin (px)\r\n */\r\n get: function () {\r\n var value = this.getPixelX(this.marginRight);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelMarginRight\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeMarginRight\", {\r\n /**\r\n * Returns current relative right margin.\r\n *\r\n * @readonly\r\n * @return Relative right margin\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n var value = this.getRelativeX(this.marginRight);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeMarginRight\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelMarginLeft\", {\r\n /**\r\n * Returns current left margin in pixels.\r\n *\r\n * @readonly\r\n * @return Left margin (px)\r\n */\r\n get: function () {\r\n var value = this.getPixelX(this.marginLeft);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelMarginLeft\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeMarginLeft\", {\r\n /**\r\n * Returns current relative left margin.\r\n *\r\n * @readonly\r\n * @return Relative left margin\r\n */\r\n get: function () {\r\n //@todo Maybe use [[Percent]]?\r\n var value = this.getRelativeX(this.marginLeft);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeMarginLeft\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelMarginTop\", {\r\n /**\r\n * Returns current top margin in pixels.\r\n *\r\n * @readonly\r\n * @return Top margin (px)\r\n */\r\n get: function () {\r\n var value = this.getPixelY(this.marginTop);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelMarginTop\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeMarginTop\", {\r\n /**\r\n * Returns current relative top margin.\r\n *\r\n * @readonly\r\n * @return Relative top margin\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n var value = this.getRelativeY(this.marginTop);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeMarginTop\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelMarginBottom\", {\r\n /**\r\n * Returns current bottom margin in pixels.\r\n *\r\n * @readonly\r\n * @return Bottom margin (px)\r\n */\r\n get: function () {\r\n var value = this.getPixelY(this.marginBottom);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"pixelMarginBottom\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativeMarginBottom\", {\r\n /**\r\n * Returns current relative bottom margin.\r\n *\r\n * @readonly\r\n * @return Relative bottom margin\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n var value = this.getRelativeY(this.marginBottom);\r\n if (!this._adapterO) {\r\n return value;\r\n }\r\n else {\r\n return this._adapterO.apply(\"relativeMarginBottom\", value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets padding for the element in pixels.\r\n *\r\n * @param top Top padding (px)\r\n * @param right Right padding (px)\r\n * @param bottom Bottom padding (px)\r\n * @param left Left padding (px)\r\n * @return Element\r\n */\r\n Sprite.prototype.padding = function (top, right, bottom, left) {\r\n this.paddingTop = top;\r\n this.paddingRight = right;\r\n this.paddingBottom = bottom;\r\n this.paddingLeft = left;\r\n return this;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"paddingLeft\", {\r\n /**\r\n * @return Padding value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"paddingLeft\");\r\n },\r\n /**\r\n * Left padding - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Padding value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"paddingLeft\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"paddingRight\", {\r\n /**\r\n * @return Padding value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"paddingRight\");\r\n },\r\n /**\r\n * Right padding - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Padding value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"paddingRight\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"paddingTop\", {\r\n /**\r\n * @return Padding value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"paddingTop\");\r\n },\r\n /**\r\n * Top padding - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Padding value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"paddingTop\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"paddingBottom\", {\r\n /**\r\n * @return Padding value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"paddingBottom\");\r\n },\r\n /**\r\n * Bottom padding - absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Padding value\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"paddingBottom\", value, true, true, this._positionPrecision, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelPaddingRight\", {\r\n /**\r\n * Returns current right padding in pixels.\r\n *\r\n * @readonly\r\n * @return Right padding (px)\r\n */\r\n get: function () {\r\n return this.getPixelX(this.paddingRight);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativePaddingRight\", {\r\n /**\r\n * Returns current relative right padding.\r\n *\r\n * @readonly\r\n * @return Relative right padding\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n return this.getRelativeX(this.paddingRight);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelPaddingLeft\", {\r\n /**\r\n * Returns current left padding in pixels.\r\n *\r\n * @readonly\r\n * @return Left padding (px)\r\n */\r\n get: function () {\r\n return this.getPixelX(this.paddingLeft);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativePaddingLeft\", {\r\n /**\r\n * Returns current relative left padding.\r\n *\r\n * @readonly\r\n * @return Relative left padding\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n return this.getRelativeX(this.paddingLeft);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelPaddingTop\", {\r\n /**\r\n * Returns current top padding in pixels.\r\n *\r\n * @readonly\r\n * @return Top padding (px)\r\n */\r\n get: function () {\r\n return this.getPixelY(this.paddingTop);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativePaddingTop\", {\r\n /**\r\n * Returns current relative top padding.\r\n *\r\n * @readonly\r\n * @return Relative top padding\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n return this.getRelativeY(this.paddingTop);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelPaddingBottom\", {\r\n /**\r\n * Returns current bottom padding in pixels.\r\n *\r\n * @readonly\r\n * @return Bottom padding (px)\r\n */\r\n get: function () {\r\n return this.getPixelY(this.paddingBottom);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"relativePaddingBottom\", {\r\n /**\r\n * Returns current relative bottom padding.\r\n *\r\n * @readonly\r\n * @return Relative bottom padding\r\n */\r\n get: function () {\r\n // @todo Maybe use [[Percent]]?\r\n return this.getRelativeY(this.paddingBottom);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"path\", {\r\n /**\r\n * @return Path of a Sprite element\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"path\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * APPEARANCE-RELATED PROPERTIES AND RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Path of Sprite element\r\n */\r\n set: function (value) {\r\n this.setPath(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.setPath = function (value) {\r\n if (this.setPropertyValue(\"path\", value)) {\r\n if (this._adapterO) {\r\n value = this._adapterO.apply(\"path\", value);\r\n }\r\n if (!this._isPath) {\r\n if (!this.element || (this.element.node && !(this.element.node instanceof SVGPathElement))) {\r\n this.element = this.paper.add(\"path\");\r\n }\r\n this._isPath = true;\r\n }\r\n if ($type.hasValue(value)) {\r\n this.element.attr({ \"d\": value });\r\n }\r\n else {\r\n this.element.removeAttr(\"d\");\r\n }\r\n this.invalidatePosition();\r\n // otherwise is 0x0\r\n if (!this.inited) {\r\n this.events.once(\"inited\", this.validatePosition, this, false);\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"fillModifier\", {\r\n /**\r\n * @return Fill color modifier\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fillModifier\");\r\n },\r\n /**\r\n * [[ColorModifier]] that can be used to modify color and pattern of the\r\n * element's fill, e.g. create gradients.\r\n *\r\n * @param value Fill color modifiier\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"fillModifier\", value)) {\r\n this.setFill(this.fill);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeModifier\", {\r\n /**\r\n * @return Stroke color modifier\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeModifier\");\r\n },\r\n /**\r\n * [[ColorModifier]] that can be used to modify color and pattern of the\r\n * element's stroke (outline), e.g. create gradients.\r\n *\r\n * @param value Stroke color modifier\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"strokeModifier\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"fillOpacity\", {\r\n /**\r\n * @return Opacity (0-9)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fillOpacity\");\r\n },\r\n /**\r\n * Element's fill opacity.\r\n *\r\n * Opacity ranges from 0 (fully transparent) to 1 (fully opaque).\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n value = $math.toNumberRange(value, 0, 1);\r\n if (this.setPropertyValue(\"fillOpacity\", value)) {\r\n this.setSVGAttribute({ \"fill-opacity\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"fill\", {\r\n /**\r\n * @return Fill\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fill\");\r\n },\r\n /**\r\n * Element's fill color or pattern.\r\n *\r\n * @param value Fill\r\n */\r\n set: function (value) {\r\n this.setFill(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets actual `fill` property on the SVG element, including applicable color\r\n * modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Fill\r\n */\r\n Sprite.prototype.setFill = function (value) {\r\n if (!$type.isObject(value) || \"r\" in value) {\r\n value = toColor(value);\r\n }\r\n if (this.setColorProperty(\"fill\", value) || this.fillModifier) {\r\n // this can not go into next if, as value is turned to Gradient\r\n if (value instanceof Color) {\r\n if (this.fillModifier) {\r\n value = this.fillModifier.modify(value);\r\n }\r\n }\r\n this.realFill = value;\r\n // todo: review this place when some Color type will be added\r\n if (value instanceof Color) {\r\n this.setSVGAttribute({ \"fill\": value.toString() });\r\n }\r\n else if (!$type.hasValue(value)) {\r\n this.removeSVGAttribute(\"fill\");\r\n }\r\n else if (value instanceof Pattern || value instanceof LinearGradient || value instanceof RadialGradient) {\r\n var fill = value;\r\n fill.paper = this.paper;\r\n this.setSVGAttribute({ \"fill\": \"url(\\\"\" + $utils.getBaseURI() + fill.id + \"\\\")\" });\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"opacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"opacity\");\r\n },\r\n /**\r\n * Element's opacity.\r\n *\r\n * Opacity setting can range from 0 (fully transparent) to 1 (fully opaque).\r\n *\r\n * ATTENTION: It is highly not recommended to use `opacity` directly on the\r\n * element. The charts use `opacity` to hide/show elements, so your setting\r\n * might be lost if element is hidden and then later shown.\r\n *\r\n * Instead use methods `hide()` and `show()` to completely toggle off and on\r\n * the element.\r\n *\r\n * Or, use properties `fillOpacity` and `strokeOpacity`, if you need to make\r\n * the element semi-transparent.\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n value = $math.toNumberRange(value, 0, 1);\r\n if (this.setPropertyValue(\"opacity\", value)) {\r\n this.setSVGAttribute({ \"opacity\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"stroke\", {\r\n /**\r\n * @return Stroke setting\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"stroke\");\r\n },\r\n /**\r\n * Element's stroke (outline) color or pattern.\r\n *\r\n * @param value Stroke setting\r\n */\r\n set: function (value) {\r\n this.setStroke(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets actual `stroke` property on the SVG element, including applicable\r\n * color modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Stroke setting\r\n */\r\n Sprite.prototype.setStroke = function (value) {\r\n if (!$type.isObject(value) || \"r\" in value) {\r\n value = toColor(value);\r\n }\r\n if (this.setColorProperty(\"stroke\", value) || this.strokeModifier) {\r\n // this can not go into next if, as value is turned to Gradient\r\n if (value instanceof Color) {\r\n if (this.strokeModifier) {\r\n value = this.strokeModifier.modify(value);\r\n }\r\n }\r\n this.realStroke = value;\r\n if (value instanceof Color) {\r\n if (value.hex == \"none\") {\r\n this.removeSVGAttribute(\"stroke\");\r\n }\r\n else {\r\n this.setSVGAttribute({ \"stroke\": value.toString() });\r\n }\r\n }\r\n else if (!$type.hasValue(value)) {\r\n this.removeSVGAttribute(\"stroke\");\r\n }\r\n else if (value instanceof Pattern || value instanceof LinearGradient || value instanceof RadialGradient) {\r\n var stroke = value;\r\n stroke.paper = this.paper;\r\n this.setSVGAttribute({ \"stroke\": \"url(\\\"\" + $utils.getBaseURI() + stroke.id + \"\\\")\" });\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"strokeOpacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeOpacity\");\r\n },\r\n /**\r\n * Stroke (outline) opacity.\r\n *\r\n * The values may range from 0 (fully transparent) to 1 (fully opaque).\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n value = $math.toNumberRange(value, 0, 1);\r\n if (this.setPropertyValue(\"strokeOpacity\", value)) {\r\n this.setSVGAttribute({ \"stroke-opacity\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"nonScalingStroke\", {\r\n /**\r\n * @return Do not scale stroke (outline)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"nonScalingStroke\");\r\n },\r\n /**\r\n * Controls if the element's stroke (outline) should remain keep constant\r\n * thicnkess and do not scale when the whole element is resized.\r\n *\r\n * @param value Do not scale stroke (outline)\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.setPropertyValue(\"nonScalingStroke\", value)) {\r\n this.strokeWidth = this.strokeWidth;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"nonScaling\", {\r\n /**\r\n * @return Is element scaleable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"nonScaling\");\r\n },\r\n /**\r\n * Controls if element should keep constant size and not scale even if there is\r\n * space available, or it does not fit.\r\n *\r\n * @param value Is element scaleable?\r\n */\r\n set: function (value) {\r\n // @todo Description (review)\r\n value = $type.toBoolean(value);\r\n this.setPropertyValue(\"nonScaling\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeWidth\", {\r\n /**\r\n * @return Thickness (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeWidth\");\r\n },\r\n /**\r\n * Stroke (outline) thickness in pixels.\r\n *\r\n * @param value Thickness (px)\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n this.setPropertyValue(\"strokeWidth\", value, true);\r\n if (this.nonScalingStroke) {\r\n if (!$type.isNumber(value)) {\r\n value = 1;\r\n }\r\n value = value / this.globalScale;\r\n }\r\n this.setSVGAttribute({ \"stroke-width\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeDasharray\", {\r\n /**\r\n * @return `stroke-dasharray`\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeDasharray\");\r\n },\r\n /**\r\n * A `stroke-dasharray` for the stroke (outline).\r\n *\r\n * \"Dasharray\" allows setting rules to make lines dashed, dotted, etc.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more info on `stroke-dasharray`\r\n * @param value `stroke-dasharray`\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"strokeDasharray\", value)) {\r\n this.setSVGAttribute({ \"stroke-dasharray\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeDashoffset\", {\r\n /**\r\n * @return `stroke-dashoffset`\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeDashoffset\");\r\n },\r\n /**\r\n * A `stroke-dashoffset` for the stroke (outline).\r\n *\r\n * \"Dashoffset\" allows setting the start position of the dashes if\r\n * `strokeDasharray` is used.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset} for more info on `stroke-dashoffset`\r\n * @param value `stroke-dashoffset`\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n if (this.setPropertyValue(\"strokeDashoffset\", value)) {\r\n this.setSVGAttribute({ \"stroke-dashoffset\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeLinecap\", {\r\n /**\r\n * @return `stroke-linecap`\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeLinecap\");\r\n },\r\n /**\r\n * A `stroke-linecap` to indicate how line ends are drawn.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linecap`\r\n * @param value `stroke-linecap`\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"strokeLinecap\", value)) {\r\n this.setSVGAttribute({ \"stroke-linecap\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"strokeLinejoin\", {\r\n /**\r\n * @return `stroke-linejoin`\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strokeLinejoin\");\r\n },\r\n /**\r\n * A `stroke-linejoin` to indicate how line ends are drawn.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linejoin`\r\n * @param value `stroke-linejoin`\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"strokeLinejoin\", value)) {\r\n this.setSVGAttribute({ \"stroke-linejoin\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"shapeRendering\", {\r\n /**\r\n * @return 'shape-rendering' value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"shapeRendering\");\r\n },\r\n /**\r\n * An SVG-specific `shape-rendering` value.\r\n *\r\n * `shape-rendering` controls how vector graphics are drawn and rendered.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering} for more information about `shape-rendering`\r\n * @default \"auto\"\r\n * @param value 'shape-rendering' value\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"shapeRendering\", value)) {\r\n this.setSVGAttribute({ \"shape-rendering\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"pixelPerfect\", {\r\n /**\r\n * @return Use pixel perfect?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pixelPerfect\");\r\n },\r\n /**\r\n * Controls if SVG vectors should be drawn with \"pixel\" precision, producing\r\n * perfectly crisp lines on retina displays.\r\n *\r\n * Setting this to `true` might improve visual quality, but may have a\r\n * negative effect on performance.\r\n *\r\n * Different elements use different default setting for `pixelPerfect`.\r\n *\r\n * We recommend leaving this at their default settings, unless there's a\r\n * specific need.\r\n *\r\n * @param value Use pixel perfect?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (value) {\r\n this._positionPrecision = options.pixelPerfectPrecision;\r\n }\r\n else {\r\n this._positionPrecision = 3;\r\n }\r\n this.setPropertyValue(\"pixelPerfect\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"rtl\", {\r\n /**\r\n * @return RTL?\r\n */\r\n get: function () {\r\n if ($type.hasValue(this._rtl)) {\r\n return this._rtl;\r\n }\r\n else if (this._topParent) {\r\n return this._topParent.rtl;\r\n }\r\n //this.rtl = false;\r\n return false;\r\n },\r\n /**\r\n * An RTL (right-to-left) setting.\r\n *\r\n * RTL may affect alignment, text, and other visual properties.\r\n *\r\n * If you set this on a top-level chart object, it will be used for all\r\n * child elements, e.g. labels, unless they have their own `rtl` setting\r\n * set directly on them.\r\n *\r\n * @param value `true` for to use RTL\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (this.isBaseSprite) {\r\n this.topParent.rtl = value;\r\n }\r\n this._rtl = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * ==========================================================================\r\n * VISIBILITY AND ORDER PROPERTIES AND RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Reveals hidden element.\r\n *\r\n * Has no effect if element is already visible.\r\n *\r\n * If `duration` is not specified, it will use default.\r\n *\r\n * @param duration Fade in duration (ms)\r\n * @return Animation object if such object was created\r\n */\r\n Sprite.prototype.show = function (duration) {\r\n return this.showReal(duration);\r\n };\r\n /**\r\n * Performs actual operations to reveal this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param duration Fade in duration (ms)\r\n * @return Fade in duration (ms)\r\n */\r\n Sprite.prototype.showReal = function (duration) {\r\n var _this = this;\r\n if (this.preventShow) {\r\n return;\r\n }\r\n var transition;\r\n var properties = this.defaultState.properties;\r\n if (!this.disabled && (this.isHidden || !this.visible || this.isHiding || (properties.opacity != null && this.opacity < properties.opacity && !this.isShowing)) && !this.isDisposed()) {\r\n // helps to avoid flicker, as show might change opacity or visibility but item might be at invalid state/position\r\n if (this.invalid) {\r\n this.validate();\r\n }\r\n if (this.positionInvalid) {\r\n this.validatePosition();\r\n }\r\n if (!$type.isNumber(duration)) {\r\n duration = this.defaultState.transitionDuration;\r\n }\r\n if (this._hideAnimation) {\r\n this._hideAnimation.kill();\r\n this._hideAnimation = undefined;\r\n }\r\n // Cancel hide handler just in case it was there\r\n if (this._showHideDisposer) {\r\n this.removeDispose(this._showHideDisposer);\r\n }\r\n this._isHidden = false;\r\n this.isHiding = false;\r\n this.isShowing = true;\r\n // Apply current state\r\n transition = this.applyCurrentState(duration);\r\n if (transition && !transition.isFinished()) {\r\n this._showHideDisposer = transition.events.on(\"animationended\", function () {\r\n _this.isShowing = false;\r\n });\r\n this._disposers.push(this._showHideDisposer);\r\n }\r\n else {\r\n this.isShowing = false;\r\n }\r\n // Make it visible\r\n var visible = this.defaultState.properties.visible;\r\n if (!$type.hasValue(visible)) {\r\n visible = true;\r\n }\r\n this.visible = visible;\r\n // Unhide from screen readers\r\n this.readerHidden = false;\r\n // Dispatch \"show\" event\r\n this.dispatchImmediately(\"shown\");\r\n }\r\n return transition;\r\n };\r\n /**\r\n * Initiates hiding of Sprite.\r\n * When called it will fade out the the Sprite to transparency, then make it\r\n * invisible.\r\n * @param duration Duration in millisecons\r\n */\r\n /**\r\n * Hides the element, by applying `hidden` state.\r\n *\r\n * Has no effect if element is already hidden.\r\n *\r\n * If `duration` is not specified, it will use default.\r\n *\r\n * While element is fading out, its `isHiding` property will resolve to\r\n * `true`.\r\n *\r\n * When element is hidden, its `visible` property will resolve to `false`.\r\n *\r\n * @param duration Fade out duration (ms)\r\n * @return hide Animation object if such object was created\r\n */\r\n Sprite.prototype.hide = function (duration) {\r\n return this.hideReal(duration);\r\n };\r\n /**\r\n * Hides actual SVG elements and handles hiding animations.\r\n *\r\n * @param duration Fade out duration (ms)\r\n * @return Fade out duration (ms)\r\n * @ignore\r\n */\r\n Sprite.prototype.hideReal = function (duration) {\r\n var _this = this;\r\n var transition;\r\n if (!this.isHiding && this.visible && !this.isDisposed()) {\r\n // added to solve 51375\r\n if (this.tooltip && this.tooltip.currentSprite == this) {\r\n this.hideTooltip(0);\r\n }\r\n if (this._hideAnimation) {\r\n this._hideAnimation.kill();\r\n this._hideAnimation = undefined;\r\n }\r\n this.isShowing = false;\r\n // Cancel hide handler just in case it was there\r\n if (this._showHideDisposer) {\r\n this.removeDispose(this._showHideDisposer);\r\n }\r\n // Get state\r\n var hiddenState_1 = this.hiddenState;\r\n // Transition to \"hidden\" state, provided Sprite has one set\r\n if (hiddenState_1) {\r\n // Yes, we have a \"hidden\" state\r\n // `setState` will return an `Animation` object which we can set\r\n // events on\r\n transition = this.setState(hiddenState_1, duration, undefined);\r\n if (transition && !transition.isFinished()) {\r\n this._hideAnimation = transition;\r\n this._showHideDisposer = transition.events.on(\"animationended\", function () {\r\n _this.isHiding = false;\r\n _this._isHidden = true;\r\n if (hiddenState_1.properties.visible == false) {\r\n _this.visible = false;\r\n }\r\n }, this);\r\n this._disposers.push(this._showHideDisposer);\r\n // Thrown everything into `_disposers` just in case Sprite gets\r\n // destroyed in the meantime\r\n this._disposers.push(transition);\r\n }\r\n else {\r\n this.isHiding = false;\r\n this._isHidden = true;\r\n }\r\n }\r\n else {\r\n // No hidden state, let's just set `visible` and call it a day\r\n this.visible = false;\r\n this.isHiding = false;\r\n this._isHidden = true;\r\n }\r\n // Hide from screen readers\r\n this.readerHidden = true;\r\n // Dispach \"hidden\" event\r\n this.dispatchImmediately(\"hidden\");\r\n this.invalidate(); // hide it at once to avoid flickers // validate() causes SO\r\n }\r\n if (!$type.isNumber(duration)) {\r\n duration = this.hiddenState.transitionDuration;\r\n }\r\n return transition;\r\n };\r\n Object.defineProperty(Sprite.prototype, \"visible\", {\r\n /**\r\n * @return Visible?\r\n */\r\n get: function () {\r\n return this.getVisibility();\r\n },\r\n /**\r\n * Indicates if element is current visible (`true`) or hidden (`false`).\r\n *\r\n * @param value Visible?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n this.setVisibility(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns visibility value\r\n * @ignore\r\n */\r\n Sprite.prototype.getVisibility = function () {\r\n var value = this.getPropertyValue(\"visible\");\r\n if (!$type.hasValue(value)) {\r\n value = true;\r\n }\r\n return value;\r\n };\r\n /**\r\n * Sets `visibility` property:\r\n *\r\n * * `true` - visible\r\n * * `false` - hidden\r\n *\r\n * @param value true - visible, false - hidden\r\n * @return Current visibility\r\n */\r\n Sprite.prototype.setVisibility = function (value) {\r\n if (this.setPropertyValue(\"visible\", value)) {\r\n if (value) {\r\n this.group.removeAttr(\"visibility\");\r\n }\r\n else {\r\n this.group.attr({ \"visibility\": \"hidden\" });\r\n }\r\n //this.invalidatePosition();\r\n if (this.events.isEnabled(\"visibilitychanged\")) {\r\n var event_4 = {\r\n type: \"visibilitychanged\",\r\n target: this,\r\n visible: value\r\n };\r\n this.events.dispatchImmediately(\"visibilitychanged\", event_4);\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"zIndex\", {\r\n /**\r\n * @return zIndex\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"zIndex\");\r\n },\r\n /**\r\n * A \"zIndex\" of the element.\r\n *\r\n * \"zIndex\" determines the order of how elements are placed over each other.\r\n *\r\n * Higher \"zIndex\" will mean the element will be draw on top of elements\r\n * with lower \"zIndexes\".\r\n *\r\n * @param value zIndex\r\n */\r\n set: function (value) {\r\n value = $type.toNumber(value);\r\n if (this.setPropertyValue(\"zIndex\", value)) {\r\n this.dispatch(\"zIndexChanged\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Moves the element to the very top in element order, so that it appears\r\n * in front of other elements.\r\n */\r\n Sprite.prototype.toFront = function () {\r\n var parent = this._parent;\r\n if (parent && parent.children.indexOf(this) != parent.children.length - 1) {\r\n parent.children.moveValue(this, parent.children.length - 1);\r\n this.dispatch(\"zIndexChanged\");\r\n }\r\n };\r\n /**\r\n * Moves the element to the very bottom in the element order, so that it\r\n * appears behind other elements.\r\n */\r\n Sprite.prototype.toBack = function () {\r\n var parent = this._parent;\r\n if (parent && parent.children.indexOf(this) != 0) {\r\n parent.children.moveValue(this, 0);\r\n this.dispatch(\"zIndexChanged\");\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"userClassName\", {\r\n /**\r\n * @return Class name\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"userClassName\");\r\n },\r\n /**\r\n * A custom class name to set on the element.\r\n *\r\n * If set, the value will be added to element's `class` attribute.\r\n *\r\n * @since 4.9.11\r\n * @param value Class name\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"userClassName\", value)) {\r\n if (!value && this.userClassName) {\r\n this.group.removeClass(this.userClassName);\r\n }\r\n this.setClassName();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltip\", {\r\n /**\r\n * @return Tooltip\r\n */\r\n get: function () {\r\n if (this._tooltip) {\r\n return this._tooltip;\r\n }\r\n else if (this.virtualParent) {\r\n return this.virtualParent.tooltip;\r\n }\r\n else if (this._parent) {\r\n return this._parent.tooltip;\r\n }\r\n },\r\n /**\r\n * ==========================================================================\r\n * TOOLTIP-RELATED PROPERTIES STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * A [[Tooltip]] object to be used when displayed rollover information for\r\n * the element.\r\n *\r\n * @param tooltip Tooltip\r\n */\r\n set: function (tooltip) {\r\n if (this._tooltip) {\r\n //this._tooltip.dispose();\r\n this.removeDispose(this._tooltip);\r\n }\r\n this._tooltip = tooltip;\r\n if (tooltip) {\r\n tooltip.parent = this.tooltipContainer;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipDataItem\", {\r\n /**\r\n * @return Tooltip data item\r\n */\r\n get: function () {\r\n var tooltipDataItem = this._tooltipDataItem;\r\n if (tooltipDataItem) {\r\n return tooltipDataItem;\r\n }\r\n else {\r\n return this.dataItem;\r\n }\r\n },\r\n /**\r\n * A [[DataItem]] to use when populating content for the element's\r\n * [[Tooltip]].\r\n *\r\n * @see {@link Tooltip}\r\n * @see {@link DataItem}\r\n * @param value Tooltip data item\r\n */\r\n set: function (value) {\r\n // important: do not dispose tooltip dataItem, as it is some actual data item from data!\r\n this._tooltipDataItem = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipColorSource\", {\r\n /**\r\n * @return Tooltip color source\r\n */\r\n get: function () {\r\n return this._tooltipColorSource;\r\n },\r\n /**\r\n * A [[Sprite]] or sprite template to use when getting colors for tooltip. If a template is set,\r\n * tooltip will look for a clone in tooltipDataItem.sprites. If no clone is found, then template colors will be used.\r\n *\r\n * @see {@link Tooltip}\r\n * @see {@link Sprite}\r\n * @param sprite Sprite\r\n */\r\n set: function (sprite) {\r\n this._tooltipColorSource = sprite;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Shows the element's [[Tooltip]].\r\n *\r\n * A tooltip will be populated using text templates in either `tooltipHTML` or\r\n * `tooltipText` as well as data in `tooltipDataItem`.\r\n *\r\n * @see {@link Tooltip}\r\n * @param optional point (sprite-related) to which tooltip must point.\r\n * @return returns true if the tooltip was shown and false if it wasn't (no text was found)\r\n */\r\n Sprite.prototype.showTooltip = function (point) {\r\n if (this.showTooltipOn == \"always\" && !this._tooltip && this.tooltip) {\r\n this._tooltip = this.tooltip.clone();\r\n }\r\n if (!point && this.tooltipPosition == \"pointer\" && this.isHover) {\r\n point = $utils.documentPointToSvg(getInteraction().lastPointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale);\r\n }\r\n // do not show if hidden\r\n var sprite = this;\r\n while (sprite != undefined) {\r\n if (!sprite.visible || sprite.disabled || sprite.__disabled) {\r\n if (this._tooltip && this._tooltip.visible) {\r\n this._tooltip.hide(0);\r\n }\r\n return;\r\n }\r\n sprite = sprite.parent;\r\n }\r\n if ($type.hasValue(this.tooltipText) || $type.hasValue(this.tooltipHTML)) {\r\n var tooltip = this.tooltip;\r\n var tooltipDataItem = this.tooltipDataItem;\r\n if (tooltip) {\r\n tooltip.targetSprite = this;\r\n var colorSource_1 = this;\r\n var tooltipColorSource_1 = this.tooltipColorSource;\r\n if ((tooltip.getStrokeFromObject || tooltip.getFillFromObject) && tooltipColorSource_1) {\r\n if (tooltipColorSource_1.isTemplate) {\r\n if (tooltipDataItem) {\r\n $array.eachContinue(tooltipDataItem.sprites, function (sprite) {\r\n if (sprite.clonedFrom == tooltipColorSource_1) {\r\n colorSource_1 = sprite;\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n else {\r\n colorSource_1 = tooltipColorSource_1;\r\n }\r\n }\r\n if (tooltip.getStrokeFromObject) {\r\n var stroke = this.stroke;\r\n var source = colorSource_1;\r\n while (source.parent != undefined) {\r\n stroke = source.stroke;\r\n if (stroke == undefined) {\r\n source = source.parent;\r\n }\r\n if (stroke != undefined) {\r\n break;\r\n }\r\n }\r\n if (stroke instanceof Color) {\r\n tooltip.background.animate({ property: \"stroke\", to: stroke }, tooltip.animationDuration);\r\n }\r\n else {\r\n tooltip.background.stroke = stroke;\r\n }\r\n }\r\n // Set data item\r\n tooltip.dataItem = tooltipDataItem;\r\n tooltip.label.populateStringFrom = this;\r\n if (tooltip.getFillFromObject) {\r\n var fill = this.fill;\r\n var source = colorSource_1;\r\n while (source.parent != undefined) {\r\n fill = source.fill;\r\n if (fill == undefined || (fill instanceof Color && fill.rgb == undefined)) {\r\n source = source.parent;\r\n }\r\n else if (fill != undefined) {\r\n break;\r\n }\r\n }\r\n if (fill == undefined) {\r\n fill = color(\"#000000\");\r\n }\r\n if (fill instanceof Color) {\r\n if (!tooltip.visible) {\r\n tooltip.background.fill = fill;\r\n }\r\n else {\r\n tooltip.background.animate({ property: \"fill\", to: fill }, tooltip.animationDuration);\r\n }\r\n }\r\n else {\r\n tooltip.background.fill = fill;\r\n }\r\n if (tooltip.autoTextColor && fill instanceof Color) {\r\n tooltip.label.fill = fill.alternative;\r\n }\r\n }\r\n // Apply tooltip text\r\n var text = \"\";\r\n if (this.tooltipHTML) {\r\n tooltip.html = this.tooltipHTML;\r\n text = this.tooltipHTML;\r\n }\r\n if (this.tooltipText) {\r\n tooltip.text = this.tooltipText;\r\n text = this.tooltipText;\r\n }\r\n if (this.updateTooltipPosition(point)) {\r\n // Set accessibility option\r\n tooltip.readerDescribedBy = this.uidAttr();\r\n // make label to render to be able to check currentText\r\n if (tooltip.label.invalid) {\r\n tooltip.label.validate();\r\n }\r\n if (text != undefined && text != \"\" && tooltip.label.currentText != \"\") {\r\n //@todo: think of how to solve this better\r\n if (tooltip && !tooltip.parent) {\r\n tooltip.parent = this.tooltipContainer;\r\n }\r\n // Reveal tooltip\r\n // showing it in 1 ms helps to avoid strange flickering in IE\r\n var duration = tooltip.defaultState.transitionDuration;\r\n if (duration <= 0) {\r\n duration = 1;\r\n }\r\n tooltip.show(duration);\r\n tooltip.currentSprite = this;\r\n return true;\r\n }\r\n else {\r\n this.hideTooltip(0);\r\n }\r\n }\r\n else {\r\n this.hideTooltip(0);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.updateTooltipPosition = function (point) {\r\n var _this = this;\r\n if (this.tooltipPosition == \"pointer\") {\r\n if (this._interactionDisposer) {\r\n this._interactionDisposer.dispose();\r\n }\r\n this._interactionDisposer = getInteraction().body.events.on(\"track\", function (ev) {\r\n return _this.pointTooltipTo($utils.documentPointToSvg(ev.point, _this.svgContainer.SVGContainer, _this.svgContainer.cssScale), true);\r\n });\r\n if (point) {\r\n return this.pointTooltipTo(point, true);\r\n }\r\n }\r\n else {\r\n // Point to the X/Y of this Sprite\r\n var globalPoint = $utils.spritePointToSvg({\r\n \"x\": this.getTooltipX(),\r\n \"y\": this.getTooltipY()\r\n }, this);\r\n return this.pointTooltipTo(globalPoint);\r\n }\r\n };\r\n /**\r\n * Sets the point the [[Tooltip]] should point to.\r\n *\r\n * @param point Coordinates to point to\r\n * @param instantly Move instantly without animation\r\n */\r\n Sprite.prototype.pointTooltipTo = function (point, instantly) {\r\n var tooltip = this.tooltip;\r\n if (tooltip && this.topParent) {\r\n if (tooltip.showInViewport) {\r\n tooltip.pointTo(point, instantly);\r\n return true;\r\n }\r\n if ($math.isInRectangle(point, { x: 0, y: 0, width: this.topParent.maxWidth, height: this.topParent.maxHeight })) {\r\n tooltip.pointTo(point, instantly);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Hides element's [[Tooltip]].\r\n *\r\n * @see {@link Tooltip}\r\n */\r\n Sprite.prototype.hideTooltip = function (duration) {\r\n if (this.showTooltipOn == \"always\") {\r\n return;\r\n }\r\n var tooltip = this.tooltip;\r\n if (tooltip) {\r\n if (tooltip.targetSprite == this) {\r\n tooltip.targetSprite = undefined;\r\n }\r\n tooltip.hide(duration);\r\n if (this._interactionDisposer) {\r\n this._interactionDisposer.dispose();\r\n this._interactionDisposer = undefined;\r\n }\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"tooltipHTML\", {\r\n /**\r\n * @return Tooltip HTML content template\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipHTML\");\r\n },\r\n /**\r\n * An HTML template to be used to populate [[Tooltip]] contents.\r\n *\r\n * If element has `tooltipDataItem` or `dataItem` set, this will be parsed\r\n * for any data values to be replaced with the values from respective data\r\n * items.\r\n *\r\n * @param value Tooltip HTML content template\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n this.hoverable = true;\r\n if (this.setPropertyValue(\"tooltipHTML\", value)) {\r\n if (this.tooltip) {\r\n if (this.tooltip.visible) {\r\n this.showTooltip();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipText\", {\r\n /**\r\n * @return Tooltip content template\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipText\");\r\n },\r\n /**\r\n * A text template to be used to populate Tooltip's contents.\r\n *\r\n * If element has `tooltipDataItem` or `dataItem` set, this will be parsed\r\n * for any data values to be replaced with the values from respective data\r\n * items.\r\n *\r\n * This template will also be parsed for any special formatting tags.\r\n *\r\n * @param value Tooltip content template\r\n * @see {@link TextFormatter}\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (value) {\r\n this.hoverable = true;\r\n }\r\n if (this.setPropertyValue(\"tooltipText\", value)) {\r\n if (this.tooltip) {\r\n if (this.tooltip.visible) {\r\n this.showTooltip();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipContainer\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Container\r\n */\r\n get: function () {\r\n if (this._tooltipContainer) {\r\n return this._tooltipContainer;\r\n }\r\n else if (this._parent) {\r\n return this._parent.tooltipContainer;\r\n }\r\n },\r\n /**\r\n * A container reference that should be used to place element's\r\n * [[Tooltip]] in.\r\n *\r\n * Will use parent's container if does not have one set.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Container\r\n * @todo Dispose of the old _tooltipContainer ?\r\n */\r\n set: function (value) {\r\n this._tooltipContainer = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipX\", {\r\n /**\r\n * @return Tooltip X (px)\r\n */\r\n get: function () {\r\n return this.getTooltipX();\r\n },\r\n /**\r\n * X coordinate the [[Tooltip]] should be shown at.\r\n *\r\n * @param value Tooltip X (px)\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"tooltipX\", value) && this.tooltip) {\r\n this.tooltip.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"alwaysShowTooltip\", {\r\n /**\r\n * @return Always show tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"showTooltipOn\") == \"always\";\r\n },\r\n /**\r\n * DEPRECATION NOTICE: This setting is deprecated in favor of a more flexible\r\n * setting: `showTooltipOn`. Please use `showTooltipOn = \"always\"` instead.\r\n *\r\n * Indicates if this element should display a tooltip permanently.\r\n *\r\n * Useful, if you want to show permanent tooltips on some items.\r\n *\r\n * @default false\r\n * @since 4.5.4\r\n * @deprecated Use `showTooltipOn = \"always\"` instead\r\n * @param value Always show tooltip?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n if (value) {\r\n this.showTooltipOn = \"always\";\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"showTooltipOn\", {\r\n /**\r\n * @return When to show tooltip\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"showTooltipOn\");\r\n },\r\n /**\r\n * Indicates when tooltip needs to be shown on this element:\r\n *\r\n * * `\"hover\"` (default) - Tooltip will be shown when element is hovered on.\r\n * * `\"hit\"` - Tooltip will be shown when element is clicked/tapped. Tooltip will be hidden when clicked/tapped anywhere else.\r\n * * `\"always\"` - Tooltip will be shown on the element permanently.\r\n *\r\n * For example, if you would like to show tooltips on all of the columns of\r\n * a [[ColumnSeries]]:\r\n *\r\n * ```TypeScript\r\n * series.columns.template.showTooltipOn = \"always\";\r\n * ```\r\n * ```JavaScript\r\n * series.columns.template.showTooltipOn = \"always\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"columns\": {\r\n * \"showTooltipOn\": \"always\"\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * It can even be set to display on a selected columns via `propertyFields`:\r\n *\r\n * ```TypeScript\r\n * series.columns.template.propertyFields.showTooltipOn = \"tooltip\";\r\n * ```\r\n * ```JavaScript\r\n * series.columns.template.propertyFields.showTooltipOn = \"tooltip\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"columns\": {\r\n * \"propertyFields\": {\r\n * \"showTooltipOn\": \"tooltip\"\r\n * }\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @default \"hover\"\r\n * @since 4.7.9\r\n * @param value When to show tooltip\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"showTooltipOn\", value)) {\r\n if (value == \"hit\") {\r\n this.clickable = true;\r\n }\r\n if (this.tooltip) {\r\n if (value == \"always\") {\r\n this.showTooltip();\r\n }\r\n else {\r\n this.handleAlwaysShowTooltip();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipPosition\", {\r\n /**\r\n * Position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipPosition\");\r\n },\r\n /**\r\n * Specifies if [[Tooltip]] should follow the mouse or touch pointer or stay\r\n * at the fixed position.\r\n *\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipPosition\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"tooltipY\", {\r\n /**\r\n * @return Tooltip Y (px)\r\n */\r\n get: function () {\r\n return this.getTooltipY();\r\n },\r\n /**\r\n * Y coordinate the [[Tooltip]] should be shown at.\r\n *\r\n * @param value Tooltip Y (px)\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"tooltipY\", value) && this.tooltip) {\r\n this.tooltip.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns Tooltip X coordinate if it's set, or middle of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return X (px)\r\n */\r\n Sprite.prototype.getTooltipX = function () {\r\n var x = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.hasValue(x)) {\r\n x = percent(50);\r\n }\r\n var value;\r\n if ($type.isNumber(x)) {\r\n value = x;\r\n }\r\n if (x instanceof Percent) {\r\n value = this.maxLeftSelf + this._measuredWidthSelf * x.value - this.pixelPaddingLeft - this.ex; // overflow is know only for measured items, so this is not always good\r\n }\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n return value;\r\n };\r\n /**\r\n * Returns Tooltip Y coordinate if it's set, or middle of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Y (px)\r\n */\r\n Sprite.prototype.getTooltipY = function () {\r\n var y = this.getPropertyValue(\"tooltipY\");\r\n if (!$type.hasValue(y)) {\r\n y = percent(50);\r\n }\r\n var value;\r\n if ($type.isNumber(y)) {\r\n value = y;\r\n }\r\n if (y instanceof Percent) {\r\n value = this.maxTopSelf + this._measuredHeightSelf * y.value - this.pixelPaddingTop - this.ey; // overflow is know only for measured items, so this is not always good\r\n }\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n return value;\r\n };\r\n /**\r\n * Displays a modal or console message with error, and halts any further\r\n * processing of this item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param e Error\r\n * @todo Implement from applying further actions to this item\r\n */\r\n Sprite.prototype.raiseCriticalError = function (e, closable) {\r\n if (this.svgContainer) {\r\n if (!this._adapterO) {\r\n this.modal.content = e.message;\r\n }\r\n else {\r\n this.modal.content = this._adapterO.apply(\"criticalError\", e).message;\r\n }\r\n if (!closable) {\r\n this.disabled = true;\r\n }\r\n else {\r\n this.modal.closable = true;\r\n }\r\n if (!options.suppressErrors) {\r\n this.modal.open();\r\n }\r\n }\r\n if (options.verbose) {\r\n console.log(e);\r\n }\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Sprite.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Tooltip color source\r\n if ($type.hasValue(config.tooltipColorSource) && $type.isString(config.tooltipColorSource) && this.map.hasKey(config.tooltipColorSource)) {\r\n config.tooltipColorSource = this.map.getKey(config.tooltipColorSource);\r\n }\r\n // Cursor styles\r\n if ($type.hasValue(config.cursorOverStyle) && $type.isString(config.cursorOverStyle)) {\r\n config.cursorOverStyle = this.getCursorStyle(config.cursorOverStyle);\r\n }\r\n if ($type.hasValue(config.cursorDowntyle) && $type.isString(config.cursorDowntyle)) {\r\n config.cursorDowntyle = this.getCursorStyle(config.cursorDowntyle);\r\n }\r\n if ($type.hasValue(config.cursorOptions)) {\r\n if ($type.hasValue(config.cursorOptions.overStyle) && $type.isString(config.cursorOptions.overStyle)) {\r\n config.cursorOptions.overStyle = this.getCursorStyle(config.cursorOptions.overStyle);\r\n }\r\n if ($type.hasValue(config.cursorOptions.downStyle) && $type.isString(config.cursorOptions.downStyle)) {\r\n config.cursorOptions.downStyle = this.getCursorStyle(config.cursorOptions.downStyle);\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n this.processDelayedMap();\r\n };\r\n /**\r\n * Converts string name of the cursor into actual [[MouseCursorStyle]].\r\n *\r\n * @param style Cursor type\r\n * @return Cursor definition\r\n */\r\n Sprite.prototype.getCursorStyle = function (style) {\r\n switch (style) {\r\n case \"grab\":\r\n return MouseCursorStyle.grab;\r\n case \"grabbing\":\r\n return MouseCursorStyle.grabbing;\r\n case \"pointer\":\r\n return MouseCursorStyle.pointer;\r\n case \"horizontalResize\":\r\n return MouseCursorStyle.horizontalResize;\r\n case \"verticalResize\":\r\n return MouseCursorStyle.verticalResize;\r\n default:\r\n return MouseCursorStyle.default;\r\n }\r\n };\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n Sprite.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Must come last\r\n else if (a == \"tooltipColorSource\") {\r\n return 1;\r\n }\r\n else if (b == \"tooltipColorSource\") {\r\n return -1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"isHidden\", {\r\n /**\r\n * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.\r\n * This was added becaus hidden state might have visibility set to true and so\r\n * there would not be possible to find out if a sprite is technically hidden or not.\r\n */\r\n get: function () {\r\n if (this._isHidden) {\r\n return this._isHidden;\r\n }\r\n else if (this._parent) {\r\n return this._parent.isHidden;\r\n }\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"showOnInit\", {\r\n /**\r\n * @return Show on init?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"showOnInit\");\r\n },\r\n /**\r\n * If this is set to `true`, Sprite, when inited will be instantly hidden\r\n * (\"hidden\" state applied) and then shown (\"default\" state applied).\r\n *\r\n * If your \"default\" state's `transitionDuration > 0` this will result in\r\n * initial animation from \"hidden\" state to \"default\" state.\r\n *\r\n * If you need a Sprite which has `showOnInit = true` not to be shown\r\n * initially, set `sprite.hidden = true`. Setting `sprite.visible = false`\r\n * will not prevent the animation and the sprite will be shown.\r\n *\r\n * @param value show on init?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n this.setShowOnInit(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.setShowOnInit = function (value) {\r\n if (this.setPropertyValue(\"showOnInit\", value)) {\r\n if (!this.isTemplate) {\r\n if (value && !this.inited && !this.hidden) {\r\n this._showOnInitDisposer = new MultiDisposer([\r\n registry.events.once(\"enterframe\", this.hideInitially, this),\r\n this.events.once(\"beforevalidated\", this.hideInitially, this, false),\r\n this.events.on(\"inited\", this.appear, this, false)\r\n ]);\r\n this._disposers.push(this._showOnInitDisposer);\r\n }\r\n else {\r\n if (this._showOnInitDisposer) {\r\n this._showOnInitDisposer.dispose();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Sprite.prototype.hideInitially = function () {\r\n if (!this.isDisposed()) {\r\n this.appeared = false;\r\n //if (!this.hidden && !this._isHidden) { // not good for series, as on enterframe it doesn't have data items yet.\r\n if (!this.inited) {\r\n this.hide(0);\r\n }\r\n }\r\n };\r\n /**\r\n * Hides the chart instantly and then shows it. If defaultState.transitionDuration > 0, this will result an animation in which properties of hidden state will animate to properties of visible state.\r\n */\r\n Sprite.prototype.appear = function () {\r\n var _this = this;\r\n this.appeared = false;\r\n if (!this.hidden && !this.isHidden) {\r\n this.hide(0);\r\n }\r\n if (!this.hidden) {\r\n var animation = this.show();\r\n if (animation && !animation.isFinished()) {\r\n this.addDisposer(animation.events.on(\"animationended\", function () {\r\n _this.appeared = true;\r\n _this.dispatch(\"appeared\");\r\n }));\r\n }\r\n else {\r\n this.appeared = true;\r\n this.dispatch(\"appeared\");\r\n }\r\n }\r\n else {\r\n this.appeared = true;\r\n this.dispatch(\"appeared\");\r\n }\r\n };\r\n Object.defineProperty(Sprite.prototype, \"hidden\", {\r\n /**\r\n * @return Is initially hidden?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hidden\");\r\n },\r\n /**\r\n * If a sprite has `showOnInit = true`, it will animate from \"hidden\" to\r\n * \"default\" state when initialized. To prevent this but keep\r\n * `showOnInit = true`, you can set `sprite.hidden = true`.\r\n *\r\n * @param value initially hidden?\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n this.setPropertyValue(\"hidden\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n return this._bbox;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Sprite.prototype, \"plugins\", {\r\n /**\r\n * A list of plugins (objects that implement [[IPlugin]] interface) attached\r\n * to this object.\r\n *\r\n * @since 4.2.2\r\n * @return List of plugins\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._plugins) {\r\n this._plugins = new List();\r\n this._disposers.push(this._plugins.events.on(\"inserted\", function (ev) {\r\n ev.newValue.target = _this;\r\n ev.newValue.init();\r\n }));\r\n this._disposers.push(new ListDisposer(this._plugins));\r\n }\r\n return this._plugins;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Called during the System.update method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype._systemUpdate = function (skippedSprites) {\r\n this.validate();\r\n };\r\n /**\r\n * Called during the System.update method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype._systemCheckIfValidate = function () {\r\n return true;\r\n };\r\n /**\r\n * Called during the System.validatePositions method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype._systemValidatePositions = function () {\r\n this.validatePosition();\r\n };\r\n /**\r\n * Called during the System.validateLayouts method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Sprite.prototype._systemValidateLayouts = function () {\r\n };\r\n return Sprite;\r\n}(BaseObjectEvents));\r\nexport { Sprite };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Sprite\"] = Sprite;\r\n//# sourceMappingURL=Sprite.js.map","/**\r\n * Container module\r\n * @todo Needs description\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"./Sprite\";\r\nimport { SpriteState } from \"./SpriteState\";\r\nimport { List } from \"./utils/List\";\r\nimport { MultiDisposer } from \"./utils/Disposer\";\r\nimport { Dictionary, DictionaryDisposer } from \"./utils/Dictionary\";\r\nimport { getInteraction } from \"./interaction/Interaction\";\r\nimport { Rectangle } from \"./elements/Rectangle\";\r\nimport { Percent } from \"./utils/Percent\";\r\nimport { registry } from \"./Registry\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"./utils/Iterator\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $dom from \"./utils/DOM\";\r\nimport { system } from \"./System\";\r\nimport { options } from \"./Options\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Container can contain multiple sprites and arrange them in various layouts.\r\n *\r\n * @see {@link IContainerEvents} for a list of available events\r\n * @see {@link IContainerAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar Container = /** @class */ (function (_super) {\r\n __extends(Container, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Container() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Container children. (sorted by layout)\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._childrenByLayout = [];\r\n /**\r\n * Container's disposers for its child elements.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._childrenDisposers = new Dictionary();\r\n /**\r\n * Indicates if this container contains any focused elements, including\r\n * itself.\r\n */\r\n _this.hasFocused = false;\r\n /**\r\n * An array of references to elements the state should be set, when it is set\r\n * on this element.\r\n */\r\n _this.setStateOnSprites = [];\r\n /*\r\n * @ignore\r\n */\r\n _this.layoutInvalid = false;\r\n _this._absoluteWidth = 0;\r\n _this._absoluteHeight = 0;\r\n /**\r\n * An array of child Sprites that should be ready before this object can\r\n * fire a \"ready\" event.\r\n */\r\n _this._shouldBeReady = [];\r\n /**\r\n * Enables touch tap protection.\r\n */\r\n _this._tapToActivate = false;\r\n /**\r\n * If `tapToActivate` is used, this setting will determine how long the chart\r\n * will stay in \"active\" mode.\r\n *\r\n * @default 3000\r\n * @since 4.4.0\r\n */\r\n _this.tapTimeout = 3000;\r\n _this.className = \"Container\";\r\n _this._element = _this.paper.addGroup(\"g\");\r\n _this.group.add(_this.element);\r\n _this.setPropertyValue(\"pixelPerfect\", false);\r\n _this.setPropertyValue(\"layout\", \"absolute\");\r\n _this.setPropertyValue(\"fixedWidthGrid\", false);\r\n _this.setPropertyValue(\"verticalCenter\", \"none\");\r\n _this.setPropertyValue(\"horizontalCenter\", \"none\");\r\n _this._positionPrecision = 4;\r\n _this._disposers.push(new DictionaryDisposer(_this._childrenDisposers));\r\n _this.children.events.on(\"inserted\", _this.handleChildAdded, _this);\r\n _this.children.events.on(\"removed\", _this.handleChildRemoved, _this);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Handles adding of a new child into `children`. Adding new children might\r\n * affect the whole layout so it needs to be revalidated.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event object\r\n * @todo Throw an exception on adding a disposed object. Of course it's better NOT TO add disposed objects, so that what we should focus on.\r\n */\r\n Container.prototype.handleChildAdded = function (event) {\r\n this.processChild(event.newValue);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Container.prototype.processChild = function (child) {\r\n // try solves the problem when somedy adds child directly to children\r\n try {\r\n this._childrenDisposers.insertKey(child.uid, new MultiDisposer([\r\n // it's not enough to listen to POSITION_CHANGED only, as some extra redrawals will happen.\r\n child.events.on(\"transformed\", this.handleChildTransform, this),\r\n child.events.on(\"zIndexChanged\", this.sortAndAdd, this)\r\n ]));\r\n }\r\n catch (err) {\r\n // void\r\n }\r\n if (this.element) {\r\n var group = this.element;\r\n group.add(child.group);\r\n }\r\n child.parent = this;\r\n child.paper = this.paper;\r\n this.dispatchImmediately(\"childadded\", { type: \"childadded\", newValue: child });\r\n this.invalidate();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Container.prototype.sortAndAdd = function () {\r\n this.sortChildren();\r\n this.addChildren();\r\n };\r\n /**\r\n * Handles child removal. Changing size of the child may change the\r\n * whole layout of the Container, hence layout needs to be invalidated.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event object\r\n */\r\n Container.prototype.handleChildRemoved = function (event) {\r\n var child = event.oldValue;\r\n // TODO figure out why the key sometimes doesn't exist\r\n this._childrenDisposers.removeKey(child.uid);\r\n if (this.element) {\r\n var group = this.element;\r\n group.removeElement(child.group);\r\n }\r\n if (child.isMeasured) {\r\n this.invalidateLayout();\r\n }\r\n this.dispatchImmediately(\"childremoved\", { type: \"childremoved\", oldValue: child });\r\n };\r\n /**\r\n * Handles child transformation. Changing size of the child may change the\r\n * whole layout of the Container, hence layout needs to be invalidated.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event object\r\n */\r\n Container.prototype.handleChildTransform = function (event) {\r\n var child = event.target;\r\n if (child.isMeasured) { // && this.layout != \"none\" && this.layout != \"absolute\") {\r\n this.invalidateLayout();\r\n }\r\n };\r\n /**\r\n * Invalidates Container's layout, causing it to be re-evaluated again.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.invalidateLayout = function () {\r\n if (this.layoutInvalid || this.disabled || this.isTemplate || this.layout == \"none\" || this.__disabled) {\r\n return;\r\n }\r\n this.layoutInvalid = true;\r\n registry.addToInvalidLayouts(this);\r\n system.requestFrame();\r\n };\r\n /**\r\n * Invalidates element.\r\n *\r\n * Object will be redrawn during the next update cycle.\r\n *\r\n * Please note that in most cases elements will auto-invalidate when needed. If\r\n * everything works, DO NOT use this method. Use it only if some changes do\r\n * not take otherwise.\r\n */\r\n Container.prototype.invalidate = function () {\r\n _super.prototype.invalidate.call(this);\r\n this.invalidateLayout();\r\n };\r\n /**\r\n * Invalidates the whole element, including layout AND all its child\r\n * elements.\r\n *\r\n * As this will essentially force all elements to redraw, use only if\r\n * absolutely necessary.\r\n */\r\n Container.prototype.deepInvalidate = function () {\r\n _super.prototype.invalidate.call(this);\r\n //this.sortChildren();\r\n $array.each(this._childrenByLayout, function (child) {\r\n if (child instanceof Container) {\r\n child.deepInvalidate();\r\n }\r\n else {\r\n child.invalidate();\r\n }\r\n });\r\n this.invalidateLayout();\r\n };\r\n Object.defineProperty(Container.prototype, \"children\", {\r\n /**\r\n * Returns a list of the child [[Sprite]] elements contained in this\r\n * Container.\r\n *\r\n * @return List of child elements (Sprites)\r\n */\r\n get: function () {\r\n // @todo Review if we can add all children to disposers\r\n if (!this._children) {\r\n this._children = new List();\r\n //this._disposers.push(new ListDisposer(this._children));\r\n }\r\n return this._children;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"minWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minWidth\");\r\n },\r\n /**\r\n * Minimum width (px) for the Container. A container will not\r\n * auto-shrink beyond this value, even if child elements are smaller.\r\n *\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"minWidth\", value)) {\r\n this.invalidateLayout();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"minHeight\", {\r\n /**\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minHeight\");\r\n },\r\n /**\r\n * Minimum height (px) for the Container. A container will not\r\n * auto-shrink beyond this value, even if child elements are smaller.\r\n *\r\n * @param value Height (px)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"minHeight\", value)) {\r\n this.invalidateLayout();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Overrides the original `removeElement` so that Container's actual element\r\n * is not removed. We do not need to remove element of a Container.\r\n *\r\n * We do this because remove element each time will fail the `getBBox`.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.removeElement = function () {\r\n };\r\n /**\r\n * Sorts Container's children: the ones with variable width and height are\r\n * put at the end of the list (depending on layout type), so that fixed-width\r\n * ones can be drawn first.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.sortChildren = function () {\r\n var _this = this;\r\n this._childrenByLayout = [];\r\n if (this.layout == \"none\" || this.layout == \"absolute\" || !this.layout) {\r\n //$iter.each(this.children.iterator(), (child) => {\r\n //\tthis._childrenByLayout.push(child);\r\n //});\r\n this._childrenByLayout = this.children.values;\r\n }\r\n else {\r\n // Assemble fixed-size and relative lists\r\n var fixed_1 = [];\r\n var relative_1 = [];\r\n $iter.each(this.children.iterator(), function (child) {\r\n if (_this.layout == \"horizontal\" || _this.layout == \"grid\") {\r\n if (!$type.isNumber(child.percentWidth)) {\r\n fixed_1.push(child);\r\n }\r\n else {\r\n relative_1.push(child);\r\n }\r\n }\r\n else if (_this.layout == \"vertical\") {\r\n if (!$type.isNumber(child.percentHeight)) {\r\n fixed_1.push(child);\r\n }\r\n else {\r\n relative_1.push(child);\r\n }\r\n }\r\n else {\r\n fixed_1.push(child);\r\n }\r\n });\r\n // Concat everything into list\r\n this._childrenByLayout = fixed_1.concat(relative_1);\r\n }\r\n this.calculateRelativeSize();\r\n };\r\n /**\r\n * Calculates relative sizes for all Container's children.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Make it protected?\r\n */\r\n Container.prototype.calculateRelativeSize = function () {\r\n var _this = this;\r\n var totalRelativeWidth = 0;\r\n var totalRelativeHeight = 0;\r\n $array.each(this._childrenByLayout, function (child) {\r\n // if child is not measured, we do not care about it at all.\r\n if (child.isMeasured) {\r\n if ($type.isNumber(child.percentWidth)) {\r\n totalRelativeWidth += child.percentWidth;\r\n }\r\n if ($type.isNumber(child.percentHeight)) {\r\n totalRelativeHeight += child.percentHeight;\r\n }\r\n }\r\n });\r\n $array.each(this._childrenByLayout, function (child) {\r\n if (child.isMeasured) {\r\n if (_this.layout == \"horizontal\") {\r\n if ($type.isNumber(child.percentWidth)) {\r\n child.relativeWidth = child.percentWidth / totalRelativeWidth;\r\n }\r\n if ($type.isNumber(child.percentHeight)) {\r\n child.relativeHeight = child.percentHeight / 100;\r\n }\r\n }\r\n if (_this.layout == \"vertical\") {\r\n if ($type.isNumber(child.percentHeight)) {\r\n child.relativeHeight = child.percentHeight / totalRelativeHeight;\r\n }\r\n if ($type.isNumber(child.percentWidth)) {\r\n child.relativeWidth = child.percentWidth / 100;\r\n }\r\n }\r\n if (_this.layout == \"grid\") {\r\n if ($type.isNumber(child.percentHeight)) {\r\n child.relativeHeight = child.percentHeight / 100;\r\n }\r\n if ($type.isNumber(child.percentWidth)) {\r\n child.relativeWidth = child.percentWidth / 100;\r\n }\r\n }\r\n }\r\n if (_this.layout == \"absolute\" || !child.isMeasured) {\r\n if ($type.isNumber(child.percentWidth)) {\r\n child.relativeWidth = child.percentWidth / 100;\r\n }\r\n if ($type.isNumber(child.percentHeight)) {\r\n child.relativeHeight = child.percentHeight / 100;\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Adds all children to Container's SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.addChildren = function () {\r\n /*\r\n Need this check because a child might be assigned to parent even before element is created, for example a theme\r\n access scrollbar.thumb\r\n */\r\n if (this.element) {\r\n var zindexed = $array.copy(this.children.values); // not children by layout!\r\n var sortArray = zindexed.map(function (data, idx) {\r\n return { idx: idx, data: data };\r\n });\r\n sortArray.sort(function (a, b) {\r\n var ai = (a.data.zIndex || 0);\r\n var bi = (b.data.zIndex || 0);\r\n if (ai < bi) {\r\n return -1;\r\n }\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n return a.idx - b.idx;\r\n });\r\n zindexed = sortArray.map(function (val) {\r\n return val.data;\r\n });\r\n var group_1 = this.element;\r\n // check, maybe the order is good already\r\n var isCorrect = true;\r\n if (group_1.node && group_1.node.childNodes) {\r\n for (var i = 0, len = group_1.node.childNodes.length; i < len; i++) {\r\n if (group_1.node.childNodes[i] != zindexed[i].group.node) {\r\n isCorrect = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (!isCorrect) {\r\n $array.each(zindexed, function (child) {\r\n if (child.group) {\r\n group_1.add(child.group);\r\n }\r\n });\r\n if (this._background) {\r\n this.group.addToBack(this._background.group);\r\n }\r\n this.invalidateLayout();\r\n }\r\n }\r\n };\r\n /**\r\n * Creates a new element of specific type and assigns as a child to the\r\n * Container.\r\n *\r\n * @param Class type for the new element\r\n * @return New element\r\n */\r\n Container.prototype.createChild = function (classType) {\r\n var sprite = new classType();\r\n sprite.parent = this;\r\n return sprite;\r\n };\r\n /**\r\n * Removes all Container's children without actually destroying them.\r\n *\r\n * To destroy children use `disposeChildren()` instead.\r\n */\r\n Container.prototype.removeChildren = function () {\r\n // remove all children\r\n // TODO use iteration instead\r\n while (this.children.length > 0) {\r\n var child = this.children.getIndex(0);\r\n child.parent = undefined;\r\n this.children.removeValue(child);\r\n }\r\n };\r\n /**\r\n * Removes and destroys all Container's children.\r\n *\r\n * To remove children from Container without destroying them, use\r\n * `removeChildren()`.\r\n */\r\n Container.prototype.disposeChildren = function () {\r\n // TODO use iteration instead\r\n while (this.children.length > 0) {\r\n var child = this.children.getIndex(0);\r\n child.dispose();\r\n this.children.removeValue(child);\r\n }\r\n };\r\n Object.defineProperty(Container.prototype, \"background\", {\r\n /**\r\n * @return Background element\r\n */\r\n get: function () {\r\n if (!this._background) {\r\n this._background = this.createBackground();\r\n this.processBackground();\r\n }\r\n return this._background;\r\n },\r\n /**\r\n * An element to use as container background.\r\n *\r\n * @param background Background element\r\n */\r\n set: function (background) {\r\n if (this._background && this.background != background) {\r\n this.removeDispose(this._background);\r\n }\r\n if (background) {\r\n this._background = background;\r\n this._disposers.push(background);\r\n this.processBackground();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles the situation where parent element is resized.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.handleGlobalScale = function () {\r\n _super.prototype.handleGlobalScale.call(this);\r\n this.children.each(function (child) {\r\n child.handleGlobalScale();\r\n });\r\n };\r\n /**\r\n * Creates and returns a [[Rectangle]] to use as a background for Container.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Background Rectangle element\r\n */\r\n Container.prototype.createBackground = function () {\r\n return new Rectangle();\r\n };\r\n /**\r\n * Decorates background element with required properties.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.processBackground = function () {\r\n var background = this._background;\r\n if (background) {\r\n background.isMeasured = false;\r\n this._background.fill = new InterfaceColorSet().getFor(\"background\");\r\n background.parent = this;\r\n background.isMeasured = false;\r\n this.children.removeValue(background);\r\n this._disposers.push(background);\r\n this.group.addToBack(this._background.group);\r\n }\r\n };\r\n /**\r\n * Measures the size of container and informs its children of how much size\r\n * they can occupy, by setting their relative `maxWidth` and `maxHeight`\r\n * properties.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.validateLayout = function () {\r\n var _this = this;\r\n registry.removeFromInvalidLayouts(this);\r\n this.layoutInvalid = false;\r\n // prevents from drawing if topparent is 0x0\r\n /*\r\n let topParent = this.topParent;\r\n if (topParent) {\r\n if (!topParent.maxWidth || !topParent.maxHeight) {\r\n this._disposers.push(topParent.events.once(\"maxsizechanged\", this.invalidateLayout, this));\r\n }\r\n }*/\r\n this._availableWidth = this.innerWidth;\r\n this._availableHeight = this.innerHeight;\r\n var measuredWidth = 0;\r\n var measuredHeight = 0;\r\n var allValid = true;\r\n if (this.children) {\r\n this.sortChildren();\r\n // we itterate through list of children, sorted by layout priority. sprites which width non-relative width/height will go first, so we will reduce available width before proceeding to sprites with relative width/height\r\n $array.each(this._childrenByLayout, function (child) {\r\n var maxWidth;\r\n var maxHeight;\r\n if ($type.isNumber(child.relativeWidth)) {\r\n maxWidth = $math.round(_this._availableWidth * child.relativeWidth, 2);\r\n if (_this.layout == \"horizontal\") { // || this.layout == \"absolute\") {\r\n maxWidth -= child.pixelMarginRight + child.pixelMarginLeft;\r\n }\r\n }\r\n else {\r\n if (_this.layout == \"horizontal\") {\r\n if (child.invalid) {\r\n child.validate();\r\n }\r\n }\r\n }\r\n if ($type.isNumber(child.relativeHeight)) {\r\n maxHeight = $math.round(_this._availableHeight * child.relativeHeight, 2);\r\n if (_this.layout == \"vertical\") { // || this.layout == \"absolute\") {\r\n maxHeight -= child.pixelMarginTop + child.pixelMarginBottom;\r\n }\r\n }\r\n else {\r\n if (_this.layout == \"vertical\") {\r\n if (child.invalid) {\r\n child.validate();\r\n }\r\n }\r\n }\r\n // if child is valid\r\n if (child.invalid == false) {\r\n if ($type.isNumber(child.relativeWidth)) {\r\n child.maxWidth = maxWidth;\r\n }\r\n if ($type.isNumber(child.relativeHeight)) {\r\n child.maxHeight = maxHeight;\r\n }\r\n if (child.isMeasured) {\r\n // reduce available width if this is horizontal layout\r\n if (_this.layout == \"horizontal\") {\r\n if (!$type.isNumber(child.percentWidth)) {\r\n if (child.measuredWidth > 0) {\r\n _this._availableWidth -= child.measuredWidth + child.pixelMarginLeft + child.pixelMarginRight;\r\n }\r\n }\r\n }\r\n // reduce available height if this is vertical layout\r\n if (_this.layout == \"vertical\") {\r\n if (!$type.isNumber(child.percentHeight)) {\r\n if (child.measuredHeight > 0) {\r\n _this._availableHeight -= child.measuredHeight + child.pixelMarginTop + child.pixelMarginBottom;\r\n }\r\n }\r\n }\r\n var childMeasuredWidth = child.measuredWidth;\r\n var childMeasuredHeight = child.measuredHeight;\r\n if (child.align != \"none\") {\r\n childMeasuredWidth += child.pixelMarginLeft + child.pixelMarginRight;\r\n }\r\n if (child.valign != \"none\") {\r\n childMeasuredHeight += child.pixelMarginTop + child.pixelMarginBottom;\r\n }\r\n measuredWidth = Math.max(measuredWidth, childMeasuredWidth);\r\n measuredHeight = Math.max(measuredHeight, childMeasuredHeight);\r\n }\r\n }\r\n // if child is not valid\r\n else {\r\n // tell child what maximum width/ height it can occupy\r\n if (child.isMeasured) {\r\n if ($type.isNumber(child.relativeWidth)) {\r\n if (child.maxWidth != maxWidth) { // need to check this because of allValid\r\n child.maxWidth = maxWidth;\r\n allValid = false;\r\n }\r\n }\r\n if ($type.isNumber(child.relativeHeight)) {\r\n if (child.maxHeight != maxHeight) { // need to check this because of allValid\r\n child.maxHeight = maxHeight;\r\n allValid = false;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this._absoluteWidth = measuredWidth;\r\n this._absoluteHeight = measuredHeight;\r\n // arrange after measuring, only if all children are valid already\r\n if (allValid) {\r\n this.arrange();\r\n }\r\n };\r\n /**\r\n * Arranges children according to layout specs and available space / child\r\n * sizes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.arrange = function () {\r\n var _this = this;\r\n var children = this.children;\r\n /*\r\n in this method we not only arrange children but also find out the size of the container\r\n it might seem it would be easier to get container size using sprite's measure method,\r\n however it would return only actual size of the bbox. However as each child meight have\r\n margins set, we need to check each child - we do it here.\r\n\r\n This method doesn't do anything with DOM, so it's not expensive\r\n */\r\n var measuredWidth = 0;\r\n var measuredHeight = 0;\r\n //let innerWidth: number = this.innerWidth; //$math.max(this.innerWidth, this._measuredWidth - paddingLeft - paddingRight);\r\n //let innerHeight: number = this.innerHeight; //$math.max(this.innerHeight, this._measuredHeight - paddingTop - paddingBottom);\r\n // above is wrong, as if a w/h is not specified, it is 0 and alignment doesn't work at all.\r\n var innerWidth = $math.max(this.innerWidth, this._absoluteWidth);\r\n var innerHeight = $math.max(this.innerHeight, this._absoluteHeight);\r\n var left; // = 0;\r\n var right; // = innerWidth;\r\n var top; // = 0;\r\n var bottom; // = innerHeight;\r\n var paddingLeft = this.pixelPaddingLeft;\r\n var paddingRight = this.pixelPaddingRight;\r\n var paddingTop = this.pixelPaddingTop;\r\n var paddingBottom = this.pixelPaddingBottom;\r\n var nextX = 0;\r\n var nextY = 0;\r\n var row = 0;\r\n var column = 0;\r\n var columnWidth = [];\r\n var rowHeight = [];\r\n var maxCellWidth;\r\n var minCellWidth;\r\n var columnCount;\r\n var maxWidth = this.maxWidth;\r\n var maxHeight = this.maxHeight;\r\n var minWidth = this.minWidth;\r\n var minHeight = this.minHeight;\r\n var childrenCopy = $array.copy(children.values);\r\n if (this.reverseOrder) {\r\n childrenCopy.reverse();\r\n }\r\n // GRID PRECALCULATIONS\r\n if (this.layout == \"grid\") {\r\n minCellWidth = maxWidth;\r\n maxCellWidth = 1;\r\n for (var i = 0, len = childrenCopy.length; i < len; i++) {\r\n var child = childrenCopy[i];\r\n if (child.isMeasured && !child.disabled && !child.__disabled) {\r\n var childMeasuredWidth = child.measuredWidth;\r\n if (childMeasuredWidth < minCellWidth) {\r\n minCellWidth = childMeasuredWidth;\r\n }\r\n if (childMeasuredWidth > maxCellWidth) {\r\n maxCellWidth = childMeasuredWidth;\r\n }\r\n }\r\n }\r\n minCellWidth = $math.fitToRange(minCellWidth, 1, maxWidth);\r\n maxCellWidth = $math.fitToRange(maxCellWidth, 1, maxWidth);\r\n if (this.fixedWidthGrid) {\r\n columnCount = maxWidth / maxCellWidth;\r\n }\r\n else {\r\n columnCount = maxWidth / minCellWidth; // predicted number of columns, yes it is usually much more than real number, but we fix that later\r\n }\r\n columnCount = $math.max(1, Math.floor(columnCount));\r\n columnCount = $math.min(this.maxColumns, columnCount);\r\n columnWidth = this.getColumnWidth(childrenCopy, columnCount, maxCellWidth);\r\n }\r\n var contentLeft;\r\n var contentRight;\r\n var contentTop;\r\n var contentBottom;\r\n // we itterate through array of children\r\n // TODO use iterator instead\r\n for (var i = 0, len = childrenCopy.length; i < len; i++) {\r\n var child = childrenCopy[i];\r\n if (child.isMeasured && !child.disabled && !child.__disabled) {\r\n var x = undefined; //child.pixelX; // must reset\r\n var y = undefined; //child.pixelY; // must reset\r\n var childMarginLeft = child.pixelMarginLeft;\r\n var childMarginRight = child.pixelMarginRight;\r\n var childMarginTop = child.pixelMarginTop;\r\n var childMarginBottom = child.pixelMarginBottom;\r\n var childWidth = child.measuredWidth;\r\n var childHeight = child.measuredHeight;\r\n var childLeft = void 0;\r\n var childRight = void 0;\r\n var childTop = void 0;\r\n var childBottom = void 0;\r\n switch (this.layout) {\r\n case \"none\":\r\n break;\r\n // absolute layout\r\n case \"absolute\":\r\n // horizontal alignment\r\n switch (child.align) {\r\n case \"left\":\r\n x = childMarginLeft - child.maxLeft;\r\n break;\r\n case \"center\":\r\n x = (innerWidth - childWidth) / 2 - child.maxLeft;\r\n break;\r\n case \"right\":\r\n x = innerWidth - childMarginRight - child.maxRight;\r\n break;\r\n default:\r\n if (!(child.x instanceof Percent)) {\r\n x = child.pixelX;\r\n }\r\n break;\r\n }\r\n // vertical alignment\r\n switch (child.valign) {\r\n case \"top\":\r\n y = childMarginTop - child.maxTop;\r\n break;\r\n case \"middle\":\r\n y = (innerHeight - childHeight) / 2 - child.maxTop;\r\n break;\r\n case \"bottom\":\r\n y = innerHeight - childMarginBottom - child.maxBottom;\r\n break;\r\n default:\r\n if (!(child.y instanceof Percent)) {\r\n y = child.pixelY;\r\n }\r\n break;\r\n }\r\n break;\r\n // vertical layout\r\n case \"vertical\":\r\n //if ($type.isNumber(child.relativeHeight)) {\r\n //\tchildHeight = child.maxHeight;\r\n //}\r\n switch (child.align) {\r\n case \"left\":\r\n x = childMarginLeft - child.maxLeft;\r\n break;\r\n case \"center\":\r\n x = (innerWidth - childWidth) / 2 - child.maxLeft;\r\n break;\r\n case \"right\":\r\n x = innerWidth - childMarginRight - child.maxRight;\r\n break;\r\n default:\r\n x = child.pixelX;\r\n break;\r\n }\r\n y = nextY + childMarginTop - child.maxTop;\r\n nextY = y + child.maxBottom + childMarginBottom;\r\n break;\r\n // horizontal layout\r\n case \"horizontal\":\r\n //if ($type.isNumber(child.relativeHeight)) {\r\n //\tchildHeight = child.maxHeight;\r\n //}\r\n switch (child.valign) {\r\n case \"top\":\r\n y = childMarginTop - child.maxTop;\r\n break;\r\n case \"middle\":\r\n y = (innerHeight - childHeight) / 2 - child.maxTop;\r\n break;\r\n case \"bottom\":\r\n y = innerHeight - childMarginBottom - child.maxBottom;\r\n break;\r\n default:\r\n y = child.pixelY;\r\n break;\r\n }\r\n x = nextX + childMarginLeft - child.maxLeft;\r\n nextX = x + child.maxRight + childMarginRight;\r\n break;\r\n case \"grid\":\r\n x = nextX + childMarginLeft - child.maxLeft;\r\n switch (child.valign) {\r\n case \"top\":\r\n y = nextY + childMarginTop - child.maxTop;\r\n break;\r\n case \"middle\":\r\n y = nextY + (innerHeight - childHeight) / 2 - child.maxTop;\r\n break;\r\n case \"bottom\":\r\n y = nextY + innerHeight - childMarginBottom - child.maxBottom;\r\n break;\r\n default:\r\n y = nextY - child.maxTop;\r\n break;\r\n }\r\n nextX += columnWidth[column];\r\n rowHeight[row] = $math.max(rowHeight[row], childHeight);\r\n column++;\r\n var nextColumnWidth = columnWidth[column];\r\n if (!$type.isNumber(nextColumnWidth)) {\r\n nextColumnWidth = maxCellWidth;\r\n }\r\n if (nextX > $math.min(this.innerWidth, maxWidth) - nextColumnWidth + 1 && column < columnCount) {\r\n columnCount = column;\r\n nextX = 0;\r\n nextY = 0;\r\n row = 0;\r\n column = 0;\r\n columnWidth = this.getColumnWidth(childrenCopy, columnCount, maxCellWidth);\r\n rowHeight = [];\r\n i = -1;\r\n continue;\r\n }\r\n if (column >= columnCount) {\r\n column = 0;\r\n nextY += rowHeight[row];\r\n row++;\r\n nextX = 0;\r\n }\r\n break;\r\n }\r\n if (this.layout !== \"none\") {\r\n child.moveTo({ x: x, y: y }); // must use moveTo, otherwise x/y set in percent won't work\r\n childLeft = x + child.maxLeft - childMarginLeft;\r\n childRight = x + child.maxRight + childMarginRight;\r\n childTop = y + child.maxTop - childMarginTop;\r\n childBottom = y + child.maxBottom + childMarginBottom;\r\n if (childRight > right || !$type.isNumber(right)) {\r\n right = childRight;\r\n }\r\n if (childLeft < left || !$type.isNumber(left)) {\r\n left = childLeft;\r\n }\r\n if (childTop < top || !$type.isNumber(top)) {\r\n top = childTop;\r\n }\r\n if (childBottom > bottom || !$type.isNumber(bottom)) {\r\n bottom = childBottom;\r\n }\r\n if (childRight > contentRight || !$type.isNumber(contentRight)) {\r\n contentRight = childRight;\r\n }\r\n if (childLeft < contentLeft || !$type.isNumber(contentLeft)) {\r\n contentLeft = childLeft;\r\n }\r\n if (childTop < contentTop || !$type.isNumber(contentTop)) {\r\n contentTop = childTop;\r\n }\r\n if (childBottom > contentBottom || !$type.isNumber(contentBottom)) {\r\n contentBottom = contentBottom;\r\n }\r\n }\r\n }\r\n else {\r\n child.validatePosition();\r\n }\r\n }\r\n if (this.layout == \"none\") {\r\n var noneBBox = this.bbox;\r\n left = noneBBox.x;\r\n right = noneBBox.x + noneBBox.width;\r\n top = noneBBox.y;\r\n bottom = noneBBox.y + noneBBox.height;\r\n }\r\n if (!$type.isNumber(left)) {\r\n left = 0;\r\n contentLeft = 0;\r\n }\r\n if (!$type.isNumber(right)) {\r\n right = this._availableWidth;\r\n contentRight = right;\r\n }\r\n if (!$type.isNumber(top)) {\r\n top = 0;\r\n contentTop = 0;\r\n }\r\n if (!$type.isNumber(bottom)) {\r\n bottom = this._availableHeight;\r\n contentBottom = bottom;\r\n }\r\n if (!$type.isNumber(contentTop)) {\r\n contentTop = 0;\r\n }\r\n if (!$type.isNumber(contentBottom)) {\r\n contentBottom = contentTop;\r\n }\r\n if (!$type.isNumber(contentLeft)) {\r\n contentLeft = 0;\r\n }\r\n if (!$type.isNumber(contentRight)) {\r\n contentRight = contentLeft;\r\n }\r\n measuredWidth = right - left;\r\n measuredHeight = bottom - top;\r\n if ($type.isNumber(this.relativeWidth)) {\r\n measuredWidth = maxWidth - paddingLeft - paddingRight;\r\n left = 0;\r\n right = measuredWidth;\r\n }\r\n if ($type.isNumber(this.relativeHeight)) {\r\n measuredHeight = maxHeight - paddingTop - paddingBottom;\r\n top = 0;\r\n bottom = measuredHeight;\r\n }\r\n if ($type.isNumber(this._pixelWidth)) {\r\n left = 0;\r\n measuredWidth = this._pixelWidth - paddingLeft - paddingRight;\r\n }\r\n if ($type.isNumber(minWidth) && measuredWidth < minWidth) {\r\n left = 0;\r\n measuredWidth = this.minWidth - paddingLeft - paddingRight;\r\n }\r\n if ($type.isNumber(this._pixelHeight)) {\r\n top = 0;\r\n measuredHeight = this._pixelHeight - paddingTop - paddingBottom;\r\n }\r\n if ($type.isNumber(minHeight) && measuredHeight < minHeight) {\r\n top = 0;\r\n measuredHeight = minHeight - paddingTop - paddingBottom;\r\n }\r\n var measuredContentWidth = contentRight - contentLeft;\r\n var measuredContentHeight = contentBottom - contentTop;\r\n /// handle content alignment\r\n if (this.layout != \"none\" && (this.contentAlign || this.contentValign) && children.length > 0) {\r\n var dx_1;\r\n var dy_1;\r\n var mwa = measuredWidth;\r\n var mha = measuredHeight;\r\n if (mwa < measuredContentWidth) {\r\n mwa = measuredContentWidth;\r\n }\r\n if (mha < measuredContentHeight) {\r\n mha = measuredContentHeight;\r\n }\r\n if (this.contentAlign == \"center\") {\r\n dx_1 = (mwa - measuredContentWidth) / 2;\r\n }\r\n if (this.contentAlign == \"right\") {\r\n dx_1 = mwa - measuredContentWidth;\r\n }\r\n if (this.contentValign == \"middle\") {\r\n dy_1 = (mha - measuredContentHeight) / 2;\r\n }\r\n if (this.contentValign == \"bottom\") {\r\n dy_1 = mha - measuredContentHeight;\r\n }\r\n if ($type.isNumber(dx_1)) {\r\n $iter.each(children.iterator(), function (child) {\r\n var childLeft = child.maxLeft;\r\n var ddx = dx_1;\r\n if (_this.layout == \"horizontal\") {\r\n child.x = child.pixelX + ddx;\r\n }\r\n // individual grid elements can not be aligned vertically, that's why it's different from horizontal\r\n if (_this.layout == \"grid\") {\r\n child.x = child.pixelX + ddx;\r\n }\r\n if (_this.layout == \"vertical\") {\r\n ddx += child.pixelMarginLeft;\r\n if (child.align == \"none\") {\r\n child.x = ddx - childLeft;\r\n }\r\n }\r\n if (_this.layout == \"absolute\") {\r\n ddx += child.pixelMarginLeft;\r\n if (child.align == \"none\") {\r\n child.x = ddx - childLeft;\r\n }\r\n }\r\n });\r\n }\r\n if ($type.isNumber(dy_1)) {\r\n $iter.each(children.iterator(), function (child) {\r\n var childTop = child.maxTop;\r\n var ddy = dy_1;\r\n if (_this.layout == \"horizontal\") {\r\n ddy += child.pixelMarginTop;\r\n if (child.valign == \"none\") {\r\n child.y = ddy - childTop;\r\n }\r\n }\r\n // individual grid elements can not be aligned vertically, that's why it's different from horizontal\r\n if (_this.layout == \"grid\") {\r\n ddy += child.pixelMarginTop;\r\n child.y = ddy - childTop;\r\n }\r\n if (_this.layout == \"vertical\") {\r\n child.y = child.pixelY + ddy;\r\n }\r\n if (_this.layout == \"absolute\") {\r\n ddy += child.pixelMarginTop;\r\n if (child.valign == \"none\") {\r\n child.y = ddy - childTop;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n var oldBBox = this.bbox;\r\n // this will mess up maxw/maxh set by container layout, we need a separate min/maxwidth for users\r\n // this prevents invalidating layout in such cases as scrolling category axis, when labels go outside bounds and results transformed event\r\n // todo: need to check if this doesn't cause other problems.\r\n //if (this.maxWidth > 0) {\r\n //measuredWidth = $math.min(measuredWidth, this.maxWidth);\r\n //measuredWidth = $math.max(measuredWidth, this.minWidth);\r\n //}\r\n //if (this.maxHeight > 0) {\r\n //measuredHeight = $math.min(measuredHeight, this.maxHeight);\r\n //measuredHeight = $math.max(measuredHeight, this.minHeight);\r\n //}\r\n measuredWidth = $math.max(measuredWidth, minWidth);\r\n measuredHeight = $math.max(measuredHeight, minHeight);\r\n this.contentWidth = measuredWidth;\r\n this.contentHeight = measuredHeight;\r\n // new\r\n measuredWidth = $math.min(measuredWidth, maxWidth);\r\n measuredHeight = $math.min(measuredHeight, maxHeight);\r\n this._bbox = { x: left, y: top, width: measuredWidth, height: measuredHeight };\r\n var prevLeft = this.maxLeft;\r\n var prevTop = this.maxTop;\r\n var prevBotttom = this.maxBottom;\r\n var prevRight = this.maxRight;\r\n this.measure();\r\n if (prevLeft != this.maxLeft || prevRight != this.maxRight || prevTop != this.maxTop || prevBotttom != this.maxBottom) {\r\n if (this.events.isEnabled(\"transformed\")) {\r\n var event_1 = {\r\n type: \"transformed\",\r\n target: this\r\n };\r\n if (oldBBox) {\r\n event_1.dummyData = oldBBox.width + \" \" + measuredWidth + \" \" + oldBBox.height + \" \" + measuredHeight;\r\n }\r\n this.events.dispatchImmediately(\"transformed\", event_1);\r\n }\r\n }\r\n this.dispatchImmediately(\"layoutvalidated\");\r\n };\r\n /**\r\n * Positions element according its center settings.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.updateCenter = function () {\r\n _super.prototype.updateCenter.call(this);\r\n this.updateBackground();\r\n };\r\n /**\r\n * Update the background to fit into specific dimensions.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Make it protected?\r\n */\r\n Container.prototype.updateBackground = function () {\r\n var background = this._background; // accessing protected, as getter creates instance if it doesn't exist\r\n if (background) {\r\n background.x = this.maxLeft;\r\n background.y = this.maxTop;\r\n background.width = this.maxRight - this.maxLeft;\r\n background.height = this.maxBottom - this.maxTop;\r\n }\r\n };\r\n /**\r\n * Returns widths of all columns in a horizontal Container layout.\r\n *\r\n * @ignore Exclude from docs\r\n * @param columnCount Number of columns\r\n * @param maxCellWidth Maximum width of one grid cell\r\n * @return An array of column widths\r\n */\r\n Container.prototype.getColumnWidth = function (children, columnCount, maxCellWidth) {\r\n var _this = this;\r\n var columnWidth = [];\r\n var column = 0;\r\n $array.each(children, function (child) {\r\n if (child.isMeasured && !child.disabled && !child.__disabled) {\r\n if (_this.fixedWidthGrid) {\r\n columnWidth[column] = maxCellWidth;\r\n }\r\n else {\r\n columnWidth[column] = $math.max(columnWidth[column], child.measuredWidth + child.pixelMarginRight + child.pixelMarginLeft);\r\n }\r\n column++;\r\n if (column == columnCount) {\r\n column = 0;\r\n }\r\n }\r\n });\r\n return columnWidth;\r\n };\r\n Object.defineProperty(Container.prototype, \"layout\", {\r\n /**\r\n * @return Layout\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"layout\");\r\n },\r\n /**\r\n * Container layout.\r\n *\r\n * Options: \"absolute\" (default), \"vertical\", \"horizontal\", \"grid\", \"none\". \"none\" is quite the same as \"absolute\" - the objects will\r\n * be positioned at their x, y coordinates, the difference is that with \"absolute\" you can still use align/valign for children and with \"none\" you can not.\r\n * Use \"none\" as much as you can as it's most cpu-saving layout.\r\n *\r\n * @default \"absolute\"\r\n * @param value Layout\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"layout\", value)) {\r\n this.invalidateLayout();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"contentValign\", {\r\n /**\r\n * @return Vertical alignment\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"contentValign\");\r\n },\r\n /**\r\n * Vertical alignment of the elements for the vertical Container.\r\n *\r\n * This is used when Container is larger than the height of all its children.\r\n *\r\n * @param value vertical alignment\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"contentValign\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"contentAlign\", {\r\n /**\r\n * @return Horizontal alignment\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"contentAlign\");\r\n },\r\n /**\r\n * Horizontal alignment of the elements for the horizontal Container.\r\n *\r\n * This is used when Container is larger than the height of all its children.\r\n *\r\n * @param value Horizontal alignment\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"contentAlign\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"fixedWidthGrid\", {\r\n /**\r\n * @return Should use fixed width grid?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fixedWidthGrid\");\r\n },\r\n /**\r\n * Controls if the grid of the Container should use fixed width. Fixed width\r\n * grid will divide available space to all its columns/rows equally, without\r\n * adapting to actual child sizes or size requirements.\r\n *\r\n * @default false\r\n * @param value Should use fixed width grid?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fixedWidthGrid\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"maxColumns\", {\r\n /**\r\n * @return Should use fixed width grid?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxColumns\");\r\n },\r\n /**\r\n * Maximum number of columns (when using `\"grid\"` layout).\r\n *\r\n * @param value Should use fixed width grid?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxColumns\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"reverseOrder\", {\r\n /**\r\n * @return Reverse children?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"reverseOrder\");\r\n },\r\n /**\r\n * If set to `true`, the children of the container will be drawn in reverse\r\n * order.\r\n *\r\n * @default false\r\n * @param value Reverse children?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"reverseOrder\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"setStateOnChildren\", {\r\n /**\r\n * @return Set state on children\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"setStateOnChildren\");\r\n },\r\n /**\r\n * Specifies if, when state is applied on this container, the same state\r\n * should be applied to container's children as well as `background`.\r\n *\r\n * @default false\r\n * @param value Set state on children\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"setStateOnChildren\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if point is within bounds of a container.\r\n *\r\n * @param point A coordinate to check\r\n * @return `true` if it fits within container\r\n */\r\n Container.prototype.fitsToBounds = function (point) {\r\n var x = point.x;\r\n var y = point.y;\r\n var deviation = 0.5; // sometimes coordinates are rounded to numbers like .999 so we add deviation here\r\n if (x >= -deviation && x <= this.pixelWidth + deviation && y >= -deviation && y <= this.pixelHeight + deviation) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Copies all properties from different Container, including background\r\n * clone.\r\n *\r\n * @param source Source Container to copy from\r\n */\r\n Container.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, source);\r\n this.layout = source.layout;\r\n this.setStateOnChildren = source.setStateOnChildren;\r\n if (source._background) {\r\n this.background = source._background.clone();\r\n this.background.copyFrom(source._background); // won't work without this\r\n }\r\n $iter.each(source.children.iterator(), function (child) {\r\n if (child.shouldClone) {\r\n var clonedChild = child.clone();\r\n clonedChild.parent = _this;\r\n }\r\n });\r\n };\r\n Object.defineProperty(Container.prototype, \"preloader\", {\r\n /**\r\n * @return Preloader instance\r\n */\r\n get: function () {\r\n var preloader = this._preloader;\r\n if (preloader) {\r\n return preloader;\r\n }\r\n else if (this.parent) {\r\n return this.parent.preloader;\r\n }\r\n },\r\n /**\r\n * A [[Preloader]] instance to be used when Container is busy.\r\n *\r\n * @param preloader Preloader instance\r\n */\r\n set: function (preloader) {\r\n if (this._preloader) {\r\n this.removeDispose(this._preloader);\r\n }\r\n this._preloader = preloader;\r\n if (preloader) {\r\n preloader.parent = this.tooltipContainer;\r\n this._disposers.push(preloader);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets [[Paper]] instance to use to draw elements.\r\n * @ignore\r\n * @param paper Paper\r\n * @return true if paper was changed, false, if it's the same\r\n */\r\n Container.prototype.setPaper = function (paper) {\r\n var _this = this;\r\n var changed = _super.prototype.setPaper.call(this, paper);\r\n if (changed) {\r\n if (this._background) {\r\n this._background.paper = paper;\r\n this._background.topParent = this.topParent;\r\n }\r\n this.children.each(function (child) {\r\n child.setPaper(paper);\r\n child.topParent = _this.topParent;\r\n });\r\n }\r\n return changed;\r\n };\r\n /**\r\n * Removes Container from the system-wide list of invalid Containers.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.removeFromInvalids = function () {\r\n _super.prototype.removeFromInvalids.call(this);\r\n registry.removeFromInvalidLayouts(this);\r\n };\r\n /**\r\n * Sets a [[DataItem]] to be used as data for the Container.\r\n *\r\n * @todo Description\r\n * @param dataItem DataItem\r\n */\r\n Container.prototype.setDataItem = function (dataItem) {\r\n // this place is potentially dangerous, as if we set datItem for some dummy container, all children dataItems will be overriden\r\n // the main reason for doing this is that we need a setDataItem code to be called for each sprite, otherwise property fields won't be\r\n // applied. Also, getting dataItem from parent all the time is more expensive than saving value.\r\n if (this._dataItem != dataItem) {\r\n $iter.each(this.children.iterator(), function (child) {\r\n child.dataItem = dataItem;\r\n });\r\n if (this._background) {\r\n this._background.dataItem = dataItem;\r\n }\r\n }\r\n _super.prototype.setDataItem.call(this, dataItem);\r\n };\r\n /**\r\n * Measures the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype.measureElement = function () {\r\n if (this.disabled || this.isTemplate || this.layout == \"none\" || this.__disabled) {\r\n // void\r\n }\r\n else {\r\n this.validateLayout();\r\n }\r\n };\r\n Object.defineProperty(Container.prototype, \"fontFamily\", {\r\n /**\r\n * @return Font family\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fontFamily\");\r\n },\r\n /**\r\n * Font family to be used for the text.\r\n *\r\n * Parts of the text may override this setting using in-line formatting.\r\n *\r\n * @param value Font family value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"fontFamily\", value, true)) {\r\n this.setSVGAttribute({ \"font-family\": value });\r\n this.invalidateLabels();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"fontSize\", {\r\n /**\r\n * @return Font size\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fontSize\");\r\n },\r\n /**\r\n * Font size to be used for the text. The size can either be numeric, in\r\n * pixels, or other measurements.\r\n *\r\n * Parts of the text may override this setting using in-line formatting.\r\n *\r\n * @param value Font size value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"fontSize\", value, true)) {\r\n this.setSVGAttribute({ \"font-size\": value });\r\n this.invalidateLabels();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * When fontSize of fontFamily changes we need to hard-invalidate all Labels of this container to position them properly.\r\n */\r\n Container.prototype.invalidateLabels = function () {\r\n this.children.each(function (child) {\r\n // can't import Label because of Circular dependencies\r\n if (child[\"hardInvalidate\"]) {\r\n child[\"hardInvalidate\"]();\r\n // this fixes firefox and viewport issue\r\n child.events.once(\"validated\", child.handleValidate, child, false);\r\n }\r\n else if (child instanceof Container) {\r\n child.invalidateLabels();\r\n }\r\n });\r\n };\r\n Object.defineProperty(Container.prototype, \"fontWeight\", {\r\n /**\r\n * @return Font weight\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fontWeight\");\r\n },\r\n /**\r\n * Font weight to use for text.\r\n *\r\n * Parts of the text may override this setting using in-line formatting.\r\n *\r\n * @param value Font weight\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fontWeight\", value);\r\n this.setSVGAttribute({ \"font-weight\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Container.prototype, \"textDecoration\", {\r\n /**\r\n * @return Decoration\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"textDecoration\");\r\n },\r\n /**\r\n * A text decoration to use for text.\r\n *\r\n * Parts of the text may override this setting using in-line formatting.\r\n *\r\n * @param value Decoration\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"textDecoration\", value);\r\n this.setSVGAttribute({ \"text-decoration\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Disposes (destroys) the element and all its children.\r\n */\r\n Container.prototype.dispose = function () {\r\n if (this._background) {\r\n this._background.dispose();\r\n }\r\n this._shouldBeReady = [];\r\n this.disposeChildren();\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * Applies a [[SpriteState]] on this element.\r\n *\r\n * The first parameter can either be a name of the state or a [[SpriteState]]\r\n * instance.\r\n *\r\n * When run, this method will apply SVG properties defined in a\r\n * [[SpriteState]], but only those that are relevant to this particular\r\n * element, that is are listed in its respective `properties` array.\r\n *\r\n * @see {@link SpriteState}\r\n * @param value A state - name key or instance\r\n * @param transitionDuration Duration of the transition between current and new state\r\n * @param easing An easing function\r\n */\r\n Container.prototype.setState = function (value, transitionDuration, easing) {\r\n var stateName = value;\r\n if (value instanceof SpriteState) {\r\n stateName = value.name;\r\n }\r\n if (this.setStateOnChildren) {\r\n $iter.each(this.children.iterator(), function (child) {\r\n child.setState(stateName, transitionDuration, easing);\r\n // not good to set it in child setState\r\n if (stateName != \"active\") {\r\n child.isActive = false;\r\n }\r\n });\r\n }\r\n if (this._background) {\r\n this._background.setState(stateName);\r\n }\r\n if (this.setStateOnSprites.length) {\r\n $array.each(this.setStateOnSprites, function (item) {\r\n item.setState(stateName, transitionDuration, easing);\r\n });\r\n }\r\n return _super.prototype.setState.call(this, value, transitionDuration, easing);\r\n };\r\n // otherwise isActive won't work properly with background\r\n Container.prototype.setActive = function (value) {\r\n _super.prototype.setActive.call(this, value);\r\n if (this._background) {\r\n this._background.isActive = value;\r\n }\r\n };\r\n /**\r\n * Dispatches ready event. Dispatches when all children are ready.\r\n */\r\n Container.prototype.dispatchReady = function () {\r\n var _this = this;\r\n if (!this.isReady() && !this.isDisposed()) {\r\n var allReady_1 = true;\r\n $iter.eachContinue(this.children.iterator(), function (sprite) {\r\n if (!sprite.__disabled && !sprite.disabled && !sprite.isReady()) {\r\n allReady_1 = false;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n $array.eachContinue(this._shouldBeReady, function (sprite) {\r\n if (!sprite.__disabled && !sprite.disabled && !sprite.isReady()) {\r\n allReady_1 = false;\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n if (allReady_1) {\r\n _super.prototype.dispatchReady.call(this);\r\n }\r\n else {\r\n registry.events.once(\"exitframe\", function () {\r\n _this.dispatchReady();\r\n system.requestFrame();\r\n }, undefined, false);\r\n }\r\n }\r\n };\r\n /**\r\n * Called during the System.update method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype._systemUpdate = function (skippedSprites) {\r\n this.children.each(function (child) {\r\n if (child.invalid) {\r\n if (!child._systemCheckIfValidate()) {\r\n skippedSprites.push(child);\r\n }\r\n else if (child.dataItem && child.dataItem.component && child.dataItem.component.dataInvalid) {\r\n skippedSprites.push(child);\r\n }\r\n else {\r\n child.validate();\r\n }\r\n }\r\n });\r\n _super.prototype._systemUpdate.call(this, skippedSprites);\r\n };\r\n /**\r\n * Called during the System.validatePositions method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype._systemValidatePositions = function () {\r\n this.children.each(function (sprite) {\r\n if (sprite.positionInvalid) {\r\n sprite.validatePosition();\r\n }\r\n });\r\n _super.prototype._systemValidatePositions.call(this);\r\n };\r\n /**\r\n * Called during the System.validateLayouts method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Container.prototype._systemValidateLayouts = function () {\r\n if (this.layoutInvalid && !this.isDisposed()) {\r\n this.validateLayout();\r\n }\r\n };\r\n Object.defineProperty(Container.prototype, \"tapToActivate\", {\r\n /**\r\n * @return Enable touch protection?\r\n */\r\n get: function () {\r\n return this._tapToActivate;\r\n },\r\n /**\r\n * If set to `true` the chart's regular touch functionality will be suspended\r\n * so that the whole page it is located in remains scrollable, even when\r\n * swiping over the chart's body.\r\n *\r\n * User will need to tap the chart in order to activate its regular touch\r\n * functionality.\r\n *\r\n * The chart will remain \"active\" as long as user keeps interacting with the\r\n * chart. After `tapTimeout` milliseconds the chart will return to its\r\n * \"protected\" mode.\r\n *\r\n * @default false\r\n * @since 4.4.0\r\n * @param value Enable touch protection?\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n */\r\n set: function (value) {\r\n if (this._tapToActivate != value) {\r\n this.setTapToActivate(value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Container.prototype.setTapToActivate = function (value) {\r\n var _this = this;\r\n this._tapToActivate = value;\r\n this.interactions.isTouchProtected = value;\r\n // setEventDisposer will also remove listeners if value == false\r\n if (value) {\r\n this.interactions.setEventDisposer(\"container-tapToActivate\", value, function () { return new MultiDisposer([\r\n _this.events.on(\"hit\", _this.handleTapToActivate, _this, false),\r\n _this.events.on(\"down\", _this.initTapTimeout, _this, false),\r\n _this.events.on(\"track\", _this.initTapTimeout, _this, false),\r\n //this.events.on(\"drag\", this.initTapTimeout, this, false),\r\n getInteraction().body.events.on(\"down\", function (ev) {\r\n if (!getInteraction().isLocalElement(ev.pointer, _this.paper.svg, _this.uid)) {\r\n _this.handleTapToActivateDeactivation();\r\n }\r\n }, _this, false)\r\n ]); });\r\n }\r\n getInteraction();\r\n };\r\n /**\r\n * @todo Ignore on non-touch events\r\n */\r\n Container.prototype.handleTapToActivate = function () {\r\n this.interactions.isTouchProtected = false;\r\n this.initTapTimeout();\r\n };\r\n Container.prototype.handleTapToActivateDeactivation = function () {\r\n this.interactions.isTouchProtected = true;\r\n };\r\n Container.prototype.initTapTimeout = function () {\r\n var _this = this;\r\n if (this._tapToActivateTimeout) {\r\n this._tapToActivateTimeout.dispose();\r\n }\r\n if (this.tapToActivate && !this.interactions.isTouchProtected && this.tapTimeout) {\r\n this._tapToActivateTimeout = this.setTimeout(function () {\r\n _this.handleTapToActivateDeactivation();\r\n }, this.tapTimeout);\r\n }\r\n };\r\n /**\r\n * Moves the whole chart to other HTML container.\r\n *\r\n * `htmlElement` can either be a reference to a DOM element, or an id of\r\n * such element.\r\n *\r\n * @since 4.9.24\r\n * @param htmlElement Target element\r\n */\r\n Container.prototype.moveHtmlContainer = function (htmlElement) {\r\n var newContainer = $dom.getElement(htmlElement);\r\n if (newContainer) {\r\n this.htmlContainer = newContainer;\r\n var svgDiv = this.svgContainer;\r\n svgDiv.htmlElement = newContainer;\r\n svgDiv.htmlElement.appendChild(svgDiv.SVGContainer);\r\n svgDiv.initSensor();\r\n svgDiv.measure();\r\n }\r\n else if ($type.isString(htmlElement) && htmlElement != \"\") {\r\n system.log(\"html container '\" + htmlElement + \"' not found\");\r\n //throw new Error(\"html container not found\");\r\n }\r\n };\r\n /**\r\n * @ignore\r\n * @return Has license?\r\n */\r\n Container.prototype.hasLicense = function () {\r\n if (options.commercialLicense) {\r\n return true;\r\n }\r\n for (var i = 0; i < options.licenses.length; i++) {\r\n if (options.licenses[i].match(/^CH.{5,}/i)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Container;\r\n}(Sprite));\r\nexport { Container };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Container\"] = Container;\r\n//# sourceMappingURL=Container.js.map","import * as $type from \"../utils/Type\";\r\n/**\r\n * Maps time period names to their numeric representations in milliseconds.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var timeUnitDurations = {\r\n millisecond: 1,\r\n second: 1000,\r\n minute: 60000,\r\n hour: 3600000,\r\n day: 86400000,\r\n week: 604800000,\r\n month: 2592000000,\r\n year: 31536000000\r\n};\r\n/**\r\n * Returns the next time unit that goes after source `unit`.\r\n *\r\n * E.g. \"hour\" is the next unit after \"minute\", etc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param unit Source time unit\r\n * @return Next time unit\r\n */\r\nexport function getNextUnit(unit) {\r\n switch (unit) {\r\n case \"year\":\r\n return;\r\n case \"month\":\r\n return \"year\";\r\n case \"week\":\r\n return \"month\";\r\n case \"day\":\r\n return \"month\"; // not a mistake\r\n case \"hour\":\r\n return \"day\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"millisecond\":\r\n return \"second\";\r\n }\r\n}\r\n/**\r\n * Returns number of milliseconds in the `count` of time `unit`.\r\n *\r\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\r\n * \"month\", and \"year\".\r\n *\r\n * @ignore Exclude from docs\r\n * @param unit Time unit\r\n * @param count Number of units\r\n * @return Milliseconds\r\n */\r\nexport function getDuration(unit, count) {\r\n if (!$type.hasValue(count)) {\r\n count = 1;\r\n }\r\n return timeUnitDurations[unit] * count;\r\n}\r\n/**\r\n * Returns current `Date` object.\r\n *\r\n * @return Current date\r\n */\r\nexport function now() {\r\n return new Date();\r\n}\r\n/**\r\n * Returns current timestamp.\r\n *\r\n * @return Current timestamp\r\n */\r\nexport function getTime() {\r\n return now().getTime();\r\n}\r\n/**\r\n * Returns a copy of the `Date` object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @return Copy\r\n */\r\nexport function copy(date) {\r\n return new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\r\n}\r\n/**\r\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\r\n * represent a \"range\" of time, rather the same time date.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dateOne Date 1\r\n * @param dateTwo Date 2\r\n * @param unit Time unit to check\r\n * @return Range?\r\n */\r\nexport function checkChange(dateOne, dateTwo, unit, utc) {\r\n dateOne = new Date(dateOne.getTime());\r\n dateTwo = new Date(dateTwo.getTime());\r\n var timeZoneOffset1 = 0;\r\n var timeZoneOffset2 = 0;\r\n if (!utc && unit != \"millisecond\") {\r\n timeZoneOffset1 = dateOne.getTimezoneOffset();\r\n dateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\r\n timeZoneOffset2 = dateTwo.getTimezoneOffset();\r\n dateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\r\n }\r\n var changed = false;\r\n switch (unit) {\r\n case \"year\":\r\n if (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"month\":\r\n if (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\r\n changed = true;\r\n }\r\n else if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"day\":\r\n if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\r\n changed = true;\r\n }\r\n else if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"hour\":\r\n if (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"minute\":\r\n if (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"second\":\r\n if (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\r\n changed = true;\r\n }\r\n break;\r\n case \"millisecond\":\r\n if (dateOne.getTime() != dateTwo.getTime()) {\r\n changed = true;\r\n }\r\n break;\r\n }\r\n if (changed) {\r\n return true;\r\n }\r\n var nextUnit = getNextUnit(unit);\r\n if (nextUnit) {\r\n dateOne.setUTCMinutes(dateOne.getUTCMinutes() + timeZoneOffset1);\r\n dateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);\r\n return checkChange(dateOne, dateTwo, nextUnit, utc);\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @param unit Time unit\r\n * @param count Number of units to add\r\n * @return Modified date\r\n */\r\nexport function add(date, unit, count, utc) {\r\n var timeZoneOffset = 0;\r\n if (!utc && unit != \"millisecond\") {\r\n timeZoneOffset = date.getTimezoneOffset();\r\n date.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\r\n }\r\n switch (unit) {\r\n case \"day\":\r\n var day = date.getUTCDate();\r\n date.setUTCDate(day + count);\r\n break;\r\n case \"second\":\r\n var seconds = date.getUTCSeconds();\r\n date.setUTCSeconds(seconds + count);\r\n break;\r\n case \"millisecond\":\r\n var milliseconds = date.getUTCMilliseconds();\r\n date.setUTCMilliseconds(milliseconds + count);\r\n break;\r\n case \"hour\":\r\n var hours = date.getUTCHours();\r\n date.setUTCHours(hours + count);\r\n break;\r\n case \"minute\":\r\n var minutes = date.getUTCMinutes();\r\n date.setUTCMinutes(minutes + count);\r\n break;\r\n case \"year\":\r\n var year = date.getUTCFullYear();\r\n date.setUTCFullYear(year + count);\r\n break;\r\n case \"month\":\r\n var month = date.getUTCMonth();\r\n date.setUTCMonth(month + count);\r\n break;\r\n case \"week\":\r\n var wday = date.getUTCDate();\r\n date.setUTCDate(wday + count * 7);\r\n break;\r\n }\r\n if (!utc && unit != \"millisecond\") {\r\n date.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\r\n if (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\r\n var newTimeZoneOffset = date.getTimezoneOffset();\r\n if (newTimeZoneOffset != timeZoneOffset) {\r\n var diff = newTimeZoneOffset - timeZoneOffset;\r\n date.setUTCMinutes(date.getUTCMinutes() + diff);\r\n // solves issues if newe time falls back to old time zone\r\n if (date.getTimezoneOffset() != newTimeZoneOffset) {\r\n date.setUTCMinutes(date.getUTCMinutes() - diff);\r\n }\r\n }\r\n }\r\n }\r\n return date;\r\n}\r\n/**\r\n * \"Rounds\" the date to specific time unit.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @param unit Time unit\r\n * @param count Number of units to round to\r\n * @param firstDateOfWeek First day of week\r\n * @param roundMinutes Minutes to round to (some timezones use non-whole hour)\r\n * @param timezone Use specific named timezone when rounding\r\n * @return New date\r\n */\r\nexport function round(date, unit, count, firstDateOfWeek, utc, firstDate, roundMinutes, timezone) {\r\n if (roundMinutes === void 0) { roundMinutes = 0; }\r\n if (!$type.isNumber(count)) {\r\n count = 1;\r\n }\r\n var timeZoneOffset = 0;\r\n if (timezone && [\"day\", \"month\", \"week\", \"year\"].indexOf(unit) != -1) {\r\n date = setTimezone(date, timezone);\r\n }\r\n if (!utc && unit != \"millisecond\") {\r\n timeZoneOffset = date.getTimezoneOffset();\r\n date.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\r\n }\r\n switch (unit) {\r\n case \"day\":\r\n var day = date.getUTCDate();\r\n if (count > 1) {\r\n //\tday = Math.floor(day / count) * count;\r\n if (firstDate) {\r\n firstDate = round(firstDate, \"day\", 1);\r\n var difference = date.getTime() - firstDate.getTime();\r\n var unitCount = Math.floor(difference / getDuration(\"day\") / count);\r\n var duration = getDuration(\"day\", unitCount * count);\r\n date.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\r\n }\r\n }\r\n else {\r\n date.setUTCDate(day);\r\n }\r\n date.setUTCHours(0, 0, 0, 0);\r\n break;\r\n case \"second\":\r\n var seconds = date.getUTCSeconds();\r\n if (count > 1) {\r\n seconds = Math.floor(seconds / count) * count;\r\n }\r\n date.setUTCSeconds(seconds, 0);\r\n break;\r\n case \"millisecond\":\r\n if (count == 1) {\r\n return date; // much better for perf!\r\n }\r\n var milliseconds = date.getUTCMilliseconds();\r\n milliseconds = Math.floor(milliseconds / count) * count;\r\n date.setUTCMilliseconds(milliseconds);\r\n break;\r\n case \"hour\":\r\n var hours = date.getUTCHours();\r\n if (count > 1) {\r\n hours = Math.floor(hours / count) * count;\r\n }\r\n date.setUTCHours(hours, roundMinutes, 0, 0);\r\n break;\r\n case \"minute\":\r\n var minutes = date.getUTCMinutes();\r\n milliseconds = date.getUTCMilliseconds();\r\n if (count > 1) {\r\n minutes = Math.floor(minutes / count) * count;\r\n }\r\n date.setUTCMinutes(minutes, 0, 0);\r\n break;\r\n case \"month\":\r\n var month = date.getUTCMonth();\r\n if (count > 1) {\r\n month = Math.floor(month / count) * count;\r\n }\r\n date.setUTCMonth(month, 1);\r\n date.setUTCHours(0, roundMinutes, 0, 0);\r\n break;\r\n case \"year\":\r\n var year = date.getUTCFullYear();\r\n if (count > 1) {\r\n year = Math.floor(year / count) * count;\r\n }\r\n date.setUTCFullYear(year, 0, 1);\r\n date.setUTCHours(0, roundMinutes, 0, 0);\r\n //let nonUTCDateY = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\r\n //timeZoneOffset = nonUTCDateY.getTimezoneOffset();\r\n break;\r\n case \"week\":\r\n var wday = date.getUTCDate();\r\n var weekDay = date.getUTCDay();\r\n if (!$type.isNumber(firstDateOfWeek)) {\r\n firstDateOfWeek = 1;\r\n }\r\n // todo: rounding when count is not 1\r\n if (weekDay >= firstDateOfWeek) {\r\n wday = wday - weekDay + firstDateOfWeek;\r\n }\r\n else {\r\n wday = wday - (7 + weekDay) + firstDateOfWeek;\r\n }\r\n date.setUTCDate(wday);\r\n date.setUTCHours(0, roundMinutes, 0, 0);\r\n break;\r\n }\r\n if (!utc && unit != \"millisecond\") {\r\n date.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\r\n if (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\r\n var newTimeZoneOffset = date.getTimezoneOffset();\r\n if (newTimeZoneOffset != timeZoneOffset) {\r\n var diff = newTimeZoneOffset - timeZoneOffset;\r\n date.setUTCMinutes(date.getUTCMinutes() + diff);\r\n }\r\n }\r\n }\r\n return date;\r\n}\r\n/**\r\n * Returns a new `Date` object which corresponds to the source date in a\r\n * specific timezone.\r\n *\r\n * @since 4.10.1\r\n * @param date Source date\r\n * @param timezone Timezone identifier\r\n * @return Recalculated new Date\r\n */\r\nexport function setTimezone(date, timezone) {\r\n var d = new Date(date.toLocaleString(\"en-US\", { timeZone: timezone }));\r\n return d;\r\n}\r\n/**\r\n * Returns minute fraction of the set timezone.\r\n *\r\n * @since 4.10.12\r\n * @param timezone Timezone identifier\r\n * @return Minutes\r\n */\r\nexport function getTimezoneMinutes(timezone) {\r\n var d = new Date();\r\n d.setHours(0, 0, 0, 0);\r\n var d2 = setTimezone(d, timezone);\r\n return d2.getMinutes();\r\n}\r\n//# sourceMappingURL=Time.js.map","/**\r\n * This module contains a version of ColorSet that can (and should) be used for\r\n * coloring UI elements.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { registry } from \"../Registry\";\r\nimport { color } from \"./Color\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This module contains a version of ColorSet that can (and should) be used for\r\n * coloring UI elements.\r\n *\r\n * The main difference from the basic [[ColorSet]] is that instead of sequenced\r\n * colors, it uses a concept of named colors.\r\n *\r\n * This way, every element in the UI can extract an exact color theme author\r\n * meant for the specific purpose, like strokes, backgrounds, etc.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nvar InterfaceColorSet = /** @class */ (function (_super) {\r\n __extends(InterfaceColorSet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function InterfaceColorSet() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Maps the list of purposes (like \"stroke\") to an index of color of the\r\n * color set.\r\n */\r\n _this._purposes = {\r\n stroke: color(\"#e5e5e5\"),\r\n fill: color(\"#f3f3f3\"),\r\n primaryButton: color(\"#6794dc\"),\r\n primaryButtonHover: color(\"#6771dc\"),\r\n primaryButtonDown: color(\"#68dc75\"),\r\n primaryButtonActive: color(\"#68dc75\"),\r\n primaryButtonText: color(\"#FFFFFF\"),\r\n primaryButtonStroke: color(\"#FFFFFF\"),\r\n secondaryButton: color(\"#d9d9d9\"),\r\n secondaryButtonHover: color(\"#d9d9d9\").brighten(-0.25),\r\n secondaryButtonDown: color(\"#d9d9d9\").brighten(-0.35),\r\n secondaryButtonActive: color(\"#d9d9d9\").brighten(0.35),\r\n secondaryButtonText: color(\"#000000\"),\r\n secondaryButtonStroke: color(\"#FFFFFF\"),\r\n grid: color(\"#000000\"),\r\n background: color(\"#ffffff\"),\r\n alternativeBackground: color(\"#000000\"),\r\n text: color(\"#000000\"),\r\n alternativeText: color(\"#FFFFFF\"),\r\n disabledBackground: color(\"#999999\"),\r\n positive: color(\"#67dc75\"),\r\n negative: color(\"#dc6788\")\r\n };\r\n _this.className = \"InterfaceColorSet\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n InterfaceColorSet.prototype.debug = function () { };\r\n /**\r\n * Returns a color to be used for the specific purpose.\r\n *\r\n * ```TypeScript\r\n * let uicolors = new am4core.InterfaceColorSet();\r\n * console.log(uicolors.getFor(\"stroke\"));\r\n * ```\r\n * ```JavaScript\r\n * var uicolors = new am4core.InterfaceColorSet();\r\n * console.log(uicolors.getFor(\"stroke\"));\r\n * ```\r\n *\r\n * @param purpose Color use purpuse\r\n * @return Color\r\n */\r\n InterfaceColorSet.prototype.getFor = function (purpose) {\r\n return this._purposes[purpose];\r\n };\r\n /**\r\n * Sets color to be used for the specific purpose.\r\n *\r\n * @param purpose Color use purpose\r\n * @param color Color\r\n */\r\n InterfaceColorSet.prototype.setFor = function (purpose, color) {\r\n this._purposes[purpose] = color;\r\n };\r\n return InterfaceColorSet;\r\n}(BaseObject));\r\nexport { InterfaceColorSet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"InterfaceColorSet\"] = InterfaceColorSet;\r\n//# sourceMappingURL=InterfaceColorSet.js.map","/**\r\n * Interaction manages all aspects of user interaction - mouse move,\r\n * click, hover, drag events, touch gestures.\r\n *\r\n * [[InteractionObject]] elements that want to use certain events, must attach event\r\n * listeners to Interaction instance.\r\n *\r\n * Interaction itself will not modify [[InteractionObject]] elements, it will be up to\r\n * those elements to handle interaction information received via event triggers.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { List } from \"../utils/List\";\r\nimport { Animation } from \"../utils/Animation\";\r\nimport { MultiDisposer } from \"../utils/Disposer\";\r\nimport { InteractionObject } from \"./InteractionObject\";\r\nimport { InteractionKeyboardObject } from \"./InteractionKeyboardObject\";\r\nimport { Dictionary } from \"../utils/Dictionary\";\r\nimport { Inertia } from \"./Inertia\";\r\nimport { addEventListener } from \"../utils/DOM\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport { system } from \"./../System\";\r\nimport { options } from \"./../Options\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $time from \"../utils/Time\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n* Interaction manages all aspects of user interaction - mouse move,\r\n* click, hover, drag events, touch gestures.\r\n*\r\n* [[InteractionObject]] elements that want to use certain events, must attach event\r\n* listeners to Interaction instance.\r\n*\r\n* Interaction itself will not modify [[InteractionObject]] elements, it will be up to\r\n* those elements to handle interaction information received via event triggers.\r\n*\r\n* @see {@link IInteractionEvents} for a list of available events\r\n*/\r\nvar Interaction = /** @class */ (function (_super) {\r\n __extends(Interaction, _super);\r\n /**\r\n * Constructor. Sets up universal document-wide move events to handle stuff\r\n * outside particular chart container.\r\n */\r\n function Interaction() {\r\n var _this = \r\n // Call super\r\n _super.call(this) || this;\r\n /**\r\n * An indicator of global events were already initialized.\r\n */\r\n _this._globalEventsAdded = false;\r\n /**\r\n * Holds which mouse event listeners to use.\r\n */\r\n _this._pointerEvents = {\r\n \"pointerdown\": \"mousedown\",\r\n \"pointerup\": \"mouseup\",\r\n \"pointermove\": \"mousemove\",\r\n \"pointercancel\": \"mouseup\",\r\n \"pointerover\": \"mouseover\",\r\n \"pointerout\": \"mouseout\",\r\n \"wheel\": \"wheel\"\r\n };\r\n /**\r\n * Indicates if Interaction should use only \"pointer\" type events, like\r\n * \"pointermove\", available in all modern browsers, ignoring \"legacy\"\r\n * events, like \"touchmove\".\r\n */\r\n _this._usePointerEventsOnly = false;\r\n /**\r\n * Use only touch events (for touch only devices such as tablets and phones)\r\n */\r\n _this._useTouchEventsOnly = false;\r\n /**\r\n * Add special hover events. Normally, touch device tap will also simulate\r\n * hover event. On some devices (ahem iOS) we want to prevent that so that\r\n * over/out events are not duplicated.\r\n */\r\n _this._addHoverEvents = true;\r\n /**\r\n * Indicates if passive mode options is supported by this browser.\r\n */\r\n _this._passiveSupported = false;\r\n /**\r\n * Holds list of delayed events\r\n */\r\n _this._delayedEvents = { out: [] };\r\n /**\r\n * List of objects that current have a pointer hovered over them.\r\n */\r\n _this.overObjects = new List();\r\n /**\r\n * List of objects that currently has a pressed pointer.\r\n */\r\n _this.downObjects = new List();\r\n /**\r\n * List of objects that need mouse position to be reported to them.\r\n */\r\n _this.trackedObjects = new List();\r\n /**\r\n * List of objects that are currently being dragged.\r\n */\r\n _this.transformedObjects = new List();\r\n /**\r\n * Holds all known pointers.\r\n */\r\n _this.pointers = new Dictionary();\r\n /**\r\n * Inertia options that need to be applied to after element drag, if it's\r\n * `inert = true`.\r\n *\r\n * This is just a default, which can and probably will be overridden by\r\n * actual elements.\r\n */\r\n _this.inertiaOptions = new Dictionary();\r\n /**\r\n * Default options for click events. These can be overridden in\r\n * [[InteractionObject]].\r\n */\r\n _this.hitOptions = {\r\n \"doubleHitTime\": 300,\r\n //\"delayFirstHit\": false,\r\n \"hitTolerance\": 10,\r\n \"noFocus\": true\r\n };\r\n /**\r\n * Default options for hover events. These can be overridden in\r\n * [[InteractionObject]].\r\n */\r\n _this.hoverOptions = {\r\n \"touchOutBehavior\": \"leave\",\r\n \"touchOutDelay\": 1000\r\n };\r\n /**\r\n * Default options for detecting a swipe gesture. These can be overridden in\r\n * [[InteractionObject]].\r\n */\r\n _this.swipeOptions = {\r\n \"time\": 500,\r\n \"verticalThreshold\": 75,\r\n \"horizontalThreshold\": 30\r\n };\r\n /**\r\n * Default options for keyboard operations. These can be overridden in\r\n * [[InteractionObject]].\r\n */\r\n _this.keyboardOptions = {\r\n \"speed\": 0.1,\r\n \"accelleration\": 1.2,\r\n \"accellerationDelay\": 2000\r\n };\r\n /**\r\n * Default options for keyboard operations. These can be overridden in\r\n * [[InteractionObject]].\r\n *\r\n * @since 4.5.14\r\n */\r\n _this.mouseOptions = {\r\n \"sensitivity\": 1\r\n };\r\n // Set class name\r\n _this.className = \"Interaction\";\r\n // Create InteractionObject for <body>\r\n _this.body = _this.getInteraction(document.body);\r\n _this._disposers.push(_this.body);\r\n // Detect browser capabilities and determine what event listeners to use\r\n if (window.hasOwnProperty(\"PointerEvent\")) {\r\n // IE10+/Edge without touch controls enabled\r\n _this._pointerEvents.pointerdown = \"pointerdown\";\r\n _this._pointerEvents.pointerup = \"pointerup\";\r\n _this._pointerEvents.pointermove = \"pointermove\";\r\n _this._pointerEvents.pointercancel = \"pointercancel\";\r\n _this._pointerEvents.pointerover = \"pointerover\";\r\n _this._pointerEvents.pointerout = \"pointerout\";\r\n //this._usePointerEventsOnly = true;\r\n }\r\n else if (window.hasOwnProperty(\"MSPointerEvent\")) {\r\n // IE9\r\n _this._pointerEvents.pointerdown = \"MSPointerDown\";\r\n _this._pointerEvents.pointerup = \"MSPointerUp\";\r\n _this._pointerEvents.pointermove = \"MSPointerMove\";\r\n _this._pointerEvents.pointercancel = \"MSPointerUp\";\r\n _this._pointerEvents.pointerover = \"MSPointerOver\";\r\n _this._pointerEvents.pointerout = \"MSPointerOut\";\r\n //this._usePointerEventsOnly = true;\r\n }\r\n else if ((typeof matchMedia !== \"undefined\") && matchMedia('(pointer:fine)').matches) {\r\n // This is only for Safari as it does not support PointerEvent\r\n // Do nothing and let it use regular `mouse*` events\r\n // Hi Apple ;)\r\n // Additionally disable hover events for iOS devices\r\n if ('ontouchstart' in window) {\r\n _this._addHoverEvents = false;\r\n _this._useTouchEventsOnly = true;\r\n }\r\n }\r\n else if (window.navigator.userAgent.match(/MSIE /)) {\r\n // Oh looky, an MSIE that does not support PointerEvent. Hi granpa IE9!\r\n _this._usePointerEventsOnly = true;\r\n }\r\n else if (_this.fullFF()) {\r\n // Old FF, let's use regular events.\r\n // (Newer FFs would be detected by the PointerEvent availability check)\r\n _this._usePointerEventsOnly = true;\r\n }\r\n else {\r\n // Uses defaults for normal browsers\r\n // We also assume that this must be a touch device that does not have\r\n // any pointer events\r\n _this._useTouchEventsOnly = true;\r\n }\r\n // Detect if device has a mouse\r\n // This is turning out to be not reliable\r\n // @todo remove\r\n /*if (!window.navigator.msPointerEnabled && (typeof matchMedia !== \"undefined\") && !matchMedia('(pointer:fine)').matches && !this.fullFF()) {\r\n this._useTouchEventsOnly = true;\r\n }*/\r\n // Detect proper mouse wheel events\r\n if (\"onwheel\" in document.createElement(\"div\")) {\r\n // Modern browsers\r\n _this._pointerEvents.wheel = \"wheel\";\r\n }\r\n else if ($type.hasValue(document.onmousewheel)) {\r\n // Webkit and IE support at least \"mousewheel\"\r\n _this._pointerEvents.wheel = \"mousewheel\";\r\n }\r\n // Set up default inertia options\r\n _this.inertiaOptions.setKey(\"move\", {\r\n \"time\": 100,\r\n \"duration\": 500,\r\n \"factor\": 1,\r\n \"easing\": $ease.polyOut3\r\n });\r\n _this.inertiaOptions.setKey(\"resize\", {\r\n \"time\": 100,\r\n \"duration\": 500,\r\n \"factor\": 1,\r\n \"easing\": $ease.polyOut3\r\n });\r\n // Set the passive mode support\r\n _this._passiveSupported = Interaction.passiveSupported;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * This is a nasty detection for Firefox. The reason why we have is that\r\n * Firefox ESR version does not support matchMedia correctly.\r\n *\r\n * On iOS, Firefox uses different userAgent, so we don't have to detect iOS.\r\n *\r\n * @return Full Firefox?\r\n */\r\n Interaction.prototype.fullFF = function () {\r\n return (window.navigator.userAgent.match(/Firefox/)) && !(window.navigator.userAgent.match(/Android/));\r\n };\r\n Interaction.prototype.debug = function () { };\r\n /**\r\n * ==========================================================================\r\n * Processing\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Sets up global events.\r\n *\r\n * We need this so that we can track drag movement beyond chart's container.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.addGlobalEvents = function () {\r\n var _this = this;\r\n if (!this._globalEventsAdded) {\r\n if (!this._useTouchEventsOnly) {\r\n this._disposers.push(addEventListener(document, this._pointerEvents.pointerdown, function (ev) { _this.handleGlobalPointerDown(ev); }));\r\n this._disposers.push(addEventListener(document, this._pointerEvents.pointermove, function (ev) { _this.handleGlobalPointerMove(ev); }));\r\n this._disposers.push(addEventListener(document, this._pointerEvents.pointerup, function (ev) { _this.handleGlobalPointerUp(ev); }));\r\n this._disposers.push(addEventListener(document, this._pointerEvents.pointercancel, function (ev) { _this.handleGlobalPointerUp(ev, true); }));\r\n this._disposers.push(addEventListener(document, \"mouseenter\", function (ev) {\r\n if (!$type.hasValue(ev.relatedTarget) && (ev.buttons == 0 || ev.which == 0)) {\r\n _this.handleDocumentLeave(ev);\r\n }\r\n }));\r\n }\r\n // No need to duplicate events for hubrid systems that support both\r\n // pointer events and touch events. Touch events are need only for\r\n // some touch-only systems, like Mobile Safari.\r\n if (!this._usePointerEventsOnly) {\r\n this._disposers.push(addEventListener(document, \"touchstart\", function (ev) { _this.handleGlobalTouchStart(ev); }));\r\n this._disposers.push(addEventListener(document, \"touchmove\", function (ev) { _this.handleGlobalTouchMove(ev); }));\r\n this._disposers.push(addEventListener(document, \"touchend\", function (ev) { _this.handleGlobalTouchEnd(ev); }));\r\n }\r\n this._disposers.push(addEventListener(document, \"keydown\", function (ev) { _this.handleGlobalKeyDown(ev); }));\r\n this._disposers.push(addEventListener(document, \"keyup\", function (ev) { _this.handleGlobalKeyUp(ev); }));\r\n this._globalEventsAdded = true;\r\n }\r\n };\r\n /**\r\n * Sets if [[InteractionObject]] is clickable.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io [[InteractionObject]] instance\r\n */\r\n Interaction.prototype.processClickable = function (io) {\r\n // Add or remove touch events\r\n this.processTouchable(io);\r\n };\r\n /**\r\n * Sets if [[InteractionObject]] will display context menu when right-clicked.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io [[InteractionObject]] instance\r\n */\r\n Interaction.prototype.processContextMenu = function (io) {\r\n if (io.contextMenuDisabled) {\r\n if (!io.eventDisposers.hasKey(\"contextMenuDisabled\")) {\r\n io.eventDisposers.setKey(\"contextMenuDisabled\", addEventListener(io.element, \"contextmenu\", function (e) {\r\n e.preventDefault();\r\n }));\r\n }\r\n }\r\n else {\r\n if (io.eventDisposers.hasKey(\"contextMenuDisabled\")) {\r\n io.eventDisposers.getKey(\"contextMenuDisabled\").dispose();\r\n }\r\n }\r\n };\r\n /**\r\n * Sets if [[InteractionObject]] is hoverable.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io [[InteractionObject]] instance\r\n */\r\n Interaction.prototype.processHoverable = function (io) {\r\n var _this = this;\r\n if (io.hoverable || io.trackable) {\r\n // Add global events\r\n this.addGlobalEvents();\r\n // Add hover styles\r\n this.applyCursorOverStyle(io);\r\n // Add local events\r\n if (!io.eventDisposers.hasKey(\"hoverable\") && this._addHoverEvents) {\r\n io.eventDisposers.setKey(\"hoverable\", new MultiDisposer([\r\n addEventListener(io.element, this._pointerEvents.pointerout, function (e) { return _this.handlePointerOut(io, e); }),\r\n addEventListener(io.element, this._pointerEvents.pointerover, function (e) { return _this.handlePointerOver(io, e); })\r\n ]));\r\n }\r\n if (io.trackable) {\r\n //sprite.addEventListener(\"touchmove\", this.handleTouchMove, false, this);\r\n }\r\n }\r\n else {\r\n var disposer = io.eventDisposers.getKey(\"hoverable\");\r\n if (disposer != null) {\r\n disposer.dispose();\r\n io.eventDisposers.removeKey(\"hoverable\");\r\n }\r\n }\r\n // Add or remove touch events\r\n this.processTouchable(io);\r\n };\r\n /**\r\n * Sets up [[InteractionObject]] as movable. Movable can be any\r\n * transformation, e.g. drag, swipe, resize, track.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processMovable = function (io) {\r\n // Add unified events\r\n if (io.draggable || io.swipeable || io.trackable || io.resizable) {\r\n // Prep the element\r\n if (!this.isGlobalElement(io) && !io.isTouchProtected) {\r\n this.prepElement(io);\r\n }\r\n // Add hover styles\r\n this.applyCursorOverStyle(io);\r\n }\r\n // Add or remove touch events\r\n this.processTouchable(io);\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is trackable and sets relative events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processTrackable = function (io) {\r\n this.processHoverable(io);\r\n this.processMovable(io);\r\n if (io.trackable) {\r\n this.trackedObjects.moveValue(io);\r\n }\r\n else {\r\n this.trackedObjects.removeValue(io);\r\n }\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is draggable.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processDraggable = function (io) {\r\n this.processMovable(io);\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is swipeable and sets relative events.\r\n *\r\n * A swipe event is triggered when a horizontal drag of 75px or more (and\r\n * less than 30px vertically) occurs within 700 milliseconds. This can be\r\n * overridden in sprites [[swipeOptions]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processSwipeable = function (io) {\r\n this.processMovable(io);\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is resizable and attaches required events\r\n * to it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processResizable = function (io) {\r\n this.processMovable(io);\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is supposed to capture mouse wheel events\r\n * and prepares it to catch those events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processWheelable = function (io) {\r\n var _this = this;\r\n if (io.wheelable) {\r\n //io.hoverable = true;\r\n if (!io.eventDisposers.hasKey(\"wheelable\")) {\r\n io.eventDisposers.setKey(\"wheelable\", new MultiDisposer([\r\n addEventListener(io.element, this._pointerEvents.wheel, function (e) { return _this.handleMouseWheel(io, e); }, this._passiveSupported ? { passive: false } : false),\r\n io.events.on(\"out\", function (e) {\r\n if (io.wheelable) {\r\n _this.unlockWheel();\r\n }\r\n }),\r\n io.events.on(\"over\", function (e) {\r\n //console.log(\"whelab over\")\r\n if (io.wheelable) {\r\n _this.lockWheel();\r\n }\r\n })\r\n ]));\r\n }\r\n }\r\n else {\r\n var disposer = io.eventDisposers.getKey(\"wheelable\");\r\n if (disposer != null) {\r\n disposer.dispose();\r\n io.eventDisposers.removeKey(\"wheelable\");\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is focusable. A focusable element is an\r\n * element that will be highlighted when users presses TAB key. If the\r\n * element is focusable, this function will attach relative focus/blur\r\n * events to it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processFocusable = function (io) {\r\n var _this = this;\r\n if (io.focusable === true && (io.tabindex > -1) && !this._useTouchEventsOnly) {\r\n if (!io.eventDisposers.hasKey(\"focusable\")) {\r\n io.eventDisposers.setKey(\"focusable\", new MultiDisposer([\r\n addEventListener(io.element, \"focus\", function (e) { return _this.handleFocus(io, e); }),\r\n addEventListener(io.element, \"blur\", function (e) { return _this.handleBlur(io, e); }),\r\n addEventListener(io.element, this._pointerEvents.pointerdown, function (e) { return _this.handleFocusBlur(io, e); }),\r\n addEventListener(io.element, \"touchstart\", function (e) { return _this.handleFocusBlur(io, e); }, this._passiveSupported ? { passive: false } : false)\r\n ]));\r\n }\r\n }\r\n else {\r\n var disposer = io.eventDisposers.getKey(\"focusable\");\r\n if (disposer != null) {\r\n disposer.dispose();\r\n io.eventDisposers.removeKey(\"focusable\");\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if [[InteractionObject]] is \"touchable\". It means any interaction\r\n * whatsoever: mouse click, touch screen tap, swipe, drag, resize, etc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n */\r\n Interaction.prototype.processTouchable = function (io) {\r\n var _this = this;\r\n // Add unified events\r\n if (io.clickable || io.hoverable || io.trackable || io.draggable || io.swipeable || io.resizable) {\r\n // Add global events\r\n this.addGlobalEvents();\r\n // Add local events\r\n if (!io.eventDisposers.hasKey(\"touchable\")) {\r\n if (!this._useTouchEventsOnly && !this._usePointerEventsOnly) {\r\n io.eventDisposers.setKey(\"touchable\", new MultiDisposer([\r\n addEventListener(io.element, this._pointerEvents.pointerdown, function (e) { return _this.handlePointerDown(io, e); }),\r\n addEventListener(io.element, \"touchstart\", function (e) { return _this.handleTouchDown(io, e); }, this._passiveSupported ? { passive: false } : false)\r\n ]));\r\n }\r\n else if (!this._useTouchEventsOnly) {\r\n io.eventDisposers.setKey(\"touchable\", addEventListener(io.element, this._pointerEvents.pointerdown, function (e) { return _this.handlePointerDown(io, e); }));\r\n }\r\n else if (!this._usePointerEventsOnly) {\r\n io.eventDisposers.setKey(\"touchable\", addEventListener(io.element, \"touchstart\", function (e) { return _this.handleTouchDown(io, e); }, this._passiveSupported ? { passive: false } : false));\r\n }\r\n }\r\n }\r\n else {\r\n var disposer = io.eventDisposers.getKey(\"touchable\");\r\n if (disposer != null) {\r\n disposer.dispose();\r\n io.eventDisposers.removeKey(\"touchable\");\r\n }\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Non-pointer events\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Dispatches \"focus\" event when element gains focus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleFocus = function (io, ev) {\r\n if (!io.focusable) {\r\n ev.preventDefault();\r\n return;\r\n }\r\n io.isFocused = true;\r\n if (io.events.isEnabled(\"focus\") && !system.isPaused) {\r\n var imev = {\r\n type: \"focus\",\r\n target: io,\r\n event: ev\r\n };\r\n io.events.dispatchImmediately(\"focus\", imev);\r\n }\r\n };\r\n /**\r\n * Used by regular click events to prevent focus if \"noFocus\" is set.\r\n *\r\n * This should not be called by \"focus\" handlers.\r\n *\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleFocusBlur = function (io, ev) {\r\n if (io.focusable !== false && this.getHitOption(io, \"noFocus\")) {\r\n io.events.once(\"focus\", function () {\r\n io.events.disableType(\"blur\");\r\n $dom.blur();\r\n if (io.sprite) {\r\n io.sprite.handleBlur();\r\n }\r\n io.events.enableType(\"blur\");\r\n });\r\n }\r\n };\r\n /**\r\n * Dispatches \"blur\" event when element loses focus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleBlur = function (io, ev) {\r\n if (!io.focusable) {\r\n ev.preventDefault();\r\n return;\r\n }\r\n io.isFocused = false;\r\n if (io.events.isEnabled(\"blur\") && !system.isPaused) {\r\n var imev = {\r\n type: \"blur\",\r\n target: io,\r\n event: ev\r\n };\r\n io.events.dispatchImmediately(\"blur\", imev);\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Global keyboard-related even handlers\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Checks if there is an item that has currently focus and that they key is\r\n * one of the directional keys. If both of the conditions are true, it\r\n * creates an object to simulate movement of dragable element with keyboard.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev An original keyboard event\r\n */\r\n Interaction.prototype.handleGlobalKeyDown = function (ev) {\r\n if (this.focusedObject) {\r\n if (keyboard.isKey(ev, \"esc\")) {\r\n // ESC removes focus\r\n $dom.blur();\r\n }\r\n else if (this.focusedObject.draggable && keyboard.isKey(ev, [\"up\", \"down\", \"left\", \"right\"])) {\r\n // Prevent scrolling of the document\r\n ev.preventDefault();\r\n // Get focused object\r\n var io = this.focusedObject;\r\n // Get particular key\r\n var disposerKey = \"interactionKeyboardObject\";\r\n // If such disposer already exists we know the event is going on so we\r\n // just move on\r\n if (io.eventDisposers.hasKey(disposerKey)) {\r\n return;\r\n }\r\n // Create a keyboard mover\r\n var ko = new InteractionKeyboardObject(io, ev);\r\n io.eventDisposers.setKey(disposerKey, ko);\r\n switch (keyboard.getEventKey(ev)) {\r\n case \"up\":\r\n ko.directionY = -1;\r\n break;\r\n case \"down\":\r\n ko.directionY = 1;\r\n break;\r\n case \"left\":\r\n ko.directionX = -1;\r\n break;\r\n case \"right\":\r\n ko.directionX = 1;\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Dispatches related events when the keyboard key is realeasd.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev An original keyboard event\r\n */\r\n Interaction.prototype.handleGlobalKeyUp = function (ev) {\r\n var disposerKey = \"interactionKeyboardObject\";\r\n if (this.focusedObject) {\r\n var disposer = this.focusedObject.eventDisposers.getKey(disposerKey);\r\n if (disposer != null) {\r\n // Prevent scrolling of the document\r\n ev.preventDefault();\r\n // Dispose stuff\r\n disposer.dispose();\r\n this.focusedObject.eventDisposers.removeKey(disposerKey);\r\n }\r\n // Does focused object have \"hit\" event?\r\n var sprite = this.focusedObject.sprite;\r\n if (keyboard.isKey(ev, \"enter\") && sprite) {\r\n if (sprite.events.isEnabled(\"hit\") || sprite.events.isEnabled(\"toggled\")) {\r\n this.focusedObject.dispatchImmediately(\"hit\");\r\n }\r\n else if (sprite.showTooltipOn == \"hit\") {\r\n this.focusedObject.dispatchImmediately(\"up\");\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Global pointer-related even handlers\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Handler for a global \"pointermove\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalPointerMove = function (ev) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Update current point position\r\n pointer.point = this.getPointerPoint(ev);\r\n // Prepare and fire global event\r\n if (this.events.isEnabled(\"track\") && !system.isPaused) {\r\n var imev = {\r\n type: \"track\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"track\", imev);\r\n }\r\n // Track\r\n this.addBreadCrumb(pointer, pointer.point);\r\n // Process further\r\n this.handleGlobalMove(pointer, ev);\r\n };\r\n /**\r\n * Handler for a global \"pointerdown\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalPointerDown = function (ev) {\r\n // Remove delayed hovers\r\n this.processDelayed();\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Prepare and fire global event\r\n if (this.events.isEnabled(\"down\") && !system.isPaused) {\r\n var imev = {\r\n type: \"down\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"down\", imev);\r\n }\r\n };\r\n /**\r\n * Prevents touch action from firing.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event\r\n */\r\n Interaction.prototype.preventTouchAction = function (ev) {\r\n if (!ev.defaultPrevented) {\r\n ev.preventDefault();\r\n }\r\n };\r\n /**\r\n * Handler for a global \"pointerup\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalPointerUp = function (ev, cancelled) {\r\n if (cancelled === void 0) { cancelled = false; }\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Prepare and fire global event\r\n if (this.events.isEnabled(\"up\") && !system.isPaused) {\r\n var imev = {\r\n type: \"up\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"up\", imev);\r\n }\r\n // Process further\r\n this.handleGlobalUp(pointer, ev, cancelled);\r\n };\r\n /**\r\n * ==========================================================================\r\n * Global touch-related even handlers\r\n * ==========================================================================\r\n */\r\n /**\r\n * Handler for a global \"touchmove\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalTouchMove = function (ev) {\r\n // Process each changed touch point\r\n for (var i = 0; i < ev.changedTouches.length; i++) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev.changedTouches[i]);\r\n // Update current point position\r\n pointer.point = this.getPointerPoint(ev.changedTouches[i]);\r\n // Prepare and fire global event\r\n if (this.events.isEnabled(\"track\") && !system.isPaused) {\r\n var imev = {\r\n type: \"track\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"track\", imev);\r\n }\r\n // Track\r\n this.addBreadCrumb(pointer, pointer.point);\r\n // Process further\r\n this.handleGlobalMove(pointer, ev);\r\n }\r\n };\r\n /**\r\n * Handler for a global \"touchstart\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalTouchStart = function (ev) {\r\n // Remove delayed hovers\r\n this.processDelayed();\r\n // Process each changed touch point\r\n for (var i = 0; i < ev.changedTouches.length; i++) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev.changedTouches[i]);\r\n // Prepare and fire global event\r\n if (!this._usePointerEventsOnly && this.events.isEnabled(\"down\") && !system.isPaused) {\r\n var imev = {\r\n type: \"down\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"down\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Handler for a global \"touchend\" event.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n */\r\n Interaction.prototype.handleGlobalTouchEnd = function (ev) {\r\n // Process each changed touch point\r\n for (var i = 0; i < ev.changedTouches.length; i++) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev.changedTouches[i]);\r\n // Prepare and fire global event\r\n if (this.events.isEnabled(\"up\") && !system.isPaused) {\r\n var imev = {\r\n type: \"up\",\r\n target: this,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n this.events.dispatchImmediately(\"up\", imev);\r\n }\r\n // Handle element-related events\r\n this.handleGlobalUp(pointer, ev);\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Element-specific pointer-related even handlers\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Handles event when pointer is over [[InteractionObject]] and button is\r\n * pressed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handlePointerDown = function (io, ev) {\r\n // Stop further propagation so we don't get multiple triggers on hybrid\r\n // devices (both mouse and touch capabilities)\r\n //ev.preventDefault();\r\n //ev.stopPropagation();\r\n //if (ev.defaultPrevented) {\r\n //}\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Ignore if it's anything but mouse's primary button\r\n if (!pointer.touch && ev.which != 1 && ev.which != 3) {\r\n return;\r\n }\r\n // Set mouse button\r\n pointer.button = ev.which;\r\n // Reset pointer\r\n this.resetPointer(pointer, ev);\r\n // Process down\r\n this.handleDown(io, pointer, ev);\r\n };\r\n /**\r\n * Handles event when [[InteractionObject]] is hovered by a mouse pointer.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handlePointerOver = function (io, ev) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Process down\r\n this.handleOver(io, pointer, ev);\r\n };\r\n /**\r\n * Handles event when [[InteractionObject]] loses hover from a mouse pointer.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handlePointerOut = function (io, ev) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Process down\r\n this.handleOut(io, pointer, ev);\r\n };\r\n /**\r\n * Handles event when mouse wheel is crolled over the [[InteractionObject]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n * @todo Investigate more-cross browser stuff https://developer.mozilla.org/en-US/docs/Web/Events/wheel\r\n */\r\n Interaction.prototype.handleMouseWheel = function (io, ev) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev);\r\n // Update current point position\r\n pointer.point = this.getPointerPoint(ev);\r\n // Init delta values\r\n var deltaX = 0, deltaY = 0;\r\n // Set up modifier\r\n // This is needed because FireFox reports wheel deltas in \"lines\" instead\r\n // of pixels so we have to approximate pixel value\r\n var mod = 1;\r\n if (ev.deltaMode == 1) {\r\n mod = 50;\r\n }\r\n // Adjust configurable sensitivity\r\n mod *= this.getMouseOption(io, \"sensitivity\");\r\n // Calculate deltas\r\n if (ev instanceof WheelEvent) {\r\n deltaX = Math.round((-1 * ev.wheelDeltaX) || (ev.deltaX * mod));\r\n deltaY = Math.round((-1 * ev.wheelDeltaY) || (ev.deltaY * mod));\r\n }\r\n else {\r\n throw new Error(\"Invalid event type\");\r\n }\r\n // Handle the event\r\n this.handleWheel(io, pointer, deltaX, deltaY, ev);\r\n };\r\n /**\r\n * ==========================================================================\r\n * Element-specific touch-related even handlers\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Handles an event when an [[InteractionObject]] is touched on a touch\r\n * device.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleTouchDown = function (io, ev) {\r\n // Stop further propagation so we don't get multiple triggers on hybrid\r\n // devices (both mouse and touch capabilities)\r\n //this.maybePreventDefault(io, ev);\r\n //return;\r\n // Process each changed touch point\r\n for (var i = 0; i < ev.changedTouches.length; i++) {\r\n // Get pointer\r\n var pointer = this.getPointer(ev.changedTouches[i]);\r\n this.maybePreventDefault(io, ev, pointer);\r\n // Reset pointer\r\n this.resetPointer(pointer, ev.changedTouches[i]);\r\n // Process down\r\n this.handleDown(io, pointer, ev);\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Universal handlers\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Handles click/tap. Checks for doublehit.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Interaction object\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleHit = function (io, pointer, ev) {\r\n // Check if this is a double-hit\r\n var now = $time.getTime();\r\n if (io.lastHit && (io.lastHit >= (now - this.getHitOption(io, \"doubleHitTime\")))) {\r\n // Yup - it's a double-hit\r\n // Cancel the hit\r\n //clearTimeout(io.lastHitPointer.hitTimeout);\r\n // If it happened too fast it probably means that hybrid device just\r\n // generated two events for the same tap\r\n if ((now - io.lastHit) < 100) {\r\n // Ignore\r\n return;\r\n }\r\n // Clear last hit\r\n io.lastHit = undefined;\r\n io.lastHitPointer = undefined;\r\n // Dispatch event\r\n if (io.events.isEnabled(\"doublehit\") && !system.isPaused) {\r\n var imev = {\r\n type: \"doublehit\",\r\n target: io,\r\n point: pointer.point,\r\n event: ev,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"doublehit\", imev);\r\n }\r\n }\r\n else {\r\n // Log last hit\r\n io.lastHit = now;\r\n io.lastHitPointer = pointer;\r\n if (pointer.button === 3) {\r\n // Execute HIT now\r\n if (io.events.isEnabled(\"rightclick\") && !system.isPaused) {\r\n var imev = {\r\n type: \"rightclick\",\r\n target: io,\r\n event: ev\r\n };\r\n io.events.dispatchImmediately(\"rightclick\", imev);\r\n }\r\n }\r\n else {\r\n if (io.events.isEnabled(\"hit\") && !system.isPaused) {\r\n var imev = {\r\n type: \"hit\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"hit\", imev);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Handles pointer hovering over [[InteractionObject]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Interaction object\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n * @param soft Invoked by helper function\r\n */\r\n Interaction.prototype.handleOver = function (io, pointer, ev, soft) {\r\n if (soft === void 0) { soft = false; }\r\n if (!io.hoverable) {\r\n return;\r\n }\r\n var hoversPaused = false;\r\n if (this.shouldCancelHovers(pointer) && this.areTransformed() && this.moved(pointer, this.getHitOption(io, \"hitTolerance\"))) {\r\n hoversPaused = true;\r\n this.cancelAllHovers(ev);\r\n }\r\n // Remove any delayed outs\r\n this.processDelayed();\r\n // Add pointer\r\n io.overPointers.moveValue(pointer);\r\n // Check if object is not yet hovered\r\n if (!io.isRealHover) {\r\n // Set element as hovered\r\n if (!hoversPaused) {\r\n io.isHover = true;\r\n io.isRealHover = true;\r\n this.overObjects.moveValue(io);\r\n }\r\n // Generate body track event. This is needed so that if element loads\r\n // under unmoved mouse cursor, we still need all the actions that are\r\n // required to happen to kick in.\r\n this.handleTrack(this.body, pointer, ev, true);\r\n // Event\r\n if (io.events.isEnabled(\"over\") && !system.isPaused && !hoversPaused) {\r\n var imev = {\r\n type: \"over\",\r\n target: io,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"over\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Handles when [[InteractionObject]] is no longer hovered.\r\n *\r\n * If `soft = true`, this means that method is being invoked by some other\r\n * code, not hard \"out\" function, like `handleUp` which implies we need to\r\n * run additional checks before unhovering the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Interaction object\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n * @param soft Invoked by helper function\r\n * @param force Force imediate out\r\n */\r\n Interaction.prototype.handleOut = function (io, pointer, ev, soft, force) {\r\n var _this = this;\r\n if (soft === void 0) { soft = false; }\r\n if (force === void 0) { force = false; }\r\n if (!io.hoverable) {\r\n return;\r\n }\r\n // Remove pointer\r\n io.overPointers.removeValue(pointer);\r\n // Check if element is still hovered\r\n if (io.isHover && (!io.hasDelayedOut || force)) {\r\n // Should we run additional checks?\r\n if (soft && io.overPointers.length) {\r\n // There are still pointers hovering - don't do anything else and\r\n // wait until either no over pointers are there or we get a hard out\r\n // event.\r\n return;\r\n }\r\n // Should we delay \"out\" if this is happening on a touch device?\r\n if (pointer && pointer.touch && !force && !this.old(pointer)) {\r\n // This is a touch pointer, and it hasn't moved, let's pretend\r\n // the object is still hovered, and act as per \"behavior\" setting\r\n var behavior = this.getHoverOption(io, \"touchOutBehavior\");\r\n if (behavior == \"leave\") {\r\n // Set to \"leave\", so we do not execute any \"out\" event.\r\n // It will be handled by any other interaction that happens\r\n // afterwards.\r\n this._delayedEvents.out.push({\r\n type: \"out\",\r\n io: io,\r\n pointer: pointer,\r\n event: ev,\r\n keepUntil: $time.getTime() + 500\r\n });\r\n io.hasDelayedOut = true;\r\n return;\r\n }\r\n else if (behavior == \"delay\" && this.getHoverOption(io, \"touchOutDelay\")) {\r\n this._delayedEvents.out.push({\r\n type: \"out\",\r\n io: io,\r\n pointer: pointer,\r\n event: ev,\r\n keepUntil: $time.getTime() + 500,\r\n timeout: this.setTimeout(function () {\r\n _this.handleOut(io, pointer, ev, true);\r\n }, this.getHoverOption(io, \"touchOutDelay\"))\r\n });\r\n return;\r\n }\r\n else {\r\n // Nothing for \"remove\" - that's how it works \"out-of-the-box\"\r\n }\r\n }\r\n // Set element as not hovered\r\n io.isHover = false;\r\n this.overObjects.removeValue(io);\r\n // Invoke event\r\n if (!io.isDisposed() && io.events.isEnabled(\"out\") && !system.isPaused) {\r\n var imev = {\r\n type: \"out\",\r\n target: io,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"out\", imev);\r\n }\r\n // Reset object from lefover delayed outs, pointers\r\n io.overPointers.clear();\r\n io.hasDelayedOut = false;\r\n // @todo (clean delayed)\r\n }\r\n };\r\n /**\r\n * Processes dalyed events, such as \"out\" event that was initiated for\r\n * elements by touch.\r\n */\r\n Interaction.prototype.processDelayed = function () {\r\n var delayedEvent;\r\n while (true) {\r\n delayedEvent = this._delayedEvents.out.pop();\r\n if (!delayedEvent) {\r\n break;\r\n }\r\n if (delayedEvent.timeout) {\r\n delayedEvent.timeout.dispose();\r\n }\r\n this.handleOut(delayedEvent.io, delayedEvent.pointer, delayedEvent.event, false, true);\r\n }\r\n };\r\n /**\r\n * Performs tasks on pointer down.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleDown = function (io, pointer, ev) {\r\n // Need to prevent default event from happening on transformable objects\r\n this.maybePreventDefault(io, ev, pointer);\r\n // Stop inertia animations if they're currently being played out\r\n if (io.inert) {\r\n this.stopInertia(io);\r\n }\r\n // Trigger hover because some touch devices won't trigger over events\r\n // on their own\r\n this.handleOver(io, pointer, ev, true);\r\n // Add pointer to list\r\n io.downPointers.moveValue(pointer);\r\n // Apply styles if necessary\r\n this.applyCursorDownStyle(io, pointer);\r\n // Check if object is already down\r\n if (!io.isDown) {\r\n // Lose focus if needed\r\n if (io.focusable !== false && this.getHitOption(io, \"noFocus\") && this.focusedObject) {\r\n $dom.blur();\r\n }\r\n // Set object as hovered\r\n io.isDown = true;\r\n this.downObjects.moveValue(io);\r\n // Prep object for dragging and/or resizing\r\n if (io.draggable) {\r\n this.processDragStart(io, pointer, ev);\r\n }\r\n if (io.resizable) {\r\n this.processResizeStart(io, pointer, ev);\r\n }\r\n }\r\n // Dispatch \"down\" event\r\n if (io.events.isEnabled(\"down\") && !system.isPaused) {\r\n var imev = {\r\n type: \"down\",\r\n target: io,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"down\", imev);\r\n }\r\n };\r\n /**\r\n * Performs tasks on pointer up.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleGlobalUp = function (pointer, ev, cancelled) {\r\n var _this = this;\r\n if (cancelled === void 0) { cancelled = false; }\r\n var sorted = this.downObjects.values.slice();\r\n sorted.sort(function (x, y) {\r\n if (x && y) {\r\n var pos = x.element.compareDocumentPosition(y.element);\r\n if (pos & Node.DOCUMENT_POSITION_CONTAINED_BY) {\r\n return 1;\r\n }\r\n else if (pos & Node.DOCUMENT_POSITION_CONTAINS) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n // Process all down objects\r\n $array.each(sorted, function (io) {\r\n // Check if this particular pointer is pressing down\r\n // on object\r\n if (io && io.downPointers.contains(pointer)) {\r\n _this.handleUp(io, pointer, ev, cancelled);\r\n }\r\n });\r\n };\r\n /**\r\n * Simulates all pointers being up once mouse leaves document area.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleDocumentLeave = function (ev) {\r\n var _this = this;\r\n // Process all down objects\r\n $iter.each(this.downObjects.backwards().iterator(), function (io) {\r\n io.downPointers.each(function (pointer) {\r\n _this.handleUp(io, pointer, ev);\r\n });\r\n });\r\n };\r\n /**\r\n * Handles when [[InteractionObject]] is no longer hovered.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Interaction object\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleUp = function (io, pointer, ev, cancelled) {\r\n if (cancelled === void 0) { cancelled = false; }\r\n // Restore cursor style\r\n this.restoreCursorDownStyle(io, pointer);\r\n // Remove pointer from the list\r\n io.downPointers.removeValue(pointer);\r\n // Trigger out because some touch devices won't trigger out events\r\n // on their own\r\n if ((pointer && pointer.touch) || this._useTouchEventsOnly) {\r\n this.handleOut(io, pointer, ev, true);\r\n }\r\n // Check if object still down\r\n if (io.isDown) {\r\n // Check if there are no other pointers hovering this element\r\n if (io.downPointers.length == 0) {\r\n // Set element as no longer down\r\n io.isDown = false;\r\n this.downObjects.removeValue(io);\r\n }\r\n // Dispatch \"up\" event\r\n if (io.events.isEnabled(\"up\") && !system.isPaused && pointer) {\r\n var imev = {\r\n type: \"up\",\r\n target: io,\r\n event: ev,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"up\", imev);\r\n }\r\n // Check if this was not a cancelled event.\r\n // If event was canelled (which might happen if gesture resulted in\r\n // navigation or page scroll) there's no point in triggering hit and\r\n // other actions.\r\n if (!cancelled) {\r\n // Handle swiping-related stuff\r\n if (io.swipeable && this.swiped(io, pointer)) {\r\n // Swiped - nothing else should happen\r\n this.handleSwipe(io, pointer, ev);\r\n }\r\n else {\r\n // Check if it maybe a click\r\n if (io.clickable && !this.moved(pointer, this.getHitOption(io, \"hitTolerance\"))) {\r\n this.handleHit(io, pointer, ev);\r\n }\r\n // Handle inertia\r\n if (io.inert && this.moved(pointer, this.getHitOption(io, \"hitTolerance\"))) {\r\n this.handleInertia(io, pointer);\r\n }\r\n else if (io.draggable) {\r\n this.processDragStop(io, pointer, ev);\r\n }\r\n if (io.resizable) {\r\n this.processResizeStop(io, pointer, ev);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if event needs to be prevented on draggable and such items, so that\r\n * touch gestures like navigation and scroll do not kick in.\r\n *\r\n * @param io Object\r\n * @param ev Event\r\n */\r\n Interaction.prototype.maybePreventDefault = function (io, ev, pointer) {\r\n if ($type.hasValue(ev)\r\n && (io.draggable || io.swipeable || io.trackable || io.resizable)\r\n && !this.isGlobalElement(io)\r\n && ev.cancelable !== false\r\n && (!io.isTouchProtected || !pointer || !pointer.touch)) {\r\n ev.preventDefault();\r\n }\r\n };\r\n /**\r\n * Cancels all hovers on all currently hovered objects.\r\n *\r\n * @param pointer Pointer\r\n * @param ev Event\r\n */\r\n Interaction.prototype.cancelAllHovers = function (ev) {\r\n var _this = this;\r\n //this.overObjects.each((io) => {\r\n $iter.each(this.overObjects.backwards().iterator(), function (io) {\r\n if (io) {\r\n var pointer = io.overPointers.getIndex(0);\r\n _this.handleOut(io, pointer, ev, true, true);\r\n }\r\n });\r\n };\r\n /**\r\n * Checks if hovers should be cancelled on transform as per global options.\r\n * @param pointer Pointer\r\n * @return Cancel?\r\n */\r\n Interaction.prototype.shouldCancelHovers = function (pointer) {\r\n return options.disableHoverOnTransform == \"always\" || (options.disableHoverOnTransform == \"touch\" && pointer.touch);\r\n };\r\n /**\r\n * Handles pointer move.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleGlobalMove = function (pointer, ev) {\r\n var _this = this;\r\n // Process hovered elements\r\n // We check if the element became unhovered without reporting the mouseout\r\n // event. (it happens in some cases)\r\n if (!pointer.touch) {\r\n var target_1 = $dom.eventTarget(pointer.lastEvent);\r\n $iter.each(this.overObjects.backwards().iterator(), function (io) {\r\n // Is this pointer relevant to element?\r\n if (io && io.overPointers.contains(pointer) && io.hoverable) {\r\n // Check if the element is still hovered\r\n var reset = false;\r\n if (io.element && pointer.lastEvent) {\r\n if (!$dom.contains(io.element, target_1)) {\r\n reset = true;\r\n }\r\n }\r\n else {\r\n reset = true;\r\n }\r\n if (reset) {\r\n _this.handleOut(io, pointer, ev, true);\r\n }\r\n }\r\n });\r\n }\r\n // Process down elements\r\n $iter.each(this.transformedObjects.backwards().iterator(), function (io) {\r\n // Is this pointer relevant to element?\r\n if (io.downPointers.contains(pointer) &&\r\n // Swipe still happening?\r\n !(io.swipeable && _this.swiping(io, pointer)) &&\r\n (io.draggable || io.resizable)) {\r\n _this.handleTransform(io, ev);\r\n }\r\n });\r\n // Process tracked elements\r\n $iter.each(this.trackedObjects.backwards().iterator(), function (io) {\r\n // Is this pointer relevant to element?\r\n if (!io.overPointers.contains(pointer)) {\r\n _this.handleTrack(io, pointer, ev);\r\n }\r\n });\r\n };\r\n /**\r\n * Handles reporting of pointer movement.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n * @param skipCheck Sould we skip check if cursor actually moved\r\n */\r\n Interaction.prototype.handleTrack = function (io, pointer, ev, skipCheck) {\r\n if (skipCheck === void 0) { skipCheck = false; }\r\n // Do nothing if the cursor did not actually move\r\n if (!skipCheck && !this.moved(pointer, 0)) {\r\n return;\r\n }\r\n // Initiate TRACK event\r\n if (io.events.isEnabled(\"track\") && !system.isPaused) {\r\n var imev = {\r\n type: \"track\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n pointer: pointer,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"track\", imev);\r\n }\r\n };\r\n /**\r\n * Handles swipe action.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleSwipe = function (io, pointer, ev) {\r\n // We pass in InteractionEvent with shift in mouse coordinates\r\n // between when the drag started and ended\r\n if (io.events.isEnabled(\"swipe\") && !system.isPaused) {\r\n var imev = {\r\n type: \"swipe\",\r\n target: io,\r\n event: ev,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"swipe\", imev);\r\n }\r\n if (pointer.startPoint.x < pointer.point.x) {\r\n if (io.events.isEnabled(\"swiperight\") && !system.isPaused) {\r\n var imev = {\r\n type: \"swiperight\",\r\n target: io,\r\n event: ev,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"swiperight\", imev);\r\n }\r\n }\r\n else {\r\n if (io.events.isEnabled(\"swipeleft\") && !system.isPaused) {\r\n var imev = {\r\n type: \"swipeleft\",\r\n target: io,\r\n event: ev,\r\n touch: pointer.touch\r\n };\r\n io.events.dispatchImmediately(\"swipeleft\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Handles event triggering for wheel rotation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param deltaX Horizontal shift\r\n * @param deltaY Vertical shift\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleWheel = function (io, pointer, deltaX, deltaY, ev) {\r\n var shift = {\r\n x: deltaX,\r\n y: deltaY\r\n };\r\n // Trigger generic WHEEL event\r\n if (io.events.isEnabled(\"wheel\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"wheel\", {\r\n type: \"wheel\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n shift: shift\r\n });\r\n }\r\n // Trigger direction-specific events\r\n // Horizontal\r\n if (deltaX < 0) {\r\n if (io.events.isEnabled(\"wheelleft\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"wheelleft\", {\r\n type: \"wheelleft\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n shift: shift\r\n });\r\n }\r\n }\r\n else if (deltaX > 0) {\r\n if (io.events.isEnabled(\"swiperight\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"wheelright\", {\r\n type: \"wheelright\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n shift: shift\r\n });\r\n }\r\n // Vertical\r\n }\r\n else if (deltaY < 0) {\r\n if (io.events.isEnabled(\"wheelup\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"wheelup\", {\r\n type: \"wheelup\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n shift: shift\r\n });\r\n }\r\n }\r\n else if (deltaY > 0) {\r\n if (io.events.isEnabled(\"wheeldown\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"wheeldown\", {\r\n type: \"wheeldown\",\r\n target: io,\r\n event: ev,\r\n point: pointer.point,\r\n shift: shift\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Initiates inertia checking sub-routines for different movement types:\r\n * drag, resize.\r\n *\r\n * @ignore Exclude from docs\r\n * @param sprite\r\n * @param pointer\r\n */\r\n Interaction.prototype.handleInertia = function (io, pointer) {\r\n if (io.draggable && io.downPointers.length === 0) {\r\n this.handleMoveInertia(io, pointer);\r\n }\r\n if (io.resizable && io.downPointers.length > 1) {\r\n this.handleResizeInertia(io, pointer);\r\n }\r\n };\r\n /**\r\n * Continues moving the element to simulate the effect of inertia. Happens\r\n * when `inert` and `draggable` object is dragged and then released.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.handleMoveInertia = function (io, pointer) {\r\n var interaction = io;\r\n var type = \"move\";\r\n var point = {\r\n \"x\": pointer.point.x,\r\n \"y\": pointer.point.y\r\n };\r\n var startPoint = {\r\n \"x\": pointer.startPoint.x,\r\n \"y\": pointer.startPoint.y\r\n };\r\n // Init inertia object\r\n var inertia = new Inertia(interaction, type, point, startPoint);\r\n // Get inertia data\r\n var ref = this.getTrailPoint(pointer, $time.getTime() - this.getInertiaOption(io, \"move\", \"time\"));\r\n if (typeof ref === \"undefined\") {\r\n this.processDragStop(io, pointer, pointer.lastUpEvent);\r\n return;\r\n }\r\n // Init animation options\r\n var factor = this.getInertiaOption(io, \"move\", \"factor\");\r\n var animationOptions = [{\r\n \"to\": pointer.point.x + (pointer.point.x - ref.point.x) * factor,\r\n \"property\": \"x\"\r\n }, {\r\n \"to\": pointer.point.y + (pointer.point.y - ref.point.y) * factor,\r\n \"property\": \"y\"\r\n }];\r\n // Start animation\r\n var animation = new Animation(inertia, animationOptions, this.getInertiaOption(io, \"move\", \"duration\"), this.getInertiaOption(io, \"move\", \"easing\")).start();\r\n this._disposers.push(animation.events.on(\"animationended\", function (ev) {\r\n inertia.done();\r\n }));\r\n // Add inertia object\r\n io.inertias.setKey(\"move\", inertia);\r\n };\r\n /**\r\n * Continues resizing of a `resizable` element after it is resized and\r\n * released.\r\n *\r\n * **NOTE:** this is is just a placeholder function. No actual fucntionality\r\n * is implemented, yet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.handleResizeInertia = function (io, pointer) {\r\n // Some day, folks. Some day...\r\n };\r\n /**\r\n * Recalculates element's position and size based on position of\r\n * all its related pointers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.handleTransform = function (io, ev) {\r\n // Get primary pointer and its respective points\r\n var pointer1 = io.downPointers.getIndex(0);\r\n var point1 = null;\r\n var startPoint1 = null;\r\n if (pointer1) {\r\n point1 = pointer1.point;\r\n startPoint1 = pointer1.startPoint;\r\n }\r\n // Init secondary pointer\r\n var pointer2;\r\n var point2;\r\n var startPoint2;\r\n // Use center of the sprite to simulate \"second\" point of touch\r\n point2 = {\r\n \"x\": io.originalPosition.x,\r\n \"y\": io.originalPosition.y\r\n };\r\n startPoint2 = point2;\r\n // Determine if it's a sinngle pointer or multi\r\n var singlePoint = true;\r\n for (var i = 1; i < io.downPointers.length; i++) {\r\n // Get pointer\r\n var nextPointer = io.downPointers.getIndex(i);\r\n // Doublecheck if it's not the same pointer by comparing original position\r\n if (startPoint1.x != nextPointer.startPoint.x && startPoint1.y != nextPointer.startPoint.y) {\r\n // Several pointers down\r\n singlePoint = false;\r\n // Get second pointer\r\n pointer2 = nextPointer;\r\n point2 = pointer2.point;\r\n startPoint2 = pointer2.startPoint;\r\n // Stop looking\r\n break;\r\n }\r\n }\r\n // Primary touch point moved?\r\n var pointer1Moved = pointer1 && this.moved(pointer1, 0);\r\n // Report DRAG_START if necessary\r\n if (io.draggable && pointer1 && pointer1.dragStartEvents && pointer1.dragStartEvents.length && pointer1Moved) {\r\n if (io.events.isEnabled(\"dragstart\") && !system.isPaused) {\r\n io.events.dispatchImmediately(\"dragstart\", pointer1.dragStartEvents.shift());\r\n }\r\n //delete pointer1.dragStartEvents;\r\n }\r\n // Determine what we do in order of superiority\r\n if (singlePoint && io.draggable) {\r\n // We have only one pointer and the Sprite is draggable\r\n // There's nothing else to be done - just move it\r\n this.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved, pointer1.touch);\r\n if (this.shouldCancelHovers(pointer1) && this.moved(pointer1, this.getHitOption(io, \"hitTolerance\"))) {\r\n this.cancelAllHovers(ev);\r\n }\r\n }\r\n else {\r\n // Check if second touch point moved\r\n var pointer2Moved = pointer2 && this.moved(pointer2, 0);\r\n if ((this.shouldCancelHovers(pointer1) && this.moved(pointer1, this.getHitOption(io, \"hitTolerance\")))\r\n ||\r\n (this.shouldCancelHovers(pointer2) && this.moved(pointer2, this.getHitOption(io, \"hitTolerance\")))) {\r\n this.cancelAllHovers(ev);\r\n }\r\n if (io.draggable && io.resizable) {\r\n //this.handleTransformAll(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved);\r\n this.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n this.handleTransformResize(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n }\r\n else {\r\n if (io.draggable) {\r\n this.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved, pointer1.touch);\r\n }\r\n if (io.resizable && (!singlePoint || ev.ctrlKey)) {\r\n this.handleTransformResize(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Handles movement of the dragged element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param point Current point of the pointer\r\n * @param startPoint Starting point of the pointer\r\n * @param ev Original event\r\n * @param pointerMoved Did pointer move?\r\n */\r\n Interaction.prototype.handleTransformMove = function (io, point, startPoint, ev, pointerMoved, touch) {\r\n if (pointerMoved) {\r\n if (io.events.isEnabled(\"drag\") && !system.isPaused && (!io.isTouchProtected || !touch)) {\r\n var imev = {\r\n type: \"drag\",\r\n target: io,\r\n event: ev,\r\n shift: {\r\n \"x\": point.x - startPoint.x,\r\n \"y\": point.y - startPoint.y\r\n },\r\n startPoint: startPoint,\r\n point: point,\r\n touch: touch\r\n };\r\n io.events.dispatchImmediately(\"drag\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Handles resizing of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param point1 Current position of reference point #1\r\n * @param startPoint1 Original position of reference point #1\r\n * @param point2 Current position of reference point #2\r\n * @param startPoint2 Original position of reference point #2\r\n * @param ev Original event\r\n * @param pointerMoved Did pointer move?\r\n */\r\n Interaction.prototype.handleTransformResize = function (io, point1, startPoint1, point2, startPoint2, ev, pointerMoved, touch) {\r\n if (io.events.isEnabled(\"resize\") && !system.isPaused && (!io.isTouchProtected || !touch)) {\r\n var imev = {\r\n type: \"resize\",\r\n target: io,\r\n event: ev,\r\n scale: $math.getScale(point1, startPoint1, point2, startPoint2),\r\n startPoint1: startPoint1,\r\n point1: point1,\r\n startPoint2: startPoint2,\r\n point2: point2,\r\n touch: touch\r\n };\r\n io.events.dispatchImmediately(\"resize\", imev);\r\n }\r\n };\r\n /**\r\n * Handles all the preparations of the element when it starts to be dragged.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.processDragStart = function (io, pointer, ev) {\r\n // Add to draggedObjects\r\n this.transformedObjects.moveValue(io);\r\n if (this.shouldCancelHovers(pointer)) {\r\n this.cancelAllHovers(ev);\r\n }\r\n // Report \"dragstart\"\r\n var imev = {\r\n type: \"dragstart\",\r\n target: io,\r\n event: ev,\r\n touch: pointer ? pointer.touch : false\r\n };\r\n // Log object that we are starting to drag, so we can check against and\r\n // avoid hovers on other objects that might be in the path of movement.\r\n if (pointer) {\r\n pointer.dragTarget = io;\r\n //pointer.startPoint = pointer.point;\r\n }\r\n /**\r\n * If pointer is set we will not fire the event until the pointer has\r\n * actually moved. If it's not set we don't have to wait for anything, so we\r\n * just fire off the event right away.\r\n */\r\n if (pointer && pointer.dragStartEvents) {\r\n pointer.dragStartEvents.push(imev);\r\n }\r\n else {\r\n if (!system.isPaused) {\r\n io.dispatchImmediately(\"dragstart\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Finishes up element drag operation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.processDragStop = function (io, pointer, ev) {\r\n // Pointer set?\r\n if (!pointer) {\r\n pointer = this.getDragPointer(io);\r\n }\r\n // Unset drag object\r\n if (pointer) {\r\n pointer.dragTarget = undefined;\r\n }\r\n // Removed from transformedObjects\r\n this.transformedObjects.removeValue(io);\r\n // Unlock document\r\n //this.unlockDocument();\r\n // Report dragstop\r\n if (!pointer || this.moved(pointer, 0)) {\r\n if (io.events.isEnabled(\"dragstop\") && !system.isPaused) {\r\n var imev = {\r\n type: \"dragstop\",\r\n target: io,\r\n touch: pointer ? pointer.touch : false\r\n };\r\n io.events.dispatchImmediately(\"dragstop\", imev);\r\n }\r\n }\r\n };\r\n /**\r\n * Handles all the preparations of the element when it starts to be resized.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.processResizeStart = function (io, pointer, ev) {\r\n // Add to draggedObjects\r\n this.transformedObjects.moveValue(io);\r\n };\r\n /**\r\n * Finishes up element drag operation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @param ev Original event\r\n */\r\n Interaction.prototype.processResizeStop = function (io, pointer, ev) {\r\n // Removed from transformedObjects\r\n this.transformedObjects.removeValue(io);\r\n };\r\n /**\r\n * ==========================================================================\r\n * Controls for InteractionObjects initiating directly\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Manually triggers drag start on the element. Could be useful in cases\r\n * where tracking or dragging one element can also influence dragging another\r\n * element.\r\n *\r\n * Passing in `pointer` reference is advisable. If not passed in it will try\r\n * to determine which pointer to attach to. However, it's better to specify\r\n * it explicitly.\r\n *\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.dragStart = function (io, pointer) {\r\n if (!pointer) {\r\n pointer = this.getDragPointer(io);\r\n }\r\n if (pointer) {\r\n this.handleDown(io, pointer, pointer.lastDownEvent);\r\n }\r\n };\r\n /**\r\n * Manually ends drag on the element.\r\n *\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.dragStop = function (io, pointer, cancelled) {\r\n if (!pointer) {\r\n pointer = this.getDragPointer(io);\r\n }\r\n if (pointer && !cancelled) {\r\n this.handleGlobalUp(pointer, pointer.lastUpEvent, cancelled);\r\n }\r\n };\r\n /**\r\n * This method uses a fuzzy logic to find the pointer to be used for dragging.\r\n * Beware that this is not a rock-solid solution. If there are a few objects\r\n * being dragged at the same time, you may get unexepected results.\r\n *\r\n * @param io InteractionObject to get pointers from\r\n * @return Pointer currently being used for dragging\r\n */\r\n Interaction.prototype.getDragPointer = function (io) {\r\n if (io) {\r\n // InteractionObject is supplied\r\n // Use it's first down pointer\r\n return io.downPointers.getIndex(0);\r\n }\r\n else if (this.transformedObjects.length) {\r\n // Use first dragged object\r\n return this.getDragPointer(this.transformedObjects.getIndex(0));\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n /**\r\n * ==========================================================================\r\n * Utils\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns pointer id for the given event object.\r\n *\r\n * @param ev Event\r\n * @return Pointer ID\r\n */\r\n Interaction.prototype.getPointerId = function (ev) {\r\n var id = \"\";\r\n if ($type.hasValue(ev.identifier)) {\r\n id = \"\" + ev.identifier;\r\n }\r\n else if ($type.hasValue(ev.pointerId)) {\r\n id = \"\" + ev.pointerId;\r\n }\r\n else {\r\n id = \"m\";\r\n }\r\n return id.replace(\"-\", \"\");\r\n };\r\n /**\r\n * Returns a cursor position of the event.\r\n *\r\n * @param ev Original event\r\n * @return Event point\r\n */\r\n Interaction.prototype.getPointerPoint = function (ev) {\r\n return {\r\n \"x\": ev.clientX,\r\n \"y\": ev.clientY\r\n };\r\n };\r\n /**\r\n * Returns [[Pointer]] object that is associated with the Event.\r\n *\r\n * If no such [[Pointer]] object exists, it is created.\r\n *\r\n * @param ev Event\r\n * @return Pointer\r\n */\r\n Interaction.prototype.getPointer = function (ev) {\r\n // Get pointer id\r\n var id = this.getPointerId(ev);\r\n // Get current coordinates\r\n var point = this.getPointerPoint(ev);\r\n // Look for the pointer in the Dictionary if it maybe already exists\r\n var pointer;\r\n if (this.pointers.hasKey(id)) {\r\n // We already have such pointer\r\n pointer = this.pointers.getKey(id);\r\n // We need this, because Edge reuses pointer ids across touch and mouse\r\n pointer.touch = this.isPointerTouch(ev);\r\n // Reset pointer\r\n //pointer.point = point;\r\n }\r\n else {\r\n // Init pointer\r\n pointer = {\r\n \"id\": id,\r\n //\"touch\": !(ev instanceof MouseEvent) || ((<any>ev).pointerType && (<any>ev).pointerType != \"pointer\"),\r\n //\"touch\": !(ev instanceof MouseEvent) || ((<any>ev).pointerType && (<any>ev).pointerType != \"mouse\"),\r\n \"touch\": this.isPointerTouch(ev),\r\n \"startPoint\": point,\r\n \"startTime\": $time.getTime(),\r\n \"point\": point,\r\n \"track\": [],\r\n \"swipeCanceled\": false,\r\n \"dragStartEvents\": []\r\n };\r\n // Add first breadcrumb\r\n this.addBreadCrumb(pointer, point);\r\n // Add for re-use later\r\n this.pointers.setKey(id, pointer);\r\n }\r\n // Log last event\r\n pointer.lastEvent = ev;\r\n this.lastPointer = pointer;\r\n return pointer;\r\n };\r\n /**\r\n * Determines if pointer event originated from a touch pointer or mouse.\r\n *\r\n * @param ev Original event\r\n * @return Touch pointer?\r\n */\r\n Interaction.prototype.isPointerTouch = function (ev) {\r\n if (typeof Touch !== \"undefined\" && ev instanceof Touch) {\r\n return true;\r\n }\r\n else if (typeof PointerEvent !== \"undefined\" && ev instanceof PointerEvent && $type.hasValue(ev.pointerType)) {\r\n switch (ev.pointerType) {\r\n case \"touch\":\r\n case \"pen\":\r\n case 2:\r\n return true;\r\n case \"mouse\":\r\n case 4:\r\n return false;\r\n default:\r\n return !(ev instanceof MouseEvent);\r\n }\r\n }\r\n else if ($type.hasValue(ev.type)) {\r\n if (ev.type.match(/^mouse/)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Resets the poiner to original state, i.e. cleans movement information,\r\n * starting point, etc.\r\n *\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.resetPointer = function (pointer, ev) {\r\n // Get current coordinates\r\n var point = this.getPointerPoint(ev);\r\n ;\r\n pointer.startTime = $time.getTime();\r\n pointer.startPoint = { x: point.x, y: point.y };\r\n pointer.point = { x: point.x, y: point.y };\r\n pointer.track = [];\r\n pointer.swipeCanceled = false;\r\n //clearTimeout(pointer.swipeTimeout);\r\n //clearTimeout(pointer.holdTimeout);\r\n };\r\n /**\r\n * Adds a \"breadcrumb\" point to the [[Pointer]] to log its movement path.\r\n *\r\n * @param pointer Pointer\r\n * @param point Point coordinates\r\n */\r\n Interaction.prototype.addBreadCrumb = function (pointer, point) {\r\n pointer.track.push({\r\n \"timestamp\": $time.getTime(),\r\n \"point\": point\r\n });\r\n };\r\n /**\r\n * Prepares the document for various touch-related operations.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.lockDocument = function () {\r\n this.prepElement(this.body);\r\n };\r\n /**\r\n * Restores document functionality.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.unlockDocument = function () {\r\n if (this.transformedObjects.length == 0) {\r\n this.restoreAllStyles(this.body);\r\n }\r\n };\r\n /**\r\n * Lock element (disable all touch)\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.lockElement = function (io) {\r\n this.prepElement(io);\r\n };\r\n /**\r\n * Restores element's functionality.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.unlockElement = function (io) {\r\n this.restoreAllStyles(io);\r\n };\r\n /**\r\n * Locks document's wheel scroll.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.lockWheel = function () {\r\n window.addEventListener(this._pointerEvents.wheel, this.wheelLockEvent, this._passiveSupported ? { passive: false } : false);\r\n };\r\n /**\r\n * Unlocks document's wheel scroll.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Interaction.prototype.unlockWheel = function () {\r\n window.removeEventListener(this._pointerEvents.wheel, this.wheelLockEvent);\r\n };\r\n /**\r\n * Checks if top element at pointer's position belongs to the SVG.\r\n *\r\n * @ignore Exlude from docs\r\n * @param pointer Pointer\r\n * @param svg The <svg> element\r\n * @param id A unique identifier of the object that is checking for locality\r\n * @return Belongs to SVG\r\n */\r\n Interaction.prototype.isLocalElement = function (pointer, svg, id) {\r\n var cached = this.getCache(\"local_pointer_\" + pointer.id);\r\n if ($type.hasValue(cached)) {\r\n return cached;\r\n }\r\n var doc = ($dom.getRoot(svg) || document);\r\n if (doc.elementFromPoint) {\r\n var target = doc.elementFromPoint(pointer.point.x, pointer.point.y);\r\n var local = target && $dom.contains(svg, target);\r\n this.setCache(\"local_pointer_\" + pointer.id + \"_\" + id, local, 100);\r\n return local;\r\n }\r\n return false;\r\n };\r\n /**\r\n * A function that cancels mouse wheel scroll.\r\n *\r\n * @ignore Exclude from docs\r\n * @param ev Event object\r\n * @return Returns `false` to cancel\r\n */\r\n Interaction.prototype.wheelLockEvent = function (ev) {\r\n ev.preventDefault();\r\n return false;\r\n };\r\n /**\r\n * Applies a set of styles to an element. Stores the original styles so they\r\n * can be restored later.\r\n *\r\n * @ignore\r\n * @param io Element\r\n */\r\n Interaction.prototype.prepElement = function (io) {\r\n var el = io.element;\r\n if (el) {\r\n // Define possible props\r\n var props = [\r\n \"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\r\n \"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\r\n \"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\r\n \"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\r\n \"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\r\n \"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\r\n ];\r\n for (var i = 0; i < props.length; i++) {\r\n if (props[i] in el.style) {\r\n this.setTemporaryStyle(io, props[i], \"none\");\r\n }\r\n }\r\n // Remove iOS-specific selection;\r\n this.setTemporaryStyle(io, \"tapHighlightColor\", \"rgba(0, 0, 0, 0)\");\r\n //this.setTemporaryStyle(io, \"webkitOverflowScrolling\", \"none\");\r\n }\r\n };\r\n /**\r\n * Restores replaced styles\r\n *\r\n * @ignore\r\n * @param io Element\r\n */\r\n Interaction.prototype.unprepElement = function (io) {\r\n var el = io.element;\r\n if (el) {\r\n // Define possible props\r\n var props = [\r\n \"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\r\n \"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\r\n \"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\r\n \"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\r\n \"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\r\n \"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\r\n ];\r\n for (var i = 0; i < props.length; i++) {\r\n if (props[i] in el.style) {\r\n this.restoreStyle(io, props[i]);\r\n }\r\n }\r\n // Remove iOS-specific selection;\r\n this.restoreStyle(io, \"tapHighlightColor\");\r\n //this.restoreStyle(io, \"webkitOverflowScrolling\");\r\n }\r\n };\r\n /**\r\n * Returns an option associated with hit events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getHitOption = function (io, option) {\r\n var res = io.hitOptions[option];\r\n if (typeof res === \"undefined\") {\r\n res = this.hitOptions[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns an option associated with hover events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getHoverOption = function (io, option) {\r\n var res = io.hoverOptions[option];\r\n if (typeof res === \"undefined\") {\r\n res = this.hoverOptions[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns an option associated with swipe events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getSwipeOption = function (io, option) {\r\n var res = io.swipeOptions[option];\r\n if (typeof res === \"undefined\") {\r\n res = this.swipeOptions[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns an option for keyboard.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getKeyboardOption = function (io, option) {\r\n var res = io.keyboardOptions[option];\r\n if (typeof res === \"undefined\") {\r\n res = this.keyboardOptions[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns an option for mouse.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getMouseOption = function (io, option) {\r\n var res = io.mouseOptions[option];\r\n if (typeof res === \"undefined\") {\r\n res = this.mouseOptions[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns an option associated with inertia.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param type Inertia type\r\n * @param option Option key\r\n * @return Option value\r\n */\r\n Interaction.prototype.getInertiaOption = function (io, type, option) {\r\n var options = io.inertiaOptions.getKey(type);\r\n var res;\r\n if (options && $type.hasValue(options[option])) {\r\n res = options[option];\r\n }\r\n else {\r\n res = this.inertiaOptions.getKey(type)[option];\r\n }\r\n return res;\r\n };\r\n /**\r\n * Stops currently going on inertia. Useful if inertia is currently being\r\n * animated and the object is being interacted with.\r\n *\r\n * @param io Element\r\n */\r\n Interaction.prototype.stopInertia = function (io) {\r\n var x;\r\n var inertias = [\"move\", \"resize\"];\r\n for (var i = 0; i < inertias.length; i++) {\r\n x = inertias[i];\r\n if (io.inertias.hasKey(x)) {\r\n var inertia = io.inertias.getKey(x);\r\n if (inertia) {\r\n inertia.dispose();\r\n //io.inertiaAnimations.removeKey(x);\r\n //this.processDragStop(io);\r\n continue;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Check if swiping is currently being performed on an object.\r\n *\r\n * @param io Element\r\n * @param pointer Pointer to check\r\n * @return `true` if swiping\r\n */\r\n Interaction.prototype.swiping = function (io, pointer) {\r\n var now = $time.getTime();\r\n if (pointer.swipeCanceled || !io.swipeable) {\r\n return false;\r\n }\r\n else if ((Math.abs(pointer.startPoint.y - pointer.point.y) < this.getSwipeOption(io, \"verticalThreshold\")) &&\r\n (pointer.startTime > (now - this.getSwipeOption(io, \"time\")))) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Returns `true` if a successfull swipe action was performed on an element.\r\n *\r\n * @param io Element\r\n * @param pointer Pointer\r\n * @return Swiped?\r\n */\r\n Interaction.prototype.swiped = function (io, pointer) {\r\n var now = $time.getTime();\r\n if (pointer.swipeCanceled) {\r\n return false;\r\n }\r\n else if ((Math.abs(pointer.startPoint.x - pointer.point.x) > this.getSwipeOption(io, \"horizontalThreshold\")) &&\r\n (Math.abs(pointer.startPoint.y - pointer.point.y) < this.getSwipeOption(io, \"verticalThreshold\")) &&\r\n (pointer.startTime > (now - this.getSwipeOption(io, \"time\")))) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Applies style to mouse cursor based on its stage in relation to\r\n * [[InteractionObject]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param Element\r\n */\r\n Interaction.prototype.applyCursorOverStyle = function (io) {\r\n // Get sprite's cursor ooptions\r\n var options = io.cursorOptions;\r\n if (!$type.hasValue(options.overStyle)) {\r\n return;\r\n }\r\n // Apply cursor down styles\r\n for (var i = 0; i < options.overStyle.length; i++) {\r\n $dom.setStyle(io.element, options.overStyle[i].property, options.overStyle[i].value);\r\n }\r\n };\r\n /**\r\n * Applies style to mouse cursor based on its stage in relation to\r\n * [[InteractionObject]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.applyCursorDownStyle = function (io, pointer) {\r\n // Not applicable for touch pointers since they don't display a cursor\r\n if (pointer && pointer.touch) {\r\n return;\r\n }\r\n var downStyle = io.cursorOptions.downStyle;\r\n // Is down?\r\n if (io.downPointers.contains(pointer) && $type.hasValue(downStyle)) {\r\n // Apply cursor down styles\r\n for (var i = 0; i < downStyle.length; i++) {\r\n this.setTemporaryStyle(this.body, downStyle[i].property, downStyle[i].value);\r\n this.setTemporaryStyle(io, downStyle[i].property, downStyle[i].value);\r\n }\r\n }\r\n };\r\n /**\r\n * Restores original cursor style for the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param io Element\r\n * @param pointer Pointer\r\n */\r\n Interaction.prototype.restoreCursorDownStyle = function (io, pointer) {\r\n // Not applicable for touch pointers since they don't display a cursor\r\n if (pointer && pointer.touch) {\r\n return;\r\n }\r\n var downStyle = io.cursorOptions.downStyle;\r\n // Is down?\r\n if (io.downPointers.contains(pointer) && $type.hasValue(downStyle)) {\r\n // Apply cursor down styles\r\n for (var i = 0; i < downStyle.length; i++) {\r\n this.restoreStyle(this.body, downStyle[i].property);\r\n this.restoreStyle(io, downStyle[i].property);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets style on the body of the document.\r\n *\r\n * @ignore Exclude from docs\r\n * @param style Style definitions\r\n */\r\n Interaction.prototype.setGlobalStyle = function (style) {\r\n var body = getInteraction().body;\r\n var styles = ($type.isArray(style) ? style : [style]);\r\n for (var i = 0; i < styles.length; i++) {\r\n this.setTemporaryStyle(body, styles[i].property, styles[i].value);\r\n }\r\n };\r\n /**\r\n * Restores style on the body of the document.\r\n *\r\n * @ignore Exclude from docs\r\n * @param style Style definitions\r\n */\r\n Interaction.prototype.restoreGlobalStyle = function (style) {\r\n var body = getInteraction().body;\r\n var styles = ($type.isArray(style) ? style : [style]);\r\n for (var i = 0; i < styles.length; i++) {\r\n this.restoreStyle(body, styles[i].property);\r\n }\r\n };\r\n /**\r\n * Checks if element is a non-cahrt element.\r\n *\r\n * @param io InteractionObject\r\n * @return Global element?\r\n */\r\n Interaction.prototype.isGlobalElement = function (io) {\r\n return document.body === io.element;\r\n };\r\n /**\r\n * Checks if pointer has moved since it was created.\r\n *\r\n * @param pointer Pointer\r\n * @param tolerance Tolerance in pixels\r\n * @param minTime Minimum time required for the pointer to be down to be considered moved\r\n * @return `true` if the pointer has moved\r\n */\r\n Interaction.prototype.moved = function (pointer, tolerance, minTime) {\r\n /*// If there was more time, we don't care if cursor actually moved\r\n let duration = $time.getTime() - pointer.startTime;\r\n if ($type.hasValue(minTime) && (minTime > duration)) {\r\n return false;\r\n }*/\r\n if (minTime === void 0) { minTime = 300; }\r\n // That was quick measure shift\r\n var shift = this.getShift(pointer);\r\n return (Math.abs(shift.x) > tolerance) || (Math.abs(shift.y) > tolerance);\r\n };\r\n /**\r\n * Returns if pointer is \"old\", meaning it has been pressing for more than\r\n * X milliseconds.\r\n *\r\n * @ignore\r\n * @param pointer Pointer\r\n * @param minTime Minimum time to consider pointer old\r\n * @return {boolean}\r\n */\r\n Interaction.prototype.old = function (pointer, minTime) {\r\n if (minTime === void 0) { minTime = 300; }\r\n return $time.getTime() - pointer.startTime > minTime;\r\n };\r\n /**\r\n * Returns total a shift in pointers coordinates between its original\r\n * position and now.\r\n *\r\n * @param pointer Pointer\r\n * @return Shift in coordinates (x/y)\r\n */\r\n Interaction.prototype.getShift = function (pointer) {\r\n return {\r\n \"x\": pointer.startPoint.x - pointer.point.x,\r\n \"y\": pointer.startPoint.y - pointer.point.y\r\n };\r\n };\r\n /**\r\n * Returns a point from [[Pointer]]'s move history at a certain timetamp.\r\n *\r\n * @param pointer Pointer\r\n * @param timestamp Timestamp\r\n * @return Point\r\n */\r\n Interaction.prototype.getTrailPoint = function (pointer, timestamp) {\r\n var res;\r\n for (var i = 0; i < pointer.track.length; i++) {\r\n if (pointer.track[i].timestamp >= timestamp) {\r\n res = pointer.track[i];\r\n break;\r\n }\r\n }\r\n return res;\r\n };\r\n /**\r\n * Checks if same pointer already exists in the list.\r\n *\r\n * @param list List to check agains\r\n * @param pointer Pointer\r\n * @return Exists?\r\n */\r\n Interaction.prototype.pointerExists = function (list, pointer) {\r\n var exists = false;\r\n list.each(function (item) {\r\n if (item == pointer) {\r\n return;\r\n }\r\n exists = item.point.x == pointer.point.x && item.point.y == pointer.point.y;\r\n });\r\n return exists;\r\n };\r\n /**\r\n * Returns an [[InteractionObject]] representation of a DOM element.\r\n *\r\n * You can use this on any HTML or SVG element, to add interactive features\r\n * to it.\r\n *\r\n * @param element Element\r\n * @return InteractionObject\r\n */\r\n Interaction.prototype.getInteraction = function (element) {\r\n return new InteractionObject(element);\r\n };\r\n /**\r\n * Sets a style property on an element. Stores original value to be restored\r\n * later with [[restoreStyle]].\r\n *\r\n * @see {@link restoreStyle}\r\n * @param io Element\r\n * @param property Property\r\n * @param value Value\r\n */\r\n Interaction.prototype.setTemporaryStyle = function (io, property, value) {\r\n // Get element\r\n //let el = io.element.tagName == \"g\" ? <SVGSVGElement>io.element.parentNode : io.element;\r\n var el = io.element;\r\n // Save original property if it is set and hasn't been saved before already\r\n if ($type.hasValue(el.style[property]) && !io.replacedStyles.hasKey(property)) {\r\n io.replacedStyles.setKey(property, el.style[property]);\r\n }\r\n // Replace with the new one\r\n $dom.setStyle(el, property, value);\r\n };\r\n /**\r\n * Restores specific style on an element.\r\n *\r\n * @param io Element\r\n * @param property Style property\r\n */\r\n Interaction.prototype.restoreStyle = function (io, property) {\r\n // Reset style\r\n if (io.replacedStyles.hasKey(property)) {\r\n io.element.style[property] = io.replacedStyles.getKey(property);\r\n io.replacedStyles.removeKey(property);\r\n }\r\n else {\r\n delete io.element.style[property];\r\n }\r\n };\r\n /**\r\n * Restore temporarily reset styles on an element.\r\n *\r\n * @param io Element\r\n */\r\n Interaction.prototype.restoreAllStyles = function (io) {\r\n $iter.each(io.replacedStyles.iterator(), function (a) {\r\n var key = a[0];\r\n var value = a[1];\r\n io.element.style[key] = value;\r\n io.replacedStyles.removeKey(key);\r\n });\r\n };\r\n /**\r\n * Disposes this object and cleans up after itself.\r\n */\r\n Interaction.prototype.dispose = function () {\r\n if (!this.isDisposed()) {\r\n _super.prototype.dispose.call(this);\r\n this.restoreAllStyles(this.body);\r\n this.unlockWheel();\r\n }\r\n };\r\n // @ts-ignore Used for debugging\r\n Interaction.prototype.log = function (text, ev, io) {\r\n var show = true;\r\n if (show) {\r\n // Touchlist?\r\n if (ev.changedTouches) {\r\n for (var i = 0; i < ev.changedTouches.length; i++) {\r\n this.logTouch(text, ev.type, ev.changedTouches[i]);\r\n }\r\n return;\r\n }\r\n // Get type\r\n var type = \"\";\r\n if (ev.pointerType) {\r\n switch (ev.pointerType) {\r\n case 2:\r\n type = \"touch\";\r\n break;\r\n case 4:\r\n type = \"mouse\";\r\n break;\r\n default:\r\n type = ev.pointerType;\r\n break;\r\n }\r\n }\r\n else if (typeof TouchEvent != \"undefined\" && ev instanceof TouchEvent) {\r\n type = \"touch\";\r\n }\r\n else if (ev.type.match(/^mouse/)) {\r\n type = \"mouse\";\r\n }\r\n else {\r\n type = \"???\";\r\n }\r\n // Get ID\r\n var id = \"\";\r\n if ($type.hasValue(ev.identifier)) {\r\n id = ev.identifier;\r\n }\r\n else if ($type.hasValue(ev.pointerId)) {\r\n id = ev.pointerId;\r\n }\r\n else {\r\n id = \"???\";\r\n }\r\n if (io) {\r\n console.log(text + \" (\" + io.uid + \") \" + ev.type + \" \" + type + \" \" + id);\r\n }\r\n else {\r\n console.log(text + \" \" + ev.type + \" \" + type + \" \" + id);\r\n }\r\n }\r\n };\r\n /**\r\n * Checks whether there are currently any objects being transformed (dragged\r\n * or resized).\r\n *\r\n * If `except` is set, that object will be ignored.\r\n *\r\n * @since 4.9.3\r\n * @param except Ignore this object(s)\r\n * @return Objects are being transformed\r\n */\r\n Interaction.prototype.areTransformed = function (except) {\r\n var count = this.transformedObjects.length;\r\n if (except) {\r\n var ex = $type.isArray(except) ? except : [except];\r\n for (var i = 0; i < ex.length; i++) {\r\n if (this.transformedObjects.contains(ex[i])) {\r\n count--;\r\n }\r\n }\r\n }\r\n return count > 0;\r\n };\r\n /**\r\n * Log.\r\n */\r\n Interaction.prototype.logTouch = function (text, type, ev) {\r\n console.log(text + \" \" + type + \" \" + \"touch\" + \" \" + ev.identifier);\r\n };\r\n Object.defineProperty(Interaction, \"passiveSupported\", {\r\n /**\r\n * Indicates if passive mode options is supported by this browser.\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (this._passiveSupported == null) {\r\n // Check for passive mode support\r\n try {\r\n var options_1 = Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n _this._passiveSupported = true;\r\n }\r\n });\r\n window.addEventListener(\"test\", options_1, options_1);\r\n window.removeEventListener(\"test\", options_1, options_1);\r\n }\r\n catch (err) {\r\n this._passiveSupported = false;\r\n }\r\n }\r\n return this._passiveSupported;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Interaction;\r\n}(BaseObjectEvents));\r\nexport { Interaction };\r\nvar interaction = null;\r\n/**\r\n * Returns a single unified global instance of [[Interaction]].\r\n *\r\n * All code should use this function, rather than create their own instances\r\n * of [[Interaction]].\r\n */\r\nexport function getInteraction() {\r\n if (interaction == null) {\r\n interaction = new Interaction();\r\n }\r\n return interaction;\r\n}\r\n//# sourceMappingURL=Interaction.js.map","/**\r\n * Global options.\r\n */\r\nexport var options = {\r\n verbose: true,\r\n commercialLicense: false,\r\n classNamePrefix: \"amcharts-\",\r\n autoSetClassName: false,\r\n minPolylineStep: 0.5,\r\n onlyShowOnViewport: false,\r\n queue: false,\r\n autoDispose: false,\r\n licenses: [],\r\n suppressErrors: false,\r\n suppressWarnings: false,\r\n animationsEnabled: true,\r\n nonce: \"\",\r\n deferredDelay: 100,\r\n disableHoverOnTransform: \"never\",\r\n pixelPerfectPrecision: 0\r\n};\r\n//# sourceMappingURL=Options.js.map","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","import { __extends, __generator, __read } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Disposer } from \"./Disposer\";\r\nimport { EventDispatcher } from \"./EventDispatcher\";\r\nimport * as $object from \"./Object\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $string from \"./String\";\r\n/**\r\n * A disposable dictionary, which when disposed itself will call `dispose()`\r\n * method on all its items.\r\n */\r\nvar DictionaryDisposer = /** @class */ (function (_super) {\r\n __extends(DictionaryDisposer, _super);\r\n function DictionaryDisposer(dict) {\r\n var _this = this;\r\n var disposer = dict.events.on(\"removed\", function (x) {\r\n x.oldValue.dispose();\r\n }, undefined, false);\r\n _this = _super.call(this, function () {\r\n disposer.dispose();\r\n // TODO clear the dictionary ?\r\n $iter.each(dict.iterator(), function (a) {\r\n var v = a[1];\r\n v.dispose();\r\n });\r\n }) || this;\r\n return _this;\r\n }\r\n return DictionaryDisposer;\r\n}(Disposer));\r\nexport { DictionaryDisposer };\r\n/**\r\n * A Dictionary is collection where values of some type can be mapped to\r\n * string keys.\r\n *\r\n * You might call it an \"associative list\" or \"associative array\".\r\n */\r\nvar Dictionary = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n */\r\n function Dictionary() {\r\n /**\r\n * Event dispatcher.\r\n */\r\n this.events = new EventDispatcher();\r\n this._dictionary = {};\r\n }\r\n /**\r\n * Returns `true` if key exists in Dictionary.\r\n *\r\n * @param key The key to search for\r\n * @return `true` if key exists, `false` if it doesn't\r\n */\r\n Dictionary.prototype.hasKey = function (key) {\r\n return $object.hasKey(this._dictionary, key);\r\n };\r\n /**\r\n * Returns the value for a specific key.\r\n *\r\n * @param key The key to search for\r\n * @return Value for the key, or `undefined` if it doesn't exist\r\n */\r\n Dictionary.prototype.getKey = function (key) {\r\n return this._dictionary[key];\r\n };\r\n /**\r\n * Inserts value at specific key.\r\n *\r\n * Will thrown an exception if the key already exists in the dictionary.\r\n *\r\n * @param key Key\r\n * @param value Value\r\n */\r\n Dictionary.prototype.insertKey = function (key, value) {\r\n if ($object.hasKey(this._dictionary, key)) {\r\n throw new Error(\"Key \" + key + \" already exists in dictionary\");\r\n }\r\n else {\r\n this._dictionary[key] = value;\r\n if (this.events.isEnabled(\"insertKey\")) {\r\n this.events.dispatchImmediately(\"insertKey\", {\r\n type: \"insertKey\",\r\n target: this,\r\n key: key,\r\n newValue: value\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Adds or updates key/value into dictionary.\r\n *\r\n * If the key already exists, the old value will be overwritten.\r\n *\r\n * If the new value is exactly the same as the old value (using ===), it won't do anything.\r\n *\r\n * @param key Key\r\n * @param value Value\r\n */\r\n Dictionary.prototype.setKey = function (key, value) {\r\n if ($object.hasKey(this._dictionary, key)) {\r\n var oldValue = this._dictionary[key];\r\n if (oldValue !== value) {\r\n this._dictionary[key] = value;\r\n if (this.events.isEnabled(\"setKey\")) {\r\n this.events.dispatchImmediately(\"setKey\", {\r\n type: \"setKey\",\r\n target: this,\r\n key: key,\r\n oldValue: oldValue,\r\n newValue: value\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n oldValue: oldValue\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this._dictionary[key] = value;\r\n if (this.events.isEnabled(\"insertKey\")) {\r\n this.events.dispatchImmediately(\"insertKey\", {\r\n type: \"insertKey\",\r\n target: this,\r\n key: key,\r\n newValue: value\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Updates the value at specific `key` using custom function.\r\n *\r\n * Passes in current value into the function, and uses its output as a new\r\n * value.\r\n *\r\n * If the new value is exactly the same as the old value (using ===), it won't do anything.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key Key\r\n * @param fn Function to transform the value\r\n */\r\n Dictionary.prototype.updateKey = function (key, fn) {\r\n if ($object.hasKey(this._dictionary, key)) {\r\n var oldValue = this._dictionary[key];\r\n var newValue = fn(oldValue);\r\n if (oldValue !== newValue) {\r\n this._dictionary[key] = newValue;\r\n if (this.events.isEnabled(\"setKey\")) {\r\n this.events.dispatchImmediately(\"setKey\", {\r\n type: \"setKey\",\r\n target: this,\r\n key: key,\r\n oldValue: oldValue,\r\n newValue: newValue\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n oldValue: oldValue\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n throw new Error(\"Key \" + key + \" doesn't exist in dictionary\");\r\n }\r\n };\r\n /**\r\n * Removes value at specific `key` from dictionary.\r\n *\r\n * @param key Key to remove\r\n */\r\n Dictionary.prototype.removeKey = function (key) {\r\n if ($object.hasKey(this._dictionary, key)) {\r\n var oldValue = this._dictionary[key];\r\n delete this._dictionary[key];\r\n if (this.events.isEnabled(\"removeKey\")) {\r\n this.events.dispatchImmediately(\"removeKey\", {\r\n type: \"removeKey\",\r\n target: this,\r\n key: key,\r\n oldValue: oldValue\r\n });\r\n }\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n oldValue: oldValue\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * [insertKeyIfEmpty description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo description\r\n * @param key [description]\r\n * @param ifEmpty [description]\r\n * @return [description]\r\n */\r\n Dictionary.prototype.insertKeyIfEmpty = function (key, ifEmpty) {\r\n if (!this.hasKey(key)) {\r\n this.insertKey(key, ifEmpty());\r\n }\r\n return this.getKey(key);\r\n };\r\n /**\r\n * Removes all items from the dictionary.\r\n */\r\n Dictionary.prototype.clear = function () {\r\n var _this = this;\r\n // TODO dispatch this after clear\r\n if (this.events.isEnabled(\"removed\")) {\r\n $object.each(this._dictionary, function (key, value) {\r\n _this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: _this,\r\n oldValue: value\r\n });\r\n });\r\n }\r\n this._dictionary = {};\r\n if (this.events.isEnabled(\"cleared\")) {\r\n this.events.dispatchImmediately(\"cleared\", {\r\n type: \"cleared\",\r\n target: this\r\n });\r\n }\r\n };\r\n /**\r\n * Copies items from another Dictionary.\r\n *\r\n * @param source A Dictionary to copy items from\r\n */\r\n Dictionary.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source.iterator(), function (a) {\r\n // TODO fix this type cast\r\n _this.setKey(a[0], a[1]);\r\n });\r\n };\r\n /**\r\n * Returns an interator that can be used to iterate through all items in\r\n * the dictionary.\r\n *\r\n * @return Iterator\r\n */\r\n Dictionary.prototype.iterator = function () {\r\n // @todo fix this type after the Iterator bug is fixed\r\n // https://github.com/Microsoft/TypeScript/issues/16730\r\n return $object.entries(this._dictionary);\r\n };\r\n /**\r\n * Returns an ES6 iterator for the keys/values of the dictionary.\r\n */\r\n Dictionary.prototype[Symbol.iterator] = function () {\r\n var _a, _b, _i, key;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = [];\r\n for (_b in this._dictionary)\r\n _a.push(_b);\r\n _i = 0;\r\n _c.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n key = _a[_i];\r\n if (!$object.hasKey(this._dictionary, key)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, [key, this._dictionary[key]]];\r\n case 2:\r\n _c.sent();\r\n _c.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n };\r\n /**\r\n * Calls `f` for each key/value in the dictionary.\r\n */\r\n Dictionary.prototype.each = function (f) {\r\n $iter.each(this.iterator(), function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n return f(key, value);\r\n });\r\n };\r\n /**\r\n * Returns an iterator that can be used to iterate through all items in\r\n * the dictionary, ordered by key.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Iterator\r\n */\r\n Dictionary.prototype.sortedIterator = function () {\r\n return $iter.sort(this.iterator(), function (x, y) { return $string.order(x[0], y[0]); });\r\n };\r\n return Dictionary;\r\n}());\r\nexport { Dictionary };\r\n/**\r\n * A version of a [[Dictionary]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nvar DictionaryTemplate = /** @class */ (function (_super) {\r\n __extends(DictionaryTemplate, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param t Template object\r\n */\r\n function DictionaryTemplate(t) {\r\n var _this = _super.call(this) || this;\r\n _this.template = t;\r\n return _this;\r\n }\r\n Object.defineProperty(DictionaryTemplate.prototype, \"template\", {\r\n /**\r\n * @return Template object\r\n */\r\n get: function () {\r\n return this._template;\r\n },\r\n /**\r\n * A \"template\" object to copy all properties from when creating new list\r\n * items.\r\n *\r\n * @param v Template object\r\n */\r\n set: function (v) {\r\n v.isTemplate = true;\r\n this._template = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all elements from other dictionary.\r\n *\r\n * @param source Source dictionary\r\n */\r\n DictionaryTemplate.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source.iterator(), function (a) {\r\n // TODO fix this type cast\r\n // TODO why does this need to clone ?\r\n _this.setKey(a[0], a[1].clone());\r\n });\r\n };\r\n /**\r\n * Instantiates a new object of the specified type, adds it to specified\r\n * `key` in the dictionary, and returns it.\r\n *\r\n * @param make Item type to use. Will use the default type for the dictionary if not specified.\r\n * @return Newly created item\r\n */\r\n DictionaryTemplate.prototype.create = function (key) {\r\n var _this = this;\r\n return this.insertKeyIfEmpty(key, function () { return _this.template.clone(); });\r\n };\r\n return DictionaryTemplate;\r\n}(Dictionary));\r\nexport { DictionaryTemplate };\r\n//# sourceMappingURL=Dictionary.js.map","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry, is } from \"./Registry\";\r\nimport { Container } from \"./Container\";\r\nimport { raf } from \"./utils/AsyncPending\";\r\nimport { triggerIdle } from \"./utils/AsyncPending\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $log from \"./utils/Log\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * The main class that handles system-wide tasks, like caching, heartbeats, etc.\r\n * @important\r\n */\r\nvar System = /** @class */ (function () {\r\n /**\r\n * Performs initialization of the System object.\r\n *\r\n * Called when the first [[Sprite]] object is created.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n function System() {\r\n /**\r\n * A flag indicating if the system is on pause.\r\n */\r\n this._isPaused = false;\r\n /**\r\n * Holds the list of currently playing animations.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this.animations = [];\r\n /**\r\n * Unique ID of the object.\r\n */\r\n this.uid = registry.getUniqueId();\r\n /**\r\n * @todo Description\r\n * @todo Needed?\r\n * @ignore Exclude from docs\r\n */\r\n this.dummyCounter = 0;\r\n this._frameRequested = false;\r\n this.updateStepDuration = 45;\r\n this.time = Date.now();\r\n }\r\n /**\r\n * Reports time elapsed since timer was reset.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Needed?\r\n * @param msg Message to report in console\r\n * @param reset Reset time counter\r\n */\r\n System.prototype.reportTime = function (msg, reset) {\r\n if (this.dummyCounter < 6) {\r\n //console.log(Date.now() - this.time, msg, this.dummyCounter2);\r\n }\r\n if (reset) {\r\n this.time = Date.now();\r\n }\r\n };\r\n /**\r\n * Performs \"heartbeat\" operations `frameRate` number of times per second.\r\n *\r\n * When the chart element is invalidated, it is not immediately redrawn.\r\n *\r\n * Instead it waits for the next `update()` cycle to be re-validated.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Maybe should be private?\r\n */\r\n System.prototype.update = function () {\r\n var _this = this;\r\n if (this._isPaused) {\r\n return;\r\n }\r\n this._frameRequested = false;\r\n var time = Date.now();\r\n registry.dispatchImmediately(\"enterframe\");\r\n //this.validateLayouts();\r\n //this.validatePositions();\r\n /*\r\n for (let key in registry.invalidLayouts) {\r\n this.validateLayouts(key);\r\n }\r\n for (let key in registry.invalidPositions) {\r\n this.validatePositions(key);\r\n }\r\n */\r\n var skippedComponents = [];\r\n // data objects first - do all calculations\r\n // only data is parsed in chunks, thats why we do for loop instead of a while like with other invalid items.\r\n // important to go backwards, as items are removed!\r\n // TODO use iterator instead\r\n for (var key in registry.invalidDatas) {\r\n if ($object.hasKey(registry.invalidDatas, key)) {\r\n var invalidData = registry.invalidDatas[key];\r\n while (invalidData.length > 0) {\r\n var component = invalidData[0];\r\n var dataProvider = component.dataProvider;\r\n if (!component.isDisposed()) {\r\n if (dataProvider && dataProvider.dataInvalid) {\r\n try {\r\n dataProvider.validateData();\r\n if (dataProvider.dataValidationProgress < 1) {\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n $array.remove(invalidData, dataProvider);\r\n dataProvider.raiseCriticalError(e);\r\n }\r\n }\r\n else {\r\n try {\r\n component.validateData();\r\n if (component.dataValidationProgress < 1) {\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n $array.remove(invalidData, component);\r\n component.raiseCriticalError(e);\r\n }\r\n }\r\n }\r\n else {\r\n $array.remove(invalidData, component);\r\n }\r\n }\r\n if (Date.now() - time > this.updateStepDuration) {\r\n break;\r\n }\r\n }\r\n }\r\n while (registry.invalidRawDatas.length > 0) {\r\n var component = registry.invalidRawDatas[0];\r\n if (!component.isDisposed()) {\r\n try {\r\n component.validateRawData();\r\n }\r\n catch (e) {\r\n $array.remove(registry.invalidRawDatas, component);\r\n component.raiseCriticalError(e);\r\n }\r\n }\r\n else {\r\n $array.remove(registry.invalidRawDatas, component);\r\n }\r\n }\r\n // TODO use iterator instead\r\n while (registry.invalidDataItems.length > 0) {\r\n var component = registry.invalidDataItems[0];\r\n var dataProvider = component.dataProvider;\r\n // this is needed to avoid partial value validation when data is parsed in chunks\r\n if (component.isDisposed() || component.dataInvalid || (dataProvider && dataProvider.dataInvalid)) {\r\n // void\r\n }\r\n else {\r\n try {\r\n component.validateDataItems();\r\n }\r\n catch (e) {\r\n $array.remove(registry.invalidDataItems, component);\r\n component.raiseCriticalError(e);\r\n }\r\n }\r\n // this might seem too much, as validateValues removes from invalidDataItems aswell, but just to be sure (in case validateData is overriden and no super is called)\r\n $array.remove(registry.invalidDataItems, component);\r\n }\r\n // TODO use iterator instead\r\n while (registry.invalidDataRange.length > 0) {\r\n var component = registry.invalidDataRange[0];\r\n var dataProvider = component.dataProvider;\r\n if (component.isDisposed() || component.dataInvalid || (dataProvider && dataProvider.dataInvalid)) {\r\n // void\r\n }\r\n else {\r\n try {\r\n component.validateDataRange();\r\n if (!component.skipRangeEvent) {\r\n component.dispatchImmediately(\"datarangechanged\");\r\n }\r\n component.skipRangeEvent = false;\r\n }\r\n catch (e) {\r\n $array.remove(registry.invalidDataRange, component);\r\n component.raiseCriticalError(e);\r\n }\r\n }\r\n // this might seem too much, as validateDataRange removes from invalidDataRange aswell, but just to be sure (in case validateData is overriden and no super is called)\r\n $array.remove(registry.invalidDataRange, component);\r\n }\r\n var skippedSprites = [];\r\n // display objects later\r\n // TODO use iterator instead\r\n $object.each(registry.invalidLayouts, function (key) {\r\n _this.validateLayouts(key);\r\n });\r\n $object.each(registry.invalidPositions, function (key) {\r\n _this.validatePositions(key);\r\n });\r\n var hasSkipped = false;\r\n time = Date.now();\r\n $object.each(registry.invalidSprites, function (key, invalidSprites) {\r\n var count = 0;\r\n while (invalidSprites.length > 0) {\r\n _this.validateLayouts(key);\r\n _this.validatePositions(key);\r\n count++;\r\n if (count == 5) {\r\n if (Date.now() - time > _this.updateStepDuration) {\r\n break;\r\n }\r\n count = 0;\r\n }\r\n var sprite = invalidSprites[invalidSprites.length - 1];\r\n // we need to check this, as validateLayout might validate sprite\r\n if (sprite && !sprite.isDisposed()) {\r\n if (!sprite._systemCheckIfValidate()) {\r\n // void\r\n skippedSprites.push(sprite);\r\n }\r\n else {\r\n if (!_this.checkIfValidate2(sprite)) {\r\n // void\r\n skippedSprites.push(sprite);\r\n }\r\n else {\r\n try {\r\n sprite._systemUpdate(skippedSprites);\r\n }\r\n catch (e) {\r\n sprite.invalid = false;\r\n $array.remove(invalidSprites, sprite);\r\n sprite.raiseCriticalError(e);\r\n }\r\n }\r\n }\r\n // this might seem too much, but it's ok\r\n sprite.invalid = false;\r\n }\r\n $array.remove(invalidSprites, sprite);\r\n }\r\n registry.invalidSprites[key] = registry.invalidSprites[key].concat(skippedSprites);\r\n });\r\n $object.each(registry.invalidSprites, function (key, value) {\r\n if (value.length > 0) {\r\n hasSkipped = true;\r\n }\r\n });\r\n $object.each(registry.invalidDatas, function (key, value) {\r\n if (value.length > 0) {\r\n hasSkipped = true;\r\n }\r\n });\r\n // TODO make this more efficient\r\n // TODO don't copy the array\r\n $array.each($array.copy(this.animations), function (x) {\r\n x.update();\r\n });\r\n //if(!hasSkipped){\r\n $object.each(registry.invalidLayouts, function (key) {\r\n _this.validateLayouts(key);\r\n });\r\n $object.each(registry.invalidPositions, function (key) {\r\n _this.validatePositions(key);\r\n });\r\n //}\r\n triggerIdle();\r\n $object.each(registry.invalidLayouts, function (key) {\r\n _this.validateLayouts(key);\r\n });\r\n $object.each(registry.invalidPositions, function (key) {\r\n _this.validatePositions(key);\r\n });\r\n registry.dispatchImmediately(\"exitframe\");\r\n if (hasSkipped || this.animations.length > 0 || skippedComponents.length > 0) {\r\n this.requestFrame();\r\n }\r\n if (this.updateStepDuration < 200) {\r\n var all0_1 = true;\r\n $object.each(registry.invalidDatas, function (key, value) {\r\n if (value.length > 0) {\r\n all0_1 = false;\r\n }\r\n });\r\n $object.each(registry.invalidSprites, function (key, value) {\r\n if (value.length > 0) {\r\n all0_1 = false;\r\n }\r\n });\r\n if (all0_1) {\r\n this.updateStepDuration = 200;\r\n }\r\n }\r\n };\r\n System.prototype.checkIfValidate2 = function (sprite) {\r\n if (sprite.dataItem && sprite.dataItem.component && sprite.dataItem.component.dataInvalid && !sprite.dataItem.component.isTemplate) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n /**\r\n * Requests new animation frame\r\n */\r\n System.prototype.requestFrame = function () {\r\n var _this = this;\r\n if (!this._frameRequested) {\r\n raf(function () {\r\n _this.update();\r\n });\r\n this._frameRequested = true;\r\n }\r\n };\r\n /**\r\n * Call this method if you update data or config of a chart that is in\r\n * hidden container, after revealing the container, so that labels and\r\n * possibly other elements can correctly arrange themselves.\r\n *\r\n * @since 4.7.10\r\n * @param container Target container\r\n */\r\n System.prototype.softInvalidate = function (container) {\r\n var _this = this;\r\n container.children.each(function (child) {\r\n if (child instanceof Container) {\r\n _this.softInvalidate(child);\r\n }\r\n if (child.measureFailed) {\r\n if (is(child, \"Label\")) {\r\n child.hardInvalidate();\r\n }\r\n else {\r\n child.invalidate();\r\n }\r\n child.measureFailed = false;\r\n }\r\n });\r\n };\r\n /**\r\n * Triggers position re-validation on all [[Sprite]] elements that have\r\n * invalid(ated) positions.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Maybe should be private?\r\n */\r\n System.prototype.validatePositions = function (id) {\r\n // invalid positions\r\n // TODO use iterator instead\r\n var invalidPositions = registry.invalidPositions[id];\r\n while (invalidPositions.length > 0) {\r\n var sprite = invalidPositions[invalidPositions.length - 1];\r\n if (!sprite.isDisposed()) {\r\n try {\r\n sprite._systemValidatePositions();\r\n }\r\n catch (e) {\r\n sprite.positionInvalid = false;\r\n $array.remove(invalidPositions, sprite);\r\n sprite.raiseCriticalError(e);\r\n }\r\n }\r\n else {\r\n $array.remove(invalidPositions, sprite);\r\n }\r\n }\r\n };\r\n /**\r\n * Triggers position re-validation on all [[Container]] elements that have\r\n * invalid(ated) layouts.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Maybe should be private?\r\n */\r\n System.prototype.validateLayouts = function (id) {\r\n // invalid positions\r\n // TODO use iterator instead\r\n var invalidLayouts = registry.invalidLayouts[id];\r\n while (invalidLayouts.length > 0) {\r\n var container = invalidLayouts[invalidLayouts.length - 1];\r\n if (!container.isDisposed()) {\r\n try {\r\n container.children.each(function (sprite) {\r\n sprite._systemValidateLayouts();\r\n });\r\n container.validateLayout();\r\n }\r\n catch (e) {\r\n container.layoutInvalid = false;\r\n $array.remove(invalidLayouts, container);\r\n container.raiseCriticalError(e);\r\n }\r\n }\r\n else {\r\n $array.remove(invalidLayouts, container);\r\n }\r\n }\r\n };\r\n /**\r\n * Outputs string to console if `verbose` is `true`.\r\n *\r\n * @param value Message to output to console\r\n */\r\n System.prototype.log = function (value) {\r\n $log.log(value);\r\n };\r\n Object.defineProperty(System.prototype, \"isPaused\", {\r\n /**\r\n * @return Is system on pause?\r\n */\r\n get: function () {\r\n return this._isPaused;\r\n },\r\n /**\r\n * Pauses all the processes of all the amCharts objects on the page\r\n *\r\n * @return is paused?\r\n */\r\n set: function (value) {\r\n this._isPaused = value;\r\n if (!value) {\r\n this._frameRequested = false;\r\n this.requestFrame();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * amCharts Version.\r\n *\r\n * This follows npm's semver specification.\r\n *\r\n * @see {@link https://docs.npmjs.com/misc/semver}\r\n */\r\n System.VERSION = \"4.10.38\";\r\n return System;\r\n}());\r\nexport { System };\r\n/**\r\n * A singleton global instance of [[System]].\r\n *\r\n * All code should use this, rather than instantiating their\r\n * own System objects.\r\n */\r\nexport var system = new System();\r\n//# sourceMappingURL=System.js.map","/**\r\n * Base functionality\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport { List, ListTemplate } from \"./utils/List\";\r\nimport { OrderedListTemplate, SortedListTemplate } from \"./utils/SortedList\";\r\nimport { Dictionary, DictionaryTemplate } from \"./utils/Dictionary\";\r\nimport { Disposer } from \"./utils/Disposer\";\r\nimport { EventDispatcher } from \"./utils/EventDispatcher\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { Color, color } from \"./utils/Color\";\r\nimport { Percent, percent } from \"./utils/Percent\";\r\nimport { registry } from \"./Registry\";\r\nimport { cache } from \"./utils/Cache\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n//import * as $debug from \"./utils/Debug\";\r\n/**\r\n * Provides base functionality for all derivative objects, like generating ids,\r\n * handling cache, etc.\r\n */\r\nvar BaseObject = /** @class */ (function () {\r\n //protected _classes: { [index: string]: any } = {};\r\n /**\r\n * Constructor\r\n * * Sets class name\r\n */\r\n function BaseObject() {\r\n /**\r\n * Indicates if this object has already been deleted. Any\r\n * destruction/disposal code should take this into account when deciding\r\n * wheter to run potentially costly disposal operations if they already have\r\n * been run.\r\n */\r\n this._disposed = false;\r\n /**\r\n * List of IDisposer which will be disposed when the BaseObject is disposed.\r\n */\r\n this._disposers = [];\r\n this.className = \"BaseObject\";\r\n //this.debug();\r\n }\r\n BaseObject.prototype.debug = function () {\r\n //$debug.debug(this);\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"uid\", {\r\n /**\r\n * Returns object's internal unique ID.\r\n *\r\n * @return Unique ID\r\n */\r\n get: function () {\r\n if (!this._uid) {\r\n this._uid = registry.getUniqueId();\r\n registry.map.setKey(this._uid, this);\r\n }\r\n return this._uid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseObject.prototype, \"id\", {\r\n /**\r\n * @return Id\r\n */\r\n get: function () {\r\n return this._id;\r\n },\r\n /**\r\n * Sets the user-defined id of the element.\r\n *\r\n * @param value Id\r\n */\r\n set: function (value) {\r\n //registry.map.setKey(value, this); // registry.map only stores by uid\r\n this._id = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseObject.prototype, \"map\", {\r\n /**\r\n * Returns a universal collection for mapping ids with objects.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Map collection\r\n */\r\n get: function () {\r\n if (!this._map) {\r\n this._map = new Dictionary();\r\n }\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseObject.prototype, \"delayedMap\", {\r\n /**\r\n * Returns mapping for objects referenced by id in JSON config that are not yet\r\n * available at processing time.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Map collection\r\n */\r\n get: function () {\r\n if (!this._delayedMap) {\r\n this._delayedMap = new Dictionary();\r\n }\r\n return this._delayedMap;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Logs an id and property of the target element that is not yet available\r\n * for later assignment.\r\n *\r\n * @ignore\r\n * @param property Property to set\r\n * @param id ID of the target element\r\n */\r\n BaseObject.prototype.addDelayedMap = function (property, id) {\r\n var map = this.delayedMap;\r\n if (!map.hasKey(id)) {\r\n map.setKey(id, []);\r\n }\r\n var list = map.getKey(id);\r\n list.push({\r\n property: property,\r\n target: this\r\n });\r\n };\r\n /**\r\n * Processes delayed JSON config items.\r\n *\r\n * @ignore\r\n */\r\n BaseObject.prototype.processDelayedMap = function () {\r\n var _this = this;\r\n this.delayedMap.each(function (id, list) {\r\n if (_this.map.hasKey(id)) {\r\n var target_1 = _this.map.getKey(id);\r\n $array.each(list, function (item) {\r\n item.target[item.property] = target_1;\r\n });\r\n _this.delayedMap.removeKey(id);\r\n }\r\n });\r\n };\r\n /**\r\n * Applies properties from all assigned themes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n BaseObject.prototype.applyTheme = function () {\r\n var _this = this;\r\n // TODO is this needed ?\r\n if (registry) {\r\n var themes = this.getCurrentThemes();\r\n // TODO is this needed ?\r\n if (themes) {\r\n $array.each(themes, function (theme, index) {\r\n theme(_this);\r\n });\r\n }\r\n }\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"themes\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return An array of themes\r\n */\r\n get: function () {\r\n return this._themes;\r\n },\r\n /**\r\n * A list of themes to be used for this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value An array of themes\r\n */\r\n set: function (value) {\r\n this._themes = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a list of themes that should be applied to this element. It could\r\n * either be a list of themes set explicitly on this element, or system-wide.\r\n *\r\n * @return List of themes\r\n */\r\n BaseObject.prototype.getCurrentThemes = function () {\r\n return this.themes || registry.themes;\r\n };\r\n /**\r\n * Returns if this object has been already been disposed.\r\n *\r\n * @return Is disposed?\r\n */\r\n BaseObject.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n BaseObject.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n var a = this._disposers;\r\n this._disposers = null;\r\n while (a.length !== 0) {\r\n var disposer = a.shift();\r\n disposer.dispose();\r\n }\r\n // Clear cache\r\n this.clearCache();\r\n // remove from clones list\r\n if (this.clonedFrom) {\r\n this.clonedFrom.clones.removeValue(this);\r\n }\r\n var uid = this._uid;\r\n if (uid != null) {\r\n registry.map.removeKey(uid);\r\n }\r\n }\r\n };\r\n /**\r\n * Adds an IDisposer, which will be disposed when this object is disposed.\r\n *\r\n * @param target Object to dispose\r\n * @ignore Exclude from docs\r\n */\r\n BaseObject.prototype.addDisposer = function (target) {\r\n this._disposers.push(target);\r\n };\r\n /**\r\n * Disposes disposable object and removes it from `_disposers`.\r\n *\r\n * @param target Object to dispose\r\n * @ignore Exclude from docs\r\n */\r\n BaseObject.prototype.removeDispose = function (target) {\r\n //if(target){\r\n if (!this._disposed) {\r\n var index = $array.indexOf(this._disposers, target);\r\n if (index > -1) {\r\n this._disposers.splice(index, 1);\r\n }\r\n }\r\n target.dispose();\r\n //}\r\n };\r\n /**\r\n * Makes a copy of this object and returns the clone. Try to avoid cloning complex objects like chart, create new instances if you need them.\r\n *\r\n * @param cloneId An id to use for clone (if not set a unique id will be generated)\r\n * @returns Clone\r\n */\r\n BaseObject.prototype.clone = function (cloneId) {\r\n if (!cloneId) {\r\n cloneId = \"clone-\" + registry.getUniqueId();\r\n }\r\n var newObject = new this.constructor();\r\n newObject.cloneId = cloneId;\r\n newObject.copyFrom(this);\r\n // add to clones list\r\n // this.clones.push(newObject); // moved this to copyFrom\r\n return newObject;\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"clones\", {\r\n /**\r\n * Returns a collection of object's clones.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Clones\r\n */\r\n get: function () {\r\n if (!this._clones) {\r\n this._clones = new List();\r\n }\r\n return this._clones;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all properties and related data from different element.\r\n *\r\n * @param object Source element\r\n */\r\n BaseObject.prototype.copyFrom = function (object) {\r\n object.clones.push(this); // do not moveValue, as it is expensive! even if there will be several items in clones list, it's not that bad.\r\n this.clonedFrom = object;\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"className\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Class name\r\n */\r\n get: function () {\r\n return this._className;\r\n },\r\n /**\r\n * Element's class name. (a class that was used to instantiate the element)\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Class name\r\n */\r\n set: function (value) {\r\n this._className = value;\r\n /*if (registry) {\r\n registry.registeredClasses[value] = typeof this;\r\n }*/\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Caches value in object's cache.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key Key\r\n * @param value Value\r\n * @param ttl TTL in seconds\r\n */\r\n BaseObject.prototype.setCache = function (key, value, ttl) {\r\n cache.set(this.uid, key, value, ttl);\r\n };\r\n /**\r\n * Retrieves cached value.\r\n *\r\n * If optional second padarameter is specified, it will return that value\r\n * if cache is not available or is expired.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key Key\r\n * @param value Value to return if cache is not available\r\n * @return Value\r\n */\r\n BaseObject.prototype.getCache = function (key, value) {\r\n if (value === void 0) { value = undefined; }\r\n return cache.get(this.uid, key, value);\r\n };\r\n /**\r\n * Clears object's local cache.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n BaseObject.prototype.clearCache = function () {\r\n cache.clear(this.uid);\r\n };\r\n /**\r\n * Creates [[Disposer]] for `setTimeout` function call. This ensures that all\r\n * timeouts created by the object will be cleared when object itself is\r\n * disposed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fn Callback function\r\n * @param delay Timeout (ms)\r\n * @return Disposer for timeout\r\n */\r\n BaseObject.prototype.setTimeout = function (fn, delay) {\r\n var _this = this;\r\n var id = setTimeout(function () {\r\n _this.removeDispose(disposer);\r\n fn();\r\n }, delay);\r\n var disposer = new Disposer(function () {\r\n clearTimeout(id);\r\n });\r\n this._disposers.push(disposer);\r\n return disposer;\r\n };\r\n /**\r\n * Creates [[Disposer]] for `setInterval` function call. This ensures that all\r\n * timeouts created by the object will be cleared when object itself is\r\n * disposed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fn Callback function\r\n * @param delay Timeout (ms)\r\n * @return Disposer for timeout\r\n */\r\n BaseObject.prototype.setInterval = function (fn, delay) {\r\n var _this = this;\r\n var id = setInterval(function () {\r\n _this.removeDispose(disposer);\r\n fn();\r\n }, delay);\r\n var disposer = new Disposer(function () {\r\n clearTimeout(id);\r\n });\r\n this._disposers.push(disposer);\r\n return disposer;\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"config\", {\r\n /**\r\n * ==========================================================================\r\n * JSON-BASED CONFIG PROCESSING\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Use this property to set JSON-based config. When set, triggers processing\r\n * routine, which will go through all properties, and try to apply values,\r\n * create instances, etc.\r\n *\r\n * Use this with caution, as it is a time-consuming process. It's used for\r\n * initialchart setup only, not routine operations.\r\n *\r\n * @param json JSON config\r\n */\r\n set: function (config) {\r\n try {\r\n this.processConfig(config);\r\n }\r\n catch (e) {\r\n /*if (this instanceof Sprite) {\r\n this.raiseCriticalError(e);\r\n }*/\r\n this.raiseCriticalError(e);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes the JSON config.\r\n *\r\n * @param json JSON config\r\n * @ignore Exclude from docs\r\n */\r\n BaseObject.prototype.processConfig = function (config) {\r\n var _this = this;\r\n if (!config) {\r\n return;\r\n }\r\n // Get target\r\n var target = this;\r\n // Iterate through all of the items\r\n $object.eachOrdered(config, function (configKey, value) {\r\n var configValue = value;\r\n // Is this a callback?\r\n if (configKey == \"callback\" && typeof value == \"function\") {\r\n value.call(target);\r\n }\r\n // Check if there's a property in target\r\n if (_this.hasProperty(configKey)) {\r\n var item_1;\r\n // Do we have instructions to create an object?\r\n // We create a new object if \"type\" key is set, but only if the\r\n // target object is of different type.\r\n if ($type.isObject(configValue)\r\n && $type.hasValue(configValue[\"type\"])\r\n && (!$type.isObject(target[configKey])\r\n || !$type.hasValue(target[configKey].className)\r\n || configValue[\"forceCreate\"]\r\n || target[configKey].className != configValue[\"type\"])\r\n && !_this.asIs(configKey)) {\r\n item_1 = _this.createClassInstance(configValue[\"type\"]);\r\n // Create new instance\r\n if (item_1) {\r\n target[configKey] = item_1;\r\n }\r\n else {\r\n item_1 = target[configKey];\r\n }\r\n }\r\n else {\r\n // Get item from the object\r\n item_1 = target[configKey];\r\n }\r\n /**\r\n * It is...\r\n * --------------------------------------------------------------------\r\n */\r\n if (item_1 instanceof Adapter) {\r\n // ... an Adapter, try to add handlers to it\r\n // ------------------------------------------------------------------\r\n _this.processAdapters(item_1, configValue);\r\n }\r\n else if (item_1 instanceof EventDispatcher) {\r\n // ... an EventDispatcher, try to add handlers to it\r\n // ------------------------------------------------------------------\r\n _this.processEvents(item_1, configValue);\r\n }\r\n else if (configKey == \"locale\" && $type.isString(configValue)) {\r\n // ... a locale specified as string, e.g. \"fr_FR\"\r\n // ------------------------------------------------------------------\r\n if (window[\"am4lang_\" + configValue]) {\r\n target[configKey] = window[\"am4lang_\" + configValue];\r\n }\r\n }\r\n else if (configKey == \"parent\" && $type.isString(configValue)) {\r\n // ... a parent referred via its it\r\n // ------------------------------------------------------------------\r\n var parent_1 = _this.map.getKey(configValue);\r\n if (parent_1) {\r\n target[configKey] = parent_1;\r\n }\r\n else {\r\n _this.addDelayedMap(\"parent\", configValue);\r\n }\r\n }\r\n else if (_this.asIs(configKey)) {\r\n // ... a special field, just set it to new value\r\n // ------------------------------------------------------------------\r\n // (no need to add each indvidual item)\r\n target[configKey] = configValue;\r\n }\r\n else if (_this.asFunction(configKey) && $type.isString(configValue)) {\r\n // ... a field indicating function name to look for in registry\r\n // ------------------------------------------------------------------\r\n if ($type.hasValue(registry.registeredClasses[configValue])) {\r\n target[configKey] = registry.registeredClasses[configValue];\r\n }\r\n else {\r\n throw Error(\"Invalid easing function: \" + configValue);\r\n }\r\n }\r\n else if (configValue instanceof BaseObject) {\r\n // ... a BaseObject object, we just going to use it as it is\r\n // ------------------------------------------------------------------\r\n target[configKey] = configValue;\r\n }\r\n else if (item_1 instanceof BaseObject) {\r\n // ... another child BaseObject\r\n // ------------------------------------------------------------------\r\n // Let's just pass in config part in and let itself deal with it\r\n item_1.config = configValue;\r\n }\r\n else if (item_1 instanceof ListTemplate || item_1 instanceof OrderedListTemplate || item_1 instanceof SortedListTemplate) {\r\n // ... a list with template\r\n // ------------------------------------------------------------------\r\n // Let's see what we can do with it\r\n if ($type.isArray(configValue)) {\r\n // It's an array.\r\n // Create a list item for entry, or try to apply properties to an\r\n // existing entry if possible and it is present.\r\n if (item_1 instanceof ListTemplate) {\r\n _this.processListTemplate(configValue, item_1);\r\n }\r\n else {\r\n _this.processOrderedTemplate(configValue, item_1);\r\n }\r\n }\r\n else if ($type.isObject(configValue)) {\r\n // It's a single oject.\r\n // Treat it as a template.\r\n if (configValue instanceof BaseObject) {\r\n // Item is already a BaseObject, no need to process it further\r\n item_1.template = configValue;\r\n }\r\n else {\r\n // Now let's find out if the whole object if a template, or we\r\n // need to get it from `template` key\r\n var templateValue = void 0;\r\n if ($type.hasValue(configValue.template)) {\r\n templateValue = configValue.template;\r\n }\r\n else {\r\n templateValue = configValue;\r\n }\r\n if (item_1.template instanceof BaseObject) {\r\n // Template is a BaseObject so we will just let its config\r\n // deal with the configuration\r\n item_1.template.config = templateValue;\r\n }\r\n else {\r\n $object.each(templateValue, function (entryKey, entryValue) {\r\n var listItem = item_1.template[entryKey];\r\n if (listItem instanceof Adapter) {\r\n _this.processAdapters(listItem, entryValue);\r\n }\r\n else if (listItem instanceof EventDispatcher) {\r\n _this.processEvents(listItem, entryValue);\r\n }\r\n else if (listItem instanceof DictionaryTemplate) {\r\n _this.processDictionaryTemplate(listItem, entryValue);\r\n }\r\n else if (item_1.template[entryKey] instanceof BaseObject) {\r\n // Template is a BaseObject. Let it deal with its own config.\r\n item_1.template[entryKey].config = entryValue;\r\n }\r\n else if ($type.isObject(entryValue) && $type.hasValue(entryValue[\"type\"])) {\r\n listItem = _this.createClassInstance(entryValue[\"type\"]);\r\n if (listItem) {\r\n if (listItem instanceof BaseObject) {\r\n listItem.config = entryValue;\r\n }\r\n item_1.template[entryKey] = listItem;\r\n }\r\n else {\r\n item_1.template[entryKey] = entryValue;\r\n }\r\n }\r\n else if (listItem instanceof List) {\r\n // It's List, process it\r\n _this.processList(entryValue, listItem);\r\n }\r\n else {\r\n // Aything else. Just assing and be done with it.\r\n item_1.template[entryKey] = _this.maybeColorOrPercent(entryValue);\r\n }\r\n });\r\n }\r\n // Check maybe there are `values` to insert\r\n if ($type.hasValue(configValue.values)) {\r\n if (item_1 instanceof ListTemplate) {\r\n _this.processListTemplate(configValue.values, item_1);\r\n }\r\n else {\r\n _this.processOrderedTemplate(configValue.values, item_1);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // Something else?\r\n // Not sure what to do with it on a list - ignore\r\n }\r\n }\r\n else if (item_1 instanceof List) {\r\n // ... a list\r\n // ------------------------------------------------------------------\r\n if (configKey == \"children\") {\r\n _this.processList(configValue, item_1, _this);\r\n }\r\n else {\r\n _this.processList(configValue, item_1);\r\n }\r\n }\r\n else if (item_1 instanceof DictionaryTemplate) {\r\n // ... a dictionary with template\r\n // ------------------------------------------------------------------\r\n _this.processDictionaryTemplate(item_1, configValue);\r\n }\r\n else if (item_1 instanceof Dictionary) {\r\n // ... a dictionary\r\n // ------------------------------------------------------------------\r\n _this.processDictionary(item_1, configValue);\r\n }\r\n else if (item_1 instanceof Color || item_1 instanceof Percent) {\r\n // ... it's a Color or Percent\r\n // ------------------------------------------------------------------\r\n target[configKey] = _this.maybeColorOrPercent(configValue);\r\n }\r\n else if ($type.isObject(item_1) && $type.isObject(configValue)) {\r\n // ... a regular object\r\n // ------------------------------------------------------------------\r\n $object.copyAllProperties(configValue, item_1);\r\n }\r\n else {\r\n // ... something else - probably a simple property or object\r\n // ------------------------------------------------------------------\r\n // Maybe convert to `Percent` or `Color`?\r\n configValue = _this.maybeColorOrPercent(configValue);\r\n // Assign\r\n target[configKey] = configValue;\r\n }\r\n }\r\n else if (!_this.isReserved(configKey)) {\r\n // Doesn't have property set. But we're going to assume JSON config\r\n // creator knows what he/she is doing and set it anyway.\r\n target[configKey] = configValue;\r\n }\r\n }, this.configOrder);\r\n // Any errors?\r\n if (this.processingErrors.length) {\r\n var errors = this.processingErrors.join(\"\\n\");\r\n this._processingErrors = [];\r\n throw Error(errors);\r\n }\r\n };\r\n /**\r\n * Tries to detect if value is color or percent and converts to proper object\r\n * if necessary.\r\n *\r\n * Returns the same source value if no color/percent detected\r\n *\r\n * @param value Source value\r\n * @return Converted value\r\n */\r\n BaseObject.prototype.maybeColorOrPercent = function (value) {\r\n if ($type.isString(value)) {\r\n if (value.match(/^[\\-]?[0-9.]+\\%$/)) {\r\n return percent($type.toNumber(value));\r\n }\r\n else if (value.match(/^\\#[0-9abcdef]{3,}$/i)) {\r\n return color(value);\r\n }\r\n }\r\n return value;\r\n };\r\n BaseObject.prototype.processAdapters = function (item, config) {\r\n var _this = this;\r\n if ($type.isArray(config)) {\r\n $array.each(config, function (entry, index) {\r\n item.add(entry.key, entry.callback, entry.priority || 0, _this);\r\n });\r\n }\r\n else if ($type.isObject(config)) {\r\n $object.each(config, function (key, entry) {\r\n if (!item.has(key, entry)) {\r\n item.add(key, entry);\r\n }\r\n });\r\n }\r\n };\r\n BaseObject.prototype.processEvents = function (item, config) {\r\n var _this = this;\r\n if ($type.isArray(config)) {\r\n $array.each(config, function (entry, index) {\r\n item.on(entry.type, entry.callback, _this);\r\n });\r\n }\r\n else if ($type.isObject(config)) {\r\n $object.each(config, function (key, entry) {\r\n if (!item.has(key, entry)) {\r\n item.on(key, entry);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Processes JSON config for a [[DictionaryTemplate]] item.\r\n *\r\n * @todo Description\r\n * @param item Item\r\n * @param config Config\r\n */\r\n BaseObject.prototype.processDictionaryTemplate = function (item, config) {\r\n // We can only process object\r\n // Not sure what to do with other types - ignore\r\n if ($type.isObject(config)) {\r\n // Create an entry for each item, or override properties for\r\n // existing one.\r\n $object.each(config, function (entryKey, entryValue) {\r\n var listItem;\r\n // Get existing one, or create a new one\r\n if (entryKey == \"template\") {\r\n listItem = item.template;\r\n }\r\n else if (item.hasKey(entryKey)) {\r\n listItem = item.getKey(entryKey);\r\n }\r\n else {\r\n listItem = item.create(entryKey);\r\n }\r\n // Set data\r\n if (listItem instanceof BaseObject) {\r\n listItem.config = entryValue;\r\n }\r\n else if ($type.isObject(listItem) && $type.isObject(entryValue)) {\r\n $object.copyAllProperties(entryValue, listItem);\r\n }\r\n else {\r\n listItem.setKey(entryKey, entryValue);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Processes JSON config for a [[Dictionary]] item.\r\n *\r\n * @todo Description\r\n * @param item Item\r\n * @param config Config\r\n */\r\n BaseObject.prototype.processDictionary = function (item, config) {\r\n // We can only process object\r\n // Not sure what to do with other types - ignore\r\n if ($type.isObject(config)) {\r\n // Create an entry for each item, or override properties for\r\n // existing one.\r\n // @todo support for non-basic types\r\n $object.each(config, function (entryKey, entryValue) {\r\n item.setKey(entryKey, entryValue);\r\n });\r\n }\r\n };\r\n /**\r\n * Processes [[ListTemplate]].\r\n *\r\n * @param configValue Config value\r\n * @param item Item\r\n */\r\n BaseObject.prototype.processListTemplate = function (configValue, item) {\r\n var _this = this;\r\n $array.each(configValue, function (entry, index) {\r\n var type = _this.getConfigEntryType(entry);\r\n var listItem;\r\n if (item.hasIndex(index) && !entry[\"forceCreate\"]) {\r\n listItem = item.getIndex(index);\r\n }\r\n else if (entry instanceof BaseObject) {\r\n // Item is already a BaseObject, no need to process it further\r\n item.push(entry);\r\n return;\r\n }\r\n else if (type) {\r\n listItem = item.create(type);\r\n }\r\n else {\r\n listItem = item.create();\r\n }\r\n if (entry === listItem) {\r\n // It's already the same item, do nothing\r\n }\r\n else {\r\n if ($type.isObject(entry)) {\r\n // If the list item is BaseObject, we just need to let it\r\n // deal if its own config\r\n if (listItem instanceof BaseObject) {\r\n listItem.config = entry;\r\n }\r\n else if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n $object.copyAllProperties(entry, listItem);\r\n }\r\n else {\r\n item.setIndex(item.indexOf(listItem), entry);\r\n }\r\n }\r\n }\r\n });\r\n // Truncate the list if it contains less items than the config\r\n // array\r\n while (configValue.length > item.length) {\r\n item.pop();\r\n }\r\n };\r\n /**\r\n * Processes [[OrdererListTemplate]] or [[SortedListTemplate]].\r\n *\r\n * @param configValue Config value\r\n * @param item Item\r\n */\r\n BaseObject.prototype.processOrderedTemplate = function (configValue, item) {\r\n var _this = this;\r\n $array.each(configValue, function (entry, index) {\r\n var type = _this.getConfigEntryType(entry);\r\n var listItem;\r\n if (type) {\r\n listItem = item.create(type);\r\n }\r\n else {\r\n listItem = item.create();\r\n }\r\n if ($type.isObject(entry)) {\r\n // If the list item is BaseObject, we just need to let it\r\n // deal if its own config\r\n if (listItem instanceof BaseObject) {\r\n listItem.config = entry;\r\n }\r\n else if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n $object.copyAllProperties(entry, listItem);\r\n }\r\n else {\r\n item.insert(entry);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Processes [[List]].\r\n *\r\n * @param configValue Config value\r\n * @param item Item\r\n */\r\n BaseObject.prototype.processList = function (configValue, item, parent) {\r\n var _this = this;\r\n // Convert to array if necessary\r\n if (!$type.isArray(configValue)) {\r\n configValue = [configValue];\r\n }\r\n // It's an array\r\n // Create a list item for entry\r\n var itemCount = item.length;\r\n var extraCount = 0;\r\n $array.each(configValue, function (entry, index) {\r\n if ($type.isObject(entry)) {\r\n // An object.\r\n //\r\n // Let's see if we can instantiate a class out of it, or we need\r\n // to push it into list as it is.\r\n //\r\n // If there are items already at the specified index in the list,\r\n // apply properties rather than create a new one.\r\n var listItem = void 0;\r\n if ((index < itemCount) && !entry[\"forceCreate\"]) {\r\n listItem = item.getIndex(index);\r\n }\r\n else if (entry instanceof BaseObject) {\r\n // Item is already a BaseObject, no need to process it further\r\n item.push(entry);\r\n return;\r\n }\r\n else {\r\n extraCount++;\r\n listItem = _this.createEntryInstance(entry);\r\n if (parent) {\r\n listItem.parent = parent;\r\n }\r\n else {\r\n item.push(listItem);\r\n }\r\n }\r\n // If the list item is BaseObject, we just need to let it\r\n // deal if its own config\r\n if (listItem instanceof BaseObject) {\r\n listItem.config = entry;\r\n }\r\n else if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n $object.copyAllProperties(entry, listItem);\r\n }\r\n }\r\n else {\r\n // Basic value.\r\n // Just push it into list, or override existing value\r\n if (item.hasIndex(index)) {\r\n item.setIndex(index, entry);\r\n }\r\n else {\r\n item.push(entry);\r\n }\r\n }\r\n });\r\n // Truncate the list if it contains less items than the config\r\n // array\r\n while (!parent && (configValue.length + extraCount) < item.length) {\r\n item.pop();\r\n }\r\n };\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n BaseObject.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Language must come first, so it's all set up when the rest of the\r\n // elements are being instantiated\r\n else if (a == \"language\") {\r\n return -1;\r\n }\r\n else if (b == \"language\") {\r\n return 1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n /**\r\n * Checks if field should be just assigned as is, without any checking when\r\n * processing JSON config.\r\n *\r\n * Extending functions can override this function to do their own checks.\r\n *\r\n * @param field Field name\r\n * @return Assign as is?\r\n */\r\n BaseObject.prototype.asIs = function (field) {\r\n return $array.indexOf([\"locale\"], field) != -1;\r\n };\r\n /**\r\n * Checks if field needs to be converted to function, if it is specified\r\n * as string.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n BaseObject.prototype.asFunction = function (field) {\r\n return false;\r\n };\r\n /**\r\n * Creates a relevant class instance if such class definition exists.\r\n *\r\n * @ignore Exclude from docs\r\n * @param className Class name\r\n * @return Instance\r\n */\r\n BaseObject.prototype.createClassInstance = function (className) {\r\n if ($type.hasValue(registry.registeredClasses[className])) {\r\n return new registry.registeredClasses[className]();\r\n }\r\n else {\r\n throw Error(\"Invalid type: \\\"\" + className + \"\\\".\");\r\n }\r\n };\r\n /**\r\n * Creates a class instance for a config entry using it's type. (as set in\r\n * `type` property)\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config part\r\n * @return Instance\r\n */\r\n BaseObject.prototype.createEntryInstance = function (config) {\r\n var res;\r\n if ($type.hasValue(config[\"type\"])) {\r\n res = this.createClassInstance(config[\"type\"]);\r\n }\r\n if (!res) {\r\n return config;\r\n }\r\n return res;\r\n };\r\n /**\r\n * Determines config object type.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config part\r\n * @return Type\r\n */\r\n BaseObject.prototype.getConfigEntryType = function (config) {\r\n if ($type.hasValue(config[\"type\"])) {\r\n if ($type.hasValue(registry.registeredClasses[config[\"type\"]])) {\r\n return registry.registeredClasses[config[\"type\"]];\r\n }\r\n else {\r\n throw Error(\"Invalid type: \\\"\" + config[\"type\"] + \"\\\".\");\r\n }\r\n }\r\n return;\r\n };\r\n /**\r\n * Checks if this element has a property.\r\n *\r\n * @ignore Exclude from docs\r\n * @param prop Property name\r\n * @return Has property?\r\n */\r\n BaseObject.prototype.hasProperty = function (prop) {\r\n return prop in this ? true : false;\r\n };\r\n /**\r\n * Checkes whether JSON key is a reserved keyword.\r\n *\r\n * @param key Key\r\n * @return Reserved\r\n */\r\n BaseObject.prototype.isReserved = function (key) {\r\n return [\"type\", \"forceCreate\"].indexOf(key) !== -1;\r\n };\r\n Object.defineProperty(BaseObject.prototype, \"processingErrors\", {\r\n /**\r\n * A list of errors that happened during JSON processing.\r\n *\r\n * @return Errors\r\n */\r\n get: function () {\r\n if (!this._processingErrors) {\r\n this._processingErrors = [];\r\n }\r\n return this._processingErrors;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BaseObject;\r\n}());\r\nexport { BaseObject };\r\n;\r\n/**\r\n * A version of [[BaseObject]] with events properties and methods.\r\n * Classes that use [[EventDispatcher]] should extend this instead of\r\n * [[BaseObject]] directly.\r\n */\r\nvar BaseObjectEvents = /** @class */ (function (_super) {\r\n __extends(BaseObjectEvents, _super);\r\n /**\r\n * Constructor\r\n */\r\n function BaseObjectEvents() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"BaseObjectEvents\";\r\n return _this;\r\n }\r\n Object.defineProperty(BaseObjectEvents.prototype, \"events\", {\r\n /**\r\n * An [[EventDispatcher]] instance\r\n */\r\n get: function () {\r\n if (!this._eventDispatcher) {\r\n this._eventDispatcher = new EventDispatcher();\r\n this._disposers.push(this._eventDispatcher);\r\n }\r\n return this._eventDispatcher;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n //public set events(value:EventDispatcher<AMEvent<this, this[\"_events\"]>>){\r\n //\tthis._eventDispatcher = value;\r\n //}\r\n /**\r\n * Dispatches an event using own event dispatcher. Will automatically\r\n * populate event data object with event type and target (this element).\r\n * It also checks if there are any handlers registered for this sepecific\r\n * event.\r\n *\r\n * @param eventType Event type (name)\r\n * @param data Data to pass into event handler(s)\r\n */\r\n BaseObjectEvents.prototype.dispatch = function (eventType, data) {\r\n // @todo Implement proper type check\r\n if (this._eventDispatcher) {\r\n if (this.events.isEnabled(eventType)) {\r\n if (data) {\r\n data.type = eventType;\r\n data.target = data.target || this;\r\n this.events.dispatch(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n else {\r\n this.events.dispatch(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Works like `dispatch`, except event is triggered immediately, without\r\n * waiting for the next frame cycle.\r\n *\r\n * @param eventType Event type (name)\r\n * @param data Data to pass into event handler(s)\r\n */\r\n BaseObjectEvents.prototype.dispatchImmediately = function (eventType, data) {\r\n // @todo Implement proper type check\r\n if (this._eventDispatcher) {\r\n if (this.events.isEnabled(eventType)) {\r\n if (data) {\r\n data.type = eventType;\r\n data.target = data.target || this;\r\n this.events.dispatchImmediately(eventType, data);\r\n }\r\n else {\r\n this.events.dispatchImmediately(eventType, {\r\n type: eventType,\r\n target: this\r\n });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all parameters from another [[Sprite]].\r\n *\r\n * @param source Source object\r\n */\r\n BaseObjectEvents.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (source._eventDispatcher) {\r\n this.events.copyFrom(source._eventDispatcher);\r\n }\r\n };\r\n return BaseObjectEvents;\r\n}(BaseObject));\r\nexport { BaseObjectEvents };\r\n//# sourceMappingURL=Base.js.map","/**\r\n * Responsive functionality module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { List } from \"../utils/List\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Responsive is responsible for overriding certain properties when conditions\r\n * are met.\r\n *\r\n * This class is used to dynamically apply and change certain chart properties\r\n * based on the current values of properties.\r\n *\r\n * Mainly, this is used with [[Sprite]]'s dimensional properties, like\r\n * `pixelWidth` and `pixelHeight`. However, it can be used to dynamically\r\n * change any property, based on any other property's value.\r\n *\r\n * A default responsive rules are disabled.\r\n *\r\n * To enable, set `enabled = false`. E.g.:\r\n *\r\n * ```TypeScript\r\n * chart.responsive.enabled = true;\r\n * ```\r\n * ```JavaScript\r\n * chart.responsive.enabled = true;\r\n * ```\r\n *\r\n * @see {@link IResponsiveEvents} for a list of available events\r\n * @see {@link IResponsiveAdapters} for a list of available Adapters\r\n * @todo Add default rules\r\n * @todo Watch for rule modification\r\n * @important\r\n */\r\nvar Responsive = /** @class */ (function (_super) {\r\n __extends(Responsive, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Responsive() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Holds a list of responsive rules organized by object type.\r\n */\r\n _this._rules = new List();\r\n /**\r\n * Holds the list of the default responsive rules.\r\n * @deprecated\r\n */\r\n //protected _defaultRules = new List<IResponsiveRule>();\r\n /**\r\n * Holds the list of currently applied rules.\r\n */\r\n _this._appliedRules = {};\r\n /**\r\n * Used to keep track of objects that have rules applied at the moment.\r\n */\r\n _this._appliedTargets = [];\r\n /**\r\n * Use default rules in addition to the user-defined ones?\r\n */\r\n _this._useDefault = true;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * Indicates of responsive rules application is enabled.\r\n */\r\n _this._enabled = false;\r\n /**\r\n * Holds disposers for all events added by this class.\r\n */\r\n _this._responsiveDisposers = [];\r\n /**\r\n * Collection of objects and state ids that do not have any properties set.\r\n */\r\n _this._noStates = [];\r\n _this.className = \"Responsive\";\r\n // Set up rules list events\r\n _this.rules.events.on(\"inserted\", function () { _this.checkRules(); }, true);\r\n _this.rules.events.on(\"removed\", function () { _this.checkRules(); }, true);\r\n _this._disposers.push(_this.rules.events);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Responsive.prototype, \"component\", {\r\n /**\r\n * @return Target object\r\n */\r\n get: function () {\r\n return this._component;\r\n },\r\n /**\r\n * A target object that responsive rules will need to be applied to.\r\n *\r\n * @param value Target object\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n // Check if it's the same\r\n if (value == this._component) {\r\n return;\r\n }\r\n // Check if we already have a set up component and remove its events\r\n this.disposeResponsiveHandlers();\r\n // Set\r\n this._component = value;\r\n // Set up resize monitoring events\r\n this._responsiveDisposers.push($type.getValue(this.component).events.on(\"sizechanged\", function () { _this.checkRules(); }, this));\r\n this._responsiveDisposers.push($type.getValue(this.component).events.once(\"datavalidated\", function () {\r\n if (_this._component.isReady()) {\r\n _this.checkRules(true);\r\n }\r\n }, this));\r\n // Enable resoponsive\r\n this.enabled = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Responsive.prototype, \"enabled\", {\r\n /**\r\n * @return Apply responsive rules?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"enabled\", this._enabled);\r\n },\r\n /**\r\n * Should responsive rules be checked against and applied?\r\n *\r\n * @default false\r\n * @param value Apply responsive rules?\r\n */\r\n set: function (value) {\r\n if (this._enabled != value) {\r\n this._enabled = value;\r\n // Run `applyRules` so that any currently applied rules can be reset\r\n this.applyRules();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Responsive.prototype, \"useDefault\", {\r\n /**\r\n * @return Use default rules?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"useDefault\", this._useDefault);\r\n },\r\n /**\r\n * Should default responsive rules be applied in addition to user-defined\r\n * ones.\r\n *\r\n * User-defined rules will take precedence over default rules whenever they\r\n * produce conflicting settings.\r\n *\r\n * @default true\r\n * @param value Use default rules?\r\n */\r\n set: function (value) {\r\n if (this._useDefault != value) {\r\n this._useDefault = value;\r\n // Run `applyRules` so that any currently applied rules can be reset\r\n this.applyRules();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Responsive.prototype, \"rules\", {\r\n /**\r\n * @return User-defined rules\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"rules\", this._rules);\r\n },\r\n /**\r\n * User-defined responsive rules.\r\n *\r\n * User-defined rules will take precedence over default rules whenever they\r\n * produce conflicting settings.\r\n *\r\n * Use `allRules` to get all applicable rules including default and\r\n * user-defined ones.\r\n *\r\n * @param value User-defined rules\r\n */\r\n set: function (value) {\r\n this._rules = value;\r\n this._enabled = true;\r\n this.applyRules();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Responsive.prototype, \"defaultRules\", {\r\n /**\r\n * Default responsive rules.\r\n *\r\n * @readonly\r\n * @return List of responsive rules\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"defaultRules\", defaultRules);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Responsive.prototype, \"allRules\", {\r\n /**\r\n * Returns all rules: default rules (if not disabled) combined with\r\n * user-defined ones.\r\n *\r\n * @readonly\r\n * @return List of all applicable rules\r\n */\r\n get: function () {\r\n // Create empty list\r\n var rules = new List();\r\n // Add default rules if not disabled\r\n // A code, requesting `allRules` must ensure loading of default rules\r\n // by calling `loadDefaultRules()`\r\n if (this.useDefault) {\r\n rules.copyFrom(this.defaultRules);\r\n }\r\n // Add user-defined ones\r\n rules.copyFrom(this.rules);\r\n return this.adapter.apply(\"allRules\", rules);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if rule by the particular id currently applied.\r\n *\r\n * @param ruleId Rule ID\r\n * @return Is currently applied?\r\n */\r\n Responsive.prototype.isApplied = function (ruleId) {\r\n var rule = this._appliedRules[ruleId];\r\n return $type.hasValue(rule) ? rule : false;\r\n };\r\n /**\r\n * Checks which responsive rules currently satisfy their conditions and\r\n * should be applied, or unapplied.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Responsive.prototype.checkRules = function (force) {\r\n var _this = this;\r\n if (force === void 0) { force = false; }\r\n // Check if there are any rules\r\n var rules = this.allRules;\r\n if (!rules || rules.length == 0) {\r\n return;\r\n }\r\n // Init a list of rules to be applied\r\n var rulesChanged = false;\r\n var component = $type.getValue(this.component);\r\n // Do not perform rule application of target has no size\r\n if (component.pixelWidth == 0 || component.pixelHeight == 0) {\r\n return;\r\n }\r\n // Check which rules match\r\n $iter.each(rules.iterator(), function (rule) {\r\n // Check if rule has an id\r\n if (!rule.id) {\r\n rule.id = registry.getUniqueId();\r\n }\r\n // Init indicator if this rule should be applied\r\n var apply = rule.relevant(component);\r\n // Let's check if this rule needs to be applied\r\n if ((apply && !_this.isApplied(rule.id)) || (!apply && _this.isApplied(rule.id))) {\r\n rulesChanged = true;\r\n }\r\n _this._appliedRules[rule.id] = apply;\r\n });\r\n if (force) {\r\n rulesChanged = true;\r\n }\r\n // Check if we need to re-apply the rules\r\n if (rulesChanged) {\r\n if (!this.component.isReady()) {\r\n // The chart is not yet ready (built)\r\n // We will hide the chart and delay application of rules\r\n // until \"ready\" event kicks in\r\n //component.hide(0);\r\n component.hidden = true;\r\n component.events.once(\"ready\", function (ev) {\r\n ev.target.show(0);\r\n _this._applyRules();\r\n });\r\n return;\r\n }\r\n this.dispatchImmediately(\"ruleschanged\");\r\n this._applyRules();\r\n }\r\n };\r\n Responsive.prototype._applyRules = function () {\r\n var _this = this;\r\n if (this._timeout) {\r\n this._timeout.dispose();\r\n }\r\n this._timeout = this.setTimeout(function () {\r\n _this.applyRules();\r\n }, 10);\r\n };\r\n /**\r\n * Applies current rules to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param target Target object\r\n * @todo Better type check\r\n */\r\n Responsive.prototype.applyRules = function (target) {\r\n var _this = this;\r\n // If no target supplied, we assume the top-level element\r\n var newTarget = ($type.hasValue(target)\r\n ? target\r\n : $type.getValue(this.component));\r\n // Check each rule\r\n var defaultStateApplied = false;\r\n if (this.enabled) {\r\n var isApplied_1 = false;\r\n $iter.each(this.allRules.iterator(), function (rule) {\r\n // Get relevant state\r\n var state = _this.getState(rule, newTarget);\r\n // If there's a state, it means it needs to be applied\r\n if (state) {\r\n // Check if default state was already applied to this element.\r\n // We don't want to go resetting default states to ALL element,\r\n // if they don't have responsive states.\r\n if (!defaultStateApplied) {\r\n // Nope, reset states (instantly).\r\n if ($array.indexOf(_this._appliedTargets, newTarget.uid) !== -1) {\r\n // But only if this element has any rules applied, otherwise no\r\n // point in setting current state\r\n newTarget.setState(_this.getDefaultState(newTarget), 0);\r\n }\r\n defaultStateApplied = true;\r\n }\r\n // Is this rule currently applied?\r\n if (_this.isApplied($type.getValue(rule.id))) {\r\n // Yes. Apply the responsive state\r\n state.transitionDuration = 0;\r\n _this.setTargetState(newTarget, state);\r\n _this.dispatchImmediately(\"ruleapplied\", {\r\n rule: rule\r\n });\r\n isApplied_1 = true;\r\n }\r\n }\r\n });\r\n if (isApplied_1) {\r\n $array.replace(this._appliedTargets, newTarget.uid);\r\n }\r\n else {\r\n $array.remove(this._appliedTargets, newTarget.uid);\r\n }\r\n }\r\n // Apply rules to the children\r\n if (newTarget.children) {\r\n $iter.each(newTarget.children.iterator(), function (child) {\r\n _this.applyRules(child);\r\n });\r\n }\r\n };\r\n /**\r\n * Returns a relative state for the rule/target, or `undefined` if no state is\r\n * needed.\r\n *\r\n * @param rule [description]\r\n * @param target [description]\r\n * @return [description]\r\n */\r\n Responsive.prototype.getState = function (rule, target) {\r\n var stateId = \"responsive-\" + rule.id;\r\n var tmpId = target.uid + \"_\" + stateId;\r\n if ($array.indexOf(this._noStates, tmpId) !== -1) {\r\n return;\r\n }\r\n else if (!target.states.hasKey(stateId)) {\r\n var state = rule.state(target, stateId);\r\n if (!state) {\r\n this._noStates.push(tmpId);\r\n }\r\n return state;\r\n }\r\n else {\r\n return target.states.getKey(stateId);\r\n }\r\n };\r\n /**\r\n * Creates and returns default responsive rule for the target.\r\n *\r\n * This rule will be used to \"reset\" to non-responsive values.\r\n * @param target Target Sprite\r\n * @return State\r\n */\r\n Responsive.prototype.getDefaultState = function (target) {\r\n if (target.states.hasKey(\"responsive-default\")) {\r\n return target.states.getKey(\"responsive-default\");\r\n }\r\n return target.states.create(\"responsive-default\");\r\n };\r\n /**\r\n * Sets state on the target element and updates default state with the\r\n * overwritten values if needed.\r\n *\r\n * @param target Target\r\n * @param state State\r\n */\r\n Responsive.prototype.setTargetState = function (target, state) {\r\n var _this = this;\r\n // Update default state\r\n var defaultState = this.getDefaultState(target);\r\n $object.each(state.properties, function (key, val) {\r\n if (!$type.hasValue(defaultState.properties[key])) {\r\n defaultState.properties[key] = _this.getValue(target, key);\r\n }\r\n });\r\n target.setState(state);\r\n };\r\n /**\r\n * Gets a value from an element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param target Target object\r\n * @param property Property\r\n * @return Property value\r\n */\r\n Responsive.prototype.getValue = function (target, property) {\r\n // This is a bit hacky, first we check if the property exist.\r\n // If it doesn't we try accessing target's property directly\r\n var value = target.getPropertyValue(property);\r\n if (!$type.hasValue(value) && $type.hasValue(target[property])) {\r\n value = target[property];\r\n }\r\n return value;\r\n };\r\n /**\r\n * Disposes the object.\r\n */\r\n Responsive.prototype.dispose = function () {\r\n this.disposeResponsiveHandlers();\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * Disposes all event handlers.\r\n */\r\n Responsive.prototype.disposeResponsiveHandlers = function () {\r\n var disposer = this._responsiveDisposers.pop();\r\n while (disposer) {\r\n disposer.dispose();\r\n disposer = this._responsiveDisposers.pop();\r\n }\r\n };\r\n return Responsive;\r\n}(BaseObjectEvents));\r\nexport { Responsive };\r\n/**\r\n * [defaultRules description]\r\n *\r\n * @todo description\r\n */\r\nexport var defaultRules = new List();\r\ndefaultRules.events.on(\"inserted\", function (ev) {\r\n ev.newValue.id = registry.getUniqueId();\r\n});\r\n/**\r\n *\r\n * @todo description\r\n */\r\nvar ResponsiveBreakpoints = /** @class */ (function () {\r\n function ResponsiveBreakpoints() {\r\n }\r\n // Breakpoint functions (for use in `relevant` clause of the responsive rules)\r\n ResponsiveBreakpoints.widthXXS = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.XXS;\r\n };\r\n ResponsiveBreakpoints.widthXS = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.XS;\r\n };\r\n ResponsiveBreakpoints.widthS = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.S;\r\n };\r\n ResponsiveBreakpoints.widthM = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.M;\r\n };\r\n ResponsiveBreakpoints.widthL = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.L;\r\n };\r\n ResponsiveBreakpoints.widthXL = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.XL;\r\n };\r\n ResponsiveBreakpoints.widthXXL = function (container) {\r\n return container.pixelWidth <= ResponsiveBreakpoints.XXL;\r\n };\r\n ResponsiveBreakpoints.heightXXS = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.XXS;\r\n };\r\n ResponsiveBreakpoints.heightXS = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.XS;\r\n };\r\n ResponsiveBreakpoints.heightS = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.S;\r\n };\r\n ResponsiveBreakpoints.heightM = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.M;\r\n };\r\n ResponsiveBreakpoints.heightL = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.L;\r\n };\r\n ResponsiveBreakpoints.heightXL = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.XL;\r\n };\r\n ResponsiveBreakpoints.heightXXL = function (container) {\r\n return container.pixelHeight <= ResponsiveBreakpoints.XXL;\r\n };\r\n ResponsiveBreakpoints.isXXS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XXS) && (container.pixelHeight <= ResponsiveBreakpoints.XXS);\r\n };\r\n ResponsiveBreakpoints.isXS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XS) && (container.pixelHeight <= ResponsiveBreakpoints.XS);\r\n };\r\n ResponsiveBreakpoints.isS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.S) && (container.pixelHeight <= ResponsiveBreakpoints.S);\r\n };\r\n ResponsiveBreakpoints.isM = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.M) && (container.pixelHeight <= ResponsiveBreakpoints.M);\r\n };\r\n ResponsiveBreakpoints.isL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.L) && (container.pixelHeight <= ResponsiveBreakpoints.L);\r\n };\r\n ResponsiveBreakpoints.isXL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XL) && (container.pixelHeight <= ResponsiveBreakpoints.XL);\r\n };\r\n ResponsiveBreakpoints.isXXL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XXL) && (container.pixelHeight <= ResponsiveBreakpoints.XXL);\r\n };\r\n ResponsiveBreakpoints.maybeXXS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XXS) || (container.pixelHeight <= ResponsiveBreakpoints.XXS);\r\n };\r\n ResponsiveBreakpoints.maybeXS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XS) || (container.pixelHeight <= ResponsiveBreakpoints.XS);\r\n };\r\n ResponsiveBreakpoints.maybeS = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.S) || (container.pixelHeight <= ResponsiveBreakpoints.S);\r\n };\r\n ResponsiveBreakpoints.maybeM = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.M) || (container.pixelHeight <= ResponsiveBreakpoints.M);\r\n };\r\n ResponsiveBreakpoints.maybeL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.L) || (container.pixelHeight <= ResponsiveBreakpoints.L);\r\n };\r\n ResponsiveBreakpoints.maybeXL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XL) || (container.pixelHeight <= ResponsiveBreakpoints.XL);\r\n };\r\n ResponsiveBreakpoints.maybeXXL = function (container) {\r\n return (container.pixelWidth <= ResponsiveBreakpoints.XXL) || (container.pixelHeight <= ResponsiveBreakpoints.XXL);\r\n };\r\n // Named pixel breakpoints\r\n ResponsiveBreakpoints.XXS = 100;\r\n ResponsiveBreakpoints.XS = 200;\r\n ResponsiveBreakpoints.S = 300;\r\n ResponsiveBreakpoints.M = 400;\r\n ResponsiveBreakpoints.L = 600;\r\n ResponsiveBreakpoints.XL = 800;\r\n ResponsiveBreakpoints.XXL = 1000;\r\n return ResponsiveBreakpoints;\r\n}());\r\nexport { ResponsiveBreakpoints };\r\n//# sourceMappingURL=Responsive.js.map","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","/**\r\n * A collection of String-based constants.\r\n * @hidden\r\n * @ignore Exclude from docs\r\n */\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var PX = \"px\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var STRING = \"string\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var NUMBER = \"number\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var DATE = \"date\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var DURATION = \"duration\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var PLACEHOLDER = \"__§§§__\";\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport var PLACEHOLDER2 = \"__§§§§__\";\r\n//# sourceMappingURL=Strings.js.map","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Group\", {\n enumerable: true,\n get: function get() {\n return _group[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Button\", {\n enumerable: true,\n get: function get() {\n return _radioButton[\"default\"];\n }\n});\nexports[\"default\"] = void 0;\n\nvar _radio = _interopRequireDefault(require(\"./radio\"));\n\nvar _group = _interopRequireDefault(require(\"./group\"));\n\nvar _radioButton = _interopRequireDefault(require(\"./radioButton\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_radio[\"default\"].Button = _radioButton[\"default\"];\n_radio[\"default\"].Group = _group[\"default\"];\nvar _default = _radio[\"default\"];\nexports[\"default\"] = _default;","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ConfigConsumer\", {\n enumerable: true,\n get: function get() {\n return _context.ConfigConsumer;\n }\n});\nexports[\"default\"] = exports.configConsumerProps = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _localeProvider = _interopRequireWildcard(require(\"../locale-provider\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _context = require(\"./context\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar configConsumerProps = ['getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nexports.configConsumerProps = configConsumerProps;\n\nvar ConfigProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(ConfigProvider, _React$Component);\n\n var _super = _createSuper(ConfigProvider);\n\n function ConfigProvider() {\n var _this;\n\n _classCallCheck(this, ConfigProvider);\n\n _this = _super.apply(this, arguments);\n\n _this.getPrefixCls = function (suffixCls, customizePrefixCls) {\n var _this$props$prefixCls = _this.props.prefixCls,\n prefixCls = _this$props$prefixCls === void 0 ? 'ant' : _this$props$prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(prefixCls, \"-\").concat(suffixCls) : prefixCls;\n };\n\n _this.renderProvider = function (context, legacyLocale) {\n var _this$props = _this.props,\n children = _this$props.children,\n getPopupContainer = _this$props.getPopupContainer,\n renderEmpty = _this$props.renderEmpty,\n csp = _this$props.csp,\n autoInsertSpaceInButton = _this$props.autoInsertSpaceInButton,\n locale = _this$props.locale,\n pageHeader = _this$props.pageHeader;\n\n var config = _extends(_extends({}, context), {\n getPrefixCls: _this.getPrefixCls,\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton\n });\n\n if (getPopupContainer) {\n config.getPopupContainer = getPopupContainer;\n }\n\n if (renderEmpty) {\n config.renderEmpty = renderEmpty;\n }\n\n if (pageHeader) {\n config.pageHeader = pageHeader;\n }\n\n return /*#__PURE__*/React.createElement(_context.ConfigContext.Provider, {\n value: config\n }, /*#__PURE__*/React.createElement(_localeProvider[\"default\"], {\n locale: locale || legacyLocale,\n _ANT_MARK__: _localeProvider.ANT_MARK\n }, children));\n };\n\n return _this;\n }\n\n _createClass(ConfigProvider, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(_context.ConfigConsumer, null, function (context) {\n return _this2.renderProvider(context, legacyLocale);\n });\n });\n }\n }]);\n\n return ConfigProvider;\n}(React.Component);\n\nvar _default = ConfigProvider;\nexports[\"default\"] = _default;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _tooltip = _interopRequireDefault(require(\"../tooltip\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Popover = /*#__PURE__*/function (_React$Component) {\n _inherits(Popover, _React$Component);\n\n var _super = _createSuper(Popover);\n\n function Popover() {\n var _this;\n\n _classCallCheck(this, Popover);\n\n _this = _super.apply(this, arguments);\n\n _this.saveTooltip = function (node) {\n _this.tooltip = node;\n };\n\n _this.renderPopover = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n props = __rest(_a, [\"prefixCls\"]);\n\n delete props.title;\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n return /*#__PURE__*/React.createElement(_tooltip[\"default\"], _extends({}, props, {\n prefixCls: prefixCls,\n ref: _this.saveTooltip,\n overlay: _this.getOverlay(prefixCls)\n }));\n };\n\n return _this;\n }\n\n _createClass(Popover, [{\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n return this.tooltip.getPopupDomNode();\n }\n }, {\n key: \"getOverlay\",\n value: function getOverlay(prefixCls) {\n var _this$props = this.props,\n title = _this$props.title,\n content = _this$props.content;\n (0, _warning[\"default\"])(!('overlay' in this.props), 'Popover', '`overlay` is removed, please use `content` instead, ' + 'see: https://u.ant.design/popover-content');\n return /*#__PURE__*/React.createElement(\"div\", null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderPopover);\n }\n }]);\n\n return Popover;\n}(React.Component);\n\nexports[\"default\"] = Popover;\nPopover.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big',\n trigger: 'hover',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n overlayStyle: {}\n};","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","/**\r\n * An Adapter can be used to apply chained synchronous transformations to any\r\n * value at runtime.\r\n *\r\n * Each type class using Adapters must have `adapters` property and adapter\r\n * interface defined.\r\n *\r\n * Adapters can be used to allow external code to apply transformations to any\r\n * value at any time.\r\n *\r\n * For example we have a Weather class which has a method `now()` which returns\r\n * current temperature.\r\n *\r\n * ```\r\n * function now() {\r\n * // ... calculate temperature\r\n * let temp = \"Temperature now is \" + degrees + \"F\";\r\n * return temp;\r\n * }\r\n * ```\r\n *\r\n * Now, supposed we want to let other classes to modify the output of the\r\n * `now()`? We just apply an adapter to the `temp` before it is returned:\r\n *\r\n * ```\r\n * temp = this.adapters.apply(\"now\", {\r\n * temp: temp,\r\n * degrees: degrees\r\n * }).temp;\r\n * ```\r\n *\r\n * Some other class might tap onto it by defining an Adapter that calculates\r\n * the temperature in Celsius:\r\n *\r\n * weather.adapters.add(\"now\", (arg) => {\r\n * arg.temp += \"(\" + farenheitToCelsius(arg.degrees) + \"C)\";\r\n * return arh;\r\n * });\r\n *\r\n * Furthermore some time-related class could add time:\r\n *\r\n * weather.adapters.add(\"now\", (arg) => {\r\n * arg.temp += \"; the time now is \" + (new Date().toLocaleString());\r\n * return arh;\r\n * });\r\n *\r\n * So without adapters we would get output like this:\r\n *\r\n * ```\r\n * Temperature now is 90F\r\n * ```\r\n *\r\n * With adapters applied we now have:\r\n *\r\n * ```\r\n * Temperature now is 90F (32C); the time now is 12/11/2012, 7:00:00 PM\r\n * ```\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SortedList } from \"./SortedList\";\r\nimport * as $number from \"./Number\";\r\nimport * as $order from \"./Order\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n/**\r\n * ============================================================================\r\n * GLOBAL ADAPTER\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A global adapter is an adpater that is attached to a class type rather than\r\n * specific object instance.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar GlobalAdapter = /** @class */ (function () {\r\n function GlobalAdapter() {\r\n /**\r\n * Callback id iterator.\r\n */\r\n this._callbackId = 0;\r\n /**\r\n * A list of if callbacks (adapters).\r\n */\r\n this._callbacks = new SortedList(function (left, right) {\r\n return $order.or($number.order(left.priority, right.priority), $number.order(left.id, right.id));\r\n });\r\n }\r\n /**\r\n * Adds a global callback which is not specific to any particular object.\r\n * Whenever an adapter in any object of the specific class type is invoked\r\n * global adapters will kick in.\r\n *\r\n * @param type Class type\r\n * @param key Adapter key\r\n * @param callback Callback function\r\n * @param priority Priority (higher priority meaning adapter will be applied later)\r\n * @param scope Callback function scaope\r\n */\r\n GlobalAdapter.prototype.addAll = function (type, key, callback, priority, scope) {\r\n if (priority === void 0) { priority = 0; }\r\n this._callbacks.insert({\r\n id: ++this._callbackId,\r\n key: key,\r\n callback: callback,\r\n priority: priority,\r\n scope: scope,\r\n type: type\r\n });\r\n };\r\n /**\r\n * Returns if there are adapters for specific type available.\r\n *\r\n * @param type Adapter type\r\n * @param key Adapter key\r\n * @return {boolean}\r\n */\r\n GlobalAdapter.prototype.isEnabled = function (type, key) {\r\n return $array.any(this._callbacks.values, function (x) { return x.key === key && type instanceof x.type; });\r\n };\r\n /**\r\n * Applies global adapters for the object of the specific type.\r\n *\r\n * @param type Class type\r\n * @param key Adapter key\r\n * @param value Value\r\n */\r\n GlobalAdapter.prototype.applyAll = function (type, key, value) {\r\n // This is needed to improve the performance and reduce garbage collection\r\n var callbacks = this._callbacks.values;\r\n var length = callbacks.length;\r\n if (length == 0) {\r\n return value;\r\n }\r\n // Cycle through all callbacks and find the ones we need to use\r\n for (var i = 0; i < length; ++i) {\r\n var item = callbacks[i];\r\n if (item.key === key && type instanceof item.type) {\r\n value = item.callback.call(item.scope, value, type, key);\r\n }\r\n }\r\n return value;\r\n };\r\n return GlobalAdapter;\r\n}());\r\nexport { GlobalAdapter };\r\n/**\r\n * A global Adapter for plugins that want to add specific\r\n * functionality for any chart, not just specific instance.\r\n *\r\n * If you want to add an adapter which applies to all instances of the same\r\n * object type, like, for instance all slices in PieSeries, you can use\r\n * global adapter.\r\n *\r\n * Global adapter is a system-wide instance, accessible via `globalAdapter`.\r\n *\r\n * ```TypeScript\r\n * am4core.globalAdapter.addAll<am4charts.IPieSeriesAdapters, am4charts.PieSeries, \"fill\">(am4charts.PieSeries, \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * am4core.globalAdapter.addAll(am4charts.PieSeries, \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n *\r\n * @ignore\r\n */\r\nexport var globalAdapter = new GlobalAdapter();\r\n/**\r\n * ============================================================================\r\n * REGULAR ADAPTER\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Adapter allows adding ordered callback functions and associating them with a\r\n * string-based key. An Adapter user can then easily invoke those callbacks to\r\n * apply custom functions on its input, output or intermediate values.\r\n *\r\n * Custom code and plugins can add their own callbacks to modify and enhance\r\n * core functionality.\r\n *\r\n * See the description of `add()` for an example.\r\n *\r\n * Almost any object in amCharts4 has own adapter, accessible with `adapter`\r\n * property.\r\n *\r\n * Any adapters added to it will be applied to that object only.\r\n *\r\n * ### Global Adapters\r\n *\r\n * If you want to add an adapter which applies to all instances of the same\r\n * object type, like, for instance all slices in PieSeries, you can use\r\n * global adapter.\r\n *\r\n * Global adapter is a system-wide instance, accessible via `globalAdapter`.\r\n *\r\n * ```TypeScript\r\n * am4core.globalAdapter.addAll<am4charts.IPieSeriesAdapters, am4charts.PieSeries, \"fill\">(am4charts.PieSeries. \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * am4core.globalAdapter.addAll(am4charts.PieSeries. \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n *\r\n * {@link https://www.amcharts.com/docs/v4/reference/adapter_module/#globalAdapter_property More info}.\r\n *\r\n * @important\r\n */\r\nvar Adapter = /** @class */ (function () {\r\n /**\r\n * Constructor, sets the object referece this Adapter should be used for.\r\n *\r\n * @param c Object\r\n */\r\n function Adapter(c) {\r\n /**\r\n * Internal counter for callback ids.\r\n */\r\n this._callbackId = 0;\r\n /**\r\n * A list of adapter callbacks.\r\n *\r\n * @param $number.order(left.priority, right.priority) [description]\r\n * @param $number.order(left.id, right.id));\t} [description]\r\n */\r\n this._callbacks = new SortedList(function (left, right) {\r\n return $order.or($number.order(left.priority, right.priority), $number.order(left.id, right.id));\r\n });\r\n this._disabled = {};\r\n this.object = c;\r\n // TODO this exposes the internal events\r\n this.events = this._callbacks.events;\r\n }\r\n /**\r\n * Adds a callback for a specific key.\r\n *\r\n * ```TypeScript\r\n * // Override fill color value and make all slices green\r\n * chart.series.template.adapter.add(\"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * // Override fill color value and make all slices green\r\n * chart.series.template.adapter.add(\"fill\", function(value, target, key) {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"adapter\": {\r\n * \t// Override fill color value and make all slices green\r\n * \t\"fill\": function(value, target, key) {\r\n * \t return am4core.color(\"#005500\");\r\n * \t}\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * The above will call user-defined function (adapter) whenever `fill` value\r\n * is requested from the Pie series, allowing it to override the default\r\n * using custom code and any fuzzy logic.\r\n *\r\n * There can be any number of adapters set on one property key.\r\n *\r\n * In this case adapters will be applied in daisy-chain fashion. The first\r\n * adapter in queue will make its transformation. The next one will have\r\n * the output of the first adapter as a starting value, etc.\r\n *\r\n * The order of the adapters are determined either by the order they were\r\n * added in, or their `priority` value.\r\n *\r\n * The heigher the `priority`, the later in the game adapter will be applied.\r\n *\r\n * @param key Key\r\n * @param callback A callback function\r\n * @param priority The higher priority, the more chance the adapter will be applied last\r\n * @param scope Scope for the callback function\r\n */\r\n Adapter.prototype.add = function (key, callback, priority, scope) {\r\n if (priority === void 0) { priority = 0; }\r\n this._callbacks.insert({\r\n id: ++this._callbackId,\r\n key: key,\r\n callback: callback,\r\n priority: priority,\r\n scope: scope\r\n });\r\n };\r\n /**\r\n * Checks whether specific adapter is already set.\r\n *\r\n * @param key Key\r\n * @param callback A callback function\r\n * @param priority The higher priority, the more chance the adapter will be applied last\r\n * @param scope Scope for the callback function\r\n * @returns Adapter set?\r\n */\r\n Adapter.prototype.has = function (key, callback, priority, scope) {\r\n if (priority === void 0) { priority = 0; }\r\n return $iter.contains(this._callbacks.iterator(), function (item) {\r\n return item.key === key && item.callback === callback && item.priority === priority && item.scope === scope;\r\n });\r\n };\r\n /**\r\n * Removes adapter callbacks for the specific `key`.\r\n *\r\n * If `priority` is specified, only callbacks for that priority are removed.\r\n *\r\n * @param key Key\r\n * @param priority Priority\r\n * @todo Implement\r\n */\r\n Adapter.prototype.remove = function (key, priority) {\r\n var _this = this;\r\n // It has to make a copy because it removes the elements while iterating\r\n // TODO inefficient\r\n // TODO should this re-enable the key ?\r\n $array.each($iter.toArray(this._callbacks.iterator()), function (item) {\r\n // TODO test this\r\n if (item.key === key && (!$type.isNumber(priority) || priority === item.priority)) {\r\n _this._callbacks.remove(item);\r\n }\r\n });\r\n };\r\n /**\r\n * Enable applying adapters for a certain key, if it was disabled before by\r\n * `disableKey()`.\r\n *\r\n * @param key Key\r\n */\r\n Adapter.prototype.enableKey = function (key) {\r\n delete this._disabled[key];\r\n };\r\n /**\r\n * Disable applying adapters for a certain key.\r\n *\r\n * Optionally, can set how many applies to skip before automatically\r\n * re-enabling the applying.\r\n *\r\n * @param key Key\r\n * @param amount Number of applies to skip\r\n */\r\n Adapter.prototype.disableKey = function (key, amount) {\r\n if (amount === void 0) { amount = Infinity; }\r\n this._disabled[key] = amount;\r\n };\r\n Adapter.prototype._hasListenersByType = function (key) {\r\n return $array.any(this._callbacks.values, function (x) { return x.key === key; });\r\n };\r\n /**\r\n * Returns if there are any enabled adapters set for the specific `key`.\r\n *\r\n * @returns Are there any adapters for the key?\r\n */\r\n Adapter.prototype.isEnabled = function (key) {\r\n return this._disabled[key] == null && (this._hasListenersByType(key) || globalAdapter.isEnabled(this.object, key));\r\n };\r\n Adapter.prototype._shouldDispatch = function (key) {\r\n var count = this._disabled[key];\r\n if (!$type.isNumber(count)) {\r\n return true;\r\n }\r\n else {\r\n if (count <= 1) {\r\n delete this._disabled[key];\r\n }\r\n else {\r\n --this._disabled[key];\r\n }\r\n return false;\r\n }\r\n };\r\n /**\r\n * Passes the input value through all the callbacks for the defined `key`.\r\n *\r\n * @param key Key\r\n * @param value Input value\r\n * @param ...rest Rest of the parameters to be passed into callback\r\n * @return Output value\r\n */\r\n Adapter.prototype.apply = function (key, value) {\r\n if (this._shouldDispatch(key)) {\r\n // This is needed to improve the performance and reduce garbage collection\r\n var callbacks = this._callbacks.values;\r\n var length_1 = callbacks.length;\r\n if (length_1 > 0) {\r\n for (var i = 0; i < length_1; ++i) {\r\n var item = callbacks[i];\r\n if (item.key === key) {\r\n value = item.callback.call(item.scope, value, this.object, key);\r\n }\r\n }\r\n }\r\n // Apply global adapters\r\n value = globalAdapter.applyAll(this.object, key, value);\r\n return value;\r\n }\r\n else {\r\n return value;\r\n }\r\n };\r\n /**\r\n * Returns all adapter keys which are in this adapter.\r\n *\r\n * @return Adapter keys\r\n */\r\n Adapter.prototype.keys = function () {\r\n // TODO inefficient\r\n return $iter.toArray($iter.map(this._callbacks.iterator(), function (x) { return x.key; }));\r\n };\r\n /**\r\n * Copies all the adapter callbacks from `source`.\r\n *\r\n * @param source An Adapter to copy items from\r\n */\r\n Adapter.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source._callbacks.iterator(), function (x) {\r\n _this.add(x.key, x.callback, x.priority, x.scope);\r\n });\r\n $object.each(source._disabled, function (key, val) {\r\n _this._disabled[key] = val;\r\n });\r\n };\r\n /**\r\n * Clears all callbacks from this Adapter.\r\n */\r\n Adapter.prototype.clear = function () {\r\n // TODO should this also re-enable all the keys ?\r\n this._callbacks.clear();\r\n };\r\n return Adapter;\r\n}());\r\nexport { Adapter };\r\n//# sourceMappingURL=Adapter.js.map","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import React from 'react';\n\nvar unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n } // only handle componentWillReceiveProps\n\n\n if (typeof prototype.componentWillReceiveProps !== 'function') {\n return Component;\n } // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps\n // https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler\n\n\n if (!React.Profiler) {\n return Component;\n } // Here polyfill get started\n\n\n prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;\n delete prototype.componentWillReceiveProps;\n return Component;\n};\n\nexport default unsafeLifecyclesPolyfill;","import React from 'react';\n\nexport function toArrayChildren(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nexport function findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for <rc-animate> children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nexport function isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nexport function mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}","var util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexport default util;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport cssAnimate, { isCssAnimationSupported } from 'css-animation';\nimport animUtil from './util/animate';\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments));\n }\n\n _createClass(AnimateChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stop();\n }\n }, {\n key: 'componentWillEnter',\n value: function componentWillEnter(done) {\n if (animUtil.isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillAppear',\n value: function componentWillAppear(done) {\n if (animUtil.isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillLeave',\n value: function componentWillLeave(done) {\n if (animUtil.isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n }\n }, {\n key: 'transition',\n value: function transition(animationType, finishCallback) {\n var _this2 = this;\n\n var node = ReactDOM.findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = typeof transitionName === 'object';\n this.stop();\n var end = function end() {\n _this2.stopper = null;\n finishCallback();\n };\n if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = cssAnimate(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return AnimateChild;\n}(React.Component);\n\nAnimateChild.propTypes = {\n children: PropTypes.any,\n animation: PropTypes.any,\n transitionName: PropTypes.any\n};\nexport default AnimateChild;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill';\nimport { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils';\nimport AnimateChild from './AnimateChild';\nimport animUtil from './util/animate';\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (React.isValidElement(children)) {\n if (!children.key) {\n return React.cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n // eslint-disable-line\n\n function Animate(props) {\n _classCallCheck(this, Animate);\n\n var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentlyAnimatingKeys = {};\n _this.keysToEnter = [];\n _this.keysToLeave = [];\n\n _this.state = {\n children: toArrayChildren(getChildrenFromProps(props))\n };\n\n _this.childrenRefs = {};\n return _this;\n }\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this2.performAppear(child.key);\n }\n });\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n this.nextProps = nextProps;\n var nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this3.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = mergeChildren(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && findChildInChildrenByKey(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this3.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && findChildInChildrenByKey(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this3.keysToLeave.push(key);\n }\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n }, {\n key: 'isValidChildByKey',\n value: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return findShownChildInChildrenByKey(currentChildren, key, showProp);\n }\n return findChildInChildrenByKey(currentChildren, key);\n }\n }, {\n key: 'stop',\n value: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.childrenRefs[key];\n if (component) {\n component.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for <rc-animate> children');\n }\n return React.createElement(\n AnimateChild,\n {\n key: child.key,\n ref: function ref(node) {\n _this4.childrenRefs[child.key] = node;\n },\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: props.className,\n style: props.style\n }, props.componentProps);\n }\n return React.createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n }]);\n\n return Animate;\n}(React.Component);\n\nAnimate.isAnimate = true;\nAnimate.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n showProp: PropTypes.string,\n children: PropTypes.node\n};\nAnimate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.performEnter = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter'));\n }\n };\n\n this.performAppear = function (key) {\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear'));\n }\n };\n\n this.handleDoneAdding = function (key, type) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n if (!_this5.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n _this5.performLeave(key);\n } else if (type === 'appear') {\n if (animUtil.allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else if (animUtil.allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n };\n\n this.performLeave = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key));\n }\n };\n\n this.handleDoneLeaving = function (key) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n // in case state change is too fast\n if (_this5.isValidChildByKey(currentChildren, key)) {\n _this5.performEnter(key);\n } else {\n var end = function end() {\n if (animUtil.allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) {\n _this5.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n };\n};\n\nexport default unsafeLifecyclesPolyfill(Animate);","/**\r\n * Mouse-related functionality\r\n */\r\n/**\r\n * Defines static methods that hold style list for various mouse cursor styles,\r\n * maintaining browser compatibility.\r\n */\r\nvar MouseCursorStyle = /** @class */ (function () {\r\n function MouseCursorStyle() {\r\n }\r\n /**\r\n * Styles for \"grab\" mouse cursor.\r\n */\r\n MouseCursorStyle.grab = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"move\"\r\n }, {\r\n \"property\": \"cursor\",\r\n \"value\": \"grab\"\r\n }, {\r\n \"property\": \"cursor\",\r\n \"value\": \"-webkit-grab\"\r\n }];\r\n /**\r\n * Styles for \"grabbing\" mouse cursor.\r\n */\r\n MouseCursorStyle.grabbing = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"move\"\r\n }, {\r\n \"property\": \"cursor\",\r\n \"value\": \"grabbing\"\r\n }, {\r\n \"property\": \"cursor\",\r\n \"value\": \"-webkit-grabbing\"\r\n }];\r\n /**\r\n * Styles for \"pointer\" mouse cursor. (usually used for links)\r\n */\r\n MouseCursorStyle.pointer = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"pointer\"\r\n }];\r\n /**\r\n * Styles for default mouse cursor. (browser determines style)\r\n */\r\n MouseCursorStyle.default = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"default\"\r\n }];\r\n /**\r\n * Styles for horizontal bi-directional resize mouse cursor.\r\n */\r\n MouseCursorStyle.horizontalResize = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"ew-resize\"\r\n }];\r\n /**\r\n * Styles for vertical bi-directional mouse cursor.\r\n */\r\n MouseCursorStyle.verticalResize = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"ns-resize\"\r\n }];\r\n /**\r\n * Styles for \"no-allowed\" cursor.\r\n * @since 4.7.15\r\n */\r\n MouseCursorStyle.notAllowed = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"not-allowed\"\r\n }];\r\n /**\r\n * Styles for \"text\" cursor.\r\n * @since 4.9.12\r\n */\r\n MouseCursorStyle.text = [{\r\n \"property\": \"cursor\",\r\n \"value\": \"text\"\r\n }];\r\n return MouseCursorStyle;\r\n}());\r\nexport { MouseCursorStyle };\r\n//# sourceMappingURL=Mouse.js.map","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","/**\r\n * Animation module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { SVGDefaults } from \"../defs/SVGDefaults\";\r\nimport { Disposer } from \"../utils/Disposer\";\r\nimport { Color } from \"../utils/Color\";\r\nimport { Percent, percent } from \"../utils/Percent\";\r\nimport * as $async from \"../utils/AsyncPending\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $colors from \"../utils/Colors\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { system } from \"../System\";\r\nimport { options } from \"../Options\";\r\n/**\r\n * Calls a `callback` function for the `duration` of milliseconds.\r\n *\r\n * @todo Needed?\r\n * @deprecated Not used anywhere\r\n * @ignore Exclude from docs\r\n * @param duration Duration (ms)\r\n * @param callback Callback function\r\n * @return Disposer\r\n */\r\nexport function animate(duration, callback) {\r\n var disposed = false;\r\n // TODO use performance.now() ?\r\n var startTime = Date.now();\r\n function loop(now) {\r\n if (!disposed) {\r\n var diff = now - startTime;\r\n if (diff >= duration) {\r\n callback(1);\r\n }\r\n else {\r\n $async.nextFrame(loop);\r\n callback(diff / duration);\r\n }\r\n }\r\n }\r\n $async.nextFrame(loop);\r\n return new Disposer(function () {\r\n disposed = true;\r\n });\r\n}\r\n/**\r\n * Returns numeric value accoring to progress between start and end values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Value according to progress\r\n */\r\nfunction getProgressNumber(progress, from, to) {\r\n return from + ((to - from) * progress);\r\n}\r\n/**\r\n * Returns [[Percent]] value accoring to progress between start and end\r\n * values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Value according to progress\r\n */\r\nfunction getProgressPercent(progress, from, to) {\r\n return new Percent(getProgressNumber(progress, from.percent, to.percent));\r\n}\r\n/**\r\n * Returns color value accoring to progress between start and end values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Color according to progress\r\n */\r\nfunction getProgressColor(progress, from, to) {\r\n var color = new Color($colors.interpolate(from.rgb, to.rgb, progress));\r\n if (from.alpha != to.alpha) {\r\n color.alpha = from.alpha + (to.alpha - from.alpha) * progress;\r\n }\r\n return color;\r\n}\r\n/**\r\n * [getHybridProperty description]\r\n *\r\n * @todo Description\r\n * @param property [description]\r\n * @param type [description]\r\n * @return [description]\r\n */\r\nfunction getHybridProperty(property, type) {\r\n return type + property.charAt(0).toUpperCase() + property.substr(1);\r\n}\r\nvar AnimationDisposer = /** @class */ (function () {\r\n function AnimationDisposer(array) {\r\n this._disposer = new Disposer(function () {\r\n while (array.length !== 0) {\r\n array[0].dispose();\r\n }\r\n });\r\n }\r\n AnimationDisposer.prototype.isDisposed = function () {\r\n return this._disposer.isDisposed();\r\n };\r\n AnimationDisposer.prototype.dispose = function () {\r\n this._disposer.dispose();\r\n };\r\n return AnimationDisposer;\r\n}());\r\nexport { AnimationDisposer };\r\n/**\r\n * Animation can be used to transition certain properties on an object that\r\n * implements [[IAnimatable]] interface.\r\n *\r\n * @see {@link IAnimationEvents} for a list of available events\r\n */\r\nvar Animation = /** @class */ (function (_super) {\r\n __extends(Animation, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param object An object animation should run on\r\n * @param animationOptions One or several (array) of animation options\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n */\r\n function Animation(object, animationOptions, duration, easing) {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Duration of the animation in milliseconds.\r\n */\r\n _this.duration = 0;\r\n /**\r\n * Easing function to use.\r\n *\r\n * @see {@link Ease}\r\n */\r\n _this.easing = $ease.linear;\r\n /**\r\n * Contains progress of the current animation: 0 (start) to 1 (end).\r\n */\r\n _this.progress = 0;\r\n /**\r\n * Indicated how many times animation should loop.\r\n */\r\n _this._loop = 0;\r\n /**\r\n * Animation is paused.\r\n */\r\n _this._pause = false;\r\n /**\r\n * Holds reference to timeout for delayed play.\r\n */\r\n _this._delayTimeout = null;\r\n /**\r\n * Elapsed time in currently playing animation.\r\n */\r\n _this._time = 0;\r\n _this._isFinished = false;\r\n _this.className = \"Animation\";\r\n // Override duration if animations disabled system-wide\r\n if (options.animationsEnabled === false) {\r\n duration = 0;\r\n }\r\n // Set parameters\r\n _this.object = object;\r\n _this.animationOptions = $array.toArray(animationOptions);\r\n _this.duration = duration;\r\n if (easing) {\r\n _this.easing = easing;\r\n }\r\n // Run check if there are already animations playing on the same properties\r\n // and stop them - the last animation takes precedence\r\n //this.stopSameAnimations();\r\n /*if ($type.hasValue(callback)) {\r\n // TODO don't use .call\r\n this.events.on(\"animationended\", callback, object);\r\n }*/\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n // TODO verify that this is correct\r\n Animation.prototype.debug = function () { };\r\n /**\r\n * Disposes this object, clears up after itself.\r\n */\r\n Animation.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n this.pause();\r\n };\r\n /**\r\n * Delays animation start by X milliseconds.\r\n *\r\n * @param delay Delay (ms)\r\n * @return Animation\r\n */\r\n Animation.prototype.delay = function (delay) {\r\n var _this = this;\r\n //@todo Maybe not use `bind()`\r\n if (delay > 0) {\r\n this.pause();\r\n // This is so that it will get disposed if `this.object` is disposed\r\n // TODO hacky, figure out a better way\r\n $array.move(this.object.animations, this);\r\n var id_1 = setTimeout(function () {\r\n _this._delayTimeout = null;\r\n _this.start();\r\n }, delay);\r\n this._delayTimeout = new Disposer(function () {\r\n clearTimeout(id_1);\r\n });\r\n }\r\n return this;\r\n };\r\n Animation.prototype._start = function () {\r\n this._isFinished = false;\r\n // Clear delay timeout if there was one\r\n if (this._delayTimeout) {\r\n this.removeDispose(this._delayTimeout);\r\n this._delayTimeout = null;\r\n }\r\n // Run check if there are already animations playing on the same properties\r\n // and stop them - the last animation takes precedence\r\n this.stopSameAnimations();\r\n // Reset counters\r\n this._pause = false;\r\n // Register animation\r\n $array.move(system.animations, this);\r\n // Register this animation in object's `animations` list\r\n $array.move(this.object.animations, this);\r\n system.requestFrame();\r\n };\r\n /**\r\n * Starts animation.\r\n *\r\n * @return Animation\r\n */\r\n Animation.prototype.start = function () {\r\n this._start();\r\n this._startTime = Date.now();\r\n this._time = 0;\r\n this.staticOptions = [];\r\n // Process initial property values\r\n for (var i = this.animationOptions.length - 1; i >= 0; i--) {\r\n var options_1 = this.animationOptions[i];\r\n if (!$type.hasValue(options_1.from)) {\r\n if (options_1.childObject) {\r\n options_1.from = options_1.childObject[options_1.property];\r\n }\r\n else {\r\n options_1.from = this.object[options_1.property];\r\n if (!$type.hasValue(options_1.from)) {\r\n options_1.from = SVGDefaults[options_1.property];\r\n }\r\n }\r\n /*if (!$type.hasValue(options.from)) {\r\n throw Error(\"Could not get initial transition value.\");\r\n }*/\r\n }\r\n if (options_1.from == options_1.to) { // || options.to == (<any>this.object)[options.property]){ this is not good, as dataItem.value is set to final at once, and we animate workingValue\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n else if (!$type.hasValue(options_1.from) || (!(options_1.from instanceof Percent) && (options_1.to instanceof Percent)) || ((options_1.from instanceof Percent) && !(options_1.to instanceof Percent))) {\r\n // Initial value is undefined, treat it as static\r\n this.staticOptions.push(options_1);\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n else {\r\n // Use different update methods for different value types\r\n if ($type.isNumber(options_1.to)) {\r\n // Numeric value\r\n options_1.updateMethod = getProgressNumber;\r\n // Check if initial value is not Percent\r\n if (options_1.from instanceof Percent) {\r\n // It is. Let's convert it to pixel value\r\n // @todo Check if we can do this in a less hacky way\r\n var convertedFrom = this.object[getHybridProperty(options_1.property, \"pixel\")];\r\n if (!isNaN(convertedFrom)) {\r\n options_1.from = convertedFrom;\r\n }\r\n else {\r\n this.staticOptions.push(options_1);\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n }\r\n else if (isNaN(options_1.from)) {\r\n // Static value\r\n this.staticOptions.push(options_1);\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n }\r\n else {\r\n // Check if maybe we have a color or percent value\r\n if (options_1.to instanceof Color) {\r\n // Yup - set resolved named color\r\n //options.from = $colors.stringToColor(<string>options.from);\r\n if (options_1.from) {\r\n options_1.updateMethod = getProgressColor;\r\n }\r\n else {\r\n // Static value\r\n this.staticOptions.push(options_1);\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n }\r\n else if (options_1.to instanceof Percent) {\r\n // Percent\r\n options_1.updateMethod = getProgressPercent;\r\n // Check if the initial value is maybe in pixels\r\n if (!isNaN(options_1.from)) {\r\n // It is. Let's convert it\r\n // @todo Check if we can do this in a less hacky way\r\n var convertedFrom = this.object[getHybridProperty(options_1.property, \"relative\")];\r\n if (!isNaN(convertedFrom)) {\r\n options_1.from = percent(convertedFrom * 100);\r\n }\r\n }\r\n }\r\n else {\r\n // Static value\r\n this.staticOptions.push(options_1);\r\n $array.remove(this.animationOptions, options_1);\r\n }\r\n }\r\n }\r\n }\r\n // Apply static options (just in case they were reset by previous\r\n // animation loop)\r\n this.applyStaticOptions();\r\n if (this.events.isEnabled(\"animationstarted\")) {\r\n var event_1 = {\r\n type: \"animationstarted\",\r\n target: this,\r\n progress: this.progress\r\n };\r\n this.events.dispatchImmediately(\"animationstarted\", event_1);\r\n }\r\n this.update();\r\n // If duration is 0, just end animation\r\n if (this.duration === 0) {\r\n this.end();\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets loop count for the animation. If parameter is not a valid number the\r\n * animation will keep on looping indefinitely.\r\n *\r\n * @param count Number of times to loop animation\r\n * @return Animation\r\n */\r\n Animation.prototype.loop = function (count) {\r\n if (!$type.isNumber(count)) {\r\n count = Infinity;\r\n }\r\n this._loop = count;\r\n return this;\r\n };\r\n /**\r\n * Pauses animation.\r\n *\r\n * @return Animation\r\n */\r\n Animation.prototype.pause = function () {\r\n this._pause = true;\r\n if (this._delayTimeout) {\r\n this.removeDispose(this._delayTimeout);\r\n this._delayTimeout = null;\r\n }\r\n $array.remove(system.animations, this);\r\n $array.remove(this.object.animations, this);\r\n return this;\r\n };\r\n /**\r\n * Resumes paused animation.\r\n *\r\n * @return Animation\r\n */\r\n Animation.prototype.resume = function () {\r\n this._start();\r\n this._startTime = Date.now() - this._time;\r\n return this;\r\n };\r\n /**\r\n * Jumps to animation end. If animation is set to loop, this will start\r\n * another round of animation from start.\r\n *\r\n * @return Animation\r\n */\r\n Animation.prototype.end = function () {\r\n // Pause and complete the progress\r\n if (this._loop == 0) {\r\n this.pause();\r\n }\r\n this.setProgress(1);\r\n // Apply static options\r\n this.applyStaticOptions();\r\n if (this.events.isEnabled(\"animationended\")) {\r\n var event_2 = {\r\n type: \"animationended\",\r\n target: this,\r\n progress: this.progress\r\n };\r\n this.events.dispatchImmediately(\"animationended\", event_2);\r\n }\r\n // Check if we should loop\r\n if (this._loop > 0) {\r\n this._loop--;\r\n this.start();\r\n }\r\n else {\r\n this.stop();\r\n this._isFinished = true;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Stops animation immediately leaving properties in their current values.\r\n */\r\n Animation.prototype.kill = function () {\r\n this.pause();\r\n this._isFinished = true;\r\n };\r\n /**\r\n * Returns indicator if this animation is finished or not\r\n *\r\n * @return Is finished?\r\n */\r\n Animation.prototype.isFinished = function () {\r\n return this._isFinished;\r\n };\r\n /**\r\n * Applies static options that can't be animated.\r\n */\r\n Animation.prototype.applyStaticOptions = function () {\r\n var _this = this;\r\n $array.each(this.staticOptions, function (options) {\r\n if (options.childObject) {\r\n options.childObject[options.property] = _this.progress == 1 ? options.to : options.from;\r\n }\r\n else {\r\n _this.object[options.property] = _this.progress == 1 ? options.to : options.from;\r\n }\r\n });\r\n };\r\n /**\r\n * Stops animation.\r\n *\r\n * When animation is stopped, the properties of the target object will remain\r\n * where they were at the moment when `stop()` was called.\r\n *\r\n * @param skipEvent Do not trigger `animationstopped` event\r\n * @return Animation\r\n */\r\n Animation.prototype.stop = function (skipEvent) {\r\n this.pause();\r\n if (!skipEvent) {\r\n if (this.events.isEnabled(\"animationstopped\")) {\r\n var event_3 = {\r\n type: \"animationstopped\",\r\n target: this,\r\n progress: this.progress\r\n };\r\n this.events.dispatchImmediately(\"animationstopped\", event_3);\r\n }\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets current progress and updates object's numeric and color values.\r\n *\r\n * @param progress Progress (0-1)\r\n */\r\n Animation.prototype.setProgress = function (progress) {\r\n var _this = this;\r\n this._time = this.duration * progress; // just in case we call this from outside\r\n $array.each(this.animationOptions, function (options) {\r\n if (options.updateMethod && $type.hasValue(options.from)) {\r\n var value = options.updateMethod(progress, options.from, options.to);\r\n if (options.childObject) {\r\n options.childObject[options.property] = value;\r\n }\r\n else {\r\n _this.object[options.property] = value;\r\n }\r\n }\r\n });\r\n this.progress = progress;\r\n if (this.events.isEnabled(\"animationprogress\")) {\r\n var event_4 = {\r\n type: \"animationprogress\",\r\n target: this,\r\n progress: this.progress\r\n };\r\n this.events.dispatchImmediately(\"animationprogress\", event_4);\r\n }\r\n system.requestFrame();\r\n };\r\n /**\r\n * Tracks and sets progress according to time or frames.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Animation\r\n */\r\n Animation.prototype.update = function () {\r\n if (!this._pause) {\r\n var progress = void 0;\r\n this._time = $math.fitToRange(Date.now() - this._startTime, 0, this.duration);\r\n var timeProgress = this._time / this.duration;\r\n progress = this.easing(timeProgress);\r\n if (this.duration == 0 || !$type.isNumber(progress) || timeProgress >= 1) {\r\n progress = 1;\r\n }\r\n this.setProgress(progress);\r\n if ($math.round(this._time / this.duration, 6) == 1) {\r\n this.end();\r\n }\r\n }\r\n return this;\r\n };\r\n Object.defineProperty(Animation.prototype, \"delayed\", {\r\n /**\r\n * Returns `true` if this animation is delayed.\r\n *\r\n * @readonly\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._delayTimeout ? true : false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks other animations currently running on the same object and removes\r\n * overlapping options from those other animations that are contained in\r\n * this animation.\r\n *\r\n * This is needed to ensure that no two confurent animations step on each\r\n * other's toes by trying to animate the same property.\r\n */\r\n Animation.prototype.stopSameAnimations = function () {\r\n var _this = this;\r\n // stop animation of the same property\r\n // TODO make this more efficient\r\n // TODO don't copy the array\r\n $array.each($array.copy(this.object.animations), function (animation) {\r\n if (animation !== _this && !animation.delayed) {\r\n var killed_1 = [];\r\n $array.each(_this.animationOptions, function (newOptions) {\r\n $array.each(animation.animationOptions, function (oldOptions) {\r\n if (newOptions.property == oldOptions.property && newOptions.childObject == oldOptions.childObject) {\r\n killed_1.push(oldOptions);\r\n if (animation.animationOptions.length == 0) {\r\n animation.kill();\r\n }\r\n }\r\n });\r\n });\r\n $array.each(killed_1, function (oldOptions) {\r\n $array.remove(animation.animationOptions, oldOptions);\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Adds easing functions to \"function\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n Animation.prototype.asFunction = function (field) {\r\n return field == \"easing\" || _super.prototype.asIs.call(this, field);\r\n };\r\n return Animation;\r\n}(BaseObjectEvents));\r\nexport { Animation };\r\n//# sourceMappingURL=Animation.js.map","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","/**\r\n * Text class deals with all text placed on chart.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { registry } from \"../Registry\";\r\nimport { getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { MultiDisposer } from \"../utils/Disposer\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../utils/Responsive\";\r\nimport { options } from \"../Options\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Text is used to display highly configurable, data-enabled textual elements.\r\n *\r\n * ## Data Binding\r\n *\r\n * A Text element can dynamically parse and populate its contents with values\r\n * from a [[DataItem]].\r\n *\r\n * To activate such binding, set element's `dataItem` property.\r\n *\r\n * When activated, text contents will be parsed for special tags, e.g.:\r\n *\r\n * ```TypeScript\r\n * label.dataItem = myDataItem;\r\n * label.text = \"The title is: {title}\";\r\n * ```\r\n * ```JavaScript\r\n * label.dataItem = myDataItem;\r\n * label.text = \"The title is: {title}\";\r\n * ```\r\n *\r\n * The above will automatically replace \"{title}\" in the string with the\r\n * actual data value from `myDataItem`.\r\n *\r\n * Note, that most often dataItem is set by the Component.\r\n *\r\n *\r\n * @see {@link ILabelEvents} for a list of available events\r\n * @see {@link ILabelAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-strings/} for info on string formatting and data binding\r\n * @todo Vertical align\r\n * @important\r\n */\r\nvar Label = /** @class */ (function (_super) {\r\n __extends(Label, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Label() {\r\n var _this = \r\n // Execute super's constructor\r\n _super.call(this) || this;\r\n /**\r\n * Indicates if the whole text does not fit into max dimenstions set for it.\r\n */\r\n _this.isOversized = false;\r\n // Set this class name\r\n _this.className = \"Label\";\r\n _this.fill = new InterfaceColorSet().getFor(\"text\");\r\n // not good to set this, as then these will appear on each label and values set on container won't be applied.\r\n //this.textDecoration = \"none\";\r\n //this.fontWeight = \"normal\";\r\n // Set defaults\r\n _this.wrap = false;\r\n _this.truncate = false;\r\n _this.fullWords = true;\r\n _this.ellipsis = \"…\";\r\n _this.textAlign = \"start\";\r\n _this.textValign = \"top\";\r\n _this.layout = \"absolute\";\r\n _this.baseLineRatio = -0.27;\r\n //this.pixelPerfect = true;\r\n _this._positionPrecision = 1;\r\n // Add events to watch for maxWidth/maxHeight changes so that we can\r\n // invalidate this\r\n _this.events.on(\"maxsizechanged\", function () {\r\n if (_this.inited) {\r\n _this.handleMaxSize();\r\n }\r\n }, _this, false);\r\n // this solves strange bug when text just added to svg is 0x0\r\n _this.events.once(\"validated\", _this.handleValidate, _this, false);\r\n // Aply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * A placeholder method that is called **after** element finishes drawing\r\n * itself.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Label.prototype.afterDraw = function () {\r\n // since we removed validatePosition from sprite, we still need it here to handle rotated text\r\n _super.prototype.afterDraw.call(this);\r\n this.validatePosition();\r\n };\r\n /**\r\n * Sets [[Paper]] instance to use to draw elements.\r\n * @ignore\r\n * @param paper Paper\r\n * @return true if paper was changed, false, if it's the same\r\n */\r\n Label.prototype.setPaper = function (paper) {\r\n var changed = _super.prototype.setPaper.call(this, paper);\r\n if (changed) {\r\n this.hardInvalidate();\r\n }\r\n return changed;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Label.prototype.handleValidate = function () {\r\n if ((this.currentText || this.text) && (this.bbox.width == 0 || this.bbox.height == 0)) {\r\n registry.events.once(\"exitframe\", this.hardInvalidate, this);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Label.prototype.handleMaxSize = function () {\r\n if ((this.bbox.width > this.availableWidth)\r\n || ((this.bbox.width < this.availableWidth) && (this.isOversized || this.truncate))\r\n || (this.bbox.height > this.availableHeight)\r\n || ((this.bbox.height < this.availableHeight) && this.isOversized)) {\r\n this.invalidate();\r\n }\r\n else {\r\n //this.alignSVGText();\r\n }\r\n };\r\n /**\r\n * [arrange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Label.prototype.arrange = function () {\r\n };\r\n /**\r\n * Updates current text according to data item and supported features.\r\n * Returns `true` if current text has changed.\r\n *\r\n * @return Text changed?\r\n */\r\n Label.prototype.updateCurrentText = function () {\r\n // Determine output format\r\n var output, text;\r\n if ($utils.isNotEmpty(this.html) && this.paper.supportsForeignObject()) {\r\n // We favor HTML text if it's set and browser supports `foreignObject`\r\n output = \"html\";\r\n text = this.html;\r\n }\r\n else {\r\n output = \"svg\";\r\n text = this.text;\r\n }\r\n // Need to toString source?\r\n if ($type.isObject(text)) {\r\n text = text.toString();\r\n }\r\n // Need to format text all the time\r\n if ($type.hasValue(text) && text !== \"\") {\r\n text = this.populateString(text, this.dataItem);\r\n }\r\n if (output == \"html\") {\r\n if (this._adapterO) {\r\n text = this._adapterO.apply(\"htmlOutput\", text);\r\n }\r\n }\r\n else {\r\n if (this._adapterO) {\r\n text = this._adapterO.apply(\"textOutput\", text);\r\n }\r\n }\r\n // Update the text\r\n var changed = text != this.currentText || output != this._currentFormat;\r\n this.currentText = text;\r\n this._currentFormat = output;\r\n return changed;\r\n };\r\n /**\r\n * Hard invalidate means the text will be redrawn even if it hasn't changed.\r\n * This is used when we change `fontSize`, `fontFamily`, or for some other\r\n * reasons.\r\n */\r\n Label.prototype.hardInvalidate = function () {\r\n this._prevStatus = \"\";\r\n this.invalidate();\r\n };\r\n /**\r\n * Gets line bbox, uses caching to save cpu\r\n * @ignore\r\n */\r\n Label.prototype.getLineBBox = function (lineInfo) {\r\n //let cacheKey = lineInfo.text + lineInfo.style;\r\n //let lineBBox = this.getCache(cacheKey);\r\n //if (!lineBBox) {\r\n //lineBBox = lineInfo.element.getBBox();\r\n //if (lineBBox.width != 0 && lineBBox.height != 0) {\r\n //\tthis.setCache(cacheKey, lineBBox, 5000);\r\n //}\r\n //}\r\n var element = lineInfo && lineInfo.element;\r\n var node = element && element.node;\r\n // Check for the parent Node to avoid FF from throwing errors\r\n if (node && node.parentNode) {\r\n lineInfo.bbox = element.getBBox();\r\n }\r\n };\r\n /**\r\n * Draws the textual label.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Label.prototype.draw = function () {\r\n // Draw super\r\n _super.prototype.draw.call(this);\r\n var oldW = this.bbox.width;\r\n var oldH = this.bbox.height;\r\n var topParent = this.topParent;\r\n if (topParent) {\r\n if (!topParent.maxWidth || !topParent.maxHeight) {\r\n topParent.events.once(\"maxsizechanged\", this.hardInvalidate, this, false);\r\n return;\r\n }\r\n }\r\n // Calculate max width and height\r\n var maxWidth = $math.max(this.availableWidth - this.pixelPaddingLeft - this.pixelPaddingRight, 0);\r\n var maxHeight = $math.max(this.availableHeight - this.pixelPaddingTop - this.pixelPaddingBottom, 0);\r\n // save\r\n var status = maxHeight + \",\" + maxWidth + this.wrap + this.truncate + this.fullWords + this.rtl + this.ellipsis;\r\n // Update text\r\n if (!this.updateCurrentText() && this.inited && this._prevStatus == status) {\r\n return;\r\n }\r\n this._measuredWidth = 0;\r\n this._measuredHeight = 0;\r\n // Reset\r\n this.isOversized = false;\r\n // Determine output format\r\n var output = this._currentFormat;\r\n var text = this.currentText;\r\n // Empty string\r\n if (!$type.hasValue(text) || text == \"\") {\r\n this.element.attr({ display: \"none\" });\r\n return;\r\n }\r\n // Chop up text into lines\r\n // We're still processing SVG and HTML in the same way for now\r\n var lines = text.split(\"\\n\");\r\n // Do we need to go through the trouble of measuring lines\r\n //let measure: boolean = true;// (lines.length > 1) || this.wrap;\r\n this._prevStatus = status;\r\n this.textAlign = this.textAlign;\r\n // need this to measure\r\n var display = this.group.getAttr(\"display\");\r\n if (display == \"none\") {\r\n this.group.removeAttr(\"display\");\r\n }\r\n if (this.textPathElement) {\r\n this.textPathElement.removeChildren();\r\n }\r\n // SVG or HTML?\r\n if (output === \"svg\") {\r\n /**\r\n * SVG\r\n */\r\n this.element.removeAttr(\"display\");\r\n // Clear the element\r\n var group = this.element;\r\n //group.removeChildren();\r\n this.resetBBox();\r\n // Init state variables\r\n var currentHeight = 0;\r\n var currentFormat = \"\";\r\n // Process each line\r\n for (var i = 0; i < lines.length; i++) {\r\n // Get line\r\n var line = lines[i];\r\n // Check if line is empty\r\n if (line == \"\") {\r\n // It is, let's just update currentHeight and go to the next one\r\n // If it's the first line, we'll have to use arbirary line height,\r\n // since there's nothing to measure. For subsequent lines we can take\r\n // previous line's height\r\n var tempElement = this.getSVGLineElement(\"\", 0);\r\n tempElement.add(this.getSvgElement(\".\", getTextFormatter().translateStyleShortcuts(currentFormat)));\r\n group.add(tempElement);\r\n var offset = Math.ceil(tempElement.getBBox().height);\r\n if (offset > 0) {\r\n currentHeight += offset;\r\n }\r\n group.removeElement(tempElement);\r\n // Clear cache if necessary\r\n var lineInfo_1 = this.getLineInfo(i);\r\n if (lineInfo_1) {\r\n lineInfo_1.text = \"\";\r\n lineInfo_1.element.textContent = \"\";\r\n }\r\n continue;\r\n }\r\n // Chunk up the line and process each chunk\r\n var chunks = getTextFormatter().chunk(line, null, this.ignoreFormatting);\r\n var currentLineHeight = 0;\r\n var firstChunk = true;\r\n var skipTextChunks = false;\r\n // Create line element or grab it from cache\r\n var lineInfo = this.getLineInfo(i);\r\n if (lineInfo) {\r\n // Empty line\r\n lineInfo.text = \"\";\r\n lineInfo.element.textContent = \"\";\r\n }\r\n else {\r\n // Init new line info\r\n lineInfo = {\r\n \"text\": \"\",\r\n \"element\": this.getSVGLineElement(\"\", 0),\r\n \"complex\": false\r\n };\r\n // Create the line element\r\n //lineInfo.element = this.getSVGLineElement(\"\", 0);\r\n //lineElement = this.getSVGLineElement(\"\", 0);\r\n group.add(lineInfo.element);\r\n }\r\n lineInfo.element.removeAttr(\"display\");\r\n lineInfo.element.removeChildren(); // memory leak without this\r\n if (this.textPathElement) {\r\n lineInfo.element.add(this.textPathElement);\r\n }\r\n /*// @todo not needed anymore\r\n if (this.rtl) {\r\n chunks.reverse();\r\n }*/\r\n // Process each chunk\r\n for (var x = 0; x < chunks.length; x++) {\r\n // If there's more than one chunk, means the line is \"complex\"\r\n if (x) {\r\n lineInfo.complex = true;\r\n }\r\n // Get chunk\r\n var chunk = chunks[x];\r\n // Is this chunk format or text?\r\n if (chunk.type === \"format\") {\r\n // Log current format, so that we can apply it to multiple lines if\r\n // necessary\r\n currentFormat = chunk.text;\r\n }\r\n else {\r\n // It's text block\r\n // Need to skip?\r\n // We do this when truncating. We can't just simply go ahead and\r\n // abandon chunk processing as they might have formatting\r\n // instructions in them that are relevant for subsequent lines\r\n if (skipTextChunks) {\r\n continue;\r\n }\r\n // Add chunk to the current element\r\n //lineInfo.element.content += $utils.trim(getTextFormatter().format(currentFormat + chunk.text, output));\r\n lineInfo.text = chunk.text;\r\n lineInfo.style = getTextFormatter().translateStyleShortcuts(currentFormat);\r\n if (this.textPathElement) {\r\n this.getSvgElement(lineInfo.text, lineInfo.style, this.textPathElement);\r\n }\r\n else {\r\n this.getSvgElement(lineInfo.text, lineInfo.style, lineInfo.element);\r\n }\r\n this.getLineBBox(lineInfo);\r\n lineInfo.bbox.width = Math.ceil(lineInfo.bbox.width);\r\n // Updated current line height\r\n if (currentLineHeight < lineInfo.bbox.height) {\r\n currentLineHeight = lineInfo.bbox.height;\r\n }\r\n // Wrapping?\r\n if ((this.wrap || this.truncate) && (lineInfo.bbox.width > maxWidth)) {\r\n // Set oversized\r\n this.isOversized = true;\r\n // Take temporary measurements\r\n var lineText = lineInfo.element.textContent;\r\n var avgCharWidth = (lineInfo.bbox.width / lineText.length); // * .9;\r\n // Calculate average number of symbols / width\r\n var excessChars = $math.min(Math.ceil((lineInfo.bbox.width - maxWidth) / avgCharWidth), lineText.length);\r\n // Are we truncating or auto-wrapping text?\r\n if (this.truncate) {\r\n /**\r\n * Processing line truncation\r\n * With the addition of each text chunk we measure if current\r\n * line does not exceed maxWidth. If it does, we will stop\r\n * addition of further chunks as well as try to truncate\r\n * current or any number of previous chunks with an added\r\n * ellipsis\r\n */\r\n // Indicator whether we need to add ellipsis to the current\r\n // element, even if it fits. This is needed to indicate\r\n // whether we have already removed some subsequent chunks in\r\n // which case we need to add ellipsis.\r\n var addEllipsis = false;\r\n // Process each child in the temporary line, until the whole\r\n // line fits, preferably with an ellipsis\r\n // TODO use iterator instead\r\n var node_1 = lineInfo.element.node;\r\n if (node_1 && node_1.childNodes) {\r\n for (var e = lineInfo.element.node.childNodes.length - 1; e >= 0; e--) {\r\n // Get current element\r\n var node_2 = lineInfo.element.node.childNodes[e];\r\n // Add ellipsis only if previous chunk was removed in full\r\n // and this chunk already fits\r\n //if (addEllipsis && (bbox.width <= maxWidth)) {\r\n if (addEllipsis && (lineInfo.bbox.width <= maxWidth)) {\r\n // Add ellipsis\r\n node_2.textContent += \" \" + this.ellipsis;\r\n // Measure again (we need to make sure ellipsis fits)\r\n lineInfo.bbox = lineInfo.element.getBBox();\r\n lineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n // If it fits, we're done here\r\n // If it doesn't we continue rolling\r\n if (lineInfo.bbox.width <= maxWidth) {\r\n break;\r\n }\r\n }\r\n addEllipsis = false;\r\n // Get element text\r\n var elementText = node_2.textContent;\r\n // Calculate average number of symbols / width\r\n lineText = lineInfo.element.textContent;\r\n excessChars = $math.min(Math.ceil((lineInfo.bbox.width - maxWidth) / avgCharWidth), lineText.length);\r\n // Do this until we fit\r\n while ((lineInfo.bbox.width > maxWidth) && (excessChars <= lineText.length) && (excessChars > 0)) {\r\n // Calculate max available chars\r\n var maxChars = $math.max(lineText.length - excessChars - this.ellipsis.length, 1);\r\n // Is there anything left?\r\n if (maxChars <= 1) {\r\n // Nope, let's jump to the previous item\r\n // Set excess characters to zero so that this loop does\r\n // not repeat when it over\r\n excessChars = 0;\r\n // Add ellipsis to previous item\r\n // Subsequent iterations will check if the ellipsis fits\r\n if (e > 0) {\r\n // Indicating to add ellipsis to previous item\r\n addEllipsis = true;\r\n // Removing this node\r\n lineInfo.element.node.removeChild(node_2);\r\n }\r\n }\r\n // Truncate the text\r\n elementText = $utils.truncateWithEllipsis(elementText, maxChars, this.ellipsis, this.fullWords, this.rtl);\r\n if ((elementText.length > maxChars) && this.fullWords) {\r\n // Still too long?\r\n // Let's try truncating breaking words anyway\r\n elementText = $utils.truncateWithEllipsis(elementText, maxChars, this.ellipsis, false, this.rtl);\r\n }\r\n // Set truncated text\r\n node_2.textContent = elementText;\r\n // Measure again\r\n lineInfo.bbox = lineInfo.element.getBBox();\r\n lineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n // Increase excess characters count, just in case it still\r\n // doesn't fit and we have to go at it again\r\n excessChars = Math.ceil(excessChars * 1.1);\r\n }\r\n // Do not process further chunks\r\n skipTextChunks = true;\r\n }\r\n }\r\n }\r\n else {\r\n /**\r\n * Processign auto-wrap\r\n * In this case we're going to be adding text chunks until\r\n * they don't fit into current line. Once that happens we will\r\n * inject the rest of the chunks to the next line\r\n */\r\n // Get last node added and measure it\r\n var node_3 = lineInfo.element.node;\r\n if (node_3) {\r\n var lastNode = lineInfo.element.node.lastChild;\r\n // Init split lines\r\n var splitLines = void 0;\r\n while ((lineInfo.bbox.width > maxWidth) && (excessChars <= lineText.length) && (excessChars > 0)) {\r\n // Calculate max available chars\r\n var maxChars = $math.max(chunk.text.length - excessChars, 1);\r\n // Don't split the words mid-word if it's not the first chunk\r\n // in the line\r\n if (firstChunk) {\r\n // Split mid-word if necessary\r\n splitLines = $utils.splitTextByCharCount(chunk.text, maxChars, true, this.rtl);\r\n }\r\n else {\r\n // Don't split mid-word\r\n splitLines = $utils.splitTextByCharCount(chunk.text, maxChars, true, this.rtl, false);\r\n // Check if the first word is too long\r\n if ((splitLines[0].length > maxChars) || maxChars === 1) {\r\n // Yes - move the whole chunk to the next line\r\n // Remove the element we just added\r\n lineInfo.element.node.removeChild(lastNode);\r\n // Break out of the while on next cycle\r\n excessChars = 0;\r\n }\r\n }\r\n // Use the first line to update last item\r\n if (excessChars > 0) {\r\n var lineText_1 = splitLines.shift();\r\n if (firstChunk) {\r\n lineText_1 = $utils.trim(lineText_1);\r\n }\r\n lastNode.textContent = getTextFormatter().cleanUp(lineText_1);\r\n }\r\n // Measure again, just in case\r\n lineInfo.bbox = lineInfo.element.getBBox();\r\n lineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n // Increase excess characters count, just in case it still\r\n // doesn't fit and we have to go at it again\r\n //excessChars = Math.ceil(excessChars * 1.05);\r\n excessChars++;\r\n }\r\n // Construct the rest of the line\r\n if (splitLines.length > 0) {\r\n var restOfLine = \"\";\r\n // Add leftovers from splitting the current chunk\r\n if ($type.hasValue(splitLines)) {\r\n if (this.rtl) {\r\n restOfLine += splitLines.join(\"\") + currentFormat;\r\n }\r\n else {\r\n restOfLine += currentFormat + splitLines.join(\"\").replace(/([\\[\\]]{1})/g, \"$1$1\");\r\n }\r\n }\r\n // Add the rest of the chunks\r\n for (var c = x + 1; c < chunks.length; c++) {\r\n if (chunks[c].type == \"value\") {\r\n // We're escaping single square brackets that were\r\n // cleaned up by chunk() back to double square brackets\r\n // so that they are not being treated as format on\r\n // next pass.\r\n restOfLine += chunks[c].text.replace(/([\\[\\]]{1})/g, \"$1$1\");\r\n }\r\n else {\r\n restOfLine += chunks[c].text;\r\n }\r\n }\r\n // Inject the rest of the lines as chunks for subsequent\r\n lines.splice(i + 1, 0, restOfLine);\r\n }\r\n // Skip processing the rest of the chunks\r\n skipTextChunks = true;\r\n }\r\n }\r\n }\r\n // Let's update the text's bbox with the line's one\r\n if (this.bbox.width < lineInfo.bbox.width) {\r\n this.bbox.width = lineInfo.bbox.width;\r\n }\r\n // commented to avoid bug (seen on sankey link) where text is incorrectly aligned\r\n //if (this.bbox.x > lineInfo.bbox.x) {\r\n //this.bbox.x = lineInfo.bbox.x;\r\n //}\r\n this.bbox.height = currentHeight + currentLineHeight;\r\n // Position current line\r\n if (!this.textPathElement) {\r\n lineInfo.element.attr({\r\n \"x\": \"0\",\r\n \"y\": currentHeight + currentLineHeight,\r\n \"dy\": $math.round((this.baseLineRatio * currentLineHeight), 3).toString()\r\n });\r\n }\r\n else {\r\n lineInfo.element.attr({\r\n \"dy\": -this.paddingBottom.toString()\r\n });\r\n }\r\n firstChunk = false;\r\n }\r\n }\r\n // Trim the last item\r\n var node = lineInfo.element.node;\r\n if (node) {\r\n var lastNode = node.lastChild;\r\n if (lastNode) {\r\n lastNode.textContent = this.rtl ?\r\n $utils.ltrim(lastNode.textContent) :\r\n $utils.rtrim(lastNode.textContent);\r\n }\r\n }\r\n // Increment collective height\r\n currentHeight += currentLineHeight;\r\n // Save line cache\r\n this.addLineInfo(lineInfo, i);\r\n }\r\n // Check if maybe we need to hide the whole label if it doesn't fit\r\n this.maybeHideOversized();\r\n this.measureFailed = false;\r\n if (this.bbox.width == 0 || this.bbox.height == 0) {\r\n this.measureFailed = true;\r\n }\r\n // Updated measured dims\r\n this._measuredWidth = $math.round($math.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight));\r\n this._measuredHeight = $math.round($math.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom));\r\n // Align the lines\r\n this.alignSVGText();\r\n this.bbox.width = this._measuredWidth;\r\n this.bbox.height = this._measuredHeight;\r\n if (oldH != this._measuredHeight || oldW != this._measuredWidth) {\r\n this.dispatch(\"transformed\");\r\n }\r\n this.hideUnused(lines.length);\r\n }\r\n else {\r\n /**\r\n * HTML\r\n */\r\n this.element.removeAttr(\"display\");\r\n this.resetBBox();\r\n // Clear the element\r\n var group = this.element;\r\n group.removeChildren();\r\n this.setCache(\"lineInfo\", [], 0);\r\n // Create a ForeignObject to use as HTML container\r\n var fo = this.paper.foreignObject();\r\n group.add(fo);\r\n // Set widths on foreignObject so that autosizing measurements work\r\n // This will bet reset to actual content width/height\r\n if (this.maxWidth) {\r\n fo.attr({\r\n width: this.maxWidth - this.pixelPaddingLeft - this.pixelPaddingRight\r\n });\r\n }\r\n if (this.maxHeight) {\r\n fo.attr({\r\n height: this.maxHeight - this.pixelPaddingTop - this.pixelPaddingBottom\r\n });\r\n }\r\n // Create line element\r\n //let lineElement: HTMLElement = this.getHTMLLineElement(getTextFormatter().format(this.html, output));\r\n var lineElement = this.getHTMLLineElement(text);\r\n fo.node.appendChild(lineElement);\r\n // Temporarily set to inline-block so we can measure real width and height\r\n lineElement.style.display = \"inline-block\";\r\n var clientWidth = lineElement.clientWidth;\r\n var clientHeight = lineElement.clientHeight;\r\n lineElement.style.display = \"block\";\r\n this._bbox = {\r\n x: 0,\r\n y: 0,\r\n width: clientWidth,\r\n height: clientHeight\r\n };\r\n // Set exact dimensions of foreignObject so it is sized exactly as\r\n // the content within (add one pixel to width so it does not wrap)\r\n fo.attr({\r\n width: clientWidth + 1,\r\n height: clientHeight\r\n });\r\n // Check if maybe we need to hide the whole label if it doesn't fit\r\n this.maybeHideOversized();\r\n // Set measurements and update bbox\r\n this._measuredWidth = $math.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight);\r\n this._measuredHeight = $math.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom);\r\n this.bbox.width = this._measuredWidth;\r\n this.bbox.height = this._measuredHeight;\r\n // Don't let labels bleed out of the alotted area\r\n if (this.truncate) {\r\n lineElement.style.overflow = \"hidden\";\r\n }\r\n if ((clientWidth > maxWidth) || (clientHeight > maxHeight)) {\r\n this.isOversized = true;\r\n }\r\n }\r\n // Set applicable styles\r\n this.setStyles();\r\n this.updateCenter();\r\n this.updateBackground();\r\n if (display == \"none\") {\r\n this.group.attr({ display: \"none\" });\r\n }\r\n if (this.pathElement) {\r\n this.paper.appendDef(this.pathElement);\r\n }\r\n };\r\n /**\r\n * Hides element if it does not fit into available space\r\n */\r\n Label.prototype.maybeHideOversized = function () {\r\n if (this.hideOversized) {\r\n if ((this.availableWidth < this.bbox.width) || (this.availableHeight < this.bbox.height)) {\r\n this.element.attr({ display: \"none\" });\r\n this.isOversized = true;\r\n }\r\n else {\r\n this.element.removeAttr(\"display\");\r\n this.isOversized = false;\r\n }\r\n }\r\n };\r\n /**\r\n * Aligns the lines horizontally and vertically, based on properties.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Label.prototype.alignSVGText = function () {\r\n // Get Group\r\n var group = this.element;\r\n var children = group.node.children || group.node.childNodes;\r\n // Is there anything to align?\r\n if (!children || (children && children.length == 0)) {\r\n return;\r\n }\r\n var width = this._measuredWidth;\r\n var height = this._measuredHeight;\r\n // TODO maybe these aren't needed ?\r\n $utils.used(this.pixelPaddingLeft);\r\n $utils.used(this.pixelPaddingRight);\r\n $utils.used(this.pixelPaddingTop);\r\n $utils.used(this.pixelPaddingBottom);\r\n if (this.rtl) {\r\n group.attr({\r\n \"direction\": \"rtl\"\r\n });\r\n }\r\n else {\r\n group.removeAttr(\"direction\");\r\n }\r\n // Process each line\r\n //$iter.each(group.children.backwards().iterator(), (element) => {\r\n for (var i = children.length - 1; i >= 0; i--) {\r\n // Align horizontally\r\n // Since we are using `text-anchor` for horizontal alignment, all we need\r\n // to do here is move the `x` position\r\n var node = children[i];\r\n node.setAttribute(\"text-anchor\", this.textAlign);\r\n if (this.textPathElement) {\r\n node.removeAttribute(\"x\");\r\n node.removeAttribute(\"y\");\r\n }\r\n else {\r\n switch (this.textAlign) {\r\n case \"middle\":\r\n node.setAttribute(\"x\", (width / 2).toString() + \"px\");\r\n break;\r\n case \"end\":\r\n if (this.rtl) {\r\n }\r\n else {\r\n node.setAttribute(\"x\", width.toString());\r\n }\r\n break;\r\n default:\r\n if (this.rtl) {\r\n node.setAttribute(\"x\", width.toString());\r\n }\r\n else {\r\n node.removeAttribute(\"text-anchor\");\r\n }\r\n break;\r\n }\r\n var y = $type.toNumber(node.getAttribute(\"y\"));\r\n switch (this.textValign) {\r\n case \"middle\":\r\n node.setAttribute(\"y\", ((y || 0) + (height - this.bbox.height) / 2).toString());\r\n break;\r\n case \"bottom\":\r\n node.setAttribute(\"y\", ((y || 0) + height - this.bbox.height).toString());\r\n break;\r\n default:\r\n node.setAttribute(\"y\", (y || 0).toString());\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Produces an SVG line element with formatted text.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to wrap into line\r\n * @param y Current line vertical position\r\n * @return A DOM element\r\n * @todo Implement HTML support\r\n */\r\n Label.prototype.getSVGLineElement = function (text, y) {\r\n // Create a <text> node and set text\r\n var element = this.paper.addGroup(\"text\");\r\n element.textContent = text;\r\n // Set parameters\r\n element.attr({\r\n \"x\": \"0\"\r\n //\"alignment-baseline\": \"hanging\",\r\n //\"baseline-shift\": \"-20%\",\r\n //\"text-anchor\": \"center\"\r\n });\r\n // Set `y` position\r\n if ($type.hasValue(y)) {\r\n element.attr({\r\n \"y\": y.toString()\r\n });\r\n }\r\n // Don't let labels blled out of the alotted area\r\n if (this.truncate || this.wrap) {\r\n element.attr({ \"overflow\": \"hidden\" });\r\n }\r\n // Add RTL?\r\n // This has now been moved to this.alignSVGText()\r\n // if (this.rtl) {\r\n // \telement.attr({\r\n // \t\t\"direction\": \"rtl\",\r\n // \t\t//\"unicode-bidi\": \"bidi-override\"\r\n // \t});\r\n // }\r\n return element;\r\n };\r\n Object.defineProperty(Label.prototype, \"rtl\", {\r\n /**\r\n * @return RTL?\r\n */\r\n get: function () {\r\n if ($type.hasValue(this._rtl)) {\r\n return this._rtl;\r\n }\r\n else if (this._topParent) {\r\n return this._topParent.rtl;\r\n }\r\n return false;\r\n },\r\n /**\r\n * An RTL (right-to-left) setting.\r\n *\r\n * RTL may affect alignment, text, and other visual properties.\r\n *\r\n * If you set this on a top-level chart object, it will be used for all\r\n * child elements, e.g. labels, unless they have their own `rtl` setting\r\n * set directly on them.\r\n *\r\n * @param value `true` for to use RTL\r\n */\r\n set: function (value) {\r\n value = $type.toBoolean(value);\r\n this._rtl = value;\r\n if (this.element) {\r\n this.alignSVGText();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Resets cached BBox.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Label.prototype.resetBBox = function () {\r\n this._bbox = { x: 0, y: 0, width: 0, height: 0 };\r\n };\r\n /**\r\n * Creates and returns an HTML line element (`<div>`).\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to add\r\n * @return `<div>` element reference\r\n */\r\n Label.prototype.getHTMLLineElement = function (text) {\r\n // Create the <div> element\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = text;\r\n // Set text alignment\r\n switch (this.textAlign) {\r\n case \"middle\":\r\n div.style.textAlign = \"center\";\r\n break;\r\n case \"end\":\r\n div.style.textAlign = \"right\";\r\n break;\r\n }\r\n // Disable or enable wrapping\r\n if (this.wrap) {\r\n div.style.wordWrap = \"break-word\";\r\n }\r\n else {\r\n div.style.whiteSpace = \"nowrap\";\r\n }\r\n // Don't let labels bleed out of the alotted area\r\n // Moved to `draw()` because setting \"hidden\" kills all measuring\r\n /*if (this.truncate) {\r\n div.style.overflow = \"hidden\";\r\n }*/\r\n // Set RTL-related styles\r\n if (this.rtl) {\r\n div.style.direction = \"rtl\";\r\n //div.style.unicodeBidi = \"bidi-override\";\r\n }\r\n // Translate some of the SVG styles into CSS\r\n if ($type.hasValue(this.fill)) {\r\n div.style.color = this.fill.toString();\r\n }\r\n return div;\r\n };\r\n /**\r\n * Applies specific styles to text to make it not selectable, unless it is\r\n * explicitly set as `selectable`.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Set styles via AMElement\r\n */\r\n Label.prototype.setStyles = function () {\r\n var group = this.element;\r\n if (!this.selectable || this.draggable || this.resizable || this.swipeable) {\r\n group.addStyle({\r\n \"webkitUserSelect\": \"none\",\r\n \"msUserSelect\": \"none\"\r\n });\r\n }\r\n else if (this.selectable) {\r\n group.removeStyle(\"webkitUserSelect\");\r\n group.removeStyle(\"msUserSelect\");\r\n }\r\n };\r\n /**\r\n * Hides unused lines\r\n */\r\n Label.prototype.hideUnused = function (index) {\r\n this.initLineCache();\r\n var lines = this.getCache(\"lineInfo\");\r\n if (lines.length >= index) {\r\n for (var i = index; i < lines.length; i++) {\r\n var line = lines[i];\r\n if (line && line.element) {\r\n line.element.attr({ \"display\": \"none\" });\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Label.prototype, \"text\", {\r\n /**\r\n * @return SVG text\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"text\");\r\n },\r\n /**\r\n * An SVG text.\r\n *\r\n * Please note that setting `html` will override this setting if browser\r\n * supports `foreignObject` in SGV, such as most modern browsers excluding\r\n * IEs.\r\n *\r\n * @param value SVG Text\r\n */\r\n set: function (value) {\r\n //this.setPropertyValue(\"html\", undefined);\r\n this.setPropertyValue(\"text\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"path\", {\r\n /**\r\n * @return Path\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"path\");\r\n },\r\n /**\r\n * An SVG path string to position text along. If set, the text will follow\r\n * the curvature of the path.\r\n *\r\n * Location along the path can be set using `locationOnPath`.\r\n *\r\n * IMPORTANT: Only SVG text can be put on path. If you are using HTML text\r\n * this setting will be ignored.\r\n *\r\n * @since 4.1.2\r\n * @param value Path\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"path\", value, true)) {\r\n if (this.pathElement) {\r\n this.pathElement.dispose();\r\n }\r\n if (this.textPathElement) {\r\n this.textPathElement.dispose();\r\n }\r\n this.pathElement = this.paper.add(\"path\");\r\n this.pathElement.attr({ \"d\": value });\r\n this.pathElement.attr({ \"id\": \"text-path-\" + this.uid });\r\n this._disposers.push(this.pathElement);\r\n this.textPathElement = this.paper.addGroup(\"textPath\");\r\n this.textPathElement.attrNS($dom.XLINK, \"xlink:href\", \"#text-path-\" + this.uid);\r\n // TODO remove after https://bugzilla.mozilla.org/show_bug.cgi?id=455986 is fixed\r\n this.textPathElement.attr({ \"path\": value });\r\n this._disposers.push(this.textPathElement);\r\n this.hardInvalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"locationOnPath\", {\r\n /**\r\n * @return Relatvie location on path\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationOnPath\");\r\n },\r\n /**\r\n * Relative label location on `path`. Value range is from 0 (beginning)\r\n * to 1 (end).\r\n *\r\n * Works only if you set `path` setting to an SVG path.\r\n *\r\n * @since 4.1.2\r\n * @default 0\r\n * @param value Relatvie location on path\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"locationOnPath\", value);\r\n if (this.textPathElement) {\r\n this.textPathElement.attr({ \"startOffset\": (value * 100) + \"%\" });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"baseLineRatio\", {\r\n /**\r\n * @return Base line ratio\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"baseLineRatio\");\r\n },\r\n /**\r\n * A ratio to calculate text baseline. Ralative distance from the bottom of\r\n * the label.\r\n *\r\n * @since 4.4.2\r\n * @default -0.27\r\n * @param value Base line ratio\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"baseLineRatio\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"wrap\", {\r\n /**\r\n * @return Auto-wrap enabled or not\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wrap\");\r\n },\r\n /**\r\n * Enables or disables autowrapping of text.\r\n *\r\n * @param value Auto-wrapping enabled\r\n */\r\n set: function (value) {\r\n this.resetBBox();\r\n this.setPropertyValue(\"wrap\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"truncate\", {\r\n /**\r\n * @return Truncate text?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"truncate\");\r\n },\r\n /**\r\n * Indicates if text lines need to be truncated if they do not fit, using\r\n * configurable `ellipsis` string.\r\n *\r\n * `truncate` overrides `wrap` if both are set to `true`.\r\n *\r\n * NOTE: For HTML text, this setting **won't** trigger a parser and actual\r\n * line truncation with ellipsis. It will just hide everything that goes\r\n * outside the label.\r\n *\r\n * @param value trincate text?\r\n */\r\n set: function (value) {\r\n this.resetBBox();\r\n this.setPropertyValue(\"truncate\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"fullWords\", {\r\n /**\r\n * @return Truncate on full words?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fullWords\");\r\n },\r\n /**\r\n * If `truncate` is enabled, should Label try to break only on full words\r\n * (`true`), or whenever needed, including middle of the word. (`false`)\r\n *\r\n * @default true\r\n * @param value Truncate on full words?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fullWords\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"ellipsis\", {\r\n /**\r\n * @return Ellipsis string\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"ellipsis\");\r\n },\r\n /**\r\n * Ellipsis character to use if `truncate` is enabled.\r\n *\r\n * @param value Ellipsis string\r\n * @default \"...\"\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"ellipsis\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"selectable\", {\r\n /**\r\n * @return Text selectable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"selectable\");\r\n },\r\n /**\r\n * Forces the text to be selectable. This setting will be ignored if the\r\n * object has some kind of interaction attached to it, such as it is\r\n * `draggable`, `swipeable`, `resizable`.\r\n *\r\n * @param value Text selectable?\r\n * @default false\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"selectable\", value, true);\r\n this.setStyles();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"textAlign\", {\r\n /**\r\n * @return Alignment\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"textAlign\");\r\n },\r\n /**\r\n * Horizontal text alignment.\r\n *\r\n * Available choices:\r\n * * \"start\"\r\n * * \"middle\"\r\n * * \"end\"\r\n *\r\n * @param value Alignment\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"textAlign\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"textValign\", {\r\n /**\r\n * @ignore Exclude from docs (not used)\r\n * @return Alignment\r\n * @deprecated\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"textValign\");\r\n },\r\n /**\r\n * Vertical text alignment.\r\n *\r\n * @ignore Exclude from docs (not used)\r\n * @param value Alignment\r\n * @deprecated\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"textValign\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"html\", {\r\n /**\r\n * @return HTML content\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"html\");\r\n },\r\n /**\r\n * Raw HTML to be used as text.\r\n *\r\n * NOTE: HTML text is subject to browser support. It relies on browsers\r\n * supporting SVG `foreignObject` nodes. Some browsers (read IEs) do not\r\n * support it. On those browsers, the text will fall back to basic SVG text,\r\n * striping out all HTML markup and styling that goes with it.\r\n *\r\n * For more information about `foreignObject` and its browser compatibility\r\n * refer to [this page](https://developer.mozilla.org/en/docs/Web/SVG/Element/foreignObject#Browser_compatibility).\r\n *\r\n * @param value HTML text\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"html\", value, true);\r\n if (!$type.hasValue(value)) {\r\n var group = this.element;\r\n group.removeChildrenByTag(\"foreignObject\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Label.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n if (this.html) {\r\n var group = this.element;\r\n var divs = group.node.getElementsByTagName(\"div\");\r\n for (var i = 0; i < divs.length; i++) {\r\n var div = divs[i];\r\n if ($type.hasValue(this.fill)) {\r\n div.style.color = this.fill.toString();\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Label.prototype, \"hideOversized\", {\r\n /**\r\n * @return Hide if text does not fit?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hideOversized\");\r\n },\r\n /**\r\n * Indicates whether the whole text should be hidden if it does not fit into\r\n * its allotted space.\r\n *\r\n * @param value Hide if text does not fit?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"hideOversized\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"ignoreFormatting\", {\r\n /**\r\n * @return Ignore formatting?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"ignoreFormatting\");\r\n },\r\n /**\r\n * If set to `true` square-bracket formatting blocks will be treated as\r\n * regular text.\r\n *\r\n * @default false\r\n * @param value Ignore formatting?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"ignoreFormatting\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Override `mesaureElement` so it does not get measure again, because\r\n * internal `_bbox` is being updated by measuring routines in Text itself.\r\n */\r\n Label.prototype.measureElement = function () { };\r\n /**\r\n * Returns information about a line element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param index Line index\r\n * @return Line info object\r\n */\r\n Label.prototype.getLineInfo = function (index) {\r\n this.initLineCache();\r\n var lines = this.getCache(\"lineInfo\");\r\n return lines.length > index ? lines[index] : undefined;\r\n };\r\n /**\r\n * Adds a line to line info cache.\r\n *\r\n * @ignore Exclude from docs\r\n * @param line Line info object\r\n * @param index Insert at specified index\r\n */\r\n Label.prototype.addLineInfo = function (line, index) {\r\n this.initLineCache();\r\n this.getCache(\"lineInfo\")[index] = line;\r\n };\r\n /**\r\n * Checks if line cache is initialized and initializes it.\r\n */\r\n Label.prototype.initLineCache = function () {\r\n if (!$type.hasValue(this.getCache(\"lineInfo\"))) {\r\n this.setCache(\"lineInfo\", [], 0);\r\n }\r\n };\r\n /**\r\n * Sets a [[DataItem]] to use for populating dynamic sections of the text.\r\n *\r\n * Check the description for [[Text]] class, for data binding.\r\n *\r\n * @param dataItem Data item\r\n */\r\n Label.prototype.setDataItem = function (dataItem) {\r\n if (this._sourceDataItemEvents) {\r\n this._sourceDataItemEvents.dispose();\r\n }\r\n if (dataItem) {\r\n this._sourceDataItemEvents = new MultiDisposer([\r\n dataItem.events.on(\"valuechanged\", this.invalidate, this, false),\r\n dataItem.events.on(\"workingvaluechanged\", this.invalidate, this, false),\r\n dataItem.events.on(\"calculatedvaluechanged\", this.invalidate, this, false),\r\n dataItem.events.on(\"propertychanged\", this.invalidate, this, false)\r\n ]);\r\n }\r\n _super.prototype.setDataItem.call(this, dataItem);\r\n };\r\n Object.defineProperty(Label.prototype, \"availableWidth\", {\r\n /**\r\n * Returns available horizontal space.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Available width (px)\r\n */\r\n get: function () {\r\n return $type.hasValue(this.maxWidth) ? this.maxWidth : this.pixelWidth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Label.prototype, \"availableHeight\", {\r\n /**\r\n * Returns available vertical space.\r\n *\r\n * @return Available height (px)\r\n */\r\n get: function () {\r\n return $type.hasValue(this.maxHeight) ? this.maxHeight : this.pixelHeight;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // temp, replacing textFormatter method\r\n Label.prototype.getSvgElement = function (text, style, parent) {\r\n var element = this.paper.add(\"tspan\");\r\n element.textContent = text;\r\n if (style) {\r\n if (options.nonce && parent) {\r\n //element.node.setAttribute(\"nonce\", \"test123\");\r\n var classid = \"amcharts_element_style_\" + btoa(style).replace(/[^\\w]*/g, \"\");\r\n element.node.setAttribute(\"class\", classid);\r\n var defs = document.createElementNS($dom.SVGNS, \"defs\");\r\n parent.node.appendChild(defs);\r\n var e = document.createElement(\"style\");\r\n e.type = \"text/css\";\r\n e.innerHTML = \".\" + classid + \" { \" + style + \"}\";\r\n e.setAttribute(\"nonce\", options.nonce);\r\n defs.appendChild(e);\r\n }\r\n else {\r\n element.node.setAttribute(\"style\", style);\r\n }\r\n }\r\n if (parent) {\r\n parent.add(element);\r\n }\r\n return element;\r\n };\r\n /**\r\n * Invalidates the whole element, including layout AND all its child\r\n * elements.\r\n */\r\n Label.prototype.deepInvalidate = function () {\r\n _super.prototype.deepInvalidate.call(this);\r\n this.hardInvalidate();\r\n };\r\n Object.defineProperty(Label.prototype, \"readerTitle\", {\r\n /**\r\n * @return Title\r\n */\r\n get: function () {\r\n var title = this.getPropertyValue(\"readerTitle\");\r\n if (!title) {\r\n title = this.populateString($utils.plainText($utils.isNotEmpty(this.html)\r\n ? this.html\r\n : this.text));\r\n }\r\n else if (this.dataItem) {\r\n title = this.populateString(title);\r\n }\r\n return title;\r\n },\r\n /**\r\n * Screen reader title of the element.\r\n *\r\n * @param value Title\r\n */\r\n set: function (value) {\r\n value = $type.toText(value);\r\n if (this.setPropertyValue(\"readerTitle\", value)) {\r\n this.applyAccessibility();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Label;\r\n}(Container));\r\nexport { Label };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Label\"] = Label;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Hide labels added directly to chart, like titles if chart is short.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Label && target.parent && target.parent.isBaseSprite) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Label.js.map","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","/*\n * Date Format 1.2.3\n * (c) 2007-2009 Steven Levithan <stevenlevithan.com>\n * MIT license\n *\n * Includes enhancements by Scott Trenda <scott.trenda.net>\n * and Kris Kowal <cixar.com/~kris.kowal/>\n *\n * Accepts a date, a mask, or a date and a mask.\n * Returns a formatted version of the given date.\n * The date defaults to the current date/time.\n * The mask defaults to dateFormat.masks.default.\n */\n\n(function(global) {\n 'use strict';\n\n var dateFormat = (function() {\n var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZWN]|\"[^\"]*\"|'[^']*'/g;\n var timezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g;\n var timezoneClip = /[^-+\\dA-Z]/g;\n \n // Regexes and supporting functions are cached through closure\n return function (date, mask, utc, gmt) {\n \n // You can't provide utc if you skip other args (use the 'UTC:' mask prefix)\n if (arguments.length === 1 && kindOf(date) === 'string' && !/\\d/.test(date)) {\n mask = date;\n date = undefined;\n }\n \n date = date || new Date;\n \n if(!(date instanceof Date)) {\n date = new Date(date);\n }\n \n if (isNaN(date)) {\n throw TypeError('Invalid date');\n }\n \n mask = String(dateFormat.masks[mask] || mask || dateFormat.masks['default']);\n \n // Allow setting the utc/gmt argument via the mask\n var maskSlice = mask.slice(0, 4);\n if (maskSlice === 'UTC:' || maskSlice === 'GMT:') {\n mask = mask.slice(4);\n utc = true;\n if (maskSlice === 'GMT:') {\n gmt = true;\n }\n }\n \n var _ = utc ? 'getUTC' : 'get';\n var d = date[_ + 'Date']();\n var D = date[_ + 'Day']();\n var m = date[_ + 'Month']();\n var y = date[_ + 'FullYear']();\n var H = date[_ + 'Hours']();\n var M = date[_ + 'Minutes']();\n var s = date[_ + 'Seconds']();\n var L = date[_ + 'Milliseconds']();\n var o = utc ? 0 : date.getTimezoneOffset();\n var W = getWeek(date);\n var N = getDayOfWeek(date);\n var flags = {\n d: d,\n dd: pad(d),\n ddd: dateFormat.i18n.dayNames[D],\n dddd: dateFormat.i18n.dayNames[D + 7],\n m: m + 1,\n mm: pad(m + 1),\n mmm: dateFormat.i18n.monthNames[m],\n mmmm: dateFormat.i18n.monthNames[m + 12],\n yy: String(y).slice(2),\n yyyy: y,\n h: H % 12 || 12,\n hh: pad(H % 12 || 12),\n H: H,\n HH: pad(H),\n M: M,\n MM: pad(M),\n s: s,\n ss: pad(s),\n l: pad(L, 3),\n L: pad(Math.round(L / 10)),\n t: H < 12 ? dateFormat.i18n.timeNames[0] : dateFormat.i18n.timeNames[1],\n tt: H < 12 ? dateFormat.i18n.timeNames[2] : dateFormat.i18n.timeNames[3],\n T: H < 12 ? dateFormat.i18n.timeNames[4] : dateFormat.i18n.timeNames[5],\n TT: H < 12 ? dateFormat.i18n.timeNames[6] : dateFormat.i18n.timeNames[7],\n Z: gmt ? 'GMT' : utc ? 'UTC' : (String(date).match(timezone) || ['']).pop().replace(timezoneClip, ''),\n o: (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n S: ['th', 'st', 'nd', 'rd'][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10],\n W: W,\n N: N\n };\n \n return mask.replace(token, function (match) {\n if (match in flags) {\n return flags[match];\n }\n return match.slice(1, match.length - 1);\n });\n };\n })();\n\n dateFormat.masks = {\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 'shortTime': 'h:MM TT',\n 'mediumTime': 'h:MM:ss TT',\n 'longTime': 'h:MM:ss TT Z',\n 'isoDate': 'yyyy-mm-dd',\n 'isoTime': 'HH:MM:ss',\n 'isoDateTime': 'yyyy-mm-dd\\'T\\'HH:MM:sso',\n 'isoUtcDateTime': 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'',\n 'expiresHeaderFormat': 'ddd, dd mmm yyyy HH:MM:ss Z'\n };\n\n // Internationalization strings\n dateFormat.i18n = {\n dayNames: [\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\n ],\n monthNames: [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'\n ],\n timeNames: [\n 'a', 'p', 'am', 'pm', 'A', 'P', 'AM', 'PM'\n ]\n };\n\nfunction pad(val, len) {\n val = String(val);\n len = len || 2;\n while (val.length < len) {\n val = '0' + val;\n }\n return val;\n}\n\n/**\n * Get the ISO 8601 week number\n * Based on comments from\n * http://techblog.procurios.nl/k/n618/news/view/33796/14863/Calculate-ISO-8601-week-and-year-in-javascript.html\n *\n * @param {Object} `date`\n * @return {Number}\n */\nfunction getWeek(date) {\n // Remove time components of date\n var targetThursday = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\n // Change date to Thursday same week\n targetThursday.setDate(targetThursday.getDate() - ((targetThursday.getDay() + 6) % 7) + 3);\n\n // Take January 4th as it is always in week 1 (see ISO 8601)\n var firstThursday = new Date(targetThursday.getFullYear(), 0, 4);\n\n // Change date to Thursday same week\n firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3);\n\n // Check if daylight-saving-time-switch occurred and correct for it\n var ds = targetThursday.getTimezoneOffset() - firstThursday.getTimezoneOffset();\n targetThursday.setHours(targetThursday.getHours() - ds);\n\n // Number of weeks between target Thursday and first Thursday\n var weekDiff = (targetThursday - firstThursday) / (86400000*7);\n return 1 + Math.floor(weekDiff);\n}\n\n/**\n * Get ISO-8601 numeric representation of the day of the week\n * 1 (for Monday) through 7 (for Sunday)\n * \n * @param {Object} `date`\n * @return {Number}\n */\nfunction getDayOfWeek(date) {\n var dow = date.getDay();\n if(dow === 0) {\n dow = 7;\n }\n return dow;\n}\n\n/**\n * kind-of shortcut\n * @param {*} val\n * @return {String}\n */\nfunction kindOf(val) {\n if (val === null) {\n return 'null';\n }\n\n if (val === undefined) {\n return 'undefined';\n }\n\n if (typeof val !== 'object') {\n return typeof val;\n }\n\n if (Array.isArray(val)) {\n return 'array';\n }\n\n return {}.toString.call(val)\n .slice(8, -1).toLowerCase();\n};\n\n\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return dateFormat;\n });\n } else if (typeof exports === 'object') {\n module.exports = dateFormat;\n } else {\n global.dateFormat = dateFormat;\n }\n})(this);\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"./Path\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar Tension = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n */\r\n function Tension(tensionX, tensionY) {\r\n this._tensionX = tensionX;\r\n this._tensionY = tensionY;\r\n }\r\n /**\r\n * [smooth description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param points [description]\r\n * @return [description]\r\n */\r\n Tension.prototype.smooth = function (points) {\r\n for (var i = points.length - 1; i > 0; i--) {\r\n var p0 = points[i];\r\n var p1 = points[i - 1];\r\n if (Math.abs(p0.x - p1.x) < 0.1 && Math.abs(p0.y - p1.y) < 0.1) {\r\n points.splice(i - 1, 1);\r\n }\r\n }\r\n var tensionX = this._tensionX;\r\n var tensionY = this._tensionY;\r\n if (points.length < 3 || (tensionX >= 1 && tensionY >= 1)) {\r\n return $path.polyline(points);\r\n }\r\n var first = points[0];\r\n var last = points[points.length - 1];\r\n var closed = false;\r\n if ($math.round(first.x, 3) == $math.round(last.x) && $math.round(first.y) == $math.round(last.y)) {\r\n closed = true;\r\n }\r\n // Can't moveTo here, as it wont be possible to have fill then.\r\n var path = \"\";\r\n for (var i = 0, len = points.length - 1; i < len; i++) {\r\n var p0 = points[i - 1];\r\n var p1 = points[i];\r\n var p2 = points[i + 1];\r\n var p3 = points[i + 2];\r\n if (i === 0) {\r\n if (closed) {\r\n p0 = points[points.length - 2];\r\n }\r\n else {\r\n p0 = points[i];\r\n }\r\n }\r\n else if (i == points.length - 2) {\r\n if (closed) {\r\n p3 = points[1];\r\n }\r\n else {\r\n p3 = points[i + 1];\r\n }\r\n }\r\n var controlPointA = $math.getCubicControlPointA(p0, p1, p2, p3, tensionX, tensionY);\r\n var controlPointB = $math.getCubicControlPointB(p0, p1, p2, p3, tensionX, tensionY);\r\n path += $path.cubicCurveTo(p2, controlPointA, controlPointB);\r\n }\r\n return path;\r\n };\r\n return Tension;\r\n}());\r\nexport { Tension };\r\n/**\r\n * Returns a waved line SVG path between two points.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point1 Starting point\r\n * @param point2 Ending point\r\n * @param waveLength Wave length\r\n * @param waveHeight Wave height\r\n * @param adjustWaveLength Adjust wave length based on the actual line length\r\n * @return SVG path\r\n */\r\nexport function wavedLine(point1, point2, waveLength, waveHeight, tension, adjustWaveLength) {\r\n var x1 = point1.x;\r\n var y1 = point1.y;\r\n var x2 = point2.x;\r\n var y2 = point2.y;\r\n var distance = $math.getDistance(point1, point2);\r\n if (adjustWaveLength) {\r\n waveLength = distance / Math.round(distance / waveLength);\r\n }\r\n var d = registry.getCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]));\r\n if (!d) {\r\n if (distance > 0) {\r\n var angle = Math.atan2(y2 - y1, x2 - x1);\r\n var cos = Math.cos(angle);\r\n var sin = Math.sin(angle);\r\n var waveLengthX = waveLength * cos;\r\n var waveLengthY = waveLength * sin;\r\n if (waveLength <= 1 || waveHeight <= 1) {\r\n d = $path.lineTo(point2);\r\n }\r\n else {\r\n var halfWaveCount = Math.round(2 * distance / waveLength);\r\n var points = [];\r\n var sign_1 = 1;\r\n if (x2 < x1) {\r\n sign_1 *= -1;\r\n }\r\n if (y2 < y1) {\r\n sign_1 *= -1;\r\n }\r\n for (var i = 0; i <= halfWaveCount; i++) {\r\n sign_1 *= -1;\r\n var x = x1 + i * waveLengthX / 2 + sign_1 * waveHeight / 2 * sin;\r\n var y = y1 + i * waveLengthY / 2 - sign_1 * waveHeight / 2 * cos;\r\n points.push({ x: x, y: y });\r\n }\r\n d = new Tension(tension, tension).smooth(points);\r\n }\r\n }\r\n else {\r\n d = \"\";\r\n }\r\n registry.setCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]), d);\r\n }\r\n return d;\r\n}\r\nvar Monotone = /** @class */ (function () {\r\n function Monotone(reversed, info) {\r\n this._reversed = reversed;\r\n this._closed = info.closed;\r\n }\r\n // According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\r\n // \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\r\n // with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\r\n Monotone.prototype._curve = function (x0, x1, y0, y1, t0, t1) {\r\n var dx = (x1 - x0) / 3;\r\n if (this._reversed) {\r\n return $path.cubicCurveTo({ x: y1, y: x1 }, { x: y0 + dx * t0, y: x0 + dx }, { x: y1 - dx * t1, y: x1 - dx });\r\n }\r\n else {\r\n return $path.cubicCurveTo({ x: x1, y: y1 }, { x: x0 + dx, y: y0 + dx * t0 }, { x: x1 - dx, y: y1 - dx * t1 });\r\n }\r\n };\r\n Monotone.prototype.smooth = function (points) {\r\n var _this = this;\r\n var x0 = NaN;\r\n var x1 = NaN;\r\n var y0 = NaN;\r\n var y1 = NaN;\r\n var t0 = NaN;\r\n var point = 0;\r\n var output = \"\";\r\n $array.each(points, function (_a) {\r\n var x = _a.x, y = _a.y;\r\n if (_this._reversed) {\r\n var temp = x;\r\n x = y;\r\n y = temp;\r\n }\r\n var t1 = NaN;\r\n if (!(x === x1 && y === y1)) {\r\n switch (point) {\r\n case 0:\r\n point = 1;\r\n if (_this._reversed) {\r\n output += $path.lineTo({ x: y, y: x });\r\n }\r\n else {\r\n output += $path.lineTo({ x: x, y: y });\r\n }\r\n break;\r\n case 1:\r\n point = 2;\r\n break;\r\n case 2:\r\n point = 3;\r\n output += _this._curve(x0, x1, y0, y1, slope2(x0, x1, y0, y1, t1 = slope3(x0, x1, y0, y1, x, y)), t1);\r\n break;\r\n default:\r\n output += _this._curve(x0, x1, y0, y1, t0, t1 = slope3(x0, x1, y0, y1, x, y));\r\n break;\r\n }\r\n x0 = x1;\r\n x1 = x;\r\n y0 = y1;\r\n y1 = y;\r\n t0 = t1;\r\n }\r\n });\r\n switch (point) {\r\n case 2:\r\n if (this._reversed) {\r\n output += $path.lineTo({ x: y1, y: x1 });\r\n }\r\n else {\r\n output += $path.lineTo({ x: x1, y: y1 });\r\n }\r\n break;\r\n case 3:\r\n output += this._curve(x0, x1, y0, y1, t0, slope2(x0, x1, y0, y1, t0));\r\n break;\r\n }\r\n if (this._closed) {\r\n output += $path.closePath();\r\n }\r\n return output;\r\n };\r\n return Monotone;\r\n}());\r\nexport { Monotone };\r\n// TODO move this someplace else\r\nfunction sign(x) {\r\n return x < 0 ? -1 : 1;\r\n}\r\nfunction slope2(x0, x1, y0, y1, t) {\r\n var h = x1 - x0;\r\n return h ? (3 * (y1 - y0) / h - t) / 2 : t;\r\n}\r\nfunction slope3(x0, x1, y0, y1, x2, y2) {\r\n var h0 = x1 - x0;\r\n var h1 = x2 - x1;\r\n var s0 = (y1 - y0) / (h0 || h1 < 0 && -0);\r\n var s1 = (y2 - y1) / (h1 || h0 < 0 && -0);\r\n var p = (s0 * h1 + s1 * h0) / (h0 + h1);\r\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\r\n}\r\nvar MonotoneX = /** @class */ (function (_super) {\r\n __extends(MonotoneX, _super);\r\n function MonotoneX(info) {\r\n return _super.call(this, false, info) || this;\r\n }\r\n return MonotoneX;\r\n}(Monotone));\r\nexport { MonotoneX };\r\nvar MonotoneY = /** @class */ (function (_super) {\r\n __extends(MonotoneY, _super);\r\n function MonotoneY(info) {\r\n return _super.call(this, true, info) || this;\r\n }\r\n return MonotoneY;\r\n}(Monotone));\r\nexport { MonotoneY };\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nvar Basis = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param info [description]\r\n */\r\n function Basis(info) {\r\n this._closed = info.closed;\r\n }\r\n /**\r\n * [smooth description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param points [description]\r\n * @return [description]\r\n */\r\n Basis.prototype.smooth = function (points) {\r\n var _this = this;\r\n var x0 = NaN;\r\n var x1 = NaN;\r\n var x2 = NaN;\r\n var x3 = NaN;\r\n var x4 = NaN;\r\n var y0 = NaN;\r\n var y1 = NaN;\r\n var y2 = NaN;\r\n var y3 = NaN;\r\n var y4 = NaN;\r\n var point = 0;\r\n var output = \"\";\r\n var pushCurve = function (x, y) {\r\n output += $path.cubicCurveTo({\r\n x: (x0 + 4 * x1 + x) / 6,\r\n y: (y0 + 4 * y1 + y) / 6\r\n }, {\r\n x: (2 * x0 + x1) / 3,\r\n y: (2 * y0 + y1) / 3\r\n }, {\r\n x: (x0 + 2 * x1) / 3,\r\n y: (y0 + 2 * y1) / 3\r\n });\r\n };\r\n var pushPoint = function (_a) {\r\n var x = _a.x, y = _a.y;\r\n switch (point) {\r\n case 0:\r\n point = 1;\r\n if (_this._closed) {\r\n x2 = x;\r\n y2 = y;\r\n }\r\n else {\r\n output += $path.lineTo({ x: x, y: y });\r\n }\r\n break;\r\n case 1:\r\n point = 2;\r\n if (_this._closed) {\r\n x3 = x;\r\n y3 = y;\r\n }\r\n break;\r\n case 2:\r\n point = 3;\r\n if (_this._closed) {\r\n x4 = x;\r\n y4 = y;\r\n output += $path.moveTo({ x: (x0 + 4 * x1 + x) / 6, y: (y0 + 4 * y1 + y) / 6 });\r\n break;\r\n }\r\n else {\r\n output += $path.lineTo({ x: (5 * x0 + x1) / 6, y: (5 * y0 + y1) / 6 });\r\n // fall-through\r\n }\r\n default:\r\n pushCurve(x, y);\r\n break;\r\n }\r\n x0 = x1;\r\n x1 = x;\r\n y0 = y1;\r\n y1 = y;\r\n };\r\n $array.each(points, pushPoint);\r\n if (this._closed) {\r\n switch (point) {\r\n case 1:\r\n output += $path.moveTo({ x: x2, y: y2 });\r\n output += $path.closePath();\r\n break;\r\n case 2:\r\n output += $path.moveTo({ x: (x2 + 2 * x3) / 3, y: (y2 + 2 * y3) / 3 });\r\n output += $path.lineTo({ x: (x3 + 2 * x2) / 3, y: (y3 + 2 * y2) / 3 });\r\n output += $path.closePath();\r\n break;\r\n case 3:\r\n pushPoint({ x: x2, y: y2 });\r\n pushPoint({ x: x3, y: y3 });\r\n pushPoint({ x: x4, y: y4 });\r\n break;\r\n }\r\n }\r\n else {\r\n switch (point) {\r\n case 3:\r\n pushCurve(x1, y1);\r\n // fall-through\r\n case 2:\r\n output += $path.lineTo({ x: x1, y: y1 });\r\n break;\r\n }\r\n output += $path.closePath();\r\n }\r\n return output;\r\n };\r\n return Basis;\r\n}());\r\nexport { Basis };\r\n//# sourceMappingURL=Smoothing.js.map","\nvar content = require(\"!!../../../cache-loader/dist/cjs.js??ref--6-1!../../../css-loader/dist/cjs.js??ref--6-2!../../../postcss-loader/src/index.js!../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../cache-loader/dist/cjs.js??ref--6-1!../../../css-loader/dist/cjs.js??ref--6-2!../../../postcss-loader/src/index.js!../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../cache-loader/dist/cjs.js??ref--6-1!../../../css-loader/dist/cjs.js??ref--6-2!../../../postcss-loader/src/index.js!../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","/**\r\n * A collection of easing functions\r\n *\r\n * Parts of this collection are taken from D3.js library (https://d3js.org/)\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $math from \"../utils/Math\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * The functions below are from D3.js library (https://d3js.org/)\r\n *\r\n * ----------------------------------------------------------------------------\r\n * Copyright 2017 Mike Bostock\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are permitted provided that the following conditions are met:\r\n *\r\n * 1. Redistributions of source code must retain the above copyright notice,\r\n * this list of conditions and the following disclaimer.\r\n *\r\n * 2. Redistributions in binary form must reproduce the above copyright notice,\r\n * this list of conditions and the following disclaimer in the documentation\r\n * and/or other materials provided with the distribution.\r\n *\r\n * 3. Neither the name of the copyright holder nor the names of its\r\n * contributors may be used to endorse or promote products derived from this\r\n * software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r\n * POSSIBILITY OF SUCH DAMAGE.\r\n * ----------------------------------------------------------------------------\r\n * @hidden\r\n */\r\n/**\r\n * ============================================================================\r\n * LINEAR FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Easing function: \"linear\".\r\n */\r\nexport function linear(t) {\r\n return +t;\r\n}\r\nregistry.registeredClasses[\"ease.linear\"] = linear;\r\n/**\r\n * Easing function: \"quadIn\".\r\n */\r\nexport function quadIn(t) {\r\n return t * t;\r\n}\r\nregistry.registeredClasses[\"ease.quadIn\"] = quadIn;\r\n/**\r\n * Easing function: \"quadOut\".\r\n */\r\nexport function quadOut(t) {\r\n return t * (2 - t);\r\n}\r\nregistry.registeredClasses[\"ease.quadOut\"] = quadOut;\r\n/**\r\n * Easing function: \"quadInOut\".\r\n */\r\nexport function quadInOut(t) {\r\n t *= 2;\r\n return (t <= 1 ? t * t : --t * (2 - t) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.quadInOut\"] = quadInOut;\r\n/**\r\n * Easing function: \"polyIn\".\r\n */\r\nexport function polyIn(t, e) {\r\n return Math.pow(t, e);\r\n}\r\nregistry.registeredClasses[\"ease.polyIn\"] = polyIn;\r\n/**\r\n * Easing function: \"polyOut\".\r\n */\r\nexport function polyOut(t, e) {\r\n return 1 - Math.pow(1 - t, e);\r\n}\r\nregistry.registeredClasses[\"ease.polyOut\"] = polyOut;\r\n/**\r\n * Easing function: \"polyInOut\".\r\n */\r\nexport function polyInOut(t, e) {\r\n t *= 2;\r\n return (t <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.polyInOut\"] = polyInOut;\r\n/**\r\n * Easing function: \"polyIn3\".\r\n */\r\nexport function polyIn3(t) {\r\n return polyIn(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyIn3\"] = polyIn3;\r\n/**\r\n * Easing function: \"polyOut3\".\r\n */\r\nexport function polyOut3(t) {\r\n return polyOut(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyOut3\"] = polyOut3;\r\n/**\r\n * Easing function: \"polyInOut3\".\r\n */\r\nexport function polyInOut3(t) {\r\n return polyInOut(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyInOut3\"] = polyInOut3;\r\n/**\r\n * ============================================================================\r\n * EXPONENTIAL FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Easing function: \"expIn\".\r\n */\r\nexport function expIn(t) {\r\n return Math.pow(2, 10 * t - 10);\r\n}\r\nregistry.registeredClasses[\"ease.expIn\"] = expIn;\r\n/**\r\n * Easing function: \"expOut\".\r\n */\r\nexport function expOut(t) {\r\n return 1 - Math.pow(2, -10 * t);\r\n}\r\nregistry.registeredClasses[\"ease.expOut\"] = expOut;\r\n/**\r\n * Easing function: \"expInOut\".\r\n */\r\nexport function expInOut(t) {\r\n t *= 2;\r\n return (t <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.expInOut\"] = expInOut;\r\n/**\r\n * ============================================================================\r\n * SINE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Easing function: \"sinIn\".\r\n */\r\nexport function sinIn(t) {\r\n return 1 - Math.cos(t * $math.HALFPI);\r\n}\r\nregistry.registeredClasses[\"ease.sinIn\"] = sinIn;\r\n/**\r\n * Easing function: \"sinOut\".\r\n */\r\nexport function sinOut(t) {\r\n return Math.sin(t * $math.HALFPI);\r\n}\r\nregistry.registeredClasses[\"ease.sinOut\"] = sinOut;\r\n/**\r\n * Easing function: \"sinInOut\".\r\n */\r\nexport function sinInOut(t) {\r\n return (1 - Math.cos($math.PI * t)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.sinInOut\"] = sinInOut;\r\n/**\r\n * ============================================================================\r\n * CUBIC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Easing function: \"cubicIn\".\r\n */\r\nexport function cubicIn(t) {\r\n return t * t * t;\r\n}\r\nregistry.registeredClasses[\"ease.cubicIn\"] = cubicIn;\r\n/**\r\n * Easing function: \"cubicOut\".\r\n */\r\nexport function cubicOut(t) {\r\n return --t * t * t + 1;\r\n}\r\nregistry.registeredClasses[\"ease.cubicOut\"] = cubicOut;\r\n/**\r\n * Easing function: \"cubicInOut\".\r\n */\r\nexport function cubicInOut(t) {\r\n t *= 2;\r\n return (t <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.cubicInOut\"] = cubicInOut;\r\n/**\r\n * ============================================================================\r\n * CIRCLE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Easing function: \"circleIn\".\r\n */\r\nexport function circleIn(t) {\r\n return 1 - Math.sqrt(1 - t * t);\r\n}\r\nregistry.registeredClasses[\"ease.circleIn\"] = circleIn;\r\n/**\r\n * Easing function: \"circleOut\".\r\n */\r\nexport function circleOut(t) {\r\n return Math.sqrt(1 - --t * t);\r\n}\r\nregistry.registeredClasses[\"ease.circleOut\"] = circleOut;\r\n/**\r\n * Easing function: \"circleInOut\".\r\n */\r\nexport function circleInOut(t) {\r\n t *= 2;\r\n return (t <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.circleInOut\"] = circleInOut;\r\n/**\r\n * ============================================================================\r\n * BOUNCE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nvar b1 = 4 / 11, b2 = 6 / 11, b3 = 8 / 11, b4 = 3 / 4, b5 = 9 / 11, b6 = 10 / 11, b7 = 15 / 16, b8 = 21 / 22, b9 = 63 / 64, b0 = 1 / b1 / b1;\r\n/**\r\n * Easing function: \"bounceIn\".\r\n */\r\nexport function bounceIn(t) {\r\n return 1 - bounceOut(1 - t);\r\n}\r\nregistry.registeredClasses[\"ease.bounceIn\"] = bounceIn;\r\n/**\r\n * Easing function: \"bounceOut\".\r\n */\r\nexport function bounceOut(t) {\r\n t = +t;\r\n return t < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\r\n}\r\nregistry.registeredClasses[\"ease.bounceOut\"] = bounceOut;\r\n/**\r\n * Easing function: \"bounceInOut\".\r\n */\r\nexport function bounceInOut(t) {\r\n t *= 2;\r\n return (t <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.bounceInOut\"] = bounceInOut;\r\n/**\r\n * ============================================================================\r\n * ELASTIC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nvar tau = 2 * Math.PI;\r\nvar amplitude = 1;\r\nvar period = 0.3 / tau;\r\nvar s = Math.asin(1 / amplitude) * period;\r\n/**\r\n * Easing function: \"elasticIn\".\r\n *\r\n * @function elasticIn\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticIn(t) {\r\n return amplitude * Math.pow(2, 10 * --t) * Math.sin((s - t) / period);\r\n}\r\nregistry.registeredClasses[\"ease.elasticIn\"] = elasticIn;\r\n/**\r\n * Easing function: \"elasticOut\".\r\n *\r\n * @function elasticOut\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticOut(t) {\r\n return 1 - amplitude * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / period);\r\n}\r\nregistry.registeredClasses[\"ease.elasticOut\"] = elasticOut;\r\n/**\r\n * Easing function: \"elasticInOut\".\r\n *\r\n * @function elasticInOut\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticInOut(t) {\r\n t = t * 2 - 1;\r\n return (t < 0\r\n ? amplitude * Math.pow(2, 10 * t) * Math.sin((s - t) / period)\r\n : 2 - amplitude * Math.pow(2, -10 * t) * Math.sin((s + t) / period)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.elasticInOut\"] = elasticInOut;\r\n//# sourceMappingURL=Ease.js.map","/**\r\n * A collection of color-related functions\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $math from \"./Math\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * Define named colors for easy resolution to RGB.\r\n */\r\nvar namedColors = {\r\n aliceblue: { r: 240, g: 248, b: 255 },\r\n antiquewhite: { r: 250, g: 235, b: 215 },\r\n aqua: { r: 0, g: 255, b: 255 },\r\n aquamarine: { r: 127, g: 255, b: 212 },\r\n azure: { r: 240, g: 255, b: 255 },\r\n beige: { r: 245, g: 245, b: 220 },\r\n bisque: { r: 255, g: 228, b: 196 },\r\n black: { r: 0, g: 0, b: 0 },\r\n blanchedalmond: { r: 255, g: 235, b: 205 },\r\n blue: { r: 0, g: 0, b: 255 },\r\n blueviolet: { r: 138, g: 43, b: 226 },\r\n brown: { r: 165, g: 42, b: 42 },\r\n burlywood: { r: 222, g: 184, b: 135 },\r\n cadetblue: { r: 95, g: 158, b: 160 },\r\n chartreuse: { r: 127, g: 255, b: 0 },\r\n chocolate: { r: 210, g: 105, b: 30 },\r\n coral: { r: 255, g: 127, b: 80 },\r\n cornflowerblue: { r: 100, g: 149, b: 237 },\r\n cornsilk: { r: 255, g: 248, b: 220 },\r\n crimson: { r: 220, g: 20, b: 60 },\r\n cyan: { r: 0, g: 255, b: 255 },\r\n darkblue: { r: 0, g: 0, b: 139 },\r\n darkcyan: { r: 0, g: 139, b: 139 },\r\n darkgoldenrod: { r: 184, g: 134, b: 11 },\r\n darkgray: { r: 169, g: 169, b: 169 },\r\n darkgrey: { r: 169, g: 169, b: 169 },\r\n darkgreen: { r: 0, g: 100, b: 0 },\r\n darkkhaki: { r: 189, g: 183, b: 107 },\r\n darkmagenta: { r: 139, g: 0, b: 139 },\r\n darkolivegreen: { r: 85, g: 107, b: 47 },\r\n darkorange: { r: 255, g: 140, b: 0 },\r\n darkorchid: { r: 153, g: 50, b: 204 },\r\n darkred: { r: 139, g: 0, b: 0 },\r\n darksalmon: { r: 233, g: 150, b: 122 },\r\n darkseagreen: { r: 143, g: 188, b: 143 },\r\n darkslateblue: { r: 72, g: 61, b: 139 },\r\n darkslategray: { r: 47, g: 79, b: 79 },\r\n darkslategrey: { r: 47, g: 79, b: 79 },\r\n darkturquoise: { r: 0, g: 206, b: 209 },\r\n darkviolet: { r: 148, g: 0, b: 211 },\r\n deeppink: { r: 255, g: 20, b: 147 },\r\n deepskyblue: { r: 0, g: 191, b: 255 },\r\n dimgray: { r: 105, g: 105, b: 105 },\r\n dimgrey: { r: 105, g: 105, b: 105 },\r\n dodgerblue: { r: 30, g: 144, b: 255 },\r\n firebrick: { r: 178, g: 34, b: 34 },\r\n floralwhite: { r: 255, g: 250, b: 240 },\r\n forestgreen: { r: 34, g: 139, b: 34 },\r\n fuchsia: { r: 255, g: 0, b: 255 },\r\n gainsboro: { r: 220, g: 220, b: 220 },\r\n ghostwhite: { r: 248, g: 248, b: 255 },\r\n gold: { r: 255, g: 215, b: 0 },\r\n goldenrod: { r: 218, g: 165, b: 32 },\r\n gray: { r: 128, g: 128, b: 128 },\r\n grey: { r: 128, g: 128, b: 128 },\r\n green: { r: 0, g: 128, b: 0 },\r\n greenyellow: { r: 173, g: 255, b: 47 },\r\n honeydew: { r: 240, g: 255, b: 240 },\r\n hotpink: { r: 255, g: 105, b: 180 },\r\n indianred: { r: 205, g: 92, b: 92 },\r\n indigo: { r: 75, g: 0, b: 130 },\r\n ivory: { r: 255, g: 255, b: 240 },\r\n khaki: { r: 240, g: 230, b: 140 },\r\n lavender: { r: 230, g: 230, b: 250 },\r\n lavenderblush: { r: 255, g: 240, b: 245 },\r\n lawngreen: { r: 124, g: 252, b: 0 },\r\n lemonchiffon: { r: 255, g: 250, b: 205 },\r\n lightblue: { r: 173, g: 216, b: 230 },\r\n lightcoral: { r: 240, g: 128, b: 128 },\r\n lightcyan: { r: 224, g: 255, b: 255 },\r\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\r\n lightgray: { r: 211, g: 211, b: 211 },\r\n lightgrey: { r: 211, g: 211, b: 211 },\r\n lightgreen: { r: 144, g: 238, b: 144 },\r\n lightpink: { r: 255, g: 182, b: 193 },\r\n lightsalmon: { r: 255, g: 160, b: 122 },\r\n lightseagreen: { r: 32, g: 178, b: 170 },\r\n lightskyblue: { r: 135, g: 206, b: 250 },\r\n lightslategray: { r: 119, g: 136, b: 153 },\r\n lightslategrey: { r: 119, g: 136, b: 153 },\r\n lightsteelblue: { r: 176, g: 196, b: 222 },\r\n lightyellow: { r: 255, g: 255, b: 224 },\r\n lime: { r: 0, g: 255, b: 0 },\r\n limegreen: { r: 50, g: 205, b: 50 },\r\n linen: { r: 250, g: 240, b: 230 },\r\n magenta: { r: 255, g: 0, b: 255 },\r\n maroon: { r: 128, g: 0, b: 0 },\r\n mediumaquamarine: { r: 102, g: 205, b: 170 },\r\n mediumblue: { r: 0, g: 0, b: 205 },\r\n mediumorchid: { r: 186, g: 85, b: 211 },\r\n mediumpurple: { r: 147, g: 112, b: 219 },\r\n mediumseagreen: { r: 60, g: 179, b: 113 },\r\n mediumslateblue: { r: 123, g: 104, b: 238 },\r\n mediumspringgreen: { r: 0, g: 250, b: 154 },\r\n mediumturquoise: { r: 72, g: 209, b: 204 },\r\n mediumvioletred: { r: 199, g: 21, b: 133 },\r\n midnightblue: { r: 25, g: 25, b: 112 },\r\n mintcream: { r: 245, g: 255, b: 250 },\r\n mistyrose: { r: 255, g: 228, b: 225 },\r\n moccasin: { r: 255, g: 228, b: 181 },\r\n navajowhite: { r: 255, g: 222, b: 173 },\r\n navy: { r: 0, g: 0, b: 128 },\r\n oldlace: { r: 253, g: 245, b: 230 },\r\n olive: { r: 128, g: 128, b: 0 },\r\n olivedrab: { r: 107, g: 142, b: 35 },\r\n orange: { r: 255, g: 165, b: 0 },\r\n orangered: { r: 255, g: 69, b: 0 },\r\n orchid: { r: 218, g: 112, b: 214 },\r\n palegoldenrod: { r: 238, g: 232, b: 170 },\r\n palegreen: { r: 152, g: 251, b: 152 },\r\n paleturquoise: { r: 175, g: 238, b: 238 },\r\n palevioletred: { r: 219, g: 112, b: 147 },\r\n papayawhip: { r: 255, g: 239, b: 213 },\r\n peachpuff: { r: 255, g: 218, b: 185 },\r\n peru: { r: 205, g: 133, b: 63 },\r\n pink: { r: 255, g: 192, b: 203 },\r\n plum: { r: 221, g: 160, b: 221 },\r\n powderblue: { r: 176, g: 224, b: 230 },\r\n purple: { r: 128, g: 0, b: 128 },\r\n rebeccapurple: { r: 102, g: 51, b: 153 },\r\n red: { r: 255, g: 0, b: 0 },\r\n rosybrown: { r: 188, g: 143, b: 143 },\r\n royalblue: { r: 65, g: 105, b: 225 },\r\n saddlebrown: { r: 139, g: 69, b: 19 },\r\n salmon: { r: 250, g: 128, b: 114 },\r\n sandybrown: { r: 244, g: 164, b: 96 },\r\n seagreen: { r: 46, g: 139, b: 87 },\r\n seashell: { r: 255, g: 245, b: 238 },\r\n sienna: { r: 160, g: 82, b: 45 },\r\n silver: { r: 192, g: 192, b: 192 },\r\n skyblue: { r: 135, g: 206, b: 235 },\r\n slateblue: { r: 106, g: 90, b: 205 },\r\n slategray: { r: 112, g: 128, b: 144 },\r\n slategrey: { r: 112, g: 128, b: 144 },\r\n snow: { r: 255, g: 250, b: 250 },\r\n springgreen: { r: 0, g: 255, b: 127 },\r\n steelblue: { r: 70, g: 130, b: 180 },\r\n tan: { r: 210, g: 180, b: 140 },\r\n teal: { r: 0, g: 128, b: 128 },\r\n thistle: { r: 216, g: 191, b: 216 },\r\n tomato: { r: 255, g: 99, b: 71 },\r\n turquoise: { r: 64, g: 224, b: 208 },\r\n violet: { r: 238, g: 130, b: 238 },\r\n wheat: { r: 245, g: 222, b: 179 },\r\n white: { r: 255, g: 255, b: 255 },\r\n whitesmoke: { r: 245, g: 245, b: 245 },\r\n yellow: { r: 255, g: 255, b: 0 },\r\n yellowgreen: { r: 154, g: 205, b: 50 }\r\n};\r\n/**\r\n * Tries to resolve a named color into a hex color representation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Color name\r\n * @return Color\r\n * @deprecated\r\n * @hidden\r\n */\r\n/*export function resolveNamedColor(value: string): Color {\r\n return (<any>namedColors)[value] ? (<any>namedColors)[value] : undefined;\r\n}*/\r\n/**\r\n * Converts a proper color hex code (i.e. \"#FF5500\") or named color (i.e. \"red\")\r\n * into an {iRGB} object. If the code is not correctly formatted, an RGB of\r\n * black is returned.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Color code\r\n * @param alpha Alpha (0-1)\r\n * @return RGB\r\n */\r\nexport function rgb(color, alpha) {\r\n // Init return value\r\n var rgb;\r\n // Try resolving color format\r\n // Named color?\r\n if (namedColors[color]) {\r\n rgb = namedColors[color];\r\n }\r\n // Hex code?\r\n else if (color.charAt(0) === \"#\") {\r\n rgb = hexToRgb(color);\r\n }\r\n // rgb() format?\r\n else if (color.match(/^rgba?\\(/)) {\r\n rgb = rgbaToRgb(color);\r\n }\r\n // Was not able to resolve?\r\n if (!rgb) {\r\n rgb = { r: 0, g: 0, b: 0, a: 1 };\r\n }\r\n // Set alpha\r\n if ($type.hasValue(alpha)) {\r\n rgb.a = alpha;\r\n }\r\n return rgb;\r\n}\r\n/**\r\n * Converts a hex color code (i.e. \"#FF5500\") to an [[iRGB]] object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param hex Hex color code\r\n * @return RGB\r\n */\r\nexport function hexToRgb(hex) {\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : hexToRgbWithAlpha(hex);\r\n}\r\n/**\r\n * Converts a hex color code with alpha (i.e. \"#FF5500128\") to an [[iRGB]] object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param hex Hex color code\r\n * @return RGB\r\n */\r\nexport function hexToRgbWithAlpha(hex) {\r\n // Expand shorthand form (e.g. \"03FA\") to full form (e.g. \"0033FFAA\")\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, function (m, r, g, b, a) {\r\n return r + r + g + g + b + b + a + a;\r\n });\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n a: parseInt(result[4], 16) / 256\r\n } : undefined;\r\n}\r\n/**\r\n * Converts color strings in format like `rgb()` and `rgba()` to [[iRGB]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Color code\r\n * @return RGB\r\n */\r\nexport function rgbaToRgb(color) {\r\n color = color.replace(/[ ]/g, \"\");\r\n // Init\r\n var matches = color.match(/^rgb\\(([0-9]*),([0-9]*),([0-9]*)\\)/i);\r\n // Try rgb() format\r\n if (matches) {\r\n matches.push(\"1\");\r\n }\r\n else {\r\n matches = color.match(/^rgba\\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\\)/i);\r\n if (!matches) {\r\n return;\r\n }\r\n }\r\n return {\r\n r: parseInt(matches[1]),\r\n g: parseInt(matches[2]),\r\n b: parseInt(matches[3]),\r\n a: parseFloat(matches[4])\r\n };\r\n}\r\n/**\r\n * Converts an [[iRGB]] object into a hex color code.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rgb RGB\r\n * @return Hex color code\r\n */\r\nexport function rgbToHex(rgb) {\r\n return \"#\" + pad2(rgb.r.toString(16)) + pad2(rgb.g.toString(16)) + pad2(rgb.b.toString(16));\r\n}\r\n/**\r\n * Converts an [[iRGB]] object into its `rgb()` or `rgba()` representation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rgb RGB\r\n * @return `rgba()` syntax\r\n */\r\nexport function rgbToRGBA(rgb) {\r\n if ($type.hasValue(rgb.a) && rgb.a !== 1) {\r\n return \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",\" + rgb.a + \")\";\r\n }\r\n else {\r\n return \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\";\r\n }\r\n}\r\n/**\r\n * Pads a 1-digit string with a zero.\r\n *\r\n * @ignore Exclude from docs\r\n * @param c Input string\r\n * @return Padded string\r\n */\r\nexport function pad2(c) {\r\n return c.length == 1 ? \"0\" + c : \"\" + c;\r\n}\r\n/**\r\n * Returns an intermediate color between two colors based on the relative\r\n * position. Position needs to be in range between 0 and 1. Zero meaning the\r\n * resulting color will be closest to the first reference color.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color1 First reference color\r\n * @param color2 Second reference color\r\n * @param percent Relative position (0-1)\r\n * @return Interpolated color\r\n */\r\nexport function interpolate(rgb1, rgb2, percent) {\r\n percent = $math.fitToRange(percent, 0, 1);\r\n if (rgb1) {\r\n if (rgb2) {\r\n return {\r\n r: rgb1.r + Math.round((rgb2.r - rgb1.r) * percent),\r\n g: rgb1.g + Math.round((rgb2.g - rgb1.g) * percent),\r\n b: rgb1.b + Math.round((rgb2.b - rgb1.b) * percent),\r\n a: (rgb1.a || 1) + Math.round(((rgb2.a || 1) - (rgb1.a || 1)) * percent)\r\n };\r\n }\r\n else {\r\n return rgb1;\r\n }\r\n }\r\n else if (rgb2) {\r\n return rgb2;\r\n }\r\n else {\r\n return rgb1;\r\n }\r\n}\r\n/**\r\n * Returns a color that is `percent` brighter than the reference color.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Reference color\r\n * @param percent Brightness percent\r\n * @return Hex code of the new color\r\n */\r\nexport function lighten(rgb, percent) {\r\n if (rgb) {\r\n return {\r\n r: Math.max(0, Math.min(255, rgb.r + getLightnessStep(rgb.r, percent))),\r\n g: Math.max(0, Math.min(255, rgb.g + getLightnessStep(rgb.g, percent))),\r\n b: Math.max(0, Math.min(255, rgb.b + getLightnessStep(rgb.b, percent))),\r\n a: rgb.a\r\n };\r\n }\r\n else {\r\n // TODO is this correct ?\r\n return rgb;\r\n }\r\n}\r\n;\r\n/**\r\n * Gets lightness step.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Value\r\n * @param percent Percent\r\n * @return Step\r\n */\r\nexport function getLightnessStep(value, percent) {\r\n var base = percent > 0 ? 255 - value : value;\r\n return Math.round(base * percent);\r\n}\r\n/**\r\n * Returns a color that is `percent` brighter than the source `color`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Source color\r\n * @param percent Brightness percent\r\n * @return New color\r\n */\r\nexport function brighten(rgb, percent) {\r\n if (rgb) {\r\n var base = Math.min(Math.max(rgb.r, rgb.g, rgb.b), 230);\r\n //let base = Math.max(rgb.r, rgb.g, rgb.b);\r\n var step = getLightnessStep(base, percent);\r\n return {\r\n r: Math.max(0, Math.min(255, Math.round(rgb.r + step))),\r\n g: Math.max(0, Math.min(255, Math.round(rgb.g + step))),\r\n b: Math.max(0, Math.min(255, Math.round(rgb.b + step))),\r\n a: rgb.a\r\n };\r\n }\r\n else {\r\n // TODO is this correct ?\r\n return rgb;\r\n }\r\n}\r\n;\r\n/**\r\n * Returns brightness step.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Value\r\n * @param percent Percent\r\n * @return Step\r\n */\r\nexport function getBrightnessStep(value, percent) {\r\n var base = 255; //percent > 0 ? 255 - value : value;\r\n return Math.round(base * percent);\r\n}\r\n/**\r\n * Returns a new [[iRGB]] object based on `rgb` parameter with specific\r\n * saturation applied.\r\n *\r\n * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\r\n * saturated).\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Base color\r\n * @param saturation Saturation (0-1)\r\n * @return New color\r\n */\r\nexport function saturate(rgb, saturation) {\r\n if (rgb == null || saturation == 1) {\r\n return rgb;\r\n }\r\n var hsl = rgbToHsl(rgb);\r\n hsl.s = saturation;\r\n return hslToRgb(hsl);\r\n}\r\n/*\r\n// not used\r\nexport function rgbToMatrix(rgb: iRGB): string {\r\n let r = $type.toText($math.round((rgb.r || 0) / 255, 10));\r\n let g = $type.toText($math.round((rgb.g || 0) / 255, 10));\r\n let b = $type.toText($math.round((rgb.b || 0) / 255, 10));\r\n let a = $type.toText(rgb.a || 1);\r\n return\t r + \" 0 0 0 0\" +\r\n \" 0 \" + g + \" 0 0 0\" +\r\n \" 0 0 \" + b + \" 0 0\" +\r\n \" 0 0 0 \" + a + \" 0\";\r\n}\r\n*/\r\n/**\r\n * The functions below are taken and adapted from Garry Tan's blog post:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * The further attributions go mjijackson.com, which now seems to be defunct.\r\n */\r\n/**\r\n * Converts an HSL color value to RGB. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\r\n * Assumes h, s, and l are contained in the set [0, 1] and\r\n * returns r, g, and b in the set [0, 255].\r\n *\r\n * Function adapted from:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * @ignore Exclude from docs\r\n * @param h The hue\r\n * @param s The saturation\r\n * @param l The lightness\r\n * @return The RGB representation\r\n */\r\nexport function hslToRgb(color) {\r\n var r, g, b;\r\n var h = color.h;\r\n var s = color.s;\r\n var l = color.l;\r\n if (s == 0) {\r\n r = g = b = l; // achromatic\r\n }\r\n else {\r\n var hue2rgb = function hue2rgb(p, q, t) {\r\n if (t < 0) {\r\n t += 1;\r\n }\r\n if (t > 1) {\r\n t -= 1;\r\n }\r\n if (t < 1 / 6) {\r\n return p + (q - p) * 6 * t;\r\n }\r\n if (t < 1 / 2) {\r\n return q;\r\n }\r\n if (t < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - t) * 6;\r\n }\r\n return p;\r\n };\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255)\r\n };\r\n}\r\n/**\r\n * Converts an RGB color value to HSL. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\r\n * Assumes r, g, and b are contained in the set [0, 255] and\r\n * returns h, s, and l in the set [0, 1].\r\n *\r\n * Function adapted from:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * @ignore Exclude from docs\r\n * @param r The red color value\r\n * @param g The green color value\r\n * @param b The blue color value\r\n * @return The HSL representation\r\n */\r\nexport function rgbToHsl(color) {\r\n var r = color.r / 255;\r\n var g = color.g / 255;\r\n var b = color.b / 255;\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h = 0;\r\n var s = 0;\r\n var l = (max + min) / 2;\r\n if (max === min) {\r\n h = s = 0; // achromatic\r\n }\r\n else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n return {\r\n h: h,\r\n s: s,\r\n l: l\r\n };\r\n}\r\n/**\r\n * Converts an RGB color value to HSV. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSV_color_space.\r\n * Assumes r, g, and b are contained in the set [0, 255] and\r\n * returns h, s, and v in the set [0, 1].\r\n *\r\n * @ignore Exclude from docs\r\n * @param Number r The red color value\r\n * @param Number g The green color value\r\n * @param Number b The blue color value\r\n * @return Array The HSV representation\r\n */\r\nexport function rgbToHsv(color) {\r\n var r = color.r / 255;\r\n var g = color.g / 255;\r\n var b = color.b / 255;\r\n var max = Math.max(r, g, b), min = Math.min(r, g, b);\r\n var h = 0;\r\n var s = 0;\r\n var v = max;\r\n var d = max - min;\r\n s = max == 0 ? 0 : d / max;\r\n if (max == min) {\r\n h = 0; // achromatic\r\n }\r\n else {\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n return {\r\n h: h,\r\n s: s,\r\n v: v\r\n };\r\n}\r\n/**\r\n * Converts an HSV color value to RGB. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSV_color_space.\r\n * Assumes h, s, and v are contained in the set [0, 1] and\r\n * returns r, g, and b in the set [0, 255].\r\n *\r\n * @ignore Exclude from docs\r\n * @param Number h The hue\r\n * @param Number s The saturation\r\n * @param Number v The value\r\n * @return Array The RGB representation\r\n */\r\nexport function hsvToRgb(color) {\r\n var r = 0;\r\n var g = 0;\r\n var b = 0;\r\n var h = color.h;\r\n var s = color.s;\r\n var v = color.v;\r\n var i = Math.floor(h * 6);\r\n var f = h * 6 - i;\r\n var p = v * (1 - s);\r\n var q = v * (1 - f * s);\r\n var t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n }\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255)\r\n };\r\n}\r\n/**\r\n * Returns `true` if color is \"light\". Useful indetermining which contrasting\r\n * color to use for elements over this color. E.g.: you would want to use\r\n * black text over light background, and vice versa.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Source color\r\n * @return Light?\r\n */\r\nexport function isLight(color) {\r\n return ((color.r * 299) + (color.g * 587) + (color.b * 114)) / 1000 >= 128;\r\n}\r\n//# sourceMappingURL=Colors.js.map","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\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 (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || 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; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\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 }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\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 // Subscribe to all changes by default\n : 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 // Subscribe to all changes by default\n : 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 }(React.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\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\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 <Redirect>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 <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change <Router history>\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Prompt> outside a <Router>\") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Redirect> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Route> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Route> 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.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, 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 function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with <StaticRouter>\", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, 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 */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\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 return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Switch> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // 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 <Route>s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Switch> 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.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","/**\r\n * Contains code and logic for generating linear gradients.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $type from \"../../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Linear gradient class.\r\n */\r\nvar LinearGradient = /** @class */ (function (_super) {\r\n __extends(LinearGradient, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function LinearGradient() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * List of colors switch definitions in a gradient.\r\n */\r\n _this._stops = new List();\r\n /**\r\n * Gradient direction.\r\n */\r\n _this._rotation = 0;\r\n _this.className = \"LinearGradient\";\r\n _this._stops.events.on(\"setIndex\", _this.validate, _this);\r\n _this._stops.events.on(\"inserted\", _this.validate, _this);\r\n // Create element\r\n _this.element = _this.paper.addGroup(\"linearGradient\");\r\n _this.id = \"gradient-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n LinearGradient.prototype.validate = function () {\r\n var _this = this;\r\n var rotation = (this._rotation + 90) * $math.RADIANS;\r\n var x1 = Math.round(50 + Math.sin(rotation + Math.PI) * 50) + '%';\r\n var y1 = Math.round(50 + Math.cos(rotation) * 50) + '%';\r\n var x2 = Math.round(50 + Math.sin(rotation) * 50) + '%';\r\n var y2 = Math.round(50 + Math.cos(rotation + Math.PI) * 50) + '%';\r\n var gradientElement = this.element;\r\n gradientElement.removeChildNodes();\r\n gradientElement.attr({ \"x1\": x1, \"x2\": x2, \"y1\": y1, \"y2\": y2 });\r\n $iter.each($iter.indexed(this._stops.iterator()), function (a) {\r\n var i = a[0];\r\n var stop = a[1];\r\n var offset = stop.offset;\r\n if (!$type.isNumber(offset)) {\r\n offset = i / (_this._stops.length - 1);\r\n }\r\n var gradientStop = _this.paper.add(\"stop\");\r\n if ($type.hasValue(stop.color)) {\r\n gradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n }\r\n if ($type.isNumber(stop.opacity)) {\r\n gradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n }\r\n if ($type.isNumber(offset)) {\r\n gradientStop.attr({ \"offset\": offset });\r\n }\r\n gradientElement.add(gradientStop);\r\n });\r\n };\r\n /**\r\n * Clears the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n LinearGradient.prototype.clear = function () {\r\n this._stops.clear();\r\n };\r\n /**\r\n * Adds a color step to the gradient.\r\n *\r\n * @param color Color (hex code or named color)\r\n * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n */\r\n LinearGradient.prototype.addColor = function (color, opacity, offset) {\r\n this._stops.push({ color: color, opacity: opacity, offset: offset });\r\n };\r\n Object.defineProperty(LinearGradient.prototype, \"stops\", {\r\n /**\r\n * A list of color stops in the gradient.\r\n *\r\n * @return Stops\r\n */\r\n get: function () {\r\n return this._stops;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinearGradient.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * [[Paper]] instace to use for the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.validate();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LinearGradient.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this._rotation;\r\n },\r\n /**\r\n * Rotation (direction) of the gradient in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (value) {\r\n //this.element.attr({ \"gradientTransform\": \"rotate(\" + value + \" 10 100)\" });\r\n this._rotation = value;\r\n this.validate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LinearGradient.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.stops.copyFrom(source.stops);\r\n this._rotation = source.rotation;\r\n };\r\n Object.defineProperty(LinearGradient.prototype, \"gradientUnits\", {\r\n /**\r\n * Which units are used when drawing gradient filter.\r\n *\r\n * Use `\"userSpaceOnUse\"` when applying gradient on a perfectly straight line.\r\n *\r\n * @since 4.9.17\r\n * @default objectBoundingBox\r\n * @param value Filter units\r\n */\r\n set: function (value) {\r\n this.element.attr({ gradientUnits: value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LinearGradient;\r\n}(BaseObject));\r\nexport { LinearGradient };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinearGradient\"] = LinearGradient;\r\n//# sourceMappingURL=LinearGradient.js.map","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}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.convertFieldsError = convertFieldsError;\nexports.format = format;\nexports.isEmptyValue = isEmptyValue;\nexports.isEmptyObject = isEmptyObject;\nexports.asyncMap = asyncMap;\nexports.complementError = complementError;\nexports.deepMerge = deepMerge;\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\n\nvar warning = exports.warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n exports.warning = warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nfunction format() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (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++]);\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 for (var arg = args[i]; i < len; arg = args[++i]) {\n str += ' ' + arg;\n }\n return str;\n }\n return f;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\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\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var 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) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var flattenArr = flattenObjArr(objArr);\n return asyncSerialArray(flattenArr, func, callback);\n }\n var firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject({ errors: results, fields: convertFieldsError(results) }) : resolve();\n }\n };\n objArrKeys.forEach(function (key) {\n var 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'](function (e) {\n return e;\n });\n return pending;\n}\n\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\n\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(target[s]) === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));\n\nvar _Group = _interopRequireDefault(require(\"./Group\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_Checkbox[\"default\"].Group = _Group[\"default\"];\nvar _default = _Checkbox[\"default\"];\nexports[\"default\"] = _default;","/**\r\n * Rounded rectangle module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a rectangle with rounded corners.\r\n *\r\n * @see {@link IRoundedRectangleEvents} for a list of available events\r\n * @see {@link IRoundedRectangleAdapters} for a list of available Adapters\r\n */\r\nvar RoundedRectangle = /** @class */ (function (_super) {\r\n __extends(RoundedRectangle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RoundedRectangle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RoundedRectangle\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.cornerRadius(3, 3, 3, 3);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RoundedRectangle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.innerWidth;\r\n var h = this.innerHeight;\r\n if ($type.isNumber(w) && $type.isNumber(h)) {\r\n var minSide = $math.min(w, h) / 2;\r\n var cornerRadiusTopLeft = $utils.relativeToValue(this.cornerRadiusTopLeft, minSide);\r\n var cornerRadiusTopRight = $utils.relativeToValue(this.cornerRadiusTopRight, minSide);\r\n var cornerRadiusBottomRight = $utils.relativeToValue(this.cornerRadiusBottomRight, minSide);\r\n var cornerRadiusBottomLeft = $utils.relativeToValue(this.cornerRadiusBottomLeft, minSide);\r\n var maxcr = $math.min(Math.abs(w / 2), Math.abs(h / 2));\r\n var crtl = $math.fitToRange(cornerRadiusTopLeft, 0, maxcr);\r\n var crtr = $math.fitToRange(cornerRadiusTopRight, 0, maxcr);\r\n var crbr = $math.fitToRange(cornerRadiusBottomRight, 0, maxcr);\r\n var crbl = $math.fitToRange(cornerRadiusBottomLeft, 0, maxcr);\r\n var lineT = \"M\" + crtl + \",0 L\" + (w - crtr) + \",0\";\r\n var lineB = \" L\" + crbl + \",\" + h;\r\n var lineL = \" L0,\" + crtl;\r\n var lineR = \" L\" + w + \",\" + (h - crbr);\r\n var arcTR = \" a\" + crtr + \",\" + crtr + \" 0 0 1 \" + crtr + \",\" + crtr;\r\n var arcBR = \" a\" + crbr + \",\" + crbr + \" 0 0 1 -\" + crbr + \",\" + crbr;\r\n var arcBL = \" a\" + crbl + \",\" + crbl + \" 0 0 1 -\" + crbl + \",-\" + crbl;\r\n var arcTL = \" a\" + crtl + \",\" + crtl + \" 0 0 1 \" + crtl + \",-\" + crtl;\r\n var path = lineT + arcTR + lineR + arcBR + lineB + arcBL + lineL + arcTL + \" Z\";\r\n this.path = path;\r\n }\r\n };\r\n /**\r\n * Sets radius for all four corners at ones.\r\n *\r\n * All numbers are in pixels.\r\n *\r\n * @param tl Top-left corner\r\n * @param tr Top-right corner\r\n * @param bl Bottom-left corner\r\n * @param br Bottom-right corner\r\n */\r\n RoundedRectangle.prototype.cornerRadius = function (tl, tr, bl, br) {\r\n this.cornerRadiusTopLeft = tl;\r\n this.cornerRadiusTopRight = tr;\r\n this.cornerRadiusBottomLeft = bl;\r\n this.cornerRadiusBottomRight = br;\r\n };\r\n Object.defineProperty(RoundedRectangle.prototype, \"cornerRadiusTopLeft\", {\r\n /**\r\n * @return Radius (px or Percent)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadiusTopLeft\");\r\n },\r\n /**\r\n * Radius of the top-left corner in pixels.\r\n *\r\n * @default 3\r\n * @param value Radius (px or Percent)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"cornerRadiusTopLeft\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RoundedRectangle.prototype, \"cornerRadiusTopRight\", {\r\n /**\r\n * @return Radius (px or Percent)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadiusTopRight\");\r\n },\r\n /**\r\n * Radius of the top-right corner in pixels.\r\n *\r\n * @default 3\r\n * @param value Radius (px or Percent)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"cornerRadiusTopRight\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RoundedRectangle.prototype, \"cornerRadiusBottomRight\", {\r\n /**\r\n * @return Radius (px or Percent)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadiusBottomRight\");\r\n },\r\n /**\r\n * Radius of the bottom-right corner in pixels.\r\n *\r\n * @default 3\r\n * @param value Radius (px or Percent)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"cornerRadiusBottomRight\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RoundedRectangle.prototype, \"cornerRadiusBottomLeft\", {\r\n /**\r\n * @return Radius (px or Percent)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadiusBottomLeft\");\r\n },\r\n /**\r\n * Radius of the bottom-left corner in pixels.\r\n *\r\n * @default 3\r\n * @param value Radius (px or Percent)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"cornerRadiusBottomLeft\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Measures the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RoundedRectangle.prototype.measureElement = function () {\r\n };\r\n Object.defineProperty(RoundedRectangle.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n if (this.isMeasured) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n width: this.innerWidth,\r\n height: this.innerHeight\r\n };\r\n }\r\n else {\r\n return { x: 0, y: 0, width: 0, height: 0 };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return RoundedRectangle;\r\n}(Sprite));\r\nexport { RoundedRectangle };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RoundedRectangle\"] = RoundedRectangle;\r\n//# sourceMappingURL=RoundedRectangle.js.map","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","/**\r\n * A collection of low-level async operation stuff.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\nvar pendingFrame = false;\r\nvar nextQueue = [];\r\nvar readQueue = [];\r\nvar writeQueue = [];\r\nvar idleQueue = [];\r\nvar fps = 1000 / 60;\r\n/**\r\n * [raf description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport var raf = (typeof requestAnimationFrame === \"function\"\r\n ? function (fn) {\r\n requestAnimationFrame(fn);\r\n }\r\n : function (fn) {\r\n setTimeout(fn, fps);\r\n });\r\n/**\r\n * [frameLoop description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nfunction frameLoop() {\r\n var now = Date.now();\r\n var length = nextQueue.length;\r\n for (var i = 0; i < length; ++i) {\r\n nextQueue[i](now);\r\n }\r\n $array.shiftLeft(nextQueue, length);\r\n for (var i = 0; i < readQueue.length; ++i) {\r\n readQueue[i](now);\r\n }\r\n readQueue.length = 0;\r\n for (var i = 0; i < writeQueue.length; ++i) {\r\n writeQueue[i](now);\r\n }\r\n writeQueue.length = 0;\r\n if (nextQueue.length === 0 && readQueue.length === 0) {\r\n pendingFrame = false;\r\n }\r\n else {\r\n raf(frameLoop);\r\n }\r\n}\r\n/**\r\n * [pendFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nfunction pendFrame() {\r\n if (!pendingFrame) {\r\n pendingFrame = true;\r\n raf(frameLoop);\r\n }\r\n}\r\n/**\r\n * [nextFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function nextFrame(fn) {\r\n nextQueue.push(fn);\r\n pendFrame();\r\n}\r\n/**\r\n * [readFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function readFrame(fn) {\r\n readQueue.push(fn);\r\n pendFrame();\r\n}\r\n/**\r\n * [writeFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function writeFrame(fn) {\r\n writeQueue.push(fn);\r\n pendFrame();\r\n}\r\n/**\r\n * [whenIdle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function whenIdle(fn) {\r\n idleQueue.push(fn);\r\n}\r\n/**\r\n * [triggerIdle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @todo Maybe don't trigger a callback which was added while in the middle of triggering?\r\n */\r\nexport function triggerIdle() {\r\n var now = Date.now();\r\n var length = idleQueue.length;\r\n for (var i = 0; i < length; ++i) {\r\n idleQueue.shift()(now);\r\n }\r\n}\r\n//# sourceMappingURL=AsyncPending.js.map","/**\r\n * Event Dispatcher module is used for registering listeners and dispatching\r\n * events across amCharts system.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Disposer } from \"./Disposer\";\r\nimport * as $array from \"./Array\";\r\nimport * as $async from \"./AsyncPending\";\r\nimport * as $type from \"./Type\";\r\n/*export interface IEventDispatcher<T> {\r\n isDisposed(): boolean;\r\n dispose(): void;\r\n hasListeners(): boolean;\r\n enable(): void;\r\n disable(): void;\r\n enableType<Key extends keyof T>(type: Key): void;\r\n disableType<Key extends keyof T>(type: Key, amount?: number): void;\r\n isEnabled<Key extends keyof T>(type: Key): boolean;\r\n has<C, Key extends keyof T>(type: Key, callback?: (this: C, event: T[Key]) => void, context?: C): boolean;\r\n dispatchImmediately<Key extends keyof T>(type: Key, event: T[Key]): void;\r\n dispatch<Key extends keyof T>(type: Key, event: T[Key]): void;\r\n onAll<C, Key extends keyof T>(callback: (this: C, type: Key, event: T[Key]) => void, context?: C): IDisposer;\r\n on<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): IDisposer;\r\n once<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): IDisposer;\r\n off<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): void;\r\n off<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): void;\r\n copyFrom(source: this): void;\r\n}*/\r\n/**\r\n * Universal Event Dispatcher.\r\n *\r\n * @important\r\n */\r\nvar EventDispatcher = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n */\r\n function EventDispatcher() {\r\n this._listeners = [];\r\n this._killed = [];\r\n this._disabled = {};\r\n this._iterating = 0;\r\n this._enabled = true;\r\n this._disposed = false;\r\n }\r\n /**\r\n * Returns if this object has been already disposed.\r\n *\r\n * @return Disposed?\r\n */\r\n EventDispatcher.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Dispose (destroy) this object.\r\n */\r\n EventDispatcher.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n var a = this._listeners;\r\n this._iterating = 1;\r\n this._listeners = null;\r\n this._disabled = null;\r\n try {\r\n $array.each(a, function (x) {\r\n x.disposer.dispose();\r\n });\r\n }\r\n finally {\r\n this._killed = null;\r\n this._iterating = null;\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if this particular event dispatcher has any listeners set.\r\n *\r\n * @return Has listeners?\r\n */\r\n EventDispatcher.prototype.hasListeners = function () {\r\n return this._listeners.length !== 0;\r\n };\r\n /**\r\n * Checks if this particular event dispatcher has any particular listeners set.\r\n *\r\n * @return Has particular event listeners?\r\n */\r\n EventDispatcher.prototype.hasListenersByType = function (type) {\r\n return $array.any(this._listeners, function (x) { return (x.type === null || x.type === type) && !x.killed; });\r\n };\r\n /**\r\n * Enable dispatching of events if they were previously disabled by\r\n * `disable()`.\r\n */\r\n EventDispatcher.prototype.enable = function () {\r\n this._enabled = true;\r\n };\r\n /**\r\n * Disable dispatching of events until re-enabled by `enable()`.\r\n */\r\n EventDispatcher.prototype.disable = function () {\r\n this._enabled = false;\r\n };\r\n /**\r\n * Enable dispatching particular event, if it was disabled before by\r\n * `disableType()`.\r\n *\r\n * @param type Event type\r\n */\r\n EventDispatcher.prototype.enableType = function (type) {\r\n delete this._disabled[type];\r\n };\r\n /**\r\n * Disable dispatching of events for a certain event type.\r\n *\r\n * Optionally, can set how many dispatches to skip before automatically\r\n * re-enabling the dispatching.\r\n *\r\n * @param type Event type\r\n * @param amount Number of event dispatches to skip\r\n */\r\n EventDispatcher.prototype.disableType = function (type, amount) {\r\n if (amount === void 0) { amount = Infinity; }\r\n this._disabled[type] = amount;\r\n };\r\n /**\r\n * Removes listener from dispatcher.\r\n *\r\n * Will throw an exception if such listener does not exists.\r\n *\r\n * @param listener Listener to remove\r\n */\r\n EventDispatcher.prototype._removeListener = function (listener) {\r\n if (this._iterating === 0) {\r\n var index = this._listeners.indexOf(listener);\r\n if (index === -1) {\r\n throw new Error(\"Invalid state: could not remove listener\");\r\n }\r\n this._listeners.splice(index, 1);\r\n }\r\n else {\r\n this._killed.push(listener);\r\n }\r\n };\r\n /**\r\n * Removes existing listener by certain parameters.\r\n *\r\n * @param once Listener's once setting\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n */\r\n EventDispatcher.prototype._removeExistingListener = function (once, type, callback, context) {\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n this._eachListener(function (info) {\r\n if (info.once === once && // TODO is this correct ?\r\n info.type === type &&\r\n (callback == null || info.callback === callback) &&\r\n info.context === context) {\r\n info.disposer.dispose();\r\n }\r\n });\r\n };\r\n /**\r\n * Checks if dispatching for particular event type is enabled.\r\n *\r\n * @param type Event type\r\n * @return Enabled?\r\n */\r\n EventDispatcher.prototype.isEnabled = function (type) {\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n // TODO is this check correct ?\r\n return this._enabled && this._listeners.length > 0 && this.hasListenersByType(type) && this._disabled[type] == null;\r\n };\r\n /**\r\n * Checks if there's already a listener with specific parameters.\r\n *\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n * @return Has listener?\r\n */\r\n EventDispatcher.prototype.has = function (type, callback, context) {\r\n var index = $array.findIndex(this._listeners, function (info) {\r\n return info.once !== true && // Ignoring \"once\" listeners\r\n info.type === type &&\r\n (callback == null || info.callback === callback) &&\r\n info.context === context;\r\n });\r\n return index !== -1;\r\n };\r\n /**\r\n * Checks whether event of the particular type should be dispatched.\r\n *\r\n * @param type Event type\r\n * @return Dispatch?\r\n */\r\n EventDispatcher.prototype._shouldDispatch = function (type) {\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n var count = this._disabled[type];\r\n if (!$type.isNumber(count)) {\r\n return this._enabled;\r\n }\r\n else {\r\n if (count <= 1) {\r\n delete this._disabled[type];\r\n }\r\n else {\r\n --this._disabled[type];\r\n }\r\n return false;\r\n }\r\n };\r\n /**\r\n * [_eachListener description]\r\n *\r\n * All of this extra code is needed when a listener is removed while iterating\r\n *\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\n EventDispatcher.prototype._eachListener = function (fn) {\r\n var _this = this;\r\n ++this._iterating;\r\n try {\r\n $array.each(this._listeners, fn);\r\n }\r\n finally {\r\n --this._iterating;\r\n // TODO should this be inside or outside the finally ?\r\n if (this._iterating === 0 && this._killed.length !== 0) {\r\n // Remove killed listeners\r\n $array.each(this._killed, function (killed) {\r\n _this._removeListener(killed);\r\n });\r\n this._killed.length = 0;\r\n }\r\n }\r\n };\r\n /**\r\n * Dispatches an event immediately without waiting for next cycle.\r\n *\r\n * @param type Event type\r\n * @param event Event object\r\n * @todo automatically add in type and target properties if they are missing\r\n */\r\n EventDispatcher.prototype.dispatchImmediately = function (type, event) {\r\n if (this._shouldDispatch(type)) {\r\n // TODO check if it's faster to use an object of listeners rather than a single big array\r\n // TODO if the function throws, maybe it should keep going ?\r\n this._eachListener(function (listener) {\r\n if (!listener.killed && (listener.type === null || listener.type === type)) {\r\n listener.dispatch(type, event);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Shelves the event to be dispatched within next update cycle.\r\n *\r\n * @param type Event type\r\n * @param event Event object\r\n * @todo automatically add in type and target properties if they are missing\r\n */\r\n EventDispatcher.prototype.dispatch = function (type, event) {\r\n if (this._shouldDispatch(type)) {\r\n this._eachListener(function (listener) {\r\n // TODO check if it's faster to use an object of listeners rather than a single big array\r\n if (!listener.killed && (listener.type === null || listener.type === type)) {\r\n // TODO if the function throws, maybe it should keep going ?\r\n // TODO dispatch during the update cycle, rather than using whenIdle\r\n $async.whenIdle(function () {\r\n if (!listener.killed) {\r\n listener.dispatch(type, event);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Creates, catalogs and returns an [[EventListener]].\r\n *\r\n * Event listener can be disposed.\r\n *\r\n * @param once Listener's once setting\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n * @param dispatch\r\n * @returns An event listener\r\n */\r\n EventDispatcher.prototype._on = function (once, type, callback, context, shouldClone, dispatch) {\r\n var _this = this;\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n this._removeExistingListener(once, type, callback, context);\r\n var info = {\r\n type: type,\r\n callback: callback,\r\n context: context,\r\n shouldClone: shouldClone,\r\n dispatch: dispatch,\r\n killed: false,\r\n once: once,\r\n disposer: new Disposer(function () {\r\n info.killed = true;\r\n _this._removeListener(info);\r\n })\r\n };\r\n this._listeners.push(info);\r\n return info;\r\n };\r\n /**\r\n * Creates an event listener to be invoked on **any** event.\r\n *\r\n * @param callback Callback function\r\n * @param context Callback context\r\n * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n * @returns A disposable event listener\r\n * @todo what if `listen` is called on the same function twice ?\r\n */\r\n EventDispatcher.prototype.onAll = function (callback, context, shouldClone) {\r\n if (shouldClone === void 0) { shouldClone = true; }\r\n return this._on(false, null, callback, context, shouldClone, function (type, event) { return callback.call(context, type, event); }).disposer;\r\n };\r\n /**\r\n * Creates an event listener to be invoked on a specific event type.\r\n *\r\n * ```TypeScript\r\n * series.events.on(\"hidden\", (ev) => {\r\n * console.log(\"Series hidden: \" + ev.target.name);\r\n * }, this);\r\n * ```\r\n * ```JavaScript\r\n * series.events.on(\"hidden\", function(ev) {\r\n * console.log(\"Series hidden: \" + ev.target.name);\r\n * }, this);\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"events\": {\r\n * \t\"hidden\": function(ev) {\r\n * \t console.log(\"Series hidden: \" + ev.target.name);\r\n * \t}\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * The above will invoke our custom event handler whenever series we put\r\n * event on is hidden.\r\n *\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n * @returns A disposable event listener\r\n * @todo what if `listen` is called on the same function twice ?\r\n */\r\n EventDispatcher.prototype.on = function (type, callback, context, shouldClone) {\r\n if (shouldClone === void 0) { shouldClone = true; }\r\n return this._on(false, type, callback, context, shouldClone, function (type, event) { return callback.call(context, event); }).disposer;\r\n };\r\n /**\r\n * Creates an event listener to be invoked on a specific event type once.\r\n *\r\n * Once the event listener is invoked, it is automatically disposed.\r\n *\r\n * ```TypeScript\r\n * series.events.on(\"hidden\", (ev) => {\r\n * console.log(\"Series hidden: \" + ev.target.name);\r\n * }, this);\r\n * ```\r\n * ```JavaScript\r\n * series.events.on(\"hidden\", function(ev) {\r\n * console.log(\"Series hidden: \" + ev.target.name);\r\n * }, this);\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"events\": {\r\n * \t\"hidden\": function(ev) {\r\n * \t console.log(\"Series hidden: \" + ev.target.name);\r\n * \t}\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * The above will invoke our custom event handler the first time series we\r\n * put event on is hidden.\r\n *\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n * @returns A disposable event listener\r\n * @todo what if `listen` is called on the same function twice ?\r\n */\r\n EventDispatcher.prototype.once = function (type, callback, context, shouldClone) {\r\n if (shouldClone === void 0) { shouldClone = true; }\r\n var x = this._on(true, type, callback, context, shouldClone, function (type, event) {\r\n x.disposer.dispose();\r\n callback.call(context, event);\r\n });\r\n // TODO maybe this should return a different Disposer ?\r\n return x.disposer;\r\n };\r\n /**\r\n * Removes the event listener with specific parameters.\r\n *\r\n * @param type Listener's type\r\n * @param callback Callback function\r\n * @param context Callback context\r\n */\r\n EventDispatcher.prototype.off = function (type, callback, context) {\r\n this._removeExistingListener(false, type, callback, context);\r\n };\r\n /**\r\n * Copies all dispatcher parameters, including listeners, from another event\r\n * dispatcher.\r\n *\r\n * @param source Source event dispatcher\r\n */\r\n EventDispatcher.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n if (source === this) {\r\n throw new Error(\"Cannot copyFrom the same TargetedEventDispatcher\");\r\n }\r\n $array.each(source._listeners, function (x) {\r\n // TODO is this correct ?\r\n if (!x.killed && x.shouldClone) {\r\n if (x.type === null) {\r\n _this.onAll(x.callback, x.context);\r\n }\r\n else if (x.once) {\r\n _this.once(x.type, x.callback, x.context);\r\n }\r\n else {\r\n _this.on(x.type, x.callback, x.context);\r\n }\r\n }\r\n });\r\n };\r\n return EventDispatcher;\r\n}());\r\nexport { EventDispatcher };\r\n/**\r\n * A version of the [[EventDispatcher]] that dispatches events for a specific\r\n * target object.\r\n *\r\n * @important\r\n */\r\nvar TargetedEventDispatcher = /** @class */ (function (_super) {\r\n __extends(TargetedEventDispatcher, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param target Event dispatcher target\r\n */\r\n function TargetedEventDispatcher(target) {\r\n var _this = _super.call(this) || this;\r\n _this.target = target;\r\n return _this;\r\n }\r\n /**\r\n * Copies all dispatcher parameters, including listeners, from another event\r\n * dispatcher.\r\n *\r\n * @param source Source event dispatcher\r\n */\r\n TargetedEventDispatcher.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n if (this._disposed) {\r\n throw new Error(\"EventDispatcher is disposed\");\r\n }\r\n if (source === this) {\r\n throw new Error(\"Cannot copyFrom the same TargetedEventDispatcher\");\r\n }\r\n $array.each(source._listeners, function (x) {\r\n // TODO very hacky\r\n if (x.context === source.target) {\r\n return;\r\n }\r\n // TODO is this correct ?\r\n if (!x.killed && x.shouldClone) {\r\n if (x.type === null) {\r\n _this.onAll(x.callback, x.context);\r\n }\r\n else if (x.once) {\r\n _this.once(x.type, x.callback, x.context);\r\n }\r\n else {\r\n _this.on(x.type, x.callback, x.context);\r\n }\r\n }\r\n });\r\n };\r\n return TargetedEventDispatcher;\r\n}(EventDispatcher));\r\nexport { TargetedEventDispatcher };\r\n//# sourceMappingURL=EventDispatcher.js.map","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","import { __extends, __generator } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { EventDispatcher } from \"./EventDispatcher\";\r\nimport * as $array from \"./Array\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * Ordered list contains values of any type in an indexed array.\r\n */\r\nvar OrderedList = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param initial Inital list of values to add to list\r\n */\r\n function OrderedList(initial) {\r\n /**\r\n * Holds list values.\r\n */\r\n this._values = [];\r\n /**\r\n * Event dispatcher.\r\n */\r\n this.events = new EventDispatcher();\r\n if (initial != null) {\r\n this.setAll(initial);\r\n }\r\n }\r\n Object.defineProperty(OrderedList.prototype, \"values\", {\r\n /**\r\n * All items of the list.\r\n *\r\n * Do not modify the list directly. Rather use `insert()` and `remove()`\r\n * methods.\r\n *\r\n * @return List values\r\n */\r\n get: function () {\r\n return this._values;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Inserts a value into list item array.\r\n *\r\n * @param value Value\r\n */\r\n OrderedList.prototype._insert = function (value) {\r\n this._values.push(value);\r\n return this._values.length - 1;\r\n };\r\n Object.defineProperty(OrderedList.prototype, \"length\", {\r\n /**\r\n * Number of items in the list.\r\n *\r\n * @readonly\r\n * @return Length\r\n */\r\n get: function () {\r\n return this._values.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the index of the specific `value`.\r\n *\r\n * -1 if not found.\r\n *\r\n * @param value Value\r\n * @return Index\r\n */\r\n OrderedList.prototype.indexOf = function (value) {\r\n return $array.indexOf(this._values, value);\r\n };\r\n /**\r\n * Checks if list contains the `value`.\r\n *\r\n * @param value Value\r\n * @return In the list?\r\n */\r\n OrderedList.prototype.contains = function (value) {\r\n return this.indexOf(value) !== -1;\r\n };\r\n /**\r\n * Returns an item at specific `index`.\r\n *\r\n * @param index Index\r\n * @return Item\r\n */\r\n OrderedList.prototype.getIndex = function (index) {\r\n return this._values[index];\r\n };\r\n Object.defineProperty(OrderedList.prototype, \"first\", {\r\n /**\r\n * First item in the list.\r\n *\r\n * @return Item\r\n */\r\n get: function () {\r\n return this._values[0];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OrderedList.prototype, \"last\", {\r\n /**\r\n * Last item in the list.\r\n *\r\n * @return Item\r\n */\r\n get: function () {\r\n return this._values[this._values.length - 1];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Inserts a value into list.\r\n *\r\n * @param value Value\r\n */\r\n OrderedList.prototype.insert = function (value) {\r\n var index = this._insert(value);\r\n if (this.events.isEnabled(\"inserted\")) {\r\n this.events.dispatchImmediately(\"inserted\", {\r\n type: \"inserted\",\r\n target: this,\r\n index: index,\r\n newValue: value\r\n });\r\n }\r\n };\r\n /**\r\n * Removes an item with the `value` from the list.\r\n *\r\n * @param value Value\r\n */\r\n OrderedList.prototype.remove = function (value) {\r\n var index = this.indexOf(value);\r\n if (index !== -1) {\r\n var oldValue = this._values[index];\r\n $array.removeIndex(this._values, index);\r\n if (this.events.isEnabled(\"removed\")) {\r\n this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: this,\r\n index: index,\r\n oldValue: oldValue,\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Sets multiple items to the list.\r\n *\r\n * All current items are removed.\r\n *\r\n * @param newArray New items\r\n */\r\n OrderedList.prototype.setAll = function (newArray) {\r\n var _this = this;\r\n $array.eachReverse(this._values, function (x, i) {\r\n _this._values.pop();\r\n if (_this.events.isEnabled(\"removed\")) {\r\n _this.events.dispatchImmediately(\"removed\", {\r\n type: \"removed\",\r\n target: _this,\r\n index: i,\r\n oldValue: x\r\n });\r\n }\r\n });\r\n $array.each(newArray, function (value) {\r\n _this.insert(value);\r\n });\r\n };\r\n /**\r\n * Removes all items from the list.\r\n */\r\n OrderedList.prototype.clear = function () {\r\n this.setAll([]);\r\n };\r\n /**\r\n * Returns part of the list between `start` and `end` indexes, as a new\r\n * [[OrderedList]].\r\n *\r\n * @param start Start index\r\n * @param end End index\r\n * @return Items in range\r\n */\r\n OrderedList.prototype.slice = function (start, end) {\r\n var out = new OrderedList();\r\n out._values = this._values.slice(start, end);\r\n return out;\r\n };\r\n /**\r\n * Finds a closest available index to the `value` in specified direction.\r\n *\r\n * @ignore exclude from docs\r\n * @param value value to search for\r\n * @param fn A callback function that returns value of the item\r\n * @param direction Direciton\r\n * @return Index\r\n */\r\n OrderedList.prototype.findClosestIndex = function (value, fn, direction) {\r\n if (direction === void 0) { direction = \"any\"; }\r\n // Init temporary values\r\n var closestIndex = -1;\r\n var closestValue;\r\n var closestDifference;\r\n var i = 0;\r\n $iter.eachContinue(this.iterator(), function (element) {\r\n var item = fn(element);\r\n // Calc difference\r\n if (direction === \"any\") {\r\n // Exact match?\r\n if (item === value) {\r\n // Found exact value - don't bother searching further\r\n closestIndex = i;\r\n return false;\r\n }\r\n var difference = Math.abs(value - item);\r\n if (!$type.hasValue(closestDifference) || (closestDifference > difference)) {\r\n closestIndex = i;\r\n closestValue = item;\r\n closestDifference = difference;\r\n }\r\n }\r\n else if (direction === \"left\" && (item < value)) {\r\n if (!$type.hasValue(closestValue) || (closestValue < item)) {\r\n closestIndex = i;\r\n closestValue = item;\r\n }\r\n }\r\n else if (direction === \"right\" && (item >= value)) {\r\n if (!$type.hasValue(closestValue) || (closestValue >= item)) {\r\n closestIndex = i;\r\n closestValue = item;\r\n }\r\n }\r\n ++i;\r\n return true;\r\n });\r\n // Found nothing?\r\n if (closestIndex === -1) {\r\n if (direction === \"left\") {\r\n // Use First one\r\n closestIndex = 0;\r\n }\r\n else if (direction === \"right\") {\r\n // Use last item\r\n closestIndex = this.length - 1;\r\n }\r\n }\r\n return closestIndex;\r\n };\r\n /**\r\n * Returns a list iterator.\r\n *\r\n * @return Iterator\r\n */\r\n OrderedList.prototype.iterator = function () {\r\n return $iter.fromArray(this._values);\r\n };\r\n /**\r\n * Returns an ES6 iterator for the list.\r\n */\r\n OrderedList.prototype[Symbol.iterator] = function () {\r\n var length, i;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n length = this._values.length;\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < length)) return [3 /*break*/, 4];\r\n return [4 /*yield*/, this._values[i]];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n ++i;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n };\r\n /**\r\n * Calls `f` for each element in the list.\r\n */\r\n OrderedList.prototype.each = function (f) {\r\n $array.each(this._values, f);\r\n };\r\n return OrderedList;\r\n}());\r\nexport { OrderedList };\r\n/**\r\n * A list where all items are ordered according to specific ordering function,\r\n * which is passed in via constructor parameter, when creating an instance of\r\n * [[SortedList]].\r\n */\r\nvar SortedList = /** @class */ (function (_super) {\r\n __extends(SortedList, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param sort Ordering function\r\n */\r\n function SortedList(sort) {\r\n var _this = _super.call(this) || this;\r\n _this._ordering = sort;\r\n return _this;\r\n }\r\n /**\r\n * Inserts item into the list.\r\n *\r\n * @param value Item\r\n */\r\n SortedList.prototype._insert = function (value) {\r\n var index = $array.getSortedIndex(this._values, this._ordering, value).index;\r\n $array.insertIndex(this._values, index, value);\r\n return index;\r\n };\r\n /**\r\n * Returns index of the item in list if found.\r\n *\r\n * -1 if item is not in the list.\r\n *\r\n * @param value Item to search for\r\n * @return Index\r\n */\r\n SortedList.prototype.indexOf = function (value) {\r\n var _a = $array.getSortedIndex(this._values, this._ordering, value), found = _a.found, index = _a.index;\r\n if (found) {\r\n return index;\r\n }\r\n else {\r\n return -1;\r\n }\r\n };\r\n /**\r\n * [udpate description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n SortedList.prototype.update = function (value) {\r\n // @todo test this\r\n var index = $array.indexOf(this._values, value);\r\n // @todo throw an error if it doesn't exist ?\r\n if (index !== -1) {\r\n var last = this._values.length - 1;\r\n // Check if the current ordering is correct\r\n if (!((index === 0 || this._ordering(this._values[index - 1], value) < 0) &&\r\n (index === last || this._ordering(value, this._values[index + 1]) < 0))) {\r\n // TODO send remove/insert/move events\r\n $array.removeIndex(this._values, index);\r\n this._insert(value);\r\n }\r\n }\r\n };\r\n return SortedList;\r\n}(OrderedList));\r\nexport { SortedList };\r\n/**\r\n * A version of a [[OrderedList]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nvar OrderedListTemplate = /** @class */ (function (_super) {\r\n __extends(OrderedListTemplate, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param t Template object\r\n */\r\n function OrderedListTemplate(t) {\r\n var _this = _super.call(this) || this;\r\n _this.template = t;\r\n return _this;\r\n }\r\n Object.defineProperty(OrderedListTemplate.prototype, \"template\", {\r\n /**\r\n * @return Template object\r\n */\r\n get: function () {\r\n return this._template;\r\n },\r\n /**\r\n * A \"template\" object to copy all properties from when creating new list\r\n * items.\r\n *\r\n * @param v Template object\r\n */\r\n set: function (v) {\r\n v.isTemplate = true;\r\n this._template = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all elements from other list.\r\n *\r\n * @param source Source list\r\n */\r\n OrderedListTemplate.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source.iterator(), function (value) {\r\n _this.insert(value.clone());\r\n });\r\n };\r\n /**\r\n * Returns part of the list, starting at `start` and ending at `end` indexes,\r\n * as a new [[OrderedListTemplate]].\r\n *\r\n * @param start Start index\r\n * @param end End index\r\n * @return New list\r\n */\r\n OrderedListTemplate.prototype.slice = function (start, end) {\r\n var out = new OrderedListTemplate(this.template);\r\n out._values = this._values.slice(start, end);\r\n return out;\r\n };\r\n OrderedListTemplate.prototype.create = function (make) {\r\n var clone = (make != null\r\n ? new make()\r\n : this.template.clone());\r\n this.insert(clone);\r\n return clone;\r\n };\r\n return OrderedListTemplate;\r\n}(OrderedList));\r\nexport { OrderedListTemplate };\r\n/**\r\n * A version of a [[SortedList]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nvar SortedListTemplate = /** @class */ (function (_super) {\r\n __extends(SortedListTemplate, _super);\r\n /**\r\n * Constructor\r\n *\r\n * @param t Template object\r\n * @param sort Ordering function\r\n */\r\n function SortedListTemplate(t, sort) {\r\n var _this = _super.call(this, sort) || this;\r\n _this.template = t;\r\n return _this;\r\n }\r\n Object.defineProperty(SortedListTemplate.prototype, \"template\", {\r\n /**\r\n * @return Template object\r\n */\r\n get: function () {\r\n return this._template;\r\n },\r\n /**\r\n * A \"template\" object to copy all properties from when creating new list\r\n * items.\r\n *\r\n * @param v Template object\r\n */\r\n set: function (v) {\r\n v.isTemplate = true;\r\n this._template = v;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all elements from other list.\r\n *\r\n * @param source Source list\r\n */\r\n SortedListTemplate.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n $iter.each(source.iterator(), function (value) {\r\n _this.insert(value.clone());\r\n });\r\n };\r\n SortedListTemplate.prototype.create = function (make) {\r\n var clone = (make != null\r\n ? new make()\r\n : this.template.clone());\r\n this.insert(clone);\r\n return clone;\r\n };\r\n return SortedListTemplate;\r\n}(SortedList));\r\nexport { SortedListTemplate };\r\n//# sourceMappingURL=SortedList.js.map","/**\n * react-number-format - 4.9.4\n * Author : Sudhanshu Yadav\n * Copyright (c) 2016, 2022 to Sudhanshu Yadav, released under the MIT license.\n * https://github.com/s-yadav/react-number-format\n */\n\nimport React from 'react';\n\n// \n\n \n\n// basic noop function\nfunction noop() {}\nfunction returnTrue() {\n return true;\n}\n\nfunction charIsNumber(char ) {\n return !!(char || '').match(/\\d/);\n}\n\nfunction isNil(val ) {\n return val === null || val === undefined;\n}\n\nfunction escapeRegExp(str ) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nfunction getThousandsGroupRegex(thousandsGroupStyle ) {\n switch (thousandsGroupStyle) {\n case 'lakh':\n return /(\\d+?)(?=(\\d\\d)+(\\d)(?!\\d))(\\.\\d+)?/g;\n case 'wan':\n return /(\\d)(?=(\\d{4})+(?!\\d))/g;\n case 'thousand':\n default:\n return /(\\d)(?=(\\d{3})+(?!\\d))/g;\n }\n}\n\nfunction applyThousandSeparator(\n str ,\n thousandSeparator ,\n thousandsGroupStyle \n) {\n var thousandsGroupRegex = getThousandsGroupRegex(thousandsGroupStyle);\n var index = str.search(/[1-9]/);\n index = index === -1 ? str.length : index;\n return (\n str.substring(0, index) +\n str.substring(index, str.length).replace(thousandsGroupRegex, '$1' + thousandSeparator)\n );\n}\n\n//spilt a float number into different parts beforeDecimal, afterDecimal, and negation\nfunction splitDecimal(numStr , allowNegative) {\n if ( allowNegative === void 0 ) allowNegative = true;\n\n var hasNagation = numStr[0] === '-';\n var addNegation = hasNagation && allowNegative;\n numStr = numStr.replace('-', '');\n\n var parts = numStr.split('.');\n var beforeDecimal = parts[0];\n var afterDecimal = parts[1] || '';\n\n return {\n beforeDecimal: beforeDecimal,\n afterDecimal: afterDecimal,\n hasNagation: hasNagation,\n addNegation: addNegation,\n };\n}\n\nfunction fixLeadingZero(numStr ) {\n if (!numStr) { return numStr; }\n var isNegative = numStr[0] === '-';\n if (isNegative) { numStr = numStr.substring(1, numStr.length); }\n var parts = numStr.split('.');\n var beforeDecimal = parts[0].replace(/^0+/, '') || '0';\n var afterDecimal = parts[1] || '';\n\n return (\"\" + (isNegative ? '-' : '') + beforeDecimal + (afterDecimal ? (\".\" + afterDecimal) : ''));\n}\n\n/**\n * limit decimal numbers to given scale\n * Not used .fixedTo because that will break with big numbers\n */\nfunction limitToScale(numStr , scale , fixedDecimalScale ) {\n var str = '';\n var filler = fixedDecimalScale ? '0' : '';\n for (var i = 0; i <= scale - 1; i++) {\n str += numStr[i] || filler;\n }\n return str;\n}\n\nfunction repeat(str, count) {\n return Array(count + 1).join(str);\n}\n\nfunction toNumericString(num) {\n num += ''; // typecast number to string\n\n // store the sign and remove it from the number.\n var sign = num[0] === '-' ? '-' : '';\n if (sign) { num = num.substring(1); }\n\n // split the number into cofficient and exponent\n var ref = num.split(/[eE]/g);\n var coefficient = ref[0];\n var exponent = ref[1];\n\n // covert exponent to number;\n exponent = Number(exponent);\n\n // if there is no exponent part or its 0, return the coffiecient with sign\n if (!exponent) { return sign + coefficient; }\n\n coefficient = coefficient.replace('.', '');\n\n /**\n * for scientific notation the current decimal index will be after first number (index 0)\n * So effective decimal index will always be 1 + exponent value\n */\n var decimalIndex = 1 + exponent;\n\n var coffiecientLn = coefficient.length;\n\n if (decimalIndex < 0) {\n // if decimal index is less then 0 add preceding 0s\n // add 1 as join will have\n coefficient = '0.' + repeat('0', Math.abs(decimalIndex)) + coefficient;\n } else if (decimalIndex >= coffiecientLn) {\n // if decimal index is less then 0 add leading 0s\n coefficient = coefficient + repeat('0', decimalIndex - coffiecientLn);\n } else {\n // else add decimal point at proper index\n coefficient =\n (coefficient.substring(0, decimalIndex) || '0') + '.' + coefficient.substring(decimalIndex);\n }\n\n return sign + coefficient;\n}\n\n/**\n * This method is required to round prop value to given scale.\n * Not used .round or .fixedTo because that will break with big numbers\n */\nfunction roundToPrecision(numStr , scale , fixedDecimalScale ) {\n //if number is empty don't do anything return empty string\n if (['', '-'].indexOf(numStr) !== -1) { return numStr; }\n\n var shoudHaveDecimalSeparator = numStr.indexOf('.') !== -1 && scale;\n var ref = splitDecimal(numStr);\n var beforeDecimal = ref.beforeDecimal;\n var afterDecimal = ref.afterDecimal;\n var hasNagation = ref.hasNagation;\n var floatValue = parseFloat((\"0.\" + (afterDecimal || '0')));\n var floatValueStr =\n afterDecimal.length <= scale ? (\"0.\" + afterDecimal) : floatValue.toFixed(scale);\n var roundedDecimalParts = floatValueStr.split('.');\n var intPart = beforeDecimal\n .split('')\n .reverse()\n .reduce(function (roundedStr, current, idx) {\n if (roundedStr.length > idx) {\n return (\n (Number(roundedStr[0]) + Number(current)).toString() +\n roundedStr.substring(1, roundedStr.length)\n );\n }\n return current + roundedStr;\n }, roundedDecimalParts[0]);\n\n var decimalPart = limitToScale(\n roundedDecimalParts[1] || '',\n Math.min(scale, afterDecimal.length),\n fixedDecimalScale\n );\n var negation = hasNagation ? '-' : '';\n var decimalSeparator = shoudHaveDecimalSeparator ? '.' : '';\n return (\"\" + negation + intPart + decimalSeparator + decimalPart);\n}\n\n/** set the caret positon in an input field **/\nfunction setCaretPosition(el , caretPos ) {\n el.value = el.value;\n // ^ this is used to not only get 'focus', but\n // to make sure we don't have it everything -selected-\n // (it causes an issue in chrome, and having it doesn't hurt any other browser)\n if (el !== null) {\n if (el.createTextRange) {\n var range = el.createTextRange();\n range.move('character', caretPos);\n range.select();\n return true;\n }\n // (el.selectionStart === 0 added for Firefox bug)\n if (el.selectionStart || el.selectionStart === 0) {\n el.focus();\n el.setSelectionRange(caretPos, caretPos);\n return true;\n }\n\n // fail city, fortunately this never happens (as far as I've tested) :)\n el.focus();\n return false;\n }\n}\n\n/**\n Given previous value and newValue it returns the index\n start - end to which values have changed.\n This function makes assumption about only consecutive\n characters are changed which is correct assumption for caret input.\n*/\nfunction findChangedIndex(prevValue , newValue ) {\n var i = 0,\n j = 0;\n var prevLength = prevValue.length;\n var newLength = newValue.length;\n while (prevValue[i] === newValue[i] && i < prevLength) { i++; }\n\n //check what has been changed from last\n while (\n prevValue[prevLength - 1 - j] === newValue[newLength - 1 - j] &&\n newLength - j > i &&\n prevLength - j > i\n ) {\n j++;\n }\n\n return { start: i, end: prevLength - j };\n}\n\n/*\n Returns a number whose value is limited to the given range\n*/\nfunction clamp(num , min , max ) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction getCurrentCaretPosition(el ) {\n /*Max of selectionStart and selectionEnd is taken for the patch of pixel and other mobile device caret bug*/\n return Math.max(el.selectionStart, el.selectionEnd);\n}\n\nfunction addInputMode(format ) {\n return (\n format ||\n (typeof navigator !== 'undefined' &&\n !(navigator.platform && /iPhone|iPod/.test(navigator.platform)))\n );\n}\n\n// \nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\nvar defaultProps = {\n displayType: 'input',\n decimalSeparator: '.',\n thousandsGroupStyle: 'thousand',\n fixedDecimalScale: false,\n prefix: '',\n suffix: '',\n allowNegative: true,\n allowEmptyFormatting: false,\n allowLeadingZeros: false,\n isNumericString: false,\n type: 'text',\n onValueChange: noop,\n onChange: noop,\n onKeyDown: noop,\n onMouseUp: noop,\n onFocus: noop,\n onBlur: noop,\n isAllowed: returnTrue,\n};\nvar NumberFormat = /*@__PURE__*/(function (superclass) {\n function NumberFormat(props ) {\n superclass.call(this, props);\n var defaultValue = props.defaultValue;\n\n //validate props\n this.validateProps();\n\n var formattedValue = this.formatValueProp(defaultValue);\n\n this.state = {\n value: formattedValue,\n numAsString: this.removeFormatting(formattedValue),\n mounted: false,\n };\n\n this.selectionBeforeInput = {\n selectionStart: 0,\n selectionEnd: 0,\n };\n\n this.onChange = this.onChange.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onMouseUp = this.onMouseUp.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n }\n\n if ( superclass ) NumberFormat.__proto__ = superclass;\n NumberFormat.prototype = Object.create( superclass && superclass.prototype );\n NumberFormat.prototype.constructor = NumberFormat;\n\n NumberFormat.prototype.componentDidMount = function componentDidMount () {\n // set mounted state\n // eslint-disable-next-line react/no-did-mount-set-state\n this.setState({\n mounted: true,\n });\n };\n\n NumberFormat.prototype.componentDidUpdate = function componentDidUpdate (prevProps ) {\n this.updateValueIfRequired(prevProps);\n };\n\n NumberFormat.prototype.componentWillUnmount = function componentWillUnmount () {\n clearTimeout(this.focusTimeout);\n clearTimeout(this.caretPositionTimeout);\n };\n\n NumberFormat.prototype.updateValueIfRequired = function updateValueIfRequired (prevProps ) {\n var ref = this;\n var props = ref.props;\n var state = ref.state;\n var focusedElm = ref.focusedElm;\n var stateValue = state.value;\n var lastNumStr = state.numAsString; if ( lastNumStr === void 0 ) lastNumStr = '';\n\n // If only state changed no need to do any thing\n if (prevProps !== props) {\n //validate props\n this.validateProps();\n\n var lastValueWithNewFormat = this.formatNumString(lastNumStr);\n\n var formattedValue = isNil(props.value) ? lastValueWithNewFormat : this.formatValueProp();\n var numAsString = this.removeFormatting(formattedValue);\n\n var floatValue = parseFloat(numAsString);\n var lastFloatValue = parseFloat(lastNumStr);\n\n if (\n //while typing set state only when float value changes\n ((!isNaN(floatValue) || !isNaN(lastFloatValue)) && floatValue !== lastFloatValue) ||\n //can also set state when float value is same and the format props changes\n lastValueWithNewFormat !== stateValue ||\n //set state always when not in focus and formatted value is changed\n (focusedElm === null && formattedValue !== stateValue)\n ) {\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n input: focusedElm,\n source: 'prop',\n event: null,\n });\n }\n }\n };\n\n /** Misc methods **/\n NumberFormat.prototype.getFloatString = function getFloatString (num) {\n if ( num === void 0 ) num = '';\n\n var ref = this.props;\n var decimalScale = ref.decimalScale;\n var ref$1 = this.getSeparators();\n var decimalSeparator = ref$1.decimalSeparator;\n var numRegex = this.getNumberRegex(true);\n\n //remove negation for regex check\n var hasNegation = num[0] === '-';\n if (hasNegation) { num = num.replace('-', ''); }\n\n //if decimal scale is zero remove decimal and number after decimalSeparator\n if (decimalSeparator && decimalScale === 0) {\n num = num.split(decimalSeparator)[0];\n }\n\n num = (num.match(numRegex) || []).join('').replace(decimalSeparator, '.');\n\n //remove extra decimals\n var firstDecimalIndex = num.indexOf('.');\n\n if (firstDecimalIndex !== -1) {\n num = (num.substring(0, firstDecimalIndex)) + \".\" + (num\n .substring(firstDecimalIndex + 1, num.length)\n .replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), ''));\n }\n\n //add negation back\n if (hasNegation) { num = '-' + num; }\n\n return num;\n };\n\n //returned regex assumes decimalSeparator is as per prop\n NumberFormat.prototype.getNumberRegex = function getNumberRegex (g , ignoreDecimalSeparator ) {\n var ref = this.props;\n var format = ref.format;\n var decimalScale = ref.decimalScale;\n var customNumerals = ref.customNumerals;\n var ref$1 = this.getSeparators();\n var decimalSeparator = ref$1.decimalSeparator;\n return new RegExp(\n '[0-9' +\n (customNumerals ? customNumerals.join('') : '') +\n ']' +\n (decimalSeparator && decimalScale !== 0 && !ignoreDecimalSeparator && !format\n ? '|' + escapeRegExp(decimalSeparator)\n : ''),\n g ? 'g' : undefined\n );\n };\n\n NumberFormat.prototype.getSeparators = function getSeparators () {\n var ref = this.props;\n var decimalSeparator = ref.decimalSeparator;\n var ref$1 = this.props;\n var thousandSeparator = ref$1.thousandSeparator;\n var allowedDecimalSeparators = ref$1.allowedDecimalSeparators;\n\n if (thousandSeparator === true) {\n thousandSeparator = ',';\n }\n if (!allowedDecimalSeparators) {\n allowedDecimalSeparators = [decimalSeparator, '.'];\n }\n\n return {\n decimalSeparator: decimalSeparator,\n thousandSeparator: thousandSeparator,\n allowedDecimalSeparators: allowedDecimalSeparators,\n };\n };\n\n NumberFormat.prototype.getMaskAtIndex = function getMaskAtIndex (index ) {\n var ref = this.props;\n var mask = ref.mask; if ( mask === void 0 ) mask = ' ';\n if (typeof mask === 'string') {\n return mask;\n }\n\n return mask[index] || ' ';\n };\n\n NumberFormat.prototype.getValueObject = function getValueObject (formattedValue , numAsString ) {\n var floatValue = parseFloat(numAsString);\n\n return {\n formattedValue: formattedValue,\n value: numAsString,\n floatValue: isNaN(floatValue) ? undefined : floatValue,\n };\n };\n\n NumberFormat.prototype.validateProps = function validateProps () {\n var ref = this.props;\n var mask = ref.mask;\n\n //validate decimalSeparator and thousandSeparator\n var ref$1 = this.getSeparators();\n var decimalSeparator = ref$1.decimalSeparator;\n var thousandSeparator = ref$1.thousandSeparator;\n\n if (decimalSeparator === thousandSeparator) {\n throw new Error((\"\\n Decimal separator can't be same as thousand separator.\\n thousandSeparator: \" + thousandSeparator + \" (thousandSeparator = {true} is same as thousandSeparator = \\\",\\\")\\n decimalSeparator: \" + decimalSeparator + \" (default value for decimalSeparator is .)\\n \"));\n }\n\n //validate mask\n if (mask) {\n var maskAsStr = mask === 'string' ? mask : mask.toString();\n if (maskAsStr.match(/\\d/g)) {\n throw new Error((\"\\n Mask \" + mask + \" should not contain numeric character;\\n \"));\n }\n }\n };\n /** Misc methods end **/\n\n /** caret specific methods **/\n NumberFormat.prototype.setPatchedCaretPosition = function setPatchedCaretPosition (el , caretPos , currentValue ) {\n /* setting caret position within timeout of 0ms is required for mobile chrome,\n otherwise browser resets the caret position after we set it\n We are also setting it without timeout so that in normal browser we don't see the flickering */\n setCaretPosition(el, caretPos);\n this.caretPositionTimeout = setTimeout(function () {\n if (el.value === currentValue) { setCaretPosition(el, caretPos); }\n }, 0);\n };\n\n /* This keeps the caret within typing area so people can't type in between prefix or suffix */\n NumberFormat.prototype.correctCaretPosition = function correctCaretPosition (value , caretPos , direction ) {\n var ref = this.props;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var format = ref.format;\n\n //if value is empty return 0\n if (value === '') { return 0; }\n\n //caret position should be between 0 and value length\n caretPos = clamp(caretPos, 0, value.length);\n\n //in case of format as number limit between prefix and suffix\n if (!format) {\n var hasNegation = value[0] === '-';\n return clamp(caretPos, prefix.length + (hasNegation ? 1 : 0), value.length - suffix.length);\n }\n\n //in case if custom format method don't do anything\n if (typeof format === 'function') { return caretPos; }\n\n /* in case format is string find the closest # position from the caret position */\n\n //in case the caretPos have input value on it don't do anything\n if (format[caretPos] === '#' && charIsNumber(value[caretPos])) {\n return caretPos;\n }\n\n //if caretPos is just after input value don't do anything\n if (format[caretPos - 1] === '#' && charIsNumber(value[caretPos - 1])) {\n return caretPos;\n }\n\n //find the nearest caret position\n var firstHashPosition = format.indexOf('#');\n var lastHashPosition = format.lastIndexOf('#');\n\n //limit the cursor between the first # position and the last # position\n caretPos = clamp(caretPos, firstHashPosition, lastHashPosition + 1);\n\n var nextPos = format.substring(caretPos, format.length).indexOf('#');\n var caretLeftBound = caretPos;\n var caretRightBound = caretPos + (nextPos === -1 ? 0 : nextPos);\n\n //get the position where the last number is present\n while (\n caretLeftBound > firstHashPosition &&\n (format[caretLeftBound] !== '#' || !charIsNumber(value[caretLeftBound]))\n ) {\n caretLeftBound -= 1;\n }\n\n var goToLeft =\n !charIsNumber(value[caretRightBound]) ||\n (direction === 'left' && caretPos !== firstHashPosition) ||\n caretPos - caretLeftBound < caretRightBound - caretPos;\n\n if (goToLeft) {\n //check if number should be taken after the bound or after it\n //if number preceding a valid number keep it after\n return charIsNumber(value[caretLeftBound]) ? caretLeftBound + 1 : caretLeftBound;\n }\n\n return caretRightBound;\n };\n\n NumberFormat.prototype.getCaretPosition = function getCaretPosition (inputValue , formattedValue , caretPos ) {\n var ref = this.props;\n var format = ref.format;\n var stateValue = this.state.value;\n var numRegex = this.getNumberRegex(true);\n var inputNumber = (inputValue.match(numRegex) || []).join('');\n var formattedNumber = (formattedValue.match(numRegex) || []).join('');\n var j, i;\n\n j = 0;\n\n for (i = 0; i < caretPos; i++) {\n var currentInputChar = inputValue[i] || '';\n var currentFormatChar = formattedValue[j] || '';\n //no need to increase new cursor position if formatted value does not have those characters\n //case inputValue = 1a23 and formattedValue = 123\n if (!currentInputChar.match(numRegex) && currentInputChar !== currentFormatChar) {\n continue;\n }\n\n //When we are striping out leading zeros maintain the new cursor position\n //Case inputValue = 00023 and formattedValue = 23;\n if (\n currentInputChar === '0' &&\n currentFormatChar.match(numRegex) &&\n currentFormatChar !== '0' &&\n inputNumber.length !== formattedNumber.length\n ) {\n continue;\n }\n\n //we are not using currentFormatChar because j can change here\n while (currentInputChar !== formattedValue[j] && j < formattedValue.length) {\n j++;\n }\n j++;\n }\n\n if (typeof format === 'string' && !stateValue) {\n //set it to the maximum value so it goes after the last number\n j = formattedValue.length;\n }\n\n //correct caret position if its outside of editable area\n j = this.correctCaretPosition(formattedValue, j);\n\n return j;\n };\n /** caret specific methods ends **/\n\n /** methods to remove formattting **/\n NumberFormat.prototype.removePrefixAndSuffix = function removePrefixAndSuffix (val ) {\n var ref = this.props;\n var format = ref.format;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n\n //remove prefix and suffix\n if (!format && val) {\n var isNegative = val[0] === '-';\n\n //remove negation sign\n if (isNegative) { val = val.substring(1, val.length); }\n\n //remove prefix\n val = prefix && val.indexOf(prefix) === 0 ? val.substring(prefix.length, val.length) : val;\n\n //remove suffix\n var suffixLastIndex = val.lastIndexOf(suffix);\n val =\n suffix && suffixLastIndex !== -1 && suffixLastIndex === val.length - suffix.length\n ? val.substring(0, suffixLastIndex)\n : val;\n\n //add negation sign back\n if (isNegative) { val = '-' + val; }\n }\n\n return val;\n };\n\n NumberFormat.prototype.removePatternFormatting = function removePatternFormatting (val ) {\n var ref = this.props;\n var format = ref.format;\n var formatArray = format.split('#').filter(function (str) { return str !== ''; });\n var start = 0;\n var numStr = '';\n\n for (var i = 0, ln = formatArray.length; i <= ln; i++) {\n var part = formatArray[i] || '';\n\n //if i is the last fragment take the index of end of the value\n //For case like +1 (911) 911 91 91 having pattern +1 (###) ### ## ##\n var index = i === ln ? val.length : val.indexOf(part, start);\n\n /* in any case if we don't find the pattern part in the value assume the val as numeric string\n This will be also in case if user has started typing, in any other case it will not be -1\n unless wrong prop value is provided */\n if (index === -1) {\n numStr = val;\n break;\n } else {\n numStr += val.substring(start, index);\n start = index + part.length;\n }\n }\n\n return (numStr.match(this.getNumberRegex(true)) || []).join('');\n };\n\n NumberFormat.prototype.removeFormatting = function removeFormatting (val ) {\n var ref = this.props;\n var format = ref.format;\n var removeFormatting = ref.removeFormatting;\n if (!val) { return val; }\n\n if (!format) {\n val = this.removePrefixAndSuffix(val);\n val = this.getFloatString(val);\n } else if (typeof format === 'string') {\n val = this.removePatternFormatting(val);\n } else if (typeof removeFormatting === 'function') {\n //condition need to be handled if format method is provide,\n val = removeFormatting(val);\n } else {\n val = (val.match(this.getNumberRegex(true)) || []).join('');\n }\n return val;\n };\n /** methods to remove formattting end **/\n\n /*** format specific methods start ***/\n /**\n * Format when # based string is provided\n * @param {string} numStr Numeric String\n * @return {string} formatted Value\n */\n NumberFormat.prototype.formatWithPattern = function formatWithPattern (numStr ) {\n var ref = this.props;\n var format = ref.format;\n var hashCount = 0;\n var formattedNumberAry = format.split('');\n for (var i = 0, ln = format.length; i < ln; i++) {\n if (format[i] === '#') {\n formattedNumberAry[i] = numStr[hashCount] || this.getMaskAtIndex(hashCount);\n hashCount += 1;\n }\n }\n return formattedNumberAry.join('');\n };\n /**\n * @param {string} numStr Numeric string/floatString] It always have decimalSeparator as .\n * @return {string} formatted Value\n */\n NumberFormat.prototype.formatAsNumber = function formatAsNumber (numStr ) {\n var ref = this.props;\n var decimalScale = ref.decimalScale;\n var fixedDecimalScale = ref.fixedDecimalScale;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var allowNegative = ref.allowNegative;\n var thousandsGroupStyle = ref.thousandsGroupStyle;\n var ref$1 = this.getSeparators();\n var thousandSeparator = ref$1.thousandSeparator;\n var decimalSeparator = ref$1.decimalSeparator;\n\n var hasDecimalSeparator = numStr.indexOf('.') !== -1 || (decimalScale && fixedDecimalScale);\n var ref$2 = splitDecimal(numStr, allowNegative);\n var beforeDecimal = ref$2.beforeDecimal;\n var afterDecimal = ref$2.afterDecimal;\n var addNegation = ref$2.addNegation; // eslint-disable-line prefer-const\n\n //apply decimal precision if its defined\n if (decimalScale !== undefined) {\n afterDecimal = limitToScale(afterDecimal, decimalScale, fixedDecimalScale);\n }\n\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, thousandsGroupStyle);\n }\n\n //add prefix and suffix\n if (prefix) { beforeDecimal = prefix + beforeDecimal; }\n if (suffix) { afterDecimal = afterDecimal + suffix; }\n\n //restore negation sign\n if (addNegation) { beforeDecimal = '-' + beforeDecimal; }\n\n numStr = beforeDecimal + ((hasDecimalSeparator && decimalSeparator) || '') + afterDecimal;\n\n return numStr;\n };\n\n NumberFormat.prototype.formatNumString = function formatNumString (numStr) {\n if ( numStr === void 0 ) numStr = '';\n\n var ref = this.props;\n var format = ref.format;\n var allowEmptyFormatting = ref.allowEmptyFormatting;\n var customNumerals = ref.customNumerals;\n var formattedValue = numStr;\n\n if (customNumerals && customNumerals.length === 10) {\n var customNumeralRegex = new RegExp('[' + customNumerals.join('') + ']', 'g');\n formattedValue = numStr.replace(customNumeralRegex, function (digit) { return customNumerals.indexOf(digit).toString(); }\n );\n }\n\n if (numStr === '' && !allowEmptyFormatting) {\n formattedValue = '';\n } else if (numStr === '-' && !format) {\n formattedValue = '-';\n } else if (typeof format === 'string') {\n formattedValue = this.formatWithPattern(formattedValue);\n } else if (typeof format === 'function') {\n formattedValue = format(formattedValue);\n } else {\n formattedValue = this.formatAsNumber(formattedValue);\n }\n\n return formattedValue;\n };\n\n NumberFormat.prototype.formatValueProp = function formatValueProp (defaultValue ) {\n var ref = this.props;\n var format = ref.format;\n var decimalScale = ref.decimalScale;\n var fixedDecimalScale = ref.fixedDecimalScale;\n var allowEmptyFormatting = ref.allowEmptyFormatting;\n var ref$1 = this.props;\n var value = ref$1.value;\n var isNumericString = ref$1.isNumericString;\n\n // if value is undefined or null, use defaultValue instead\n value = isNil(value) ? defaultValue : value;\n\n var isNonNumericFalsy = !value && value !== 0;\n\n if (isNonNumericFalsy && allowEmptyFormatting) {\n value = '';\n }\n\n // if value is not defined return empty string\n if (isNonNumericFalsy && !allowEmptyFormatting) { return ''; }\n\n if (typeof value === 'number') {\n value = toNumericString(value);\n isNumericString = true;\n }\n\n //change infinity value to empty string\n if (value === 'Infinity' && isNumericString) {\n value = '';\n }\n\n //round the number based on decimalScale\n //format only if non formatted value is provided\n if (isNumericString && !format && typeof decimalScale === 'number') {\n value = roundToPrecision(value, decimalScale, fixedDecimalScale);\n }\n\n var formattedValue = isNumericString ? this.formatNumString(value) : this.formatInput(value);\n\n return formattedValue;\n };\n\n NumberFormat.prototype.formatNegation = function formatNegation (value) {\n if ( value === void 0 ) value = '';\n\n var ref = this.props;\n var allowNegative = ref.allowNegative;\n var negationRegex = new RegExp('(-)');\n var doubleNegationRegex = new RegExp('(-)(.)*(-)');\n\n // Check number has '-' value\n var hasNegation = negationRegex.test(value);\n\n // Check number has 2 or more '-' values\n var removeNegation = doubleNegationRegex.test(value);\n\n //remove negation\n value = value.replace(/-/g, '');\n\n if (hasNegation && !removeNegation && allowNegative) {\n value = '-' + value;\n }\n\n return value;\n };\n\n NumberFormat.prototype.formatInput = function formatInput (value) {\n if ( value === void 0 ) value = '';\n\n var ref = this.props;\n var format = ref.format;\n\n //format negation only if we are formatting as number\n if (!format) {\n value = this.removePrefixAndSuffix(value);\n value = this.formatNegation(value);\n }\n\n //remove formatting from number\n value = this.removeFormatting(value);\n\n return this.formatNumString(value);\n };\n\n /*** format specific methods end ***/\n NumberFormat.prototype.isCharacterAFormat = function isCharacterAFormat (caretPos , value ) {\n var ref = this.props;\n var format = ref.format;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var decimalScale = ref.decimalScale;\n var fixedDecimalScale = ref.fixedDecimalScale;\n var ref$1 = this.getSeparators();\n var decimalSeparator = ref$1.decimalSeparator;\n\n //check within format pattern\n if (typeof format === 'string' && format[caretPos] !== '#') { return true; }\n\n //check in number format\n if (\n !format &&\n (caretPos < prefix.length ||\n caretPos >= value.length - suffix.length ||\n (decimalScale && fixedDecimalScale && value[caretPos] === decimalSeparator))\n ) {\n return true;\n }\n\n return false;\n };\n\n /**\n * This will check if any formatting got removed by the delete or backspace and reset the value\n * It will also work as fallback if android chome keyDown handler does not work\n **/\n NumberFormat.prototype.correctInputValue = function correctInputValue (caretPos , lastValue , value ) {\n var this$1 = this;\n\n var ref = this.props;\n var format = ref.format;\n var allowNegative = ref.allowNegative;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var decimalScale = ref.decimalScale;\n var ref$1 = this.getSeparators();\n var allowedDecimalSeparators = ref$1.allowedDecimalSeparators;\n var decimalSeparator = ref$1.decimalSeparator;\n var lastNumStr = this.state.numAsString || '';\n var ref$2 = this.selectionBeforeInput;\n var selectionStart = ref$2.selectionStart;\n var selectionEnd = ref$2.selectionEnd;\n var ref$3 = findChangedIndex(lastValue, value);\n var start = ref$3.start;\n var end = ref$3.end;\n\n /** Check for any allowed decimal separator is added in the numeric format and replace it with decimal separator */\n if (\n !format &&\n start === end &&\n allowedDecimalSeparators.indexOf(value[selectionStart]) !== -1\n ) {\n var separator = decimalScale === 0 ? '' : decimalSeparator;\n return (\n value.substr(0, selectionStart) + separator + value.substr(selectionStart + 1, value.length)\n );\n }\n\n var leftBound = !!format ? 0 : prefix.length;\n var rightBound = lastValue.length - (!!format ? 0 : suffix.length);\n\n if (\n // don't do anything if something got added\n value.length > lastValue.length ||\n // or if the new value is an empty string\n !value.length ||\n // or if nothing has changed, in which case start will be same as end\n start === end ||\n // or in case if whole input is selected and new value is typed\n (selectionStart === 0 && selectionEnd === lastValue.length) ||\n // or in case if the whole content is replaced by browser, example (autocomplete)\n (start === 0 && end === lastValue.length) ||\n // or if charcters between prefix and suffix is selected.\n // For numeric inputs we apply the format so, prefix and suffix can be ignored\n (selectionStart === leftBound && selectionEnd === rightBound)\n ) {\n return value;\n }\n\n // check whether the deleted portion has a character that is part of a format\n var deletedValues = lastValue.substr(start, end - start);\n var formatGotDeleted = !![].concat( deletedValues ).find(function (deletedVal, idx) { return this$1.isCharacterAFormat(idx + start, lastValue); }\n );\n\n // if it has, only remove characters that are not part of the format\n if (formatGotDeleted) {\n var deletedValuePortion = lastValue.substr(start);\n var recordIndexOfFormatCharacters = {};\n var resolvedPortion = [];\n [].concat( deletedValuePortion ).forEach(function (currentPortion, idx) {\n if (this$1.isCharacterAFormat(idx + start, lastValue)) {\n recordIndexOfFormatCharacters[idx] = currentPortion;\n } else if (idx > deletedValues.length - 1) {\n resolvedPortion.push(currentPortion);\n }\n });\n\n Object.keys(recordIndexOfFormatCharacters).forEach(function (idx) {\n if (resolvedPortion.length > idx) {\n resolvedPortion.splice(idx, 0, recordIndexOfFormatCharacters[idx]);\n } else {\n resolvedPortion.push(recordIndexOfFormatCharacters[idx]);\n }\n });\n\n value = lastValue.substr(0, start) + resolvedPortion.join('');\n }\n\n //for numbers check if beforeDecimal got deleted and there is nothing after decimal,\n //clear all numbers in such case while keeping the - sign\n if (!format) {\n var numericString = this.removeFormatting(value);\n var ref$4 = splitDecimal(\n numericString,\n allowNegative\n );\n var beforeDecimal = ref$4.beforeDecimal;\n var afterDecimal = ref$4.afterDecimal;\n var addNegation = ref$4.addNegation; // eslint-disable-line prefer-const\n\n //clear only if something got deleted\n var isBeforeDecimalPoint = caretPos < value.indexOf(decimalSeparator) + 1;\n if (\n numericString.length < lastNumStr.length &&\n isBeforeDecimalPoint &&\n beforeDecimal === '' &&\n !parseFloat(afterDecimal)\n ) {\n return addNegation ? '-' : '';\n }\n }\n\n return value;\n };\n\n /** Update value and caret position */\n NumberFormat.prototype.updateValue = function updateValue (params \n \n \n \n \n \n \n \n \n ) {\n var formattedValue = params.formattedValue;\n var input = params.input;\n var setCaretPosition = params.setCaretPosition; if ( setCaretPosition === void 0 ) setCaretPosition = true;\n var source = params.source;\n var event = params.event;\n var numAsString = params.numAsString;\n var caretPos = params.caretPos;\n var ref = this.props;\n var onValueChange = ref.onValueChange;\n var ref$1 = this.state;\n var lastValue = ref$1.value;\n\n if (input) {\n //calculate caret position if not defined\n if (caretPos === undefined && setCaretPosition) {\n var inputValue = params.inputValue || input.value;\n\n var currentCaretPosition = getCurrentCaretPosition(input);\n\n /**\n * set the value imperatively, this is required for IE fix\n * This is also required as if new caret position is beyond the previous value.\n * Caret position will not be set correctly\n */\n input.value = formattedValue;\n\n //get the caret position\n caretPos = this.getCaretPosition(inputValue, formattedValue, currentCaretPosition);\n }\n\n /**\n * set the value imperatively, as we set the caret position as well imperatively.\n * This is to keep value and caret position in sync\n */\n input.value = formattedValue;\n\n //set caret position, and value imperatively when element is provided\n if (setCaretPosition) {\n //set caret position\n this.setPatchedCaretPosition(input, caretPos, formattedValue);\n }\n }\n\n //calculate numeric string if not passed\n if (numAsString === undefined) {\n numAsString = this.removeFormatting(formattedValue);\n }\n\n //update state if value is changed\n if (formattedValue !== lastValue) {\n this.setState({ value: formattedValue, numAsString: numAsString });\n\n // trigger onValueChange synchronously, so parent is updated along with the number format. Fix for #277, #287\n onValueChange(this.getValueObject(formattedValue, numAsString), { event: event, source: source });\n }\n };\n\n NumberFormat.prototype.onChange = function onChange (e ) {\n var el = e.target;\n var inputValue = el.value;\n var ref = this;\n var state = ref.state;\n var props = ref.props;\n var isAllowed = props.isAllowed;\n var lastValue = state.value || '';\n\n var currentCaretPosition = getCurrentCaretPosition(el);\n\n inputValue = this.correctInputValue(currentCaretPosition, lastValue, inputValue);\n\n var formattedValue = this.formatInput(inputValue) || '';\n var numAsString = this.removeFormatting(formattedValue);\n\n var valueObj = this.getValueObject(formattedValue, numAsString);\n var isChangeAllowed = isAllowed(valueObj);\n\n if (!isChangeAllowed) {\n formattedValue = lastValue;\n }\n\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n inputValue: inputValue,\n input: el,\n event: e,\n source: 'event',\n });\n\n if (isChangeAllowed) {\n props.onChange(e);\n }\n };\n\n NumberFormat.prototype.onBlur = function onBlur (e ) {\n var ref = this;\n var props = ref.props;\n var state = ref.state;\n var format = props.format;\n var onBlur = props.onBlur;\n var allowLeadingZeros = props.allowLeadingZeros;\n var numAsString = state.numAsString;\n var lastValue = state.value;\n this.focusedElm = null;\n\n clearTimeout(this.focusTimeout);\n clearTimeout(this.caretPositionTimeout);\n\n if (!format) {\n // if the numAsString is not a valid number reset it to empty\n if (isNaN(parseFloat(numAsString))) {\n numAsString = '';\n }\n\n if (!allowLeadingZeros) {\n numAsString = fixLeadingZero(numAsString);\n }\n\n var formattedValue = this.formatNumString(numAsString);\n\n //change the state\n if (formattedValue !== lastValue) {\n // the event needs to be persisted because its properties can be accessed in an asynchronous way\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n input: e.target,\n setCaretPosition: false,\n event: e,\n source: 'event',\n });\n onBlur(e);\n return;\n }\n }\n onBlur(e);\n };\n\n NumberFormat.prototype.onKeyDown = function onKeyDown (e ) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var expectedCaretPosition;\n var ref = this.props;\n var decimalScale = ref.decimalScale;\n var fixedDecimalScale = ref.fixedDecimalScale;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var format = ref.format;\n var onKeyDown = ref.onKeyDown;\n var ignoreDecimalSeparator = decimalScale !== undefined && fixedDecimalScale;\n var numRegex = this.getNumberRegex(false, ignoreDecimalSeparator);\n var negativeRegex = new RegExp('-');\n var isPatternFormat = typeof format === 'string';\n\n this.selectionBeforeInput = {\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n };\n\n //Handle backspace and delete against non numerical/decimal characters or arrow keys\n if (key === 'ArrowLeft' || key === 'Backspace') {\n expectedCaretPosition = selectionStart - 1;\n } else if (key === 'ArrowRight') {\n expectedCaretPosition = selectionStart + 1;\n } else if (key === 'Delete') {\n expectedCaretPosition = selectionStart;\n }\n\n //if expectedCaretPosition is not set it means we don't want to Handle keyDown\n //also if multiple characters are selected don't handle\n if (expectedCaretPosition === undefined || selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n\n var newCaretPosition = expectedCaretPosition;\n var leftBound = isPatternFormat ? format.indexOf('#') : prefix.length;\n var rightBound = isPatternFormat ? format.lastIndexOf('#') + 1 : value.length - suffix.length;\n\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n var direction = key === 'ArrowLeft' ? 'left' : 'right';\n newCaretPosition = this.correctCaretPosition(value, expectedCaretPosition, direction);\n } else if (\n key === 'Delete' &&\n !numRegex.test(value[expectedCaretPosition]) &&\n !negativeRegex.test(value[expectedCaretPosition])\n ) {\n while (!numRegex.test(value[newCaretPosition]) && newCaretPosition < rightBound) {\n newCaretPosition++;\n }\n } else if (key === 'Backspace' && !numRegex.test(value[expectedCaretPosition])) {\n /* NOTE: This is special case when backspace is pressed on a\n negative value while the cursor position is after prefix. We can't handle it on onChange because\n we will not have any information of keyPress\n */\n if (selectionStart <= leftBound + 1 && value[0] === '-' && typeof format === 'undefined') {\n var newValue = value.substring(1);\n this.updateValue({\n formattedValue: newValue,\n caretPos: newCaretPosition,\n input: el,\n event: e,\n source: 'event',\n });\n } else if (!negativeRegex.test(value[expectedCaretPosition])) {\n while (!numRegex.test(value[newCaretPosition - 1]) && newCaretPosition > leftBound) {\n newCaretPosition--;\n }\n newCaretPosition = this.correctCaretPosition(value, newCaretPosition, 'left');\n }\n }\n\n if (\n newCaretPosition !== expectedCaretPosition ||\n expectedCaretPosition < leftBound ||\n expectedCaretPosition > rightBound\n ) {\n e.preventDefault();\n this.setPatchedCaretPosition(el, newCaretPosition, value);\n }\n\n /* NOTE: this is just required for unit test as we need to get the newCaretPosition,\n Remove this when you find different solution */\n if (e.isUnitTestRun) {\n this.setPatchedCaretPosition(el, newCaretPosition, value);\n }\n\n onKeyDown(e);\n };\n\n /** required to handle the caret position when click anywhere within the input **/\n NumberFormat.prototype.onMouseUp = function onMouseUp (e ) {\n var el = e.target;\n\n /**\n * NOTE: we have to give default value for value as in case when custom input is provided\n * value can come as undefined when nothing is provided on value prop.\n */\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n\n if (selectionStart === selectionEnd) {\n var caretPosition = this.correctCaretPosition(value, selectionStart);\n if (caretPosition !== selectionStart) {\n this.setPatchedCaretPosition(el, caretPosition, value);\n }\n }\n\n this.props.onMouseUp(e);\n };\n\n NumberFormat.prototype.onFocus = function onFocus (e ) {\n var this$1 = this;\n\n // Workaround Chrome and Safari bug https://bugs.chromium.org/p/chromium/issues/detail?id=779328\n // (onFocus event target selectionStart is always 0 before setTimeout)\n e.persist();\n\n this.focusedElm = e.target;\n this.focusTimeout = setTimeout(function () {\n var el = e.target;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n\n var caretPosition = this$1.correctCaretPosition(value, selectionStart);\n\n //setPatchedCaretPosition only when everything is not selected on focus (while tabbing into the field)\n if (\n caretPosition !== selectionStart &&\n !(selectionStart === 0 && selectionEnd === value.length)\n ) {\n this$1.setPatchedCaretPosition(el, caretPosition, value);\n }\n\n this$1.props.onFocus(e);\n }, 0);\n };\n\n NumberFormat.prototype.render = function render () {\n var ref = this.props;\n var type = ref.type;\n var displayType = ref.displayType;\n var customInput = ref.customInput;\n var renderText = ref.renderText;\n var getInputRef = ref.getInputRef;\n var format = ref.format;\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n var thousandsGroupStyle = ref.thousandsGroupStyle;\n var decimalScale = ref.decimalScale;\n var fixedDecimalScale = ref.fixedDecimalScale;\n var prefix = ref.prefix;\n var suffix = ref.suffix;\n var removeFormatting = ref.removeFormatting;\n var mask = ref.mask;\n var defaultValue = ref.defaultValue;\n var isNumericString = ref.isNumericString;\n var allowNegative = ref.allowNegative;\n var allowEmptyFormatting = ref.allowEmptyFormatting;\n var allowLeadingZeros = ref.allowLeadingZeros;\n var onValueChange = ref.onValueChange;\n var isAllowed = ref.isAllowed;\n var customNumerals = ref.customNumerals;\n var onChange = ref.onChange;\n var onKeyDown = ref.onKeyDown;\n var onMouseUp = ref.onMouseUp;\n var onFocus = ref.onFocus;\n var onBlur = ref.onBlur;\n var propValue = ref.value;\n var rest = objectWithoutProperties( ref, [\"type\", \"displayType\", \"customInput\", \"renderText\", \"getInputRef\", \"format\", \"thousandSeparator\", \"decimalSeparator\", \"allowedDecimalSeparators\", \"thousandsGroupStyle\", \"decimalScale\", \"fixedDecimalScale\", \"prefix\", \"suffix\", \"removeFormatting\", \"mask\", \"defaultValue\", \"isNumericString\", \"allowNegative\", \"allowEmptyFormatting\", \"allowLeadingZeros\", \"onValueChange\", \"isAllowed\", \"customNumerals\", \"onChange\", \"onKeyDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"value\"] );\n var otherProps = rest;\n var ref$1 = this.state;\n var value = ref$1.value;\n var mounted = ref$1.mounted;\n\n // add input mode on element based on format prop and device once the component is mounted\n var inputMode = mounted && addInputMode(format) ? 'numeric' : undefined;\n\n var inputProps = Object.assign({ inputMode: inputMode }, otherProps, {\n type: type,\n value: value,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n onMouseUp: this.onMouseUp,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n if (displayType === 'text') {\n return renderText ? (\n renderText(value, otherProps) || null\n ) : (\n React.createElement( 'span', Object.assign({}, otherProps, { ref: getInputRef }),\n value\n )\n );\n } else if (customInput) {\n var CustomInput = customInput;\n return React.createElement( CustomInput, Object.assign({}, inputProps, { ref: getInputRef }));\n }\n\n return React.createElement( 'input', Object.assign({}, inputProps, { ref: getInputRef }));\n };\n\n return NumberFormat;\n}(React.Component));\n\nNumberFormat.defaultProps = defaultProps;\n\nexport default NumberFormat;\n","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","function _extends() { _extends = Object.assign || 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); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params.js';\nimport { initSwiper, mountSwiper } from './init-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst Swiper = /*#__PURE__*/forwardRef(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import Swiper from 'swiper';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","function _extends() { _extends = Object.assign || 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); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n let slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\r\n * A collection of keyboard-related utilities accessible via `keyboard`\r\n * instance.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $type from \"./Type\";\r\n/**\r\n * A class that represents collection of keyboard-related utilities.\r\n *\r\n * Do not instantiate this class directly, but rather use `keyboard` variable.\r\n */\r\nvar Keyboard = /** @class */ (function () {\r\n function Keyboard() {\r\n }\r\n /**\r\n * Returns a named key based on information contained in the event or\r\n * \"other\".\r\n *\r\n * @param ev A keyboard event\r\n * @return Keyboard named key\r\n */\r\n Keyboard.prototype.getEventKey = function (ev) {\r\n // Get the key code\r\n var code = ev.keyCode || ev.which, key;\r\n // Map to internal key\r\n switch (code) {\r\n case 38:\r\n key = \"up\";\r\n break;\r\n case 40:\r\n key = \"down\";\r\n break;\r\n case 37:\r\n key = \"left\";\r\n break;\r\n case 39:\r\n key = \"right\";\r\n break;\r\n case 13:\r\n key = \"enter\";\r\n break;\r\n case 27:\r\n key = \"esc\";\r\n break;\r\n case 36:\r\n key = \"home\";\r\n break;\r\n case 35:\r\n key = \"end\";\r\n break;\r\n case 9:\r\n key = \"tab\";\r\n break;\r\n case 17:\r\n key = \"ctrl\";\r\n break;\r\n case 18:\r\n key = \"alt\";\r\n break;\r\n case 16:\r\n key = \"shift\";\r\n break;\r\n case 32:\r\n key = \"space\";\r\n break;\r\n case 36:\r\n key = \"home\";\r\n break;\r\n case 35:\r\n key = \"end\";\r\n break;\r\n case 33:\r\n key = \"pgup\";\r\n break;\r\n case 34:\r\n key = \"pgdn\";\r\n break;\r\n case 45:\r\n key = \"ins\";\r\n break;\r\n case 46:\r\n key = \"del\";\r\n break;\r\n case 107:\r\n key = \"plus\";\r\n break;\r\n case 109:\r\n key = \"minus\";\r\n break;\r\n default:\r\n key = \"other\";\r\n break;\r\n }\r\n return key;\r\n };\r\n /**\r\n * Checks if event key is one or more of the selected named keys.\r\n *\r\n * @param ev Keyboard event\r\n * @param key Named key or array of keys\r\n * @return Is event key one of the list?\r\n */\r\n Keyboard.prototype.isKey = function (ev, key) {\r\n var eventKey = this.getEventKey(ev);\r\n if ($type.isString(key)) {\r\n key = [key];\r\n }\r\n return key.indexOf(eventKey) !== -1;\r\n };\r\n /**\r\n * Returns `true` if shift key was presset at the moment of the event.\r\n *\r\n * @param ev Event object\r\n * @return Was shift pressed?\r\n */\r\n Keyboard.prototype.shiftKey = function (ev) {\r\n return ev.shiftKey;\r\n };\r\n /**\r\n * Returns `true` if ctrl key was presset at the moment of the event.\r\n *\r\n * @param ev Event object\r\n * @return Was ctrl pressed?\r\n */\r\n Keyboard.prototype.ctrlKey = function (ev) {\r\n return ev.ctrlKey;\r\n };\r\n /**\r\n * Returns `true` if alt key was presset at the moment of the event\r\n * @param ev Event object\r\n * @return Was alt pressed?\r\n */\r\n Keyboard.prototype.altKey = function (ev) {\r\n return ev.altKey;\r\n };\r\n /**\r\n * Returns `true` if meta key was presset at the moment of the event\r\n * @param ev Event object\r\n * @return Was meta pressed?\r\n */\r\n Keyboard.prototype.metaKey = function (ev) {\r\n return ev.metaKey;\r\n };\r\n return Keyboard;\r\n}());\r\nexport { Keyboard };\r\n/**\r\n * A single [[Keyboard]] instance to be reused across all elements so that\r\n * they don't need to instantiate their own.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var keyboard = new Keyboard();\r\n//# sourceMappingURL=Keyboard.js.map","/**\r\n * Line drawing functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { color } from \"../utils/Color\";\r\nimport { LinearGradient } from \"../rendering/fills/LinearGradient\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a line.\r\n *\r\n * @see {@link ILineEvents} for a list of available events\r\n * @see {@link ILineAdapters} for a list of available Adapters\r\n */\r\nvar Line = /** @class */ (function (_super) {\r\n __extends(Line, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Line() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Line\";\r\n _this.element = _this.paper.add(\"line\");\r\n _this.fill = color(); //\"none\";\r\n _this.x1 = 0;\r\n _this.y1 = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the line.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Line.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this.x1 == this.x2 || this.y1 == this.y2) {\r\n this.pixelPerfect = true;\r\n }\r\n else {\r\n this.pixelPerfect = false;\r\n }\r\n this.x1 = this.x1;\r\n this.x2 = this.x2;\r\n this.y1 = this.y1;\r\n this.y2 = this.y2;\r\n };\r\n Object.defineProperty(Line.prototype, \"x1\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"x1\");\r\n },\r\n /**\r\n * X coordinate of first end.\r\n *\r\n * @param value X\r\n */\r\n set: function (value) {\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n var delta = 0;\r\n if (this.pixelPerfect && this.stroke instanceof LinearGradient) {\r\n delta = 0.00001;\r\n }\r\n this.setPropertyValue(\"x1\", value, true);\r\n this.element.attr({ \"x1\": value + delta });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Line.prototype, \"x2\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n var value = this.getPropertyValue(\"x2\");\r\n if (!$type.isNumber(value)) {\r\n value = this.pixelWidth;\r\n }\r\n return value;\r\n },\r\n /**\r\n * X coordinate of second end.\r\n *\r\n * @param value X\r\n */\r\n set: function (value) {\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n this.setPropertyValue(\"x2\", value, true);\r\n this.element.attr({ \"x2\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Line.prototype, \"y1\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"y1\");\r\n },\r\n /**\r\n * Y coordinate of first end.\r\n *\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n var delta = 0;\r\n if (this.pixelPerfect && this.stroke instanceof LinearGradient) {\r\n delta = 0.00001;\r\n }\r\n this.setPropertyValue(\"y1\", value, true);\r\n this.element.attr({ \"y1\": value + delta });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Line.prototype, \"y2\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n var value = this.getPropertyValue(\"y2\");\r\n if (!$type.isNumber(value)) {\r\n value = this.pixelHeight;\r\n }\r\n return value;\r\n },\r\n /**\r\n * Y coordinate of second end.\r\n *\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n this.setPropertyValue(\"y2\", value, true);\r\n this.element.attr({ \"y2\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position along the line (0-1) into pixel coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @return Coordinates\r\n */\r\n Line.prototype.positionToPoint = function (position) {\r\n var point1 = { x: this.x1, y: this.y1 };\r\n var point2 = { x: this.x2, y: this.y2 };\r\n var point = $math.getMidPoint(point1, point2, position);\r\n var angle = $math.getAngle(point1, point2);\r\n return { x: point.x, y: point.y, angle: angle };\r\n };\r\n return Line;\r\n}(Sprite));\r\nexport { Line };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Line\"] = Line;\r\n//# sourceMappingURL=Line.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Form = _interopRequireDefault(require(\"./Form\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _Form[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar allIcons = _interopRequireWildcard(require(\"@ant-design/icons/lib/dist\"));\n\nvar _iconsReact = _interopRequireDefault(require(\"@ant-design/icons-react\"));\n\nvar _IconFont = _interopRequireDefault(require(\"./IconFont\"));\n\nvar _utils = require(\"./utils\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _twoTonePrimaryColor = require(\"./twoTonePrimaryColor\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable camelcase */\n\n\n// Initial setting\n_iconsReact[\"default\"].add.apply(_iconsReact[\"default\"], _toConsumableArray(Object.keys(allIcons).map(function (key) {\n return allIcons[key];\n})));\n\n(0, _twoTonePrimaryColor.setTwoToneColor)('#1890ff');\nvar defaultTheme = 'outlined';\nvar dangerousTheme;\n\nfunction unstable_ChangeThemeOfIconsDangerously(theme) {\n (0, _warning[\"default\"])(false, 'Icon', \"You are using the unstable method 'Icon.unstable_ChangeThemeOfAllIconsDangerously', \" + \"make sure that all the icons with theme '\".concat(theme, \"' display correctly.\"));\n dangerousTheme = theme;\n}\n\nfunction unstable_ChangeDefaultThemeOfIcons(theme) {\n (0, _warning[\"default\"])(false, 'Icon', \"You are using the unstable method 'Icon.unstable_ChangeDefaultThemeOfIcons', \" + \"make sure that all the icons with theme '\".concat(theme, \"' display correctly.\"));\n defaultTheme = theme;\n}\n\nvar Icon = function Icon(props) {\n var _classNames;\n\n var className = props.className,\n type = props.type,\n Component = props.component,\n viewBox = props.viewBox,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n children = props.children,\n theme = props.theme,\n twoToneColor = props.twoToneColor,\n restProps = __rest(props, [\"className\", \"type\", \"component\", \"viewBox\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"children\", \"theme\", \"twoToneColor\"]);\n\n (0, _warning[\"default\"])(Boolean(type || Component || children), 'Icon', 'Should have `type` prop or `component` prop or `children`.');\n var classString = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, \"anticon\", true), _defineProperty(_classNames, \"anticon-\".concat(type), Boolean(type)), _classNames), className);\n var svgClassString = (0, _classnames[\"default\"])(_defineProperty({}, \"anticon-spin\", !!spin || type === 'loading'));\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var innerSvgProps = _extends(_extends({}, _utils.svgBaseProps), {\n className: svgClassString,\n style: svgStyle,\n viewBox: viewBox\n });\n\n if (!viewBox) {\n delete innerSvgProps.viewBox;\n }\n\n var renderInnerNode = function renderInnerNode() {\n // component > children > type\n if (Component) {\n return /*#__PURE__*/React.createElement(Component, innerSvgProps, children);\n }\n\n if (children) {\n (0, _warning[\"default\"])(Boolean(viewBox) || React.Children.count(children) === 1 && /*#__PURE__*/React.isValidElement(children) && React.Children.only(children).type === 'use', 'Icon', 'Make sure that you provide correct `viewBox`' + ' prop (default `0 0 1024 1024`) to the icon.');\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, innerSvgProps, {\n viewBox: viewBox\n }), children);\n }\n\n if (typeof type === 'string') {\n var computedType = type;\n\n if (theme) {\n var themeInName = (0, _utils.getThemeFromTypeName)(type);\n (0, _warning[\"default\"])(!themeInName || theme === themeInName, 'Icon', \"The icon name '\".concat(type, \"' already specify a theme '\").concat(themeInName, \"',\") + \" the 'theme' prop '\".concat(theme, \"' will be ignored.\"));\n }\n\n computedType = (0, _utils.withThemeSuffix)((0, _utils.removeTypeTheme)((0, _utils.alias)(computedType)), dangerousTheme || theme || defaultTheme);\n return /*#__PURE__*/React.createElement(_iconsReact[\"default\"], {\n className: svgClassString,\n type: computedType,\n primaryColor: twoToneColor,\n style: svgStyle\n });\n }\n };\n\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], {\n componentName: \"Icon\"\n }, function (locale) {\n return /*#__PURE__*/React.createElement(\"i\", _extends({\n \"aria-label\": type && \"\".concat(locale.icon, \": \").concat(type)\n }, restProps, {\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), renderInnerNode());\n });\n};\n\nIcon.createFromIconfontCN = _IconFont[\"default\"];\nIcon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\nexports[\"default\"] = _default;","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","/**\r\n * amCharts 4 locale\r\n *\r\n * Locale: en\r\n * Language: International English\r\n * Author: Martynas Majeris\r\n *\r\n * Follow instructions in [on this page](https://www.amcharts.com/docs/v4/tutorials/creating-translations/) to make corrections or add new translations.\r\n *\r\n * ---\r\n * Edit but leave the header section above this line. You can remove any\r\n * subsequent comment sections.\r\n * ---\r\n *\r\n * Use this file as a template to create translations. Leave the key part in\r\n * English intact. Fill the value with a translation.\r\n *\r\n * Empty string means no translation, so default \"International English\"\r\n * will be used.\r\n *\r\n * If you need the translation to literally be an empty string, use `null`\r\n * instead.\r\n *\r\n * IMPORTANT:\r\n * When translating make good effort to keep the translation length\r\n * at least the same chartcount as the English, especially for short prompts.\r\n *\r\n * Having significantly longer prompts may distort the actual charts.\r\n *\r\n * NOTE:\r\n * Some prompts - like months or weekdays - come in two versions: full and\r\n * shortened.\r\n *\r\n * If there's no official shortened version of these in your language, and it\r\n * would not be possible to invent such short versions that don't seem weird\r\n * to native speakers of that language, fill those with the same as full\r\n * version.\r\n *\r\n * PLACEHOLDERS:\r\n * Some prompts have placeholders like \"%1\". Those will be replaced by actual\r\n * values during translation and should be retained in the translated prompts.\r\n *\r\n * Placeholder positions may be changed to better suit structure of the\r\n * sentence.\r\n *\r\n * For example \"From %1 to %2\", when actually used will replace \"%1\" with an\r\n * actual value representing range start, and \"%2\" will be replaced by end\r\n * value.\r\n *\r\n * E.g. in a Scrollbar for Value axis \"From %1 to %2\" will become\r\n * \"From 100 to 200\". You may translate \"From\" and \"to\", as well as re-arrange\r\n * the order of the prompt itself, but make sure the \"%1\" and \"%2\" remain, in\r\n * places where they will make sense.\r\n *\r\n * Save the file as language_LOCALE, i.e. `en_GB.ts`, `fr_FR.ts`, etc.\r\n */\r\nexport default {\r\n // Number formatting options.\r\n // \r\n // Please check with the local standards which separator is accepted to be\r\n // used for separating decimals, and which for thousands.\r\n \"_decimalSeparator\": \".\",\r\n \"_thousandSeparator\": \",\",\r\n // Position of the percent sign in numbers\r\n \"_percentPrefix\": null,\r\n \"_percentSuffix\": \"%\",\r\n // Suffixes for numbers\r\n // When formatting numbers, big or small numers might be reformatted to\r\n // shorter version, by applying a suffix.\r\n // \r\n // For example, 1000000 might become \"1m\".\r\n // Or 1024 might become \"1KB\" if we're formatting byte numbers.\r\n // \r\n // This section defines such suffixes for all such cases.\r\n \"_big_number_suffix_3\": \"k\",\r\n \"_big_number_suffix_6\": \"M\",\r\n \"_big_number_suffix_9\": \"G\",\r\n \"_big_number_suffix_12\": \"T\",\r\n \"_big_number_suffix_15\": \"P\",\r\n \"_big_number_suffix_18\": \"E\",\r\n \"_big_number_suffix_21\": \"Z\",\r\n \"_big_number_suffix_24\": \"Y\",\r\n \"_small_number_suffix_3\": \"m\",\r\n \"_small_number_suffix_6\": \"μ\",\r\n \"_small_number_suffix_9\": \"n\",\r\n \"_small_number_suffix_12\": \"p\",\r\n \"_small_number_suffix_15\": \"f\",\r\n \"_small_number_suffix_18\": \"a\",\r\n \"_small_number_suffix_21\": \"z\",\r\n \"_small_number_suffix_24\": \"y\",\r\n \"_byte_suffix_B\": \"B\",\r\n \"_byte_suffix_KB\": \"KB\",\r\n \"_byte_suffix_MB\": \"MB\",\r\n \"_byte_suffix_GB\": \"GB\",\r\n \"_byte_suffix_TB\": \"TB\",\r\n \"_byte_suffix_PB\": \"PB\",\r\n // Default date formats for various periods.\r\n // \r\n // This should reflect official or de facto formatting universally accepted\r\n // in the country translation is being made for\r\n // Available format codes here:\r\n // https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/#Format_codes\r\n // \r\n // This will be used when formatting date/time for particular granularity,\r\n // e.g. \"_date_hour\" will be shown whenever we need to show time as hours.\r\n // \r\n // \"date\" is used as in default date format when showing standalone dates.\r\n \"_date\": \"yyyy-MM-dd\",\r\n \"_date_millisecond\": \"mm:ss SSS\",\r\n \"_date_second\": \"HH:mm:ss\",\r\n \"_date_minute\": \"HH:mm\",\r\n \"_date_hour\": \"HH:mm\",\r\n \"_date_day\": \"MMM dd\",\r\n \"_date_week\": \"ww\",\r\n \"_date_month\": \"MMM\",\r\n \"_date_year\": \"yyyy\",\r\n // Default duration formats for various base units.\r\n // \r\n // This will be used by DurationFormatter to format numeric values into\r\n // duration.\r\n // \r\n // Notice how each duration unit comes in several versions. This is to ensure\r\n // that each base unit is shown correctly.\r\n // \r\n // For example, if we have baseUnit set to \"second\", meaning our duration is\r\n // in seconds.\r\n // \r\n // If we pass in `50` to formatter, it will know that we have just 50 seconds\r\n // (less than a minute) so it will use format in `\"_duration_second\"` (\"ss\"),\r\n // and the formatted result will be in like `\"50\"`.\r\n // \r\n // If we pass in `70`, which is more than a minute, the formatter will switch\r\n // to `\"_duration_second_minute\"` (\"mm:ss\"), resulting in \"01:10\" formatted\r\n // text.\r\n // \r\n // Available codes here:\r\n // https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/#Available_Codes\r\n \"_duration_millisecond\": \"SSS\",\r\n \"_duration_millisecond_second\": \"ss.SSS\",\r\n \"_duration_millisecond_minute\": \"mm:ss SSS\",\r\n \"_duration_millisecond_hour\": \"hh:mm:ss SSS\",\r\n \"_duration_millisecond_day\": \"d'd' mm:ss SSS\",\r\n \"_duration_millisecond_week\": \"d'd' mm:ss SSS\",\r\n \"_duration_millisecond_month\": \"M'm' dd'd' mm:ss SSS\",\r\n \"_duration_millisecond_year\": \"y'y' MM'm' dd'd' mm:ss SSS\",\r\n \"_duration_second\": \"ss\",\r\n \"_duration_second_minute\": \"mm:ss\",\r\n \"_duration_second_hour\": \"hh:mm:ss\",\r\n \"_duration_second_day\": \"d'd' hh:mm:ss\",\r\n \"_duration_second_week\": \"d'd' hh:mm:ss\",\r\n \"_duration_second_month\": \"M'm' dd'd' hh:mm:ss\",\r\n \"_duration_second_year\": \"y'y' MM'm' dd'd' hh:mm:ss\",\r\n \"_duration_minute\": \"mm\",\r\n \"_duration_minute_hour\": \"hh:mm\",\r\n \"_duration_minute_day\": \"d'd' hh:mm\",\r\n \"_duration_minute_week\": \"d'd' hh:mm\",\r\n \"_duration_minute_month\": \"M'm' dd'd' hh:mm\",\r\n \"_duration_minute_year\": \"y'y' MM'm' dd'd' hh:mm\",\r\n \"_duration_hour\": \"hh'h'\",\r\n \"_duration_hour_day\": \"d'd' hh'h'\",\r\n \"_duration_hour_week\": \"d'd' hh'h'\",\r\n \"_duration_hour_month\": \"M'm' dd'd' hh'h'\",\r\n \"_duration_hour_year\": \"y'y' MM'm' dd'd' hh'h'\",\r\n \"_duration_day\": \"d'd'\",\r\n \"_duration_day_week\": \"d'd'\",\r\n \"_duration_day_month\": \"M'm' dd'd'\",\r\n \"_duration_day_year\": \"y'y' MM'm' dd'd'\",\r\n \"_duration_week\": \"w'w'\",\r\n \"_duration_week_month\": \"w'w'\",\r\n \"_duration_week_year\": \"w'w'\",\r\n \"_duration_month\": \"M'm'\",\r\n \"_duration_month_year\": \"y'y' MM'm'\",\r\n \"_duration_year\": \"y'y'\",\r\n // Era translations\r\n \"_era_ad\": \"AD\",\r\n \"_era_bc\": \"BC\",\r\n // Day part, used in 12-hour formats, e.g. 5 P.M.\r\n // Please note that these come in 3 variants:\r\n // * one letter (e.g. \"A\")\r\n // * two letters (e.g. \"AM\")\r\n // * two letters with dots (e.g. \"A.M.\")\r\n // \r\n // All three need to to be translated even if they are all the same. Some\r\n // users might use one, some the other.\r\n \"A\": \"\",\r\n \"P\": \"\",\r\n \"AM\": \"\",\r\n \"PM\": \"\",\r\n \"A.M.\": \"\",\r\n \"P.M.\": \"\",\r\n // Date-related stuff.\r\n // \r\n // When translating months, if there's a difference, use the form which is\r\n // best for a full date, e.g. as you would use it in \"2018 January 1\".\r\n // \r\n // Note that May is listed twice. This is because in English May is the same\r\n // in both long and short forms, while in other languages it may not be the\r\n // case. Translate \"May\" to full word, while \"May(short)\" to shortened\r\n // version.\r\n // \r\n // Should month names and weekdays be capitalized or not?\r\n // \r\n // Rule of thumb is this: if the names should always be capitalized,\r\n // regardless of name position within date (\"January\", \"21st January 2018\",\r\n // etc.) use capitalized names. Otherwise enter all lowercase.\r\n // \r\n // The date formatter will automatically capitalize names if they are the\r\n // first (or only) word in resulting date.\r\n \"January\": \"\",\r\n \"February\": \"\",\r\n \"March\": \"\",\r\n \"April\": \"\",\r\n \"May\": \"\",\r\n \"June\": \"\",\r\n \"July\": \"\",\r\n \"August\": \"\",\r\n \"September\": \"\",\r\n \"October\": \"\",\r\n \"November\": \"\",\r\n \"December\": \"\",\r\n \"Jan\": \"\",\r\n \"Feb\": \"\",\r\n \"Mar\": \"\",\r\n \"Apr\": \"\",\r\n \"May(short)\": \"May\",\r\n \"Jun\": \"\",\r\n \"Jul\": \"\",\r\n \"Aug\": \"\",\r\n \"Sep\": \"\",\r\n \"Oct\": \"\",\r\n \"Nov\": \"\",\r\n \"Dec\": \"\",\r\n // Weekdays.\r\n \"Sunday\": \"\",\r\n \"Monday\": \"\",\r\n \"Tuesday\": \"\",\r\n \"Wednesday\": \"\",\r\n \"Thursday\": \"\",\r\n \"Friday\": \"\",\r\n \"Saturday\": \"\",\r\n \"Sun\": \"\",\r\n \"Mon\": \"\",\r\n \"Tue\": \"\",\r\n \"Wed\": \"\",\r\n \"Thu\": \"\",\r\n \"Fri\": \"\",\r\n \"Sat\": \"\",\r\n // Date ordinal function.\r\n // \r\n // This is used when adding number ordinal when formatting days in dates.\r\n // \r\n // E.g. \"January 1st\", \"February 2nd\".\r\n // \r\n // The function accepts day number, and returns a string to be added to the\r\n // day, like in default English translation, if we pass in 2, we will receive\r\n // \"nd\" back.\r\n \"_dateOrd\": function (day) {\r\n var res = \"th\";\r\n if ((day < 11) || (day > 13)) {\r\n switch (day % 10) {\r\n case 1:\r\n res = \"st\";\r\n break;\r\n case 2:\r\n res = \"nd\";\r\n break;\r\n case 3:\r\n res = \"rd\";\r\n break;\r\n }\r\n }\r\n return res;\r\n },\r\n // Various chart controls.\r\n // Shown as a tooltip on zoom out button.\r\n \"Zoom Out\": \"\",\r\n // Timeline buttons\r\n \"Play\": \"\",\r\n \"Stop\": \"\",\r\n // Chart's Legend screen reader title.\r\n \"Legend\": \"\",\r\n // Legend's item screen reader indicator.\r\n \"Click, tap or press ENTER to toggle\": \"\",\r\n // Shown when the chart is busy loading something.\r\n \"Loading\": \"\",\r\n // Shown as the first button in the breadcrumb navigation, e.g.:\r\n // Home > First level > ...\r\n \"Home\": \"\",\r\n // Chart types.\r\n // Those are used as default screen reader titles for the main chart element\r\n // unless developer has set some more descriptive title.\r\n \"Chart\": \"\",\r\n \"Serial chart\": \"\",\r\n \"X/Y chart\": \"\",\r\n \"Pie chart\": \"\",\r\n \"Gauge chart\": \"\",\r\n \"Radar chart\": \"\",\r\n \"Sankey diagram\": \"\",\r\n \"Flow diagram\": \"\",\r\n \"Chord diagram\": \"\",\r\n \"TreeMap chart\": \"\",\r\n \"Force directed tree\": \"\",\r\n \"Sliced chart\": \"\",\r\n // Series types.\r\n // Used to name series by type for screen readers if they do not have their\r\n // name set.\r\n \"Series\": \"\",\r\n \"Candlestick Series\": \"\",\r\n \"OHLC Series\": \"\",\r\n \"Column Series\": \"\",\r\n \"Line Series\": \"\",\r\n \"Pie Slice Series\": \"\",\r\n \"Funnel Series\": \"\",\r\n \"Pyramid Series\": \"\",\r\n \"X/Y Series\": \"\",\r\n // Map-related stuff.\r\n \"Map\": \"\",\r\n \"Press ENTER to zoom in\": \"\",\r\n \"Press ENTER to zoom out\": \"\",\r\n \"Use arrow keys to zoom in and out\": \"\",\r\n \"Use plus and minus keys on your keyboard to zoom in and out\": \"\",\r\n // Export-related stuff.\r\n // These prompts are used in Export menu labels.\r\n // \r\n // \"Export\" is the top-level menu item.\r\n // \r\n // \"Image\", \"Data\", \"Print\" as second-level indicating type of export\r\n // operation.\r\n // \r\n // Leave actual format untranslated, unless you absolutely know that they\r\n // would convey more meaning in some other way.\r\n \"Export\": \"\",\r\n \"Image\": \"\",\r\n \"Data\": \"\",\r\n \"Print\": \"\",\r\n \"Press ENTER or use arrow keys to navigate\": \"\",\r\n \"Click, tap or press ENTER to open\": \"\",\r\n \"Click, tap or press ENTER to print.\": \"\",\r\n \"Click, tap or press ENTER to export as %1.\": \"\",\r\n 'To save the image, right-click this link and choose \"Save picture as...\"': \"\",\r\n 'To save the image, right-click thumbnail on the left and choose \"Save picture as...\"': \"\",\r\n \"(Press ESC to close this message)\": \"\",\r\n \"Image Export Complete\": \"\",\r\n \"Export operation took longer than expected. Something might have gone wrong.\": \"\",\r\n \"Saved from\": \"\",\r\n \"PNG\": \"\",\r\n \"JPG\": \"\",\r\n \"GIF\": \"\",\r\n \"SVG\": \"\",\r\n \"PDF\": \"\",\r\n \"JSON\": \"\",\r\n \"CSV\": \"\",\r\n \"XLSX\": \"\",\r\n // Scrollbar-related stuff.\r\n // \r\n // Scrollbar is a control which can zoom and pan the axes on the chart.\r\n // \r\n // Each scrollbar has two grips: left or right (for horizontal scrollbar) or\r\n // upper and lower (for vertical one).\r\n // \r\n // Prompts change in relation to whether Scrollbar is vertical or horizontal.\r\n // \r\n // The final section is used to indicate the current range of selection.\r\n \"Use TAB to select grip buttons or left and right arrows to change selection\": \"\",\r\n \"Use left and right arrows to move selection\": \"\",\r\n \"Use left and right arrows to move left selection\": \"\",\r\n \"Use left and right arrows to move right selection\": \"\",\r\n \"Use TAB select grip buttons or up and down arrows to change selection\": \"\",\r\n \"Use up and down arrows to move selection\": \"\",\r\n \"Use up and down arrows to move lower selection\": \"\",\r\n \"Use up and down arrows to move upper selection\": \"\",\r\n \"From %1 to %2\": \"\",\r\n \"From %1\": \"\",\r\n \"To %1\": \"\",\r\n // Data loader-related.\r\n \"No parser available for file: %1\": \"\",\r\n \"Error parsing file: %1\": \"\",\r\n \"Unable to load file: %1\": \"\",\r\n \"Invalid date\": \"\",\r\n // Common actions\r\n \"Close\": \"\",\r\n \"Minimize\": \"\"\r\n};\r\n//# sourceMappingURL=en.js.map","/**\r\n * Language module contains everything related to language-specific operations:\r\n * * Translating prompts\r\n * * Translating functions\r\n * * Date format localizations\r\n */\r\nimport { __extends, __read, __spread } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { Adapter } from \"./Adapter\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\nimport en from \"../../../lang/en\";\r\nimport { options } from \"../Options\";\r\n;\r\n;\r\n/**\r\n * Handles all language-related tasks, like loading and storing translations,\r\n * translating prompts, lists of prompts and even functions.\r\n *\r\n * Almost every object in amCharts4 universe will have a `language` property,\r\n * which can be accessed for prompt translation.\r\n *\r\n * @see {@link ILanguageAdapters} for a list of available Adapters\r\n * @todo Make prompt keys case-insensitive\r\n * @important\r\n */\r\nvar Language = /** @class */ (function (_super) {\r\n __extends(Language, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Language() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * Current locale.\r\n */\r\n _this._locale = en;\r\n /**\r\n * Default locale. A locale to fall back to if none is specified, or\r\n * if there's no translation for the prompt for the current language.\r\n */\r\n _this._defaultLocale = en;\r\n _this.className = \"Language\";\r\n // Set default language if necessary\r\n if ($type.hasValue(options.defaultLocale)) {\r\n _this.locale = options.defaultLocale;\r\n }\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Returns locale that is currently used.\r\n *\r\n * @param locale Force locale. Will use current language if not set.\r\n * @return Locale\r\n */\r\n Language.prototype.getLocale = function (locale) {\r\n if (locale == null) {\r\n locale = this._locale;\r\n }\r\n return this.adapter.apply(\"locale\", {\r\n locale: locale\r\n }).locale;\r\n };\r\n /**\r\n * Returns the translation of the string.\r\n *\r\n * If the translation is empty, it will return untranslated prompt.\r\n *\r\n * Third parameter and up are strings that can be used to replace \"%X\"\r\n * placeholders in prompt.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * // Results in \"This is a first translation test\"\r\n * chart.language.translate(\"This is a %1 translation %2\", null, \"first\", \"test\");\r\n * ```\r\n * ```JavaScriptScript\r\n * // Results in \"This is a first translation test\"\r\n * chart.language.translate(\"This is a %1 translation %2\", null, \"first\", \"test\");\r\n * ```\r\n *\r\n * @param prompt A string to translate\r\n * @param locale Force translation into specific locale, e.g. fr_FR\r\n * @param rest Parameters to replace in string\r\n * @return Translation\r\n */\r\n Language.prototype.translate = function (prompt, locale) {\r\n var rest = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n rest[_i - 2] = arguments[_i];\r\n }\r\n // Get langauge\r\n locale = this.getLocale(locale);\r\n // Init translation\r\n var translation = prompt;\r\n // Get translations for the locale\r\n var translations = this.getTranslations(locale);\r\n var value = translations[prompt];\r\n // Try to look for the translation\r\n if (value === null) {\r\n translation = \"\";\r\n }\r\n else if ($type.hasValue(value)) {\r\n // It might be an empty string\r\n if (value) {\r\n translation = value;\r\n }\r\n }\r\n else if (locale !== this._defaultLocale) {\r\n // Try to look in default language\r\n return this.translate.apply(this, __spread([prompt, this._defaultLocale], rest));\r\n }\r\n // Replace %1, %2, etc params\r\n if (rest.length) {\r\n for (var len = rest.length, i = 0; i < len; ++i) {\r\n translation = translation.split(\"%\" + (i + 1)).join(rest[i]);\r\n }\r\n }\r\n // Return the translation\r\n return this.adapter.apply(\"translate\", {\r\n translation: translation,\r\n locale: locale\r\n }).translation;\r\n };\r\n /**\r\n * Non-type-checked translation.\r\n *\r\n * Can be used by plugins and other code that may have their own non-standard\r\n * translation prompts.\r\n *\r\n * @since 4.5.5\r\n * @param prompt A string to translate\r\n * @param locale Force translation into specific locale, e.g. fr_FR\r\n * @param rest Parameters to replace in string\r\n * @return Translation\r\n */\r\n Language.prototype.translateAny = function (prompt, locale) {\r\n var rest = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n rest[_i - 2] = arguments[_i];\r\n }\r\n return this.translate.apply(this, __spread([prompt, locale], rest));\r\n };\r\n /**\r\n * Sets a prompt translation.\r\n *\r\n * @since 4.9.35\r\n * @param prompt Prompt in English\r\n * @param translation Translation\r\n * @param locale Locale\r\n */\r\n Language.prototype.setTranslationAny = function (prompt, translation, locale) {\r\n var localeTarget = locale || this.locale;\r\n localeTarget[prompt] = translation;\r\n };\r\n /**\r\n * Translates prompt.\r\n *\r\n * If translation is empty, it will return empty string, which is a different\r\n * behavior than that of regular `translate`.\r\n *\r\n * @param prompt A string to translate\r\n * @param locale Force translation into specific locale, e.g. fr_FR\r\n * @param ...rest Parameters to replace in string\r\n * @return Translation\r\n */\r\n Language.prototype.translateEmpty = function (prompt, locale) {\r\n var rest = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n rest[_i - 2] = arguments[_i];\r\n }\r\n var translation = this.translate.apply(this, __spread([prompt, locale], rest));\r\n return translation == prompt ? \"\" : translation;\r\n };\r\n /**\r\n * Translates a function.\r\n *\r\n * This method will return a function reference, but will not run it. It's\r\n * up to the caller script to run the function.\r\n *\r\n * @param prompt A function id to translate\r\n * @param locale Force translation into specific locale. e.g. fr_FR\r\n * @return A language-specific version of the function\r\n * @todo Apply adapter\r\n */\r\n Language.prototype.translateFunc = function (prompt, locale) {\r\n // Get langauge\r\n locale = this.getLocale(locale);\r\n // Get translations for the locale\r\n var translations = this.getTranslations(locale);\r\n var value = translations[prompt];\r\n // Try to look for the translation\r\n if (value != null) {\r\n return value;\r\n }\r\n // Try to look in default language\r\n if (locale !== this._defaultLocale) {\r\n return this.translateFunc(prompt, this._defaultLocale);\r\n }\r\n // Fail - return empty function\r\n return function () {\r\n return \"\";\r\n };\r\n };\r\n /**\r\n * Translates a list of prompts in one go.\r\n *\r\n * @param list An array of strings to translate\r\n * @param locale Force translation into specific locale. e.g. fr_FR\r\n * @return An array of translated strings in the same order as source list\r\n */\r\n Language.prototype.translateAll = function (list, locale) {\r\n var _this = this;\r\n // Translate all items in the list\r\n if (!this.isDefault()) {\r\n return $array.map(list, function (x) { return _this.translate(x, locale); });\r\n }\r\n else {\r\n return list;\r\n }\r\n };\r\n /**\r\n * Returns `true` if the currently selected locale is a default locale.\r\n *\r\n * @return `true` if locale is default; `false` if it is not.\r\n */\r\n Language.prototype.isDefault = function () {\r\n return this._defaultLocale === this._locale;\r\n };\r\n Object.defineProperty(Language.prototype, \"locale\", {\r\n /**\r\n * @return Locale definition\r\n */\r\n get: function () {\r\n return this._locale;\r\n },\r\n /**\r\n * Current locale.\r\n *\r\n * @param value Locale definition (translations)\r\n */\r\n set: function (value) {\r\n if (this._locale != value) {\r\n this._locale = value;\r\n if (this.events.isEnabled(\"localechanged\")) {\r\n var event_1 = {\r\n type: \"localechanged\",\r\n locale: value,\r\n target: this\r\n };\r\n this.events.dispatchImmediately(\"localechanged\", event_1);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns translations for a given locale.\r\n *\r\n * @ignore\r\n * @deprecated\r\n * @param locale Locale\r\n * @return Translations\r\n */\r\n Language.prototype.getTranslations = function (locale) {\r\n return this.adapter.apply(\"translations\", {\r\n translations: locale,\r\n locale: locale\r\n }).translations;\r\n };\r\n return Language;\r\n}(BaseObjectEvents));\r\nexport { Language };\r\n//# sourceMappingURL=Language.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _rcSelect = _interopRequireWildcard(require(\"rc-select\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _type = require(\"../_util/type\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar SelectSizes = (0, _type.tuple)('default', 'large', 'small');\nvar ModeOptions = (0, _type.tuple)('default', 'multiple', 'tags', 'combobox', 'SECRET_COMBOBOX_MODE_DO_NOT_USE');\nvar SelectPropTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n size: PropTypes.oneOf(SelectSizes),\n notFoundContent: PropTypes.any,\n showSearch: PropTypes.bool,\n optionLabelProp: PropTypes.string,\n transitionName: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n id: PropTypes.string\n};\n\nvar Select = /*#__PURE__*/function (_React$Component) {\n _inherits(Select, _React$Component);\n\n var _super = _createSuper(Select);\n\n function Select(props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, props);\n\n _this.saveSelect = function (node) {\n _this.rcSelect = node;\n };\n\n _this.renderSelect = function (_ref) {\n var _classNames;\n\n var getContextPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls,\n renderEmpty = _ref.renderEmpty;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n _a$className = _a.className,\n className = _a$className === void 0 ? '' : _a$className,\n size = _a.size,\n mode = _a.mode,\n getPopupContainer = _a.getPopupContainer,\n removeIcon = _a.removeIcon,\n clearIcon = _a.clearIcon,\n menuItemSelectedIcon = _a.menuItemSelectedIcon,\n showArrow = _a.showArrow,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"size\", \"mode\", \"getPopupContainer\", \"removeIcon\", \"clearIcon\", \"menuItemSelectedIcon\", \"showArrow\"]);\n\n var rest = (0, _omit[\"default\"])(restProps, ['inputIcon']);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var cls = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-arrow\"), showArrow), _classNames), className);\n var optionLabelProp = _this.props.optionLabelProp;\n\n if (_this.isCombobox()) {\n // children 带 dom 结构时,无法填入输入框\n optionLabelProp = optionLabelProp || 'value';\n }\n\n var modeConfig = {\n multiple: mode === 'multiple',\n tags: mode === 'tags',\n combobox: _this.isCombobox()\n };\n var finalRemoveIcon = removeIcon && ( /*#__PURE__*/React.isValidElement(removeIcon) ? /*#__PURE__*/React.cloneElement(removeIcon, {\n className: (0, _classnames[\"default\"])(removeIcon.props.className, \"\".concat(prefixCls, \"-remove-icon\"))\n }) : removeIcon) || /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"close\",\n className: \"\".concat(prefixCls, \"-remove-icon\")\n });\n var finalClearIcon = clearIcon && ( /*#__PURE__*/React.isValidElement(clearIcon) ? /*#__PURE__*/React.cloneElement(clearIcon, {\n className: (0, _classnames[\"default\"])(clearIcon.props.className, \"\".concat(prefixCls, \"-clear-icon\"))\n }) : clearIcon) || /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"close-circle\",\n theme: \"filled\",\n className: \"\".concat(prefixCls, \"-clear-icon\")\n });\n var finalMenuItemSelectedIcon = menuItemSelectedIcon && ( /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) ? /*#__PURE__*/React.cloneElement(menuItemSelectedIcon, {\n className: (0, _classnames[\"default\"])(menuItemSelectedIcon.props.className, \"\".concat(prefixCls, \"-selected-icon\"))\n }) : menuItemSelectedIcon) || /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"check\",\n className: \"\".concat(prefixCls, \"-selected-icon\")\n });\n return /*#__PURE__*/React.createElement(_rcSelect[\"default\"], _extends({\n inputIcon: _this.renderSuffixIcon(prefixCls),\n removeIcon: finalRemoveIcon,\n clearIcon: finalClearIcon,\n menuItemSelectedIcon: finalMenuItemSelectedIcon,\n showArrow: showArrow\n }, rest, modeConfig, {\n prefixCls: prefixCls,\n className: cls,\n optionLabelProp: optionLabelProp || 'children',\n notFoundContent: _this.getNotFoundContent(renderEmpty),\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n ref: _this.saveSelect\n }));\n };\n\n (0, _warning[\"default\"])(props.mode !== 'combobox', 'Select', 'The combobox mode is deprecated, ' + 'it will be removed in next major version, ' + 'please use AutoComplete instead');\n return _this;\n }\n\n _createClass(Select, [{\n key: \"getNotFoundContent\",\n value: function getNotFoundContent(renderEmpty) {\n var notFoundContent = this.props.notFoundContent;\n\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n\n if (this.isCombobox()) {\n return null;\n }\n\n return renderEmpty('Select');\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.rcSelect.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.rcSelect.blur();\n }\n }, {\n key: \"isCombobox\",\n value: function isCombobox() {\n var mode = this.props.mode;\n return mode === 'combobox' || mode === Select.SECRET_COMBOBOX_MODE_DO_NOT_USE;\n }\n }, {\n key: \"renderSuffixIcon\",\n value: function renderSuffixIcon(prefixCls) {\n var _this$props = this.props,\n loading = _this$props.loading,\n suffixIcon = _this$props.suffixIcon;\n\n if (suffixIcon) {\n return /*#__PURE__*/React.isValidElement(suffixIcon) ? /*#__PURE__*/React.cloneElement(suffixIcon, {\n className: (0, _classnames[\"default\"])(suffixIcon.props.className, \"\".concat(prefixCls, \"-arrow-icon\"))\n }) : suffixIcon;\n }\n\n if (loading) {\n return /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"loading\"\n });\n }\n\n return /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"down\",\n className: \"\".concat(prefixCls, \"-arrow-icon\")\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderSelect);\n }\n }]);\n\n return Select;\n}(React.Component);\n\nexports[\"default\"] = Select;\nSelect.Option = _rcSelect.Option;\nSelect.OptGroup = _rcSelect.OptGroup;\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nSelect.defaultProps = {\n showSearch: false,\n transitionName: 'slide-up',\n choiceTransitionName: 'zoom'\n};\nSelect.propTypes = SelectPropTypes;","/**\r\n * Handles formatting of pseudo-markup in text.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { AMElement } from \"../rendering/AMElement\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * Handles formatting of pseudo-markdown in text.\r\n *\r\n * @todo Encode < > in output\r\n * @todo Add more adapters\r\n * @important\r\n */\r\nvar TextFormatter = /** @class */ (function (_super) {\r\n __extends(TextFormatter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TextFormatter() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n _this.className = \"TextFormatter\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n TextFormatter.prototype.debug = function () { };\r\n /**\r\n * Formats the text according to specifications passed in.\r\n *\r\n * @param text Text to format\r\n * @param output Output format (svg, html)\r\n * @return Formatted text\r\n */\r\n TextFormatter.prototype.format = function (text, output) {\r\n // Apply default\r\n if (!$type.hasValue(output)) {\r\n output = \"svg\";\r\n }\r\n // Init return value\r\n var formatted = \"\";\r\n // Replace double (escaped) square spaces with remporary codes\r\n text = this.escape(text);\r\n // Divvy up the string by style tags\r\n var styles = text.match(/\\[([^\\]]*?)\\]/gm);\r\n if (!styles) {\r\n // Nothing to do here - no formatting elements\r\n return this.wrap(text, \"\", output);\r\n }\r\n // Get pure text - no style tags\r\n var texts = text.split(/\\[[^\\[\\]]*\\]/);\r\n // Go through each of the texts and wrap it in style tags\r\n for (var i = 0, len = texts.length; i < len; i++) {\r\n // Get text bit\r\n var t = texts[i];\r\n // Check if string is empty\r\n if (t === \"\") {\r\n continue;\r\n }\r\n // Run through an adapter\r\n t = this.adapter.apply(\"chunk\", t);\r\n // Get related style\r\n var s = \"\";\r\n if (i > 0) {\r\n s = styles[i - 1].replace('[', '').replace(']', '');\r\n }\r\n // Wrap text in tag\r\n formatted += this.wrap(t, s, output);\r\n }\r\n // Replace placeholders back\r\n formatted = this.unescape(formatted);\r\n // Return result\r\n return this.cleanUp(formatted);\r\n };\r\n /**\r\n * Replaces brackets with temporary placeholders.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Input text\r\n * @return Escaped text\r\n */\r\n TextFormatter.prototype.escape = function (text) {\r\n return text.\r\n replace(/\\[\\[/g, registry.getPlaceholder(\"1\")).\r\n replace(/([^\\/\\]]{1})\\]\\]/g, \"$1\" + registry.getPlaceholder(\"2\")).\r\n replace(/\\]\\]/g, registry.getPlaceholder(\"2\")).\r\n replace(/\\{\\{/g, registry.getPlaceholder(\"3\")).\r\n replace(/\\}\\}/g, registry.getPlaceholder(\"4\")).\r\n replace(/\\'\\'/g, registry.getPlaceholder(\"5\"));\r\n };\r\n /**\r\n * Replaces placeholders back to brackets.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Escaped text\r\n * @return Unescaped text\r\n */\r\n TextFormatter.prototype.unescape = function (text) {\r\n return text.\r\n replace(new RegExp(registry.getPlaceholder(\"1\"), \"g\"), \"[[\").\r\n replace(new RegExp(registry.getPlaceholder(\"2\"), \"g\"), \"]]\").\r\n replace(new RegExp(registry.getPlaceholder(\"3\"), \"g\"), \"{{\").\r\n replace(new RegExp(registry.getPlaceholder(\"4\"), \"g\"), \"}}\").\r\n replace(new RegExp(registry.getPlaceholder(\"5\"), \"g\"), \"''\");\r\n };\r\n /**\r\n * Cleans up the text text for leftover double square brackets.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Input text\r\n * @return Cleaned up text\r\n */\r\n TextFormatter.prototype.cleanUp = function (text) {\r\n return text.\r\n replace(/\\[\\[/g, \"[\").\r\n replace(/\\]\\]/g, \"]\").\r\n replace(/\\{\\{/g, \"{\").\r\n replace(/\\}\\}/g, \"}\").\r\n replace(/\\'\\'/g, \"'\");\r\n };\r\n /**\r\n * Wraps text into corresponding tags.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to wrap\r\n * @param style Styles\r\n * @param output Format to output in (svg, html)\r\n * @return Formatted string\r\n */\r\n TextFormatter.prototype.wrap = function (text, style, output) {\r\n if (style === \"\" || style === \"/\") {\r\n //return text;\r\n style = \"\";\r\n }\r\n switch (output) {\r\n case \"html\":\r\n return this.wrapHtml(text, this.translateStyleShortcuts(style));\r\n default:\r\n return this.wrapSvg(text, this.translateStyleShortcuts(style));\r\n }\r\n };\r\n /**\r\n * Wraps text in styled SVG tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to wrap\r\n * @param style Style property\r\n * @return Formatted tag\r\n */\r\n TextFormatter.prototype.wrapSvg = function (text, style) {\r\n if (style === \"\") {\r\n return \"<tspan>\" + text + \"</tspan>\";\r\n }\r\n else {\r\n return \"<tspan style='\" + style + \"'>\" + text + \"</tspan>\";\r\n }\r\n };\r\n /**\r\n * Returns an SVG `<tspan>` element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text\r\n * @param style Style\r\n * @return Element\r\n */\r\n TextFormatter.prototype.getSvgElement = function (text, style) {\r\n var element = new AMElement(\"tspan\");\r\n element.textContent = text;\r\n if (style) {\r\n element.node.setAttribute(\"style\", style);\r\n }\r\n return element;\r\n };\r\n /**\r\n * Wraps text in HTML <span> tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to wrap\r\n * @param style Style property\r\n * @return Formatted tag\r\n * @todo Translate SVG styles into HTML ones\r\n */\r\n TextFormatter.prototype.wrapHtml = function (text, style) {\r\n if (style === \"\") {\r\n return \"<span>\" + text + \"</span>\";\r\n }\r\n else {\r\n return \"<span style='\" + this.styleSvgToHtml(style) + \"'>\" + text + \"</span>\";\r\n }\r\n };\r\n /**\r\n * Returns an HTML `<span>` element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text/HTML\r\n * @param style Style definition\r\n * @return HTML element\r\n */\r\n TextFormatter.prototype.getHtmlElement = function (text, style) {\r\n var element = document.createElement(\"span\");\r\n element.innerHTML = text;\r\n if (style) {\r\n element.setAttribute(\"style\", style);\r\n }\r\n return element;\r\n };\r\n /**\r\n * Trabslates SVG CSS into HTML CSS.\r\n *\r\n * @ignore Exclude from docs\r\n * @param style SVG CSS\r\n * @return HTML CSS\r\n * @todo Implement actual translation\r\n */\r\n TextFormatter.prototype.styleSvgToHtml = function (style) {\r\n style = style.replace(/fill:/, \"color:\");\r\n return style;\r\n };\r\n /**\r\n * Translates style shortcuts into full styles, i.e.:\r\n * \"bold\" => \"font-weight: bold\"\r\n * \"#f00\" => \"fill: #f00\"\r\n *\r\n * @ignore Exclude from docs\r\n * @param style Untranslated style\r\n * @return Translated style\r\n * @todo Implement actual translation\r\n */\r\n TextFormatter.prototype.translateStyleShortcuts = function (style) {\r\n if (style == \"\" || style == \"[ ]\") {\r\n return \"\";\r\n }\r\n var cached = registry.getCache(\"translateStyleShortcuts_\" + style);\r\n if (cached) {\r\n return cached;\r\n }\r\n // Pre-process quoted text\r\n var q = style.match(/('[^']*')|(\"[^\"]*\")/gi);\r\n if (q) {\r\n for (var i = 0; i < q.length; i++) {\r\n style = style.replace(q[i], q[i].replace(/['\"]*/g, \"\").replace(/[ ]+/g, \"+\"));\r\n }\r\n }\r\n // Get style parts\r\n var b = style.match(/([\\w\\-]*:[\\s]?[^;\\s\\]]*)|(\\#[\\w]{1,6})|([\\w]+)|(\\/)/gi);\r\n // Empty?\r\n if (!b) {\r\n return style;\r\n }\r\n // Check each part\r\n for (var i = 0; i < b.length; i++) {\r\n if (b[i].match(/^bold$/i)) {\r\n // Bold\r\n b[i] = \"font-weight:\" + b[i];\r\n }\r\n else if (b[i] == \"/\") {\r\n // Just closing tag\r\n // Do nothing\r\n b[i] = \"\";\r\n }\r\n else if (!b[i].match(/:/)) {\r\n // Color\r\n b[i] = \"fill:\" + b[i];\r\n }\r\n else {\r\n b[i] = b[i].replace(/\\+/g, \" \");\r\n }\r\n }\r\n var res = b.join(';');\r\n registry.setCache(\"translateStyleShortcuts_\" + style, res);\r\n return res;\r\n };\r\n /**\r\n * Splits string into chunks. (style blocks, quoted blocks, regular blocks)\r\n *\r\n * If the second parameter `quotedBlocks` is set to `true` this method will\r\n * also single out text blocks enclosed within single quotes that no\r\n * formatting should be applied to, and they should be displayed as is.\r\n *\r\n * Default for the above is `false`, so that you can use single quote in text\r\n * without escaping it.\r\n *\r\n * If enabled, single quotes can be escaped by doubling it - adding two\r\n * single quotes, which will be replaced by a one single quote in the final\r\n * output.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Text to chunk\r\n * @param quotedBlocks Use quoted blocks\r\n * @param noFormatting Formatting blocks will be treated as regular text\r\n * @return Array of string chunks\r\n */\r\n TextFormatter.prototype.chunk = function (text, quotedBlocks, noFormatting) {\r\n if (quotedBlocks === void 0) { quotedBlocks = false; }\r\n if (noFormatting === void 0) { noFormatting = false; }\r\n // Init result\r\n var res = [];\r\n // Replace double (escaped) square spaces and quotes with temporary codes\r\n text = this.escape(text);\r\n // Deal with style blocks\r\n var chunks = quotedBlocks ? text.split(\"'\") : [text];\r\n for (var i = 0; i < chunks.length; i++) {\r\n var chunk = chunks[i];\r\n // Empty?\r\n if (chunk === \"\") {\r\n continue;\r\n }\r\n if ((i % 2) === 0) {\r\n // Text outside quotes\r\n // Parse for style blocks which are \"text\" chunks, the rest chunks are\r\n // \"value\"\r\n chunk = chunk.replace(/\\]\\[/g, \"]\" + $strings.PLACEHOLDER + \"[\");\r\n chunk = chunk.replace(/\\[\\]/g, \"[ ]\");\r\n var chunks2 = chunk.split(/[\\[\\]]+/);\r\n for (var i2 = 0; i2 < chunks2.length; i2++) {\r\n var chunk2 = this.cleanUp(this.unescape(chunks2[i2]));\r\n // Placeholder?\r\n if (chunk2 === $strings.PLACEHOLDER) {\r\n continue;\r\n }\r\n // Empty?\r\n if (chunk2 === \"\") {\r\n continue;\r\n }\r\n // Block or value\r\n if ((i2 % 2) === 0) {\r\n res.push({\r\n \"type\": \"value\",\r\n \"text\": this.adapter.apply(\"chunk\", chunk2)\r\n });\r\n }\r\n else {\r\n res.push({\r\n \"type\": noFormatting ? \"value\" : \"format\",\r\n \"text\": \"[\" + chunk2 + \"]\"\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n // A text within doublequotes\r\n // All chunks are \"text\"\r\n var chunks2 = chunk.split(/[\\[\\]]+/);\r\n for (var i2 = 0; i2 < chunks2.length; i2++) {\r\n var chunk2 = this.cleanUp(this.unescape(chunks2[i2]));\r\n // Empty?\r\n if (chunk2 === \"\") {\r\n continue;\r\n }\r\n // Block or text\r\n if ((i2 % 2) === 0) {\r\n res.push({\r\n \"type\": \"text\",\r\n \"text\": chunk2\r\n });\r\n }\r\n else if (this.isImage(chunk2)) {\r\n res.push({\r\n \"type\": \"image\",\r\n \"text\": \"[\" + chunk2 + \"]\"\r\n });\r\n }\r\n else {\r\n res.push({\r\n \"type\": \"format\",\r\n \"text\": \"[\" + chunk2 + \"]\"\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return res;\r\n };\r\n /**\r\n * Checks if supplied format contains image information and should be\r\n * formatted as such.\r\n * I.e.: `[img: myImage.png]`\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Format\r\n * @return `true` if it is an image\r\n */\r\n TextFormatter.prototype.isImage = function (text) {\r\n return text.match(/img[ ]?:/) ? true : false;\r\n };\r\n return TextFormatter;\r\n}(BaseObject));\r\nexport { TextFormatter };\r\nvar formatter;\r\n/**\r\n * Returns the global instance of [[TextFormatter]].\r\n *\r\n * All classes and instances should reuse this universal text formatter,\r\n * rather than create their own instance of it.\r\n */\r\nexport function getTextFormatter() {\r\n if (formatter == null) {\r\n formatter = new TextFormatter();\r\n }\r\n return formatter;\r\n}\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TextFormatter\"] = TextFormatter;\r\n//# sourceMappingURL=TextFormatter.js.map","/**\r\n * ============================================================================\r\n * COMPARING FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Comparing function used for ordering.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Number 1\r\n * @param b Number 2\r\n * @return Result\r\n */\r\nexport function order(a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a < b) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n}\r\n//# sourceMappingURL=Number.js.map","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./components/embeds/FacebookEmbed\"), exports);\n__exportStar(require(\"./components/embeds/InstagramEmbed\"), exports);\n__exportStar(require(\"./components/embeds/LinkedInEmbed\"), exports);\n__exportStar(require(\"./components/embeds/PinterestEmbed\"), exports);\n__exportStar(require(\"./components/embeds/TikTokEmbed\"), exports);\n__exportStar(require(\"./components/embeds/TwitterEmbed\"), exports);\n__exportStar(require(\"./components/embeds/XEmbed\"), exports);\n__exportStar(require(\"./components/embeds/YouTubeEmbed\"), exports);\n__exportStar(require(\"./components/placeholder/PlaceholderEmbed\"), exports);\n__exportStar(require(\"./components/placeholder/parts/BorderSpinner\"), exports);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","/**\r\n * Paper class just like the white sheet of pressed fiber it draws its name\r\n * inspiration from is used as a starting point to start a drawing.\r\n *\r\n * Before we can start adding elements (drawing) we need to take out a new sheet\r\n * of paper, or in this instance create a blank SVG element.\r\n *\r\n * This class creates such element, as well as implements methods needed to\r\n * start adding elements to it.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AMElement } from \"./AMElement\";\r\nimport { Group } from \"./Group\";\r\nimport { SVGContainer } from \"./SVGContainer\";\r\nimport * as $dom from \"../utils/DOM\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Paper class which when instantiated will create an SVG element as well as\r\n * some of the sub-elements like `<desc>`, `<defs>`.\r\n *\r\n * Use its methods like `addGroup` and `append` to add elements to the paper.\r\n */\r\nvar Paper = /** @class */ (function () {\r\n /**\r\n * Creates main `<svg>` container and related elements.\r\n *\r\n * @param container A reference to HTML element to create `<svg>` in\r\n */\r\n function Paper(container, id) {\r\n // Store container reference\r\n this.container = container;\r\n this.id = id;\r\n // Create SVG element\r\n var svg = document.createElementNS($dom.SVGNS, \"svg\");\r\n svg.setAttribute(\"version\", \"1.1\");\r\n svg.setAttributeNS($dom.XMLNS, \"xmlns\", $dom.SVGNS);\r\n svg.setAttributeNS($dom.XMLNS, \"xmlns:xlink\", $dom.XLINK);\r\n svg.setAttribute(\"role\", \"group\");\r\n this.container.appendChild(svg);\r\n // Add description\r\n //let desc: SVGElement = <SVGElement>document.createElementNS($dom.SVGNS, \"desc\");\r\n //desc.appendChild(document.createTextNode(\"JavaScript chart by amCharts\"));\r\n //svg.appendChild(desc);\r\n // Add defs\r\n this.defs = document.createElementNS($dom.SVGNS, \"defs\");\r\n svg.appendChild(this.defs);\r\n // Set width and height to fit container\r\n svg.style.width = \"100%\";\r\n svg.style.height = \"100%\";\r\n svg.style.overflow = \"visible\";\r\n // Store variable\r\n this.svg = svg;\r\n }\r\n /**\r\n * Creates and returns a new element. Does not attach it to Paper yet.\r\n *\r\n * @param elementName Element name\r\n * @return New element\r\n */\r\n Paper.prototype.add = function (elementName) {\r\n return new AMElement(elementName);\r\n };\r\n /**\r\n * Creates and returns a new Group element. Does not attach it to Paper.\r\n *\r\n * @param groupName Element name\r\n * @return New Group\r\n */\r\n Paper.prototype.addGroup = function (groupName) {\r\n return new Group(groupName);\r\n };\r\n /**\r\n * Appends an element to Paper.\r\n *\r\n * @param element Element to append\r\n */\r\n Paper.prototype.append = function (element) {\r\n if (element) {\r\n this.svg.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Appends an element to `<defs>` block of the Paper.\r\n *\r\n * @param element Element\r\n */\r\n Paper.prototype.appendDef = function (element) {\r\n if (element) {\r\n this.defs.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Creates and returns new `<foreignObject>` element. Does not append it to\r\n * Paper.\r\n *\r\n * @return A foreignObject element\r\n */\r\n Paper.prototype.foreignObject = function () {\r\n var element = new AMElement(\"foreignObject\");\r\n //this.append(element);\r\n return element;\r\n };\r\n /**\r\n * Checks if browser supports `<foreignObject>` elements.\r\n *\r\n * @return Supports `foreignObject`?\r\n */\r\n Paper.prototype.supportsForeignObject = function () {\r\n return document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Extensibility\", \"1.1\");\r\n };\r\n return Paper;\r\n}());\r\nexport { Paper };\r\nvar ghostPaper = null;\r\n/**\r\n * A [[Paper]] instance to create elements, that are not yet ready to be\r\n * placed in visible DOM.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function getGhostPaper() {\r\n if (ghostPaper === null) {\r\n // ghost is used to draw elements while real paper is not yet created or Sprite doesn't know parent yet\r\n var ghostDiv = document.createElement(\"div\");\r\n ghostDiv.hidden = true;\r\n ghostDiv.style.width = \"1px\";\r\n ghostDiv.style.height = \"1px\";\r\n ghostDiv.style.position = \"absolute\";\r\n ghostDiv.style.zIndex = \"-1000000\";\r\n document.body.appendChild(ghostDiv);\r\n var ghostSvgContainer = new SVGContainer(ghostDiv, true);\r\n ghostPaper = new Paper(ghostSvgContainer.SVGContainer, \"ghost\");\r\n }\r\n return ghostPaper;\r\n}\r\n//# sourceMappingURL=Paper.js.map","/**\r\n * Functionality for drawing simple buttons.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { Label } from \"./Label\";\r\nimport { RoundedRectangle } from \"../elements/RoundedRectangle\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Button class is capable of drawing a simple rectangular button with\r\n * optionally rounded corners and an icon in it.\r\n *\r\n * @see {@link IButtonEvents} for a list of available events\r\n * @see {@link IButtonAdapters} for a list of available Adapters\r\n */\r\nvar Button = /** @class */ (function (_super) {\r\n __extends(Button, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Button() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"Button\";\r\n _this.tooltipY = 0;\r\n // Set defaults\r\n _this.iconPosition = \"left\";\r\n _this.layout = \"horizontal\";\r\n _this.contentAlign = \"center\";\r\n _this.contentValign = \"middle\";\r\n _this.padding(8, 16, 8, 16);\r\n _this.setStateOnChildren = true;\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create background\r\n var background = _this.background;\r\n background.fill = interfaceColors.getFor(\"secondaryButton\");\r\n background.stroke = interfaceColors.getFor(\"secondaryButtonStroke\");\r\n background.fillOpacity = 1;\r\n background.strokeOpacity = 1;\r\n background.cornerRadius(3, 3, 3, 3);\r\n // Create the label element\r\n _this.label = new Label();\r\n _this.label.fill = interfaceColors.getFor(\"secondaryButtonText\");\r\n ;\r\n _this.label.shouldClone = false;\r\n // Create default states\r\n var hoverState = background.states.create(\"hover\");\r\n hoverState.properties.fillOpacity = 1;\r\n hoverState.properties.fill = interfaceColors.getFor(\"secondaryButtonHover\");\r\n var downState = background.states.create(\"down\");\r\n downState.transitionDuration = 100;\r\n downState.properties.fill = interfaceColors.getFor(\"secondaryButtonDown\");\r\n downState.properties.fillOpacity = 1;\r\n // Set up accessibility\r\n // A button should be always focusable\r\n _this.role = \"button\";\r\n _this.focusable = true;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Button.prototype, \"icon\", {\r\n /**\r\n * @return Icon Sprite\r\n */\r\n get: function () {\r\n return this._icon;\r\n },\r\n /**\r\n * A [[Sprite]] to be used as an icon on button.\r\n *\r\n * @param icon Icon Sprite\r\n */\r\n set: function (icon) {\r\n var currentIcon = this._icon;\r\n if (currentIcon) {\r\n //this._icon.dispose();\r\n //this.removeDispose(currentIcon);\r\n currentIcon.parent = undefined;\r\n }\r\n if (icon) {\r\n this._icon = icon;\r\n icon.parent = this;\r\n icon.interactionsEnabled = false;\r\n icon.shouldClone = false;\r\n this.iconPosition = this.iconPosition;\r\n this._disposers.push(icon);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Button.prototype, \"iconPosition\", {\r\n /**\r\n * @return Icon position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"iconPosition\");\r\n },\r\n /**\r\n * Icon position: \"left\" or \"right\".\r\n *\r\n * @default \"left\"\r\n * @param position Icon position\r\n */\r\n set: function (position) {\r\n this.setPropertyValue(\"iconPosition\", position);\r\n if (this.icon) {\r\n if (position == \"left\") {\r\n this.icon.toBack();\r\n }\r\n else {\r\n this.icon.toFront();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Button.prototype, \"label\", {\r\n /**\r\n * @return Label element\r\n */\r\n get: function () {\r\n return this._label;\r\n },\r\n /**\r\n * [[Label]] element to be used for text.\r\n *\r\n * @param label element\r\n */\r\n set: function (label) {\r\n if (this._label) {\r\n //this._label.dispose();\r\n this.removeDispose(this._label);\r\n }\r\n this._label = label;\r\n if (label) {\r\n label.parent = this;\r\n label.interactionsEnabled = false;\r\n this._disposers.push(this._label);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates a background element for the button.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Background element\r\n */\r\n Button.prototype.createBackground = function () {\r\n return new RoundedRectangle();\r\n };\r\n /**\r\n * Copies properties and other attributes.\r\n *\r\n * @param source Source\r\n */\r\n Button.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (source.label) {\r\n this.label.copyFrom(source.label);\r\n }\r\n if (source.icon) {\r\n this.icon = source.icon.clone();\r\n }\r\n };\r\n return Button;\r\n}(Container));\r\nexport { Button };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Button\"] = Button;\r\n//# sourceMappingURL=Button.js.map","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\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","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 _extends from \"babel-runtime/helpers/extends\";\nfunction omit(obj, fields) {\n var shallowCopy = _extends({}, obj);\n for (var i = 0; i < fields.length; i++) {\n var key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport default omit;","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","import { spy } from \"mobx\";\nimport { useState } from \"react\";\nif (!useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!spy) {\n throw new Error(\"mobx-react-lite requires mobx at least version 4 to be available\");\n}\n","import { configure } from \"mobx\";\nimport { getGlobal, getSymbol } from \"./utils\";\nvar observerBatchingConfiguredSymbol = getSymbol(\"observerBatching\");\nexport function defaultNoopBatch(callback) {\n callback();\n}\nexport function observerBatching(reactionScheduler) {\n if (!reactionScheduler) {\n reactionScheduler = defaultNoopBatch;\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom / react-native\");\n }\n }\n configure({ reactionScheduler: reactionScheduler });\n getGlobal()[observerBatchingConfiguredSymbol] = true;\n}\nexport var isObserverBatched = function () { return !!getGlobal()[observerBatchingConfiguredSymbol]; };\n","var globalIsUsingStaticRendering = false;\nexport function useStaticRendering(enable) {\n globalIsUsingStaticRendering = enable;\n}\nexport function isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}\n","import { getDependencyTree } from \"mobx\";\nexport function printDebugValue(v) {\n return getDependencyTree(v);\n}\n","export function createTrackingData(reaction) {\n var trackingData = {\n cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS,\n reaction: reaction\n };\n return trackingData;\n}\n/**\n * The minimum time before we'll clean up a Reaction created in a render\n * for a component that hasn't managed to run its effects. This needs to\n * be big enough to ensure that a component won't turn up and have its\n * effects run without being re-rendered.\n */\nexport var CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 10000;\n/**\n * The frequency with which we'll check for leaked reactions.\n */\nexport var CLEANUP_TIMER_LOOP_MILLIS = 10000;\n/**\n * Reactions created by components that have yet to be fully mounted.\n */\nvar uncommittedReactionRefs = new Set();\n/**\n * Latest 'uncommitted reactions' cleanup timer handle.\n */\nvar reactionCleanupHandle;\nfunction ensureCleanupTimerRunning() {\n if (reactionCleanupHandle === undefined) {\n reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS);\n }\n}\nexport function scheduleCleanupOfReactionIfLeaked(ref) {\n uncommittedReactionRefs.add(ref);\n ensureCleanupTimerRunning();\n}\nexport function recordReactionAsCommitted(reactionRef) {\n uncommittedReactionRefs.delete(reactionRef);\n}\n/**\n * Run by the cleanup timer to dispose any outstanding reactions\n */\nfunction cleanUncommittedReactions() {\n reactionCleanupHandle = undefined;\n // Loop through all the candidate leaked reactions; those older\n // than CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS get tidied.\n var now = Date.now();\n uncommittedReactionRefs.forEach(function (ref) {\n var tracking = ref.current;\n if (tracking) {\n if (now >= tracking.cleanAt) {\n // It's time to tidy up this leaked reaction.\n tracking.reaction.dispose();\n ref.current = null;\n uncommittedReactionRefs.delete(ref);\n }\n }\n });\n if (uncommittedReactionRefs.size > 0) {\n // We've just finished a round of cleanups but there are still\n // some leak candidates outstanding.\n ensureCleanupTimerRunning();\n }\n}\n/* istanbul ignore next */\n/**\n * Only to be used by test functions; do not export outside of mobx-react-lite\n */\nexport function forceCleanupTimerToRunNowForTests() {\n // This allows us to control the execution of the cleanup timer\n // to force it to run at awkward times in unit tests.\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n cleanUncommittedReactions();\n }\n}\n/* istanbul ignore next */\nexport function resetCleanupScheduleForTests() {\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n reactionCleanupHandle = undefined;\n }\n uncommittedReactionRefs.clear();\n}\n","import React from \"react\";\nvar insideRender = false;\nvar forceUpdateQueue = [];\nexport function useQueuedForceUpdate(forceUpdate) {\n return function () {\n if (insideRender) {\n forceUpdateQueue.push(forceUpdate);\n }\n else {\n forceUpdate();\n }\n };\n}\nexport function useQueuedForceUpdateBlock(callback) {\n // start intercepting force-update calls\n insideRender = true;\n forceUpdateQueue = [];\n try {\n var result = callback();\n // stop intercepting force-update\n insideRender = false;\n // store queue or nothing if it was empty to execute useLayoutEffect only when necessary\n var queue_1 = forceUpdateQueue.length > 0 ? forceUpdateQueue : undefined;\n // run force-update queue in useLayoutEffect\n React.useLayoutEffect(function () {\n if (queue_1) {\n queue_1.forEach(function (x) { return x(); });\n }\n }, [queue_1]);\n return result;\n }\n finally {\n insideRender = false;\n }\n}\n","import { Reaction } from \"mobx\";\nimport React from \"react\";\nimport { printDebugValue } from \"./printDebugValue\";\nimport { createTrackingData, recordReactionAsCommitted, scheduleCleanupOfReactionIfLeaked } from \"./reactionCleanupTracking\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useForceUpdate } from \"./utils\";\nimport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nvar EMPTY_OBJECT = {};\nfunction observerComponentNameFor(baseComponentName) {\n return \"observer\" + baseComponentName;\n}\nexport function useObserver(fn, baseComponentName, options) {\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n if (options === void 0) { options = EMPTY_OBJECT; }\n if (isUsingStaticRendering()) {\n return fn();\n }\n var wantedForceUpdateHook = options.useForceUpdate || useForceUpdate;\n var forceUpdate = wantedForceUpdateHook();\n var queuedForceUpdate = useQueuedForceUpdate(forceUpdate);\n // StrictMode/ConcurrentMode/Suspense may mean that our component is\n // rendered and abandoned multiple times, so we need to track leaked\n // Reactions.\n var reactionTrackingRef = React.useRef(null);\n if (!reactionTrackingRef.current) {\n // First render for this component (or first time since a previous\n // reaction from an abandoned render was disposed).\n var newReaction_1 = new Reaction(observerComponentNameFor(baseComponentName), function () {\n // Observable has changed, meaning we want to re-render\n // BUT if we're a component that hasn't yet got to the useEffect()\n // stage, we might be a component that _started_ to render, but\n // got dropped, and we don't want to make state changes then.\n // (It triggers warnings in StrictMode, for a start.)\n if (trackingData_1.mounted) {\n // We have reached useEffect(), so we're mounted, and can trigger an update\n queuedForceUpdate();\n }\n else {\n // We haven't yet reached useEffect(), so we'll need to trigger a re-render\n // when (and if) useEffect() arrives. The easiest way to do that is just to\n // drop our current reaction and allow useEffect() to recreate it.\n newReaction_1.dispose();\n reactionTrackingRef.current = null;\n }\n });\n var trackingData_1 = createTrackingData(newReaction_1);\n reactionTrackingRef.current = trackingData_1;\n scheduleCleanupOfReactionIfLeaked(reactionTrackingRef);\n }\n var reaction = reactionTrackingRef.current.reaction;\n React.useDebugValue(reaction, printDebugValue);\n React.useEffect(function () {\n // Called on first mount only\n recordReactionAsCommitted(reactionTrackingRef);\n if (reactionTrackingRef.current) {\n // Great. We've already got our reaction from our render;\n // all we need to do is to record that it's now mounted,\n // to allow future observable changes to trigger re-renders\n reactionTrackingRef.current.mounted = true;\n }\n else {\n // The reaction we set up in our render has been disposed.\n // This is either due to bad timings of renderings, e.g. our\n // component was paused for a _very_ long time, and our\n // reaction got cleaned up, or we got a observable change\n // between render and useEffect\n // Re-create the reaction\n reactionTrackingRef.current = {\n reaction: new Reaction(observerComponentNameFor(baseComponentName), function () {\n // We've definitely already been mounted at this point\n queuedForceUpdate();\n }),\n cleanAt: Infinity\n };\n queuedForceUpdate();\n }\n return function () {\n reactionTrackingRef.current.reaction.dispose();\n reactionTrackingRef.current = null;\n };\n }, []);\n // delay all force-update calls after rendering of this component\n return useQueuedForceUpdateBlock(function () {\n // render the original component, but have the\n // reaction track the observables, so that rendering\n // can be invalidated (see above) once a dependency changes\n var rendering;\n var exception;\n reaction.track(function () {\n try {\n rendering = fn();\n }\n catch (e) {\n exception = e;\n }\n });\n if (exception) {\n throw exception; // re-throw any exceptions caught during rendering\n }\n return rendering;\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 { forwardRef, memo } from \"react\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useObserver } from \"./useObserver\";\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer(baseComponent, options) {\n // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var realOptions = __assign({ forwardRef: false }, options);\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n var wrappedComponent = function (props, ref) {\n return useObserver(function () { return baseComponent(props, ref); }, baseComponentName);\n };\n wrappedComponent.displayName = baseComponentName;\n // memo; we are not interested in deep updates\n // in props; we assume that if deep objects are changed,\n // this is in observables, which would have been tracked anyway\n var memoComponent;\n if (realOptions.forwardRef) {\n // we have to use forwardRef here because:\n // 1. it cannot go before memo, only after it\n // 2. forwardRef converts the function into an actual component, so we can't let the baseComponent do it\n // since it wouldn't be a callable function anymore\n memoComponent = memo(forwardRef(wrappedComponent));\n }\n else {\n memoComponent = memo(wrappedComponent);\n }\n copyStaticProperties(baseComponent, memoComponent);\n memoComponent.displayName = baseComponentName;\n return memoComponent;\n}\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function (key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n","import { useObserver } from \"./useObserver\";\nfunction ObserverComponent(_a) {\n var children = _a.children, render = _a.render;\n var component = children || render;\n if (typeof component !== \"function\") {\n return null;\n }\n return useObserver(component);\n}\nObserverComponent.propTypes = {\n children: ObserverPropsCheck,\n render: ObserverPropsCheck\n};\nObserverComponent.displayName = \"Observer\";\nexport { ObserverComponent as Observer };\nfunction ObserverPropsCheck(props, key, componentName, location, propFullName) {\n var extraKey = key === \"children\" ? \"render\" : \"children\";\n var hasProp = typeof props[key] === \"function\";\n var hasExtraProp = typeof props[extraKey] === \"function\";\n if (hasProp && hasExtraProp) {\n return new Error(\"MobX Observer: Do not use children and render in the same time in`\" + componentName);\n }\n if (hasProp || hasExtraProp) {\n return null;\n }\n return new Error(\"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n typeof props[key] +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `function`.\");\n}\n","var __read = (this && this.__read) || function (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};\nimport { observable, runInAction } from \"mobx\";\nimport React from \"react\";\nimport { isPlainObject } from \"./utils\";\nexport function useAsObservableSourceInternal(current, usedByLocalStore) {\n var culprit = usedByLocalStore ? \"useLocalStore\" : \"useAsObservableSource\";\n if (\"production\" !== process.env.NODE_ENV && usedByLocalStore) {\n var _a = __read(React.useState(current), 1), initialSource = _a[0];\n if ((initialSource !== undefined && current === undefined) ||\n (initialSource === undefined && current !== undefined)) {\n throw new Error(\"make sure you never pass `undefined` to \" + culprit);\n }\n }\n if (usedByLocalStore && current === undefined) {\n return undefined;\n }\n if (\"production\" !== process.env.NODE_ENV && !isPlainObject(current)) {\n throw new Error(culprit + \" expects a plain object as \" + (usedByLocalStore ? \"second\" : \"first\") + \" argument\");\n }\n var _b = __read(React.useState(function () { return observable(current, {}, { deep: false }); }), 1), res = _b[0];\n if (\"production\" !== process.env.NODE_ENV &&\n Object.keys(res).length !== Object.keys(current).length) {\n throw new Error(\"the shape of objects passed to \" + culprit + \" should be stable\");\n }\n runInAction(function () {\n Object.assign(res, current);\n });\n return res;\n}\nexport function useAsObservableSource(current) {\n return useAsObservableSourceInternal(current, false);\n}\n","import \"./assertEnvironment\";\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\";\nimport { observerBatching } from \"./observerBatching\";\nobserverBatching(batch);\nexport { isUsingStaticRendering, useStaticRendering } from \"./staticRendering\";\nexport { observer } from \"./observer\";\nexport { useObserver } from \"./useObserver\";\nexport { Observer } from \"./ObserverComponent\";\nexport { useForceUpdate } from \"./utils\";\nexport { useAsObservableSource } from \"./useAsObservableSource\";\nexport { useLocalStore } from \"./useLocalStore\";\nexport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nexport { isObserverBatched, observerBatching } from \"./observerBatching\";\n","/**\r\n * Defines functionality for \"Data Item\"\r\n *\r\n * A Data Item can be any object that can hold data. For example [[LineSeries]]\r\n * holds a number of values, that comprise a line graph. Each of those values\r\n * (data points) is a {DataItem}.\r\n *\r\n * Furthermore the [[LineSeries]] itself can be represented as a entry in the\r\n * legend. Since legend needs access to Line Series' value, a DataItem is\r\n * created for the series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"./Base\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { Animation, AnimationDisposer } from \"./utils/Animation\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $array from \"./utils/Array\";\r\n//import * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * DataItem represents single element in data, for example a data point in a\r\n * Serial Chart Series, e.g. a column.\r\n *\r\n * DataItem defines relationship between structured data, required for specific\r\n * chart type or task, and raw source data.\r\n *\r\n * It also implements required calculations, updates related visual elements,\r\n * etc.\r\n *\r\n * @todo Description\r\n * @important\r\n */\r\nvar DataItem = /** @class */ (function (_super) {\r\n __extends(DataItem, _super);\r\n /**\r\n * Constructor\r\n * @todo Adding events to disposers produces errors in some cases, which means that chart is using disposed Data Items which is not right\r\n */\r\n function DataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * This Data Item is currently disabled.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._disabled = false;\r\n /**\r\n * Indicates whether Data Item has any properties set.\r\n *\r\n * If it does not have any, the code can use this property to check whether\r\n * they need to apply costly operation of re-applying properties, whenever\r\n * Data Item-related element is redrawn, e.g. series.\r\n */\r\n _this.hasProperties = false;\r\n /**\r\n * An object containing calculated values.\r\n */\r\n _this.values = {};\r\n /**\r\n * An object container current working values.\r\n */\r\n //public readonly workingValues: { [index: string]: { [index: string]: number } } = {};\r\n /**\r\n * An object containing categories.\r\n */\r\n _this.categories = {};\r\n /**\r\n * An object containing dates.\r\n */\r\n _this.dates = {};\r\n /**\r\n * An object containing locations for the Data Item.\r\n *\r\n * A location is a position within date or category, or, in some other cases,\r\n * where there is no single point but rather some period.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/series/#Data_item_locations} for info how data item locations work\r\n */\r\n _this.locations = {};\r\n /**\r\n * Current working locations.\r\n */\r\n _this.workingLocations = {};\r\n /**\r\n * An object containing Data Item specific appearance properties in key-value\r\n * pairs.\r\n *\r\n * Sometimes a single Data Item needs to apply different properties than the\r\n * rest of the data [[Series]] it is part of. E.g. a single column,\r\n * represented by a Data Item needs to be filled with a different color than\r\n * the reset of the [[ColumnSeries]] it belongs to.\r\n *\r\n * That's where Data Item's `properties` come into play.\r\n *\r\n * Please note that you should set Data Item-specific properties using\r\n * `setProperty()` method, rather than access `properties` object directly.\r\n */\r\n _this.properties = {};\r\n /**\r\n * A list of [[Sprite]] elements that are associated with this Data Item.\r\n *\r\n * E.g. an [[Axis]] Data Item has several separate elements associated with\r\n * it, like [[AxisTick]], [[AxisLabel]], and [[Grid]].\r\n *\r\n * Data Item keeps track of all of them, so it can toggle all related visual\r\n * elements when it itself is toggled.\r\n */\r\n _this.sprites = [];\r\n /**\r\n * Identifies if this object is a \"template\" and should not be treated as\r\n * real object that is drawn or actually used in the chart.\r\n */\r\n _this.isTemplate = false;\r\n /**\r\n * The current index within the dataItems\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._index = null;\r\n /**\r\n * Is Data Item currently visible?\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._visible = true;\r\n /**\r\n * Is Data Item currently hidden?\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._hidden = false;\r\n /**\r\n * Should this Data Item be used when calculating data ranges and scales?\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._ignoreMinMax = false;\r\n /**\r\n * Some of the Data Item's data fields may contain an array of children. This\r\n * property contains an object indicating which fields hold an array, so that\r\n * they can be processed properly.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.hasChildren = {};\r\n /**\r\n * Indicates whether Data Item is currently animiting from visible to hidden\r\n * state.\r\n */\r\n _this.isHiding = false;\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._valueAnimations = {};\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._locationAnimations = {};\r\n _this.className = \"DataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DataItem.prototype, \"adapter\", {\r\n /**\r\n * Holds Adapter.\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n this._adapterO = new Adapter(this);\r\n }\r\n return this._adapterO;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"index\", {\r\n /**\r\n * Data Item's position index in Component's data.\r\n *\r\n * @return Index\r\n */\r\n get: function () {\r\n if (this.component) {\r\n if (this._index != null) {\r\n return this._index;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n else {\r\n return -1;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"animations\", {\r\n /**\r\n * A list of [[Animations]] objects currently mutating Data Item's values.\r\n *\r\n * @return [description]\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"visible\", {\r\n /**\r\n * Returns `true` if this Data Item is currently visible.\r\n *\r\n * @return Visible?\r\n */\r\n get: function () {\r\n if (this._hidden) {\r\n return false;\r\n }\r\n return this._visible;\r\n },\r\n /**\r\n * Sets visibility of the Data Item.\r\n *\r\n * @param value Visible?\r\n */\r\n set: function (value) {\r\n if (value) {\r\n this.hidden = false;\r\n }\r\n if (this._visible != value) {\r\n this.setVisibility(value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"hidden\", {\r\n /**\r\n * Returns `true` if this Data Item is currently hidden.\r\n *\r\n * @return Hidden?\r\n */\r\n get: function () {\r\n return this._hidden;\r\n },\r\n /**\r\n * Sets hidden flag for data item. Mostly used to initially hide data item.\r\n *\r\n * @param value Hidden?\r\n */\r\n set: function (value) {\r\n if (this._hidden != value) {\r\n this._hidden = value;\r\n if (value) {\r\n this.setVisibility(false);\r\n }\r\n else {\r\n this.setVisibility(true, true);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"__disabled\", {\r\n /**\r\n * Is this Data Item currently disabled?\r\n *\r\n * @ignore Exclude from docs\r\n * @param {boolean}\r\n */\r\n get: function () {\r\n return this._disabled;\r\n },\r\n /**\r\n * Disables all Sprites associated with this Data Item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param {boolean}\r\n */\r\n set: function (value) {\r\n //\tif (this._disabled != value) { // not good\r\n this._disabled = value;\r\n $array.each(this.sprites, function (sprite) {\r\n sprite.__disabled = value;\r\n });\r\n //\t}\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets visibility of the Data Item.\r\n *\r\n * @param value Data Item\r\n */\r\n DataItem.prototype.setVisibility = function (value, noChangeValues) {\r\n $array.each(this.sprites, function (sprite) {\r\n if (value) {\r\n sprite.visible = sprite.defaultState.properties.visible;\r\n }\r\n else {\r\n if (sprite.hiddenState) {\r\n sprite.visible = sprite.hiddenState.properties.visible;\r\n }\r\n else {\r\n sprite.visible = false;\r\n }\r\n }\r\n });\r\n this._visible = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"visibilitychanged\")) {\r\n var event_1 = {\r\n type: \"visibilitychanged\",\r\n target: this,\r\n visible: value\r\n };\r\n this.events.dispatchImmediately(\"visibilitychanged\", event_1);\r\n }\r\n }\r\n };\r\n /**\r\n * Shows the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param fields A list of fields to set values of\r\n */\r\n DataItem.prototype.show = function (duration, delay, fields) {\r\n var _this = this;\r\n if (!this.hidden) {\r\n this.setVisibility(true, true);\r\n this.isHiding = false;\r\n if (this._hideDisposer) {\r\n this.removeDispose(this._hideDisposer);\r\n }\r\n var animation_1;\r\n if (fields) {\r\n $array.each(fields, function (field) {\r\n animation_1 = _this.setWorkingValue(field, _this.values[field].value, duration, delay);\r\n });\r\n }\r\n $array.each(this.sprites, function (sprite) {\r\n var animation = sprite.show(duration);\r\n if (animation != null && !animation.isFinished()) {\r\n _this._disposers.push(animation);\r\n if (delay != null && delay > 0) {\r\n animation.delay(delay);\r\n }\r\n }\r\n });\r\n return animation_1;\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n DataItem.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n $array.each(this.sprites, function (sprite) {\r\n sprite.dispose();\r\n });\r\n this.sprites = [];\r\n };\r\n /**\r\n * Hides the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param toValue A value to set to `fields` when hiding\r\n * @param fields A list of data fields to set value to `toValue`\r\n */\r\n DataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n var _this = this;\r\n this.isHiding = true;\r\n $array.each(this.sprites, function (sprite) {\r\n var animation = sprite.hide(duration);\r\n if (animation != null && !animation.isFinished()) {\r\n _this._disposers.push(animation);\r\n if (delay != null && delay > 0) {\r\n animation.delay(delay);\r\n }\r\n }\r\n });\r\n if ($type.isNumber(toValue) && fields) {\r\n var animation_2;\r\n $array.each(fields, function (field) {\r\n var anim = _this.setWorkingValue(field, toValue, duration, delay);\r\n if (anim) {\r\n animation_2 = anim;\r\n }\r\n });\r\n if (animation_2 && !animation_2.isFinished()) {\r\n this._hideDisposer = animation_2.events.on(\"animationended\", function () {\r\n _this.setVisibility(false, true);\r\n _this.isHiding = false;\r\n });\r\n this._disposers.push(this._hideDisposer);\r\n return animation_2;\r\n }\r\n else {\r\n this.isHiding = false;\r\n this.setVisibility(false, true);\r\n }\r\n }\r\n else {\r\n this.isHiding = false;\r\n this.setVisibility(false);\r\n }\r\n };\r\n /**\r\n * Returns a duration (ms) the Data Item should take to animate from one\r\n * value to another.\r\n *\r\n * If the duration is not specified via parameter, this method will try to\r\n * request a default duration from the related `Component`.\r\n *\r\n * @param duration Default duration (ms)\r\n * @return Duration (ms)\r\n */\r\n DataItem.prototype.getDuration = function (duration) {\r\n if (!$type.isNumber(duration)) {\r\n var component = this.component;\r\n if (component) {\r\n duration = component.interpolationDuration;\r\n }\r\n }\r\n if (duration != null) {\r\n if (!this._adapterO) {\r\n return duration;\r\n }\r\n else {\r\n return this._adapterO.apply(\"duration\", duration);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns a numeric value for specific data field.\r\n *\r\n * If `calculated` is not set, it will return a raw value, as it is in\r\n * source data.\r\n *\r\n * If `calculated` is set, it will return a pre-calculated specific value.\r\n *\r\n * @param name Data field name\r\n * @param calculated A calculated value name\r\n * @return Value\r\n */\r\n DataItem.prototype.getValue = function (name, calculated) {\r\n if (name && this.component) {\r\n if (!calculated) {\r\n calculated = this.component.dataFields[name + \"Show\"];\r\n if (!calculated) {\r\n calculated = \"value\";\r\n }\r\n }\r\n var value = this.values[name][calculated];\r\n if (this._adapterO && this._adapterO.isEnabled(\"value\")) {\r\n return this._adapterO.apply(\"value\", {\r\n value: value,\r\n field: name\r\n }).value;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns a current working value for a specific data field.\r\n *\r\n * The actual value may differ from the one returned by `getValue()`. The\r\n * latter returns static values from the data source.\r\n *\r\n * `getWorkingValue()` returns current value, which is usually different if\r\n * Data Item is animating from one state to another.\r\n *\r\n * @param name Data field name\r\n * @return Value\r\n */\r\n DataItem.prototype.getWorkingValue = function (name) {\r\n if (name && this.component) {\r\n var realName = this.component.dataFields[name + \"Show\"];\r\n if (!realName) {\r\n realName = \"workingValue\";\r\n }\r\n if (this._adapterO) {\r\n return this._adapterO.apply(\"workingValue\", {\r\n workingValue: this.values[name][realName],\r\n field: name\r\n }).workingValue;\r\n }\r\n else {\r\n return this.values[name][realName];\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n * @return Value\r\n */\r\n DataItem.prototype.getActualWorkingValue = function (name) {\r\n return this.values[name].workingValue;\r\n };\r\n /**\r\n * Sets a numeric value for specific data field.\r\n *\r\n * @param name Data field name\r\n * @param value Value\r\n * @param calculated Calculated data field name\r\n * @param duration Duration (ms) to animate to new value to\r\n * @param delay Delay animation (ms)\r\n */\r\n DataItem.prototype.setValue = function (name, value, duration, delay) {\r\n var currentValue = this.values[name].value;\r\n var newDuration = this.getDuration(duration);\r\n value = $type.toNumber(value);\r\n if (currentValue !== value) {\r\n this.values[name].value = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"valuechanged\")) {\r\n var event_2 = {\r\n type: \"valuechanged\",\r\n target: this,\r\n property: name\r\n };\r\n this.events.dispatchImmediately(\"valuechanged\", event_2);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemValueChange(this, name);\r\n }\r\n }\r\n this.setWorkingValue(name, value, newDuration, delay);\r\n };\r\n DataItem.prototype.setCalculatedValue = function (name, value, calculated) {\r\n var currentValue = this.values[name][calculated];\r\n if (currentValue !== value && $type.isNumber(value)) {\r\n this.values[name][calculated] = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"calculatedvaluechanged\")) {\r\n var event_3 = {\r\n type: \"calculatedvaluechanged\",\r\n target: this,\r\n property: name\r\n };\r\n this.events.dispatchImmediately(\"calculatedvaluechanged\", event_3);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemCalculatedValueChange(this, name);\r\n }\r\n }\r\n };\r\n /**\r\n * Set current working numeric value for a specific data field.\r\n *\r\n * @param name Data field name\r\n * @param value Value\r\n * @param calculated Calculated data field name\r\n * @param duration Duration (ms) to animate to new value to\r\n * @param delay Delay animation (ms)\r\n * @return An [[Animation]] object used for transition to new values\r\n */\r\n DataItem.prototype.setWorkingValue = function (name, value, duration, delay) {\r\n if ($type.isNumber(this.values[name].value)) {\r\n var newDuration = this.getDuration(duration);\r\n var workingValue = this.values[name].workingValue;\r\n if (newDuration != null && newDuration > 0 && $type.isNumber(workingValue) && this.component) { // sometimes NaN is passed, so only change this to != null if all cases of NaN are handled, otherwise animation won't stop\r\n if (workingValue != value) {\r\n var animation = this.animate({ childObject: this.values[name], property: \"workingValue\", from: workingValue, to: value, dummyData: name }, newDuration, this.component.interpolationEasing);\r\n if (delay != null) {\r\n animation.delay(delay);\r\n }\r\n animation.events.on(\"animationstarted\", this.handleInterpolationProgress, this);\r\n animation.events.on(\"animationprogress\", this.handleInterpolationProgress, this);\r\n animation.events.on(\"animationended\", this.handleInterpolationProgress, this);\r\n this._valueAnimations[name] = animation;\r\n return animation;\r\n }\r\n else {\r\n var valueAnimation = this._valueAnimations[name];\r\n if (valueAnimation) {\r\n valueAnimation.stop();\r\n }\r\n this.values[name].workingValue = value;\r\n }\r\n }\r\n else {\r\n var valueAnimation = this._valueAnimations[name];\r\n if (valueAnimation) {\r\n valueAnimation.stop();\r\n }\r\n this.values[name].workingValue = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"workingvaluechanged\")) {\r\n var event_4 = {\r\n type: \"workingvaluechanged\",\r\n target: this,\r\n property: name\r\n };\r\n this.events.dispatchImmediately(\"workingvaluechanged\", event_4);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemWorkingValueChange(this, name);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a relative location for a data field.\r\n *\r\n * A location is always relative on a 0 to 1 scale, with 0 being beginning,\r\n * 0.5 middle and 1 end.\r\n *\r\n * @todo Rewiew description\r\n * @param name Data field name\r\n * @param value Location (0-1)\r\n * @param duration Duration (ms) to animate to new value to\r\n * @param delay Delay animation (ms)\r\n */\r\n DataItem.prototype.setLocation = function (name, value, duration, delay) {\r\n var currentLocation = this.locations[name];\r\n if (currentLocation !== value) {\r\n this.locations[name] = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"locationchanged\")) {\r\n var event_5 = {\r\n type: \"locationchanged\",\r\n target: this,\r\n property: name\r\n };\r\n this.events.dispatchImmediately(\"locationchanged\", event_5);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemValueChange(this, name); // correct\r\n }\r\n this.setWorkingLocation(name, value, duration, delay);\r\n }\r\n };\r\n /**\r\n * Sets a current working location for a data field.\r\n *\r\n * @todo Rewiew description\r\n * @param name Data field name\r\n * @param value Location (0-1)\r\n * @param duration Duration (ms) to animate to new value to\r\n * @param delay Delay animation (ms)\r\n */\r\n DataItem.prototype.setWorkingLocation = function (name, value, duration, delay) {\r\n var newDuration = this.getDuration(duration);\r\n var workingLocation = this.workingLocations[name];\r\n if (newDuration != null && newDuration > 0 && $type.isNumber(workingLocation) && this.component) { // sometimes NaN is passed, so only change this to != null if all cases of NaN are handled, otherwise animation won't stop\r\n if (workingLocation != value) {\r\n var animation = this.animate({ childObject: this.workingLocations, property: name, from: workingLocation, to: value, dummyData: name }, newDuration, this.component.interpolationEasing);\r\n if (delay != null) {\r\n animation.delay(delay);\r\n }\r\n animation.events.on(\"animationstarted\", this.handleInterpolationProgress, this);\r\n animation.events.on(\"animationprogress\", this.handleInterpolationProgress, this);\r\n animation.events.on(\"animationended\", this.handleInterpolationProgress, this);\r\n this._locationAnimations[name] = animation;\r\n return animation;\r\n }\r\n else {\r\n var locationAnimation = this._locationAnimations[name];\r\n if (locationAnimation) {\r\n locationAnimation.stop();\r\n }\r\n this.workingLocations[name] = value;\r\n }\r\n }\r\n else {\r\n var locationAnimation = this._locationAnimations[name];\r\n if (locationAnimation) {\r\n locationAnimation.stop();\r\n }\r\n this.workingLocations[name] = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"workinglocationchanged\")) {\r\n var event_6 = {\r\n type: \"workinglocationchanged\",\r\n target: this,\r\n property: name\r\n };\r\n this.events.dispatchImmediately(\"workinglocationchanged\", event_6);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemWorkingLocationChange(this, name);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets Date value to a data field.\r\n *\r\n * @param name Data field name\r\n * @param date Date object\r\n * @param duration Duration (ms) to animate to new value to\r\n */\r\n DataItem.prototype.setDate = function (name, date, duration) {\r\n if (!$type.isDate(date) && this.component) {\r\n date = this.component.dateFormatter.parse(date);\r\n }\r\n var currentDate = this.dates[name];\r\n if (currentDate !== date) {\r\n this.dates[name] = date;\r\n this.setValue(name, date.getTime(), duration);\r\n }\r\n };\r\n /**\r\n * Returns a Date value of the data field.\r\n *\r\n * @param name Data field name\r\n * @return Date object\r\n */\r\n DataItem.prototype.getDate = function (name) {\r\n if (this._adapterO) {\r\n return this._adapterO.apply(\"date\", {\r\n date: this.dates[name],\r\n field: name\r\n }).date;\r\n }\r\n else {\r\n return this.dates[name];\r\n }\r\n };\r\n /**\r\n * Sets a Data Item-specific visual properties to apply to related elements.\r\n *\r\n * @param name Property name\r\n * @param value Property value\r\n */\r\n DataItem.prototype.setProperty = function (name, value) {\r\n if (this.properties[name] !== value) {\r\n this.hasProperties = true;\r\n this.properties[name] = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"propertychanged\")) {\r\n var event_7 = {\r\n type: \"propertychanged\",\r\n target: this,\r\n property: name,\r\n value: value\r\n };\r\n this.events.dispatchImmediately(\"propertychanged\", event_7);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemPropertyChange(this, name);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a related category for this Data Item.\r\n *\r\n * @todo Review description\r\n * @param name Data field name\r\n * @param value Category\r\n */\r\n DataItem.prototype.setCategory = function (name, value) {\r\n if (!$type.isString(value)) {\r\n value = $type.castString(value);\r\n }\r\n if (this.categories[name] !== value) {\r\n this.categories[name] = value;\r\n }\r\n };\r\n /**\r\n * Clones the Data Item, including all related data.\r\n *\r\n * @return New Data Item clone\r\n */\r\n //public clone(cloneId?: string): this {\r\n //\tlet dataItem: this = super.clone(cloneId);\r\n //\tdataItem.copyFrom(this);\r\n //\treturn dataItem;\r\n //}\r\n /**\r\n * Copies all properties and related data from different data item.\r\n *\r\n * @param object Source data item\r\n */\r\n DataItem.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (source.dataContext) {\r\n this.dataContext = $utils.copy(source.dataContext, {});\r\n }\r\n $utils.copyProperties(source.locations, this.locations);\r\n /*\r\n $utils.copyProperties(source.properties, this.properties);\r\n $utils.copyProperties(source.categories, this.categories);\r\n $utils.copyProperties(source.values, this.values);\r\n $utils.copyProperties(source.dates, this.dates);\r\n\r\n $object.each(source.values, (name, value) => {\r\n this.values[name] = $object.copy(value);\r\n });*/\r\n if (source._adapterO) {\r\n this.adapter.copyFrom(source._adapterO);\r\n }\r\n //this.events.copyFrom(source.events); // because copied in Base\r\n this.component = source.component;\r\n };\r\n Object.defineProperty(DataItem.prototype, \"opacity\", {\r\n /**\r\n * Sets opacity for all Data Item's related elements (Sprites).\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n $array.each(this.sprites, function (sprite) {\r\n sprite.opacity = value;\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"ignoreMinMax\", {\r\n /**\r\n * Exclude from min/max calculations?\r\n * @return Exclude from min/max calculations?\r\n */\r\n get: function () {\r\n return this._ignoreMinMax;\r\n },\r\n /**\r\n * Sets whether this data point should not be included in the scale and\r\n * minimum/maximum calculations.\r\n *\r\n * E.g. some we may want to exclude a particular data point from influencing\r\n * [[ValueAxis]] scale.\r\n *\r\n * @param value Exclude from min/max calculations?\r\n */\r\n set: function (value) {\r\n this._ignoreMinMax = value;\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"propertychanged\")) {\r\n var event_8 = {\r\n type: \"propertychanged\",\r\n target: this,\r\n property: \"ignoreMinMax\",\r\n value: value\r\n };\r\n this.events.dispatchImmediately(\"propertychanged\", event_8);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemPropertyChange(this, \"ignoreMinMax\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates and starts an [[Animation]] to interpolate (morph) Data Item's\r\n * properties and/or values.\r\n *\r\n * @see {@link Animation}\r\n * @param animationOptions Animation options\r\n * @param duration Animation duration (ms)\r\n * @param easing Easing function\r\n * @return Animation\r\n */\r\n DataItem.prototype.animate = function (animationOptions, duration, easing) {\r\n return new Animation(this, animationOptions, duration, easing).start();\r\n };\r\n /**\r\n * Handles intermediate steps when Data Item is interpolating (morphing) from\r\n * one value to another.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event object\r\n */\r\n DataItem.prototype.handleInterpolationProgress = function (event) {\r\n var animation = event.target;\r\n // it's always only one options, no need cycle\r\n var animationOptions = animation.animationOptions[0];\r\n if (animationOptions) {\r\n if (this._eventDispatcher && !this.__disabled) {\r\n if (this.events.isEnabled(\"workingvaluechanged\")) {\r\n var event_9 = {\r\n type: \"workingvaluechanged\",\r\n target: this,\r\n property: animationOptions.dummyData\r\n };\r\n this.events.dispatchImmediately(\"workingvaluechanged\", event_9);\r\n }\r\n }\r\n if (this.component) {\r\n this.component.handleDataItemWorkingValueChange(this, animationOptions.dummyData);\r\n }\r\n }\r\n };\r\n /**\r\n * Checks whether Data Item has values set for all of the data fields,\r\n * supplied via argument.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fields Field list to check\r\n * @return Has values for all fields?\r\n */\r\n DataItem.prototype.hasValue = function (fields) {\r\n // todo: what about categories?\r\n for (var i = 0, len = fields.length; i < len; i++) {\r\n var values = this.values[fields[i]];\r\n if (!values || !$type.hasValue(values.value)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n Object.defineProperty(DataItem.prototype, \"depth\", {\r\n /**\r\n * Depth of the Data Item.\r\n *\r\n * In nested data structures, like TreeMap, this indicates the level this\r\n * data point is at, in relation to the parent Data Item.\r\n *\r\n * @return Depth\r\n */\r\n get: function () {\r\n if (!this.parent) {\r\n return 0;\r\n }\r\n else {\r\n return this.parent.depth + 1;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataItem.prototype, \"dataContext\", {\r\n /**\r\n * Sets to a reference to an original object from Component's data.\r\n *\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._dataContext;\r\n },\r\n /**\r\n * A reference to an original object in Component's data, that this Data Item\r\n * is derived from.\r\n *\r\n * @param value Original data object\r\n */\r\n set: function (value) {\r\n this._dataContext = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * adds a sprite to dataItem.sprites array\r\n * @ignore\r\n */\r\n DataItem.prototype.addSprite = function (sprite) {\r\n if (sprite.dataItem && sprite.dataItem != this) {\r\n $array.remove(sprite.dataItem.sprites, sprite);\r\n }\r\n if (!this.visible) {\r\n sprite.hide(0);\r\n }\r\n if (this.isHiding) {\r\n sprite.hide();\r\n }\r\n this.sprites.push(sprite);\r\n sprite.dataItem = this;\r\n };\r\n return DataItem;\r\n}(BaseObjectEvents));\r\nexport { DataItem };\r\n//# sourceMappingURL=DataItem.js.map","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Collapse = _interopRequireDefault(require(\"./Collapse\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _Collapse[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _required = require('./required');\n\nvar _required2 = _interopRequireDefault(_required);\n\nvar _whitespace = require('./whitespace');\n\nvar _whitespace2 = _interopRequireDefault(_whitespace);\n\nvar _type = require('./type');\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _range = require('./range');\n\nvar _range2 = _interopRequireDefault(_range);\n\nvar _enum = require('./enum');\n\nvar _enum2 = _interopRequireDefault(_enum);\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n required: _required2['default'],\n whitespace: _whitespace2['default'],\n type: _type2['default'],\n range: _range2['default'],\n 'enum': _enum2['default'],\n pattern: _pattern2['default']\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Input = _interopRequireDefault(require(\"./Input\"));\n\nvar _Group = _interopRequireDefault(require(\"./Group\"));\n\nvar _Search = _interopRequireDefault(require(\"./Search\"));\n\nvar _TextArea = _interopRequireDefault(require(\"./TextArea\"));\n\nvar _Password = _interopRequireDefault(require(\"./Password\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_Input[\"default\"].Group = _Group[\"default\"];\n_Input[\"default\"].Search = _Search[\"default\"];\n_Input[\"default\"].TextArea = _TextArea[\"default\"];\n_Input[\"default\"].Password = _Password[\"default\"];\nvar _default = _Input[\"default\"];\nexports[\"default\"] = _default;","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"./Container\";\r\nimport { List, ListDisposer } from \"./utils/List\";\r\nimport { OrderedListTemplate } from \"./utils/SortedList\";\r\nimport { Dictionary } from \"./utils/Dictionary\";\r\nimport { Disposer, MultiDisposer } from \"./utils/Disposer\";\r\nimport { DataSource } from \"./data/DataSource\";\r\nimport { Responsive } from \"./utils/Responsive\";\r\nimport { system } from \"./System\";\r\nimport { DataItem } from \"./DataItem\";\r\nimport { registry } from \"./Registry\";\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $ease from \"./utils/Ease\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $iter from \"./utils/Iterator\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A Component represents an independent functional element or control, that\r\n * can have it's own behavior, children, data, etc.\r\n *\r\n * A few examples of a Component: [[Legend]], [[Series]], [[Scrollbar]].\r\n *\r\n * @see {@link IComponentEvents} for a list of available events\r\n * @see {@link IComponentAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar Component = /** @class */ (function (_super) {\r\n __extends(Component, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Component() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Holds data field names.\r\n *\r\n * Data fields define connection beween [[DataItem]] and actual properties\r\n * in raw data.\r\n */\r\n _this.dataFields = {};\r\n /**\r\n * A list of [[DataSource]] definitions of external data source.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._dataSources = {};\r\n /**\r\n * This is used when only new data is invalidated (if added using `addData`\r\n * method).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._parseDataFrom = 0;\r\n /**\r\n * Holds the disposers for the dataItems and dataUsers\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._dataDisposers = [];\r\n /**\r\n * Currently selected \"data set\".\r\n *\r\n * If it's set to `\"\"`, main data set (unaggregated data) is used.\r\n */\r\n _this._currentDataSetId = \"\";\r\n /**\r\n * [_start description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._start = 0;\r\n /**\r\n * [_end description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._end = 1;\r\n /**\r\n * If set to `true`, changing data range in element will not trigger\r\n * `daterangechanged` event.\r\n */\r\n _this.skipRangeEvent = false;\r\n /**\r\n * Whenever selected scope changes (chart is zoomed or panned), for example\r\n * by interaction from a Scrollbar, or API, a chart needs to reposition\r\n * its contents.\r\n *\r\n * `rangeChangeDuration` influences how this is performed.\r\n *\r\n * If set to zero (0), the change will happen instantenously.\r\n *\r\n * If set to non-zero value, the chart will gradually animate into new\r\n * position for the set amount of milliseconds.\r\n *\r\n * @default 0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.rangeChangeDuration = 0;\r\n /**\r\n * An easing function to use for range change animation.\r\n *\r\n * @see {@link Ease}\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.rangeChangeEasing = $ease.cubicOut;\r\n /**\r\n * A duration (ms) of each data parsing step. A Component parses its data in\r\n * chunks in order to avoid completely freezing the machine when large data\r\n * sets are used. This setting will control how many milliseconds should pass\r\n * when parsing data until parser stops for a brief moment to let other\r\n * processes catch up.\r\n */\r\n _this.parsingStepDuration = 50;\r\n /**\r\n * [dataInvalid description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.dataInvalid = false;\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.rawDataInvalid = false;\r\n /**\r\n * [dataRangeInvalid description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.dataRangeInvalid = false;\r\n /**\r\n * [dataItemsInvalid description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.dataItemsInvalid = false;\r\n /**\r\n * If set to a non-zero number the element will \"animate\" data values of its\r\n * children.\r\n *\r\n * This will happen on first load and whenever data values change.\r\n *\r\n * Enabling interpolation will mean that elements will transit smoothly into\r\n * new values rather than updating instantly.\r\n *\r\n * @default 0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.interpolationDuration = 0;\r\n /**\r\n * An easing function to use for interpolating values when transiting from\r\n * one source value to another.\r\n *\r\n * @default cubicOut\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n * @see {@link Ease}\r\n */\r\n _this.interpolationEasing = $ease.cubicOut;\r\n /**\r\n * Indicates whether transition between data item's values should start and\r\n * play out all at once, or with a small delay (as defined by\r\n * `sequencedInterpolationDelay`) for each subsequent data item.\r\n *\r\n * @default true\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.sequencedInterpolation = true;\r\n /**\r\n * A delay (ms) to wait between animating each subsequent data item's\r\n * interpolation animation.\r\n *\r\n * Relative only if `sequencedInterpolation = true`.\r\n *\r\n * @default 0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.sequencedInterpolationDelay = 0;\r\n /**\r\n * A progress (0-1) for the data validation process.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.dataValidationProgress = 0;\r\n _this._addAllDataItems = true;\r\n _this._usesData = true;\r\n _this.className = \"Component\";\r\n _this.minZoomCount = 1;\r\n _this.maxZoomCount = 0;\r\n _this._dataItems = new OrderedListTemplate(_this.createDataItem());\r\n _this._dataItems.events.on(\"inserted\", _this.handleDataItemAdded, _this, false);\r\n _this._dataItems.events.on(\"removed\", _this.handleDataItemRemoved, _this, false);\r\n _this._disposers.push(new ListDisposer(_this._dataItems));\r\n _this._disposers.push(_this._dataItems.template);\r\n _this.invalidateData();\r\n // TODO what about remove ?\r\n _this.dataUsers.events.on(\"inserted\", _this.handleDataUserAdded, _this, false);\r\n // Set up disposers\r\n _this._disposers.push(new MultiDisposer(_this._dataDisposers));\r\n _this._start = 0;\r\n _this._end = 1;\r\n _this.maxZoomDeclination = 1;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Component.prototype.createDataItem = function () {\r\n return new DataItem();\r\n };\r\n /**\r\n * [handleDataUserAdded description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param event Event object\r\n */\r\n Component.prototype.handleDataUserAdded = function (event) {\r\n var dataUser = event.newValue;\r\n dataUser.dataProvider = this;\r\n };\r\n /**\r\n * [handleDataItemValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Component.prototype.handleDataItemValueChange = function (dataItem, name) {\r\n if (!this.dataItemsInvalid) {\r\n this.invalidateDataItems();\r\n }\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n };\r\n /**\r\n * [handleDataItemWorkingLocationChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.handleDataItemWorkingLocationChange = function (dataItem, name) {\r\n };\r\n /**\r\n * [handleDataItemCalculatedValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.handleDataItemCalculatedValueChange = function (dataItem, name) {\r\n };\r\n /**\r\n * [handleDataItemPropertyChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.handleDataItemPropertyChange = function (dataItem, name) {\r\n };\r\n /**\r\n * Populates a [[DataItem]] width data from data source.\r\n *\r\n * Loops through all the fields and if such a field is found in raw data\r\n * object, a corresponding value on passed in `dataItem` is set.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item\r\n */\r\n Component.prototype.processDataItem = function (dataItem, dataContext) {\r\n var _this = this;\r\n if (dataItem) {\r\n if (!dataContext) {\r\n dataContext = {};\r\n }\r\n // store reference to original data item\r\n dataItem.dataContext = dataContext;\r\n var hasSomeValues_1 = false;\r\n $object.each(this.dataFields, function (key, fieldValue) {\r\n var fieldName = key;\r\n var value = dataContext[fieldValue];\r\n // Apply adapters to a retrieved value\r\n if (_this._adapterO) {\r\n if (_this._adapterO.isEnabled(\"dataContextValue\")) {\r\n value = _this._adapterO.apply(\"dataContextValue\", {\r\n field: fieldName,\r\n value: value,\r\n dataItem: dataItem\r\n }).value;\r\n }\r\n }\r\n if ($type.hasValue(value)) {\r\n hasSomeValues_1 = true;\r\n if (dataItem.hasChildren[fieldName]) {\r\n var template = _this.createDataItem();\r\n template.copyFrom(_this.mainDataSet.template);\r\n var children = new OrderedListTemplate(template);\r\n children.events.on(\"inserted\", _this.handleDataItemAdded, _this, false);\r\n children.events.on(\"removed\", _this.handleDataItemRemoved, _this, false);\r\n _this._dataDisposers.push(new ListDisposer(children));\r\n var count = value.length;\r\n for (var i = 0; i < count; i++) {\r\n var rawDataItem = value[i];\r\n var childDataItem = children.create();\r\n childDataItem.parent = dataItem;\r\n _this.processDataItem(childDataItem, rawDataItem);\r\n }\r\n var anyDataItem = dataItem;\r\n anyDataItem[fieldName] = children;\r\n }\r\n else {\r\n // data is converted to numbers/dates in each dataItem\r\n dataItem[fieldName] = value;\r\n }\r\n }\r\n });\r\n $object.each(this.propertyFields, function (key, fieldValue) {\r\n var f = key;\r\n var value = dataContext[fieldValue];\r\n if ($type.hasValue(value)) {\r\n hasSomeValues_1 = true;\r\n dataItem.setProperty(f, value);\r\n }\r\n });\r\n // @todo we might need some flag which would tell whether we should create empty data items or not.\r\n if (!this._addAllDataItems && !hasSomeValues_1) {\r\n this.mainDataSet.remove(dataItem);\r\n }\r\n }\r\n };\r\n /**\r\n *\r\n * When validating raw data, instead of processing data item, we update it\r\n *\r\n * @ignore Exclude from docs\r\n * @param item\r\n */\r\n Component.prototype.updateDataItem = function (dataItem) {\r\n var _this = this;\r\n if (dataItem) {\r\n var dataContext_1 = dataItem.dataContext;\r\n $object.each(this.dataFields, function (key, fieldValue) {\r\n var fieldName = key;\r\n var value = dataContext_1[fieldValue];\r\n // Apply adapters to a retrieved value\r\n if (_this._adapterO) {\r\n value = _this._adapterO.apply(\"dataContextValue\", {\r\n field: fieldName,\r\n value: value,\r\n dataItem: dataItem\r\n }).value;\r\n }\r\n if ($type.hasValue(value)) {\r\n if (dataItem.hasChildren[fieldName]) {\r\n var anyDataItem = dataItem;\r\n var children = (anyDataItem[fieldName]);\r\n children.each(function (child) {\r\n _this.updateDataItem(child);\r\n });\r\n }\r\n else {\r\n // data is converted to numbers/dates in each dataItem\t\t\t\t\t\r\n dataItem[fieldName] = value;\r\n }\r\n }\r\n });\r\n $object.each(this.propertyFields, function (key, fieldValue) {\r\n var f = key;\r\n var value = dataContext_1[fieldValue];\r\n if ($type.hasValue(value)) {\r\n dataItem.setProperty(f, value);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * [validateDataElements description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Component.prototype.validateDataElements = function () {\r\n var count = this.endIndex;\r\n for (var i = this.startIndex; i < count; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n // TODO is this correct\r\n if (dataItem) {\r\n this.validateDataElement(dataItem);\r\n }\r\n }\r\n };\r\n /**\r\n * Validates this element and its related elements.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.validate = function () {\r\n this.validateDataElements();\r\n _super.prototype.validate.call(this);\r\n };\r\n /**\r\n * [validateDataElement description]\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem [description]\r\n */\r\n Component.prototype.validateDataElement = function (dataItem) {\r\n };\r\n /**\r\n * Adds one or several (array) of data items to the existing data.\r\n *\r\n * @param rawDataItem One or many raw data item objects\r\n */\r\n Component.prototype.addData = function (rawDataItem, removeCount, skipRaw) {\r\n var _this = this;\r\n // need to check if data is invalid, as addData might be called multiple times\r\n if (!this.dataInvalid && this.inited) {\r\n this._parseDataFrom = this.data.length; // save length of parsed data\r\n }\r\n if (!skipRaw) {\r\n if (rawDataItem instanceof Array) {\r\n // can't use concat because new array is returned\r\n $array.each(rawDataItem, function (dataItem) {\r\n _this.data.push(dataItem);\r\n });\r\n }\r\n else {\r\n this.data.push(rawDataItem); // add to raw data array\r\n }\r\n }\r\n if (this.inited) {\r\n this.removeData(removeCount, skipRaw);\r\n }\r\n else {\r\n if ($type.isNumber(removeCount)) {\r\n while (removeCount > 0) {\r\n this.data.shift();\r\n removeCount--;\r\n }\r\n }\r\n }\r\n this.invalidateData();\r\n };\r\n /**\r\n * Removes elements from the beginning of data\r\n *\r\n * @param count number of elements to remove\r\n */\r\n Component.prototype.removeData = function (count, skipRaw) {\r\n if ($type.isNumber(count) && count > 0) {\r\n while (count > 0) {\r\n var dataItem = this.mainDataSet.getIndex(0);\r\n if (dataItem) {\r\n this.mainDataSet.remove(dataItem);\r\n }\r\n this.dataUsers.each(function (dataUser) {\r\n if (!dataUser.data || dataUser.data.length == 0) {\r\n var dataItem_1 = dataUser.mainDataSet.getIndex(0);\r\n if (dataItem_1) {\r\n dataUser.mainDataSet.remove(dataItem_1);\r\n }\r\n }\r\n });\r\n if (!skipRaw) {\r\n this.data.shift();\r\n }\r\n if (this._parseDataFrom > 0) {\r\n this._parseDataFrom--;\r\n }\r\n count--;\r\n }\r\n // changed from invalidateData since 4.7.19 to solve #51551\r\n this.invalidateDataItems();\r\n }\r\n };\r\n /**\r\n * Triggers a data (re)parsing.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.invalidateData = function () {\r\n if (this.disabled || this.isTemplate) {\r\n return;\r\n }\r\n //if(!this.dataInvalid){\r\n registry.addToInvalidComponents(this);\r\n system.requestFrame();\r\n this.dataInvalid = true;\r\n $iter.each(this.dataUsers.iterator(), function (x) {\r\n x.invalidateDataItems();\r\n });\r\n //}\r\n };\r\n /**\r\n * [invalidateDataUsers description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Component.prototype.invalidateDataUsers = function () {\r\n $iter.each(this.dataUsers.iterator(), function (x) {\r\n x.invalidate();\r\n });\r\n };\r\n /**\r\n * Invalidates data values. When data array is not changed, but values within\r\n * it changes, we invalidate data so that component would process changes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.invalidateDataItems = function () {\r\n if (this.disabled || this.isTemplate) {\r\n return;\r\n }\r\n //if(!this.dataItemsInvalid){\r\n $array.move(registry.invalidDataItems, this);\r\n system.requestFrame();\r\n this.dataItemsInvalid = true;\r\n $iter.each(this.dataUsers.iterator(), function (x) {\r\n x.invalidateDataItems();\r\n });\r\n //}\r\n };\r\n /**\r\n * Invalidates data range. This is done when data which must be shown\r\n * changes (chart is zoomed for example).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.invalidateDataRange = function () {\r\n if (this.disabled || this.isTemplate) {\r\n return;\r\n }\r\n //if(!this.dataRangeInvalid){\r\n this.dataRangeInvalid = true;\r\n $array.move(registry.invalidDataRange, this);\r\n system.requestFrame();\r\n //}\r\n };\r\n /**\r\n * Processes data range.\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.validateDataRange = function () {\r\n $array.remove(registry.invalidDataRange, this);\r\n this.dataRangeInvalid = false;\r\n if (this.startIndex != this._prevStartIndex || this.endIndex != this._prevEndIndex) {\r\n this.rangeChangeUpdate();\r\n this.appendDataItems();\r\n this.invalidate();\r\n this.dispatchImmediately(\"datarangechanged\");\r\n }\r\n };\r\n /**\r\n * [sliceData description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.sliceData = function () {\r\n this._workingStartIndex = this.startIndex;\r\n this._workingEndIndex = this.endIndex;\r\n };\r\n /**\r\n * [rangeChangeUpdate description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.rangeChangeUpdate = function () {\r\n this.sliceData();\r\n this._prevStartIndex = this.startIndex;\r\n this._prevEndIndex = this.endIndex;\r\n };\r\n /**\r\n * [appendDataItems description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.appendDataItems = function () {\r\n // TODO use an iterator instead\r\n var count = this.endIndex;\r\n for (var i = this.startIndex; i < count; i++) {\r\n // data item\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.__disabled = false;\r\n }\r\n }\r\n for (var i = 0; i < this.startIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.__disabled = true;\r\n }\r\n }\r\n for (var i = this.endIndex; i < this.dataItems.length; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.__disabled = true;\r\n }\r\n }\r\n };\r\n /**\r\n * If you want to have a smooth transition from one data values to another, you change your raw data and then you must call this method.\r\n * then instead of redrawing everything, the chart will check raw data and smoothly transit from previous to new data\r\n */\r\n Component.prototype.invalidateRawData = function () {\r\n if (this.disabled || this.isTemplate) {\r\n return;\r\n }\r\n //if(!this.rawDataInvalid){\r\n $array.move(registry.invalidRawDatas, this);\r\n system.requestFrame();\r\n this.rawDataInvalid = true;\r\n $iter.each(this.dataUsers.iterator(), function (x) {\r\n x.invalidateRawData();\r\n });\r\n //}\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Component.prototype.validateRawData = function () {\r\n var _this = this;\r\n $array.remove(registry.invalidRawDatas, this);\r\n $iter.each(this.mainDataSet.iterator(), function (dataItem) {\r\n if (dataItem) {\r\n _this.updateDataItem(dataItem);\r\n }\r\n });\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n Component.prototype.dispose = function () {\r\n var _this = this;\r\n this.mainDataSet.template.clones.clear();\r\n $object.each(this._dataSources, function (key, source) {\r\n _this.removeDispose(source);\r\n });\r\n this.disposeData();\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Component.prototype.disposeData = function () {\r\n this.mainDataSet.template.clones.clear();\r\n $array.each(this._dataDisposers, function (x) {\r\n x.dispose();\r\n });\r\n // and for all components\r\n $iter.each(this.dataUsers.iterator(), function (dataUser) {\r\n dataUser.disposeData();\r\n });\r\n this._dataDisposers.length = 0;\r\n this._startIndex = undefined;\r\n this._endIndex = undefined;\r\n // dispose old\r\n this.mainDataSet.clear();\r\n this.mainDataSet.template.clones.clear();\r\n if (this._dataSets) {\r\n this._dataSets.clear();\r\n }\r\n };\r\n Component.prototype.getDataItem = function (dataContext) {\r\n return this.mainDataSet.create();\r\n };\r\n /**\r\n * Validates (processes) data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.validateData = function () {\r\n this.dispatchImmediately(\"beforedatavalidated\");\r\n this.dataInvalid = false;\r\n registry.removeFromInvalidComponents(this);\r\n if (this.__disabled) {\r\n return;\r\n }\r\n this.dataValidationProgress = 0;\r\n // need this to slice new data\r\n this._prevStartIndex = undefined;\r\n this._prevEndIndex = undefined;\r\n // todo: this needs some overthinking, maybe some extra settings like zoomOotonDataupdate like in v3 or so. some charts like pie chart probably should act like this always\r\n this._startIndex = undefined;\r\n this._endIndex = undefined;\r\n if (this.dataFields.data && this.dataItem) {\r\n var dataContext = this.dataItem.dataContext;\r\n this._data = dataContext[this.dataFields.data];\r\n }\r\n // data items array is reset only if all data is validated, if _parseDataFrom is not 0, we append new data only\r\n // check heatmap demo if uncommented\r\n // fixed both issues by adding && this.data.length > 0\r\n // check adding series example if changed\r\n if (this._parseDataFrom === 0 && this.data.length > 0) {\r\n this.disposeData();\r\n }\r\n if (this.data.length > 0) {\r\n var preloader = this.preloader;\r\n // and for all components\r\n $iter.each(this.dataUsers.iterator(), function (dataUser) {\r\n // todo: this needs some overthinking, maybe some extra settings like zoomOUtonDataupdate like in v3 or so. some charts like pie chart probably should act like this always\r\n dataUser._startIndex = undefined;\r\n dataUser._endIndex = undefined;\r\n });\r\n var counter = 0;\r\n var startTime = Date.now();\r\n // parse data\r\n var i = this._parseDataFrom;\r\n var n = this.data.length;\r\n var _loop_1 = function () {\r\n var rawDataItem = this_1.data[i];\r\n if (this_1._usesData) {\r\n var dataItem = this_1.getDataItem(rawDataItem);\r\n this_1.processDataItem(dataItem, rawDataItem);\r\n }\r\n this_1.dataUsers.each(function (dataUser) {\r\n if (dataUser.data.length == 0) { // checking if data is not set directly\r\n var dataUserDataItem = dataUser.getDataItem(rawDataItem);\r\n dataUser.processDataItem(dataUserDataItem, rawDataItem);\r\n }\r\n });\r\n counter++;\r\n // show preloader if this takes too many time\r\n if (counter == 100) { // no need to check it on each data item\r\n counter = 0;\r\n var elapsed = Date.now() - startTime;\r\n if (elapsed > this_1.parsingStepDuration) {\r\n if (i < this_1.data.length - 10) {\r\n this_1._parseDataFrom = i + 1;\r\n // update preloader\r\n if (preloader) {\r\n if (i / this_1.data.length > 0.5 && !preloader.visible) {\r\n // do not start showing\r\n }\r\n else {\r\n preloader.progress = i / this_1.data.length;\r\n }\r\n }\r\n this_1.dataValidationProgress = i / this_1.data.length;\r\n i = this_1.data.length; // stops cycle\r\n this_1.invalidateData();\r\n return { value: void 0 };\r\n }\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (i; i < n; i++) {\r\n var state_1 = _loop_1();\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n if (preloader) {\r\n preloader.progress = 1;\r\n }\r\n this.dataUsers.each(function (dataUser) {\r\n if (dataUser.hidden || (dataUser.appeared && !dataUser.visible && dataUser.stacked)) {\r\n dataUser.hide(0);\r\n }\r\n });\r\n }\r\n this.dataValidationProgress = 1;\r\n this._parseDataFrom = 0; // reset this index, it is set to dataItems.length if addData() method was used.\r\n this.invalidateDataItems();\r\n if (!this._internalDefaultsApplied) {\r\n this.applyInternalDefaults();\r\n }\r\n this.dispatch(\"datavalidated\"); // can't zoom chart if dispatched immediately\r\n };\r\n /**\r\n * Validates (processes) data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.validateDataItems = function () {\r\n $array.remove(registry.invalidDataItems, this);\r\n this.dataItemsInvalid = false;\r\n this.invalidateDataRange();\r\n this.invalidate();\r\n this.dispatch(\"dataitemsvalidated\");\r\n };\r\n Object.defineProperty(Component.prototype, \"data\", {\r\n /**\r\n * Returns element's source (raw) data.\r\n *\r\n * @return Data\r\n */\r\n get: function () {\r\n if (!this._data) {\r\n this._data = [];\r\n }\r\n if (!this._adapterO) {\r\n return this._data;\r\n }\r\n else {\r\n return this._adapterO.apply(\"data\", this._data);\r\n }\r\n },\r\n /**\r\n * Sets source (raw) data for the element. The \"data\" is always an `Array`\r\n * of objects.\r\n *\r\n * IMPORTANT: The order of data items in `data` array is important as it\r\n * might affect chart look and behavior. [More details](https://www.amcharts.com/docs/v4/concepts/data/#Order_of_data_items).\r\n *\r\n * @param value Data\r\n */\r\n set: function (value) {\r\n this.setData(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Component.prototype.setData = function (value) {\r\n // array might be the same, but there might be items added\r\n // todo: check if array changed, toString maybe?\r\n if (!this.isDisposed()) {\r\n this._parseDataFrom = 0;\r\n this.disposeData();\r\n this._data = value;\r\n if (value && value.length > 0) {\r\n this.invalidateData();\r\n }\r\n else {\r\n this.dispatchImmediately(\"beforedatavalidated\");\r\n this.dispatch(\"datavalidated\");\r\n }\r\n }\r\n };\r\n /**\r\n * Returns (creates if necessary) a [[DataSource]] bound to any specific\r\n * property.\r\n *\r\n * For example if I want to bind `data` to an external JSON file, I'd create\r\n * a DataSource for it.\r\n *\r\n * @param property Property to bind external data to\r\n * @return A DataSource for property\r\n */\r\n Component.prototype.getDataSource = function (property) {\r\n var _this = this;\r\n if (!$type.hasValue(this._dataSources[property])) {\r\n this._dataSources[property] = new DataSource();\r\n this._dataSources[property].component = this;\r\n this.setDataSourceEvents(this._dataSources[property], property);\r\n this._dataSources[property].adapter.add(\"dateFields\", function (val) {\r\n return _this.dataSourceDateFields(val);\r\n });\r\n this._dataSources[property].adapter.add(\"numberFields\", function (val) {\r\n return _this.dataSourceNumberFields(val);\r\n });\r\n this.events.on(\"inited\", function () {\r\n _this.loadData(property);\r\n }, this, false);\r\n }\r\n return this._dataSources[property];\r\n };\r\n Object.defineProperty(Component.prototype, \"dataSource\", {\r\n /**\r\n * @return Data source\r\n */\r\n get: function () {\r\n if (!this._dataSources[\"data\"]) {\r\n this.getDataSource(\"data\");\r\n }\r\n return this._dataSources[\"data\"];\r\n },\r\n /**\r\n *A [[DataSource]] to be used for loading Component's data.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/loading-external-data/} for more on loading external data\r\n * @param value Data source\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this._dataSources[\"data\"]) {\r\n this.removeDispose(this._dataSources[\"data\"]);\r\n }\r\n this._dataSources[\"data\"] = value;\r\n this._dataSources[\"data\"].component = this;\r\n this.events.on(\"inited\", function () {\r\n _this.loadData(\"data\");\r\n }, this, false);\r\n this.setDataSourceEvents(value, \"data\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initiates loading of the external data via [[DataSource]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.loadData = function (property) {\r\n this._dataSources[property].load();\r\n };\r\n /**\r\n * This function is called by the [[DataSource]]'s `dateFields` adapater\r\n * so that particular chart types can popuplate this setting with their\r\n * own type-specific data fields so they are parsed properly.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Array of date fields\r\n * @return Array of date fields populated with chart's date fields\r\n */\r\n Component.prototype.dataSourceDateFields = function (value) {\r\n return value;\r\n };\r\n /**\r\n * This function is called by the [[DataSource]]'s `numberFields` adapater\r\n * so that particular chart types can popuplate this setting with their\r\n * own type-specific data fields so they are parsed properly.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Array of number fields\r\n * @return Array of number fields populated with chart's number fields\r\n */\r\n Component.prototype.dataSourceNumberFields = function (value) {\r\n return value;\r\n };\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param list [description]\r\n * @param dataFields [description]\r\n * @param targetList [description]\r\n * @return [description]\r\n */\r\n Component.prototype.populateDataSourceFields = function (list, dataFields, targetList) {\r\n $array.each(targetList, function (value) {\r\n if (dataFields[value] && $array.indexOf(list, dataFields[value]) === -1) {\r\n list.push(dataFields[value]);\r\n }\r\n });\r\n return list;\r\n };\r\n /**\r\n * Sets events on a [[DataSource]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.setDataSourceEvents = function (ds, property) {\r\n var _this = this;\r\n ds.events.on(\"started\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 0;\r\n //preloader.label.text = this.language.translate(\"Loading\");\r\n }\r\n }, undefined, false);\r\n ds.events.on(\"loadstarted\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 0.25;\r\n }\r\n }, undefined, false);\r\n ds.events.on(\"loadended\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 0.5;\r\n }\r\n }, undefined, false);\r\n ds.events.on(\"parseended\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 0.75;\r\n }\r\n }, undefined, false);\r\n ds.events.on(\"ended\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 1;\r\n }\r\n }, undefined, false);\r\n ds.events.on(\"error\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 1;\r\n }\r\n _this.openModal(ev.message);\r\n }, undefined, false);\r\n if (property) {\r\n ds.events.on(\"done\", function (ev) {\r\n var preloader = _this.preloader;\r\n if (preloader) {\r\n preloader.progress = 1;\r\n }\r\n if (property == \"data\" && !$type.isArray(ev.data)) {\r\n ev.data = [ev.data];\r\n }\r\n if (ds.incremental && property == \"data\" && _this.data.length) {\r\n _this.addData(ev.data, ds.keepCount ? ev.data.length : 0);\r\n }\r\n else if (ds.updateCurrentData && property == \"data\" && _this.data.length) {\r\n // cycle through existing data items\r\n $array.each(_this.data, function (item, index) {\r\n if ($type.hasValue(ev.data[index])) {\r\n $object.each(item, function (key, val) {\r\n if ($type.hasValue(ev.data[index][key])) {\r\n item[key] = ev.data[index][key];\r\n }\r\n });\r\n }\r\n });\r\n _this.invalidateRawData();\r\n }\r\n else {\r\n _this[property] = ev.data;\r\n }\r\n });\r\n }\r\n };\r\n Object.defineProperty(Component.prototype, \"responsive\", {\r\n /**\r\n * @return Responsive rules handler\r\n */\r\n get: function () {\r\n if (!this._responsive) {\r\n this._responsive = new Responsive();\r\n this._responsive.component = this;\r\n }\r\n return this._responsive;\r\n },\r\n /**\r\n * A [[Responsive]] instance to be used when applying conditional\r\n * property values.\r\n *\r\n * NOTE: Responsive features are currently in development and may not work\r\n * as expected, if at all.\r\n *\r\n * @param value Responsive rules handler\r\n */\r\n set: function (value) {\r\n this._responsive = value;\r\n this._responsive.component = this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets current zoom.\r\n *\r\n * The range uses relative values from 0 to 1, with 0 marking beginning and 1\r\n * marking end of the available data range.\r\n *\r\n * This method will not have any effect when called on a chart object.\r\n * Since the chart can have a number of axes and series, each with its own\r\n * data, the meaning of \"range\" is very ambiguous.\r\n *\r\n * To zoom the chart use `zoom*` methods on its respective axes.\r\n *\r\n * @param range Range\r\n * @param skipRangeEvent Should rangechanged event not be triggered?\r\n * @param instantly Do not animate?\r\n * @return Actual modidied range (taking `maxZoomFactor` into account)\r\n */\r\n Component.prototype.zoom = function (range, skipRangeEvent, instantly, declination) {\r\n var _this = this;\r\n if (skipRangeEvent === void 0) { skipRangeEvent = false; }\r\n if (instantly === void 0) { instantly = false; }\r\n var start = range.start;\r\n var end = range.end;\r\n var priority = range.priority;\r\n if (range.start == range.end) {\r\n range.start = range.start - 0.5 / this.maxZoomFactor;\r\n range.end = range.end + 0.5 / this.maxZoomFactor;\r\n }\r\n if (priority == \"end\" && end == 1 && start != 0) {\r\n if (start < this.start) {\r\n priority = \"start\";\r\n }\r\n }\r\n if (priority == \"start\" && start == 0) {\r\n if (end > this.end) {\r\n priority = \"end\";\r\n }\r\n }\r\n if (!$type.isNumber(declination)) {\r\n declination = this.maxZoomDeclination;\r\n }\r\n if (!$type.isNumber(start) || !$type.isNumber(end)) {\r\n return { start: this.start, end: this.end };\r\n }\r\n if (this._finalStart != start || this._finalEnd != end) {\r\n var maxZoomFactor = this.maxZoomFactor / this.minZoomCount;\r\n var minZoomFactor = this.maxZoomFactor / this.maxZoomCount;\r\n // most likely we are dragging left scrollbar grip here, so we tend to modify end\r\n if (priority == \"start\") {\r\n if (this.maxZoomCount > 0) {\r\n // add to the end\r\n if (1 / (end - start) < minZoomFactor) {\r\n end = start + 1 / minZoomFactor;\r\n }\r\n }\r\n // add to the end\r\n if (1 / (end - start) > maxZoomFactor) {\r\n end = start + 1 / maxZoomFactor;\r\n }\r\n //unless end is > 0\r\n if (end > 1 && end - start < 1 / maxZoomFactor) {\r\n //end = 1;\r\n start = end - 1 / maxZoomFactor;\r\n }\r\n }\r\n // most likely we are dragging right, so we modify left\r\n else {\r\n if (this.maxZoomCount > 0) {\r\n // add to the end\r\n if (1 / (end - start) < minZoomFactor) {\r\n start = end - 1 / minZoomFactor;\r\n }\r\n }\r\n // remove from start\r\n if (1 / (end - start) > maxZoomFactor) {\r\n if (start <= 0) {\r\n end = start + 1 / maxZoomFactor;\r\n }\r\n else {\r\n start = end - 1 / maxZoomFactor;\r\n }\r\n }\r\n if (start < 0 && end - start < 1 / maxZoomFactor) {\r\n //start = 0;\r\n end = start + 1 / maxZoomFactor;\r\n }\r\n }\r\n if (start < -declination) {\r\n start = -declination;\r\n }\r\n if (1 / (end - start) > maxZoomFactor) {\r\n end = start + 1 / maxZoomFactor;\r\n }\r\n if (end > 1 + declination) {\r\n end = 1 + declination;\r\n }\r\n if (1 / (end - start) > maxZoomFactor) {\r\n start = end - 1 / maxZoomFactor;\r\n }\r\n this._finalEnd = end;\r\n this._finalStart = start;\r\n this.skipRangeEvent = skipRangeEvent;\r\n this.dispatchImmediately(\"rangechangestarted\");\r\n if (this.rangeChangeDuration > 0 && !instantly) {\r\n // todo: maybe move this to Animation\r\n var rangeChangeAnimation = this.rangeChangeAnimation;\r\n if (rangeChangeAnimation && rangeChangeAnimation.progress < 1) {\r\n var options = rangeChangeAnimation.animationOptions;\r\n if (options.length > 1) {\r\n if (options[0].to == start && options[1].to == end) {\r\n return { start: start, end: end };\r\n }\r\n else {\r\n if (!rangeChangeAnimation.isDisposed()) {\r\n rangeChangeAnimation.stop();\r\n }\r\n }\r\n }\r\n }\r\n if (this.rangeChangeAnimation) {\r\n this.rangeChangeAnimation.kill();\r\n }\r\n rangeChangeAnimation = this.animate([{ property: \"start\", to: start }, { property: \"end\", to: end }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n this.rangeChangeAnimation = rangeChangeAnimation;\r\n if (rangeChangeAnimation && !rangeChangeAnimation.isFinished()) {\r\n rangeChangeAnimation.events.on(\"animationended\", function () {\r\n _this.dispatchImmediately(\"rangechangeended\");\r\n });\r\n }\r\n else {\r\n this.dispatchImmediately(\"rangechangeended\");\r\n }\r\n }\r\n else {\r\n this.start = start;\r\n this.end = end;\r\n this.dispatch(\"rangechangeended\");\r\n }\r\n }\r\n return { start: start, end: end };\r\n };\r\n /**\r\n * Zooms to specific data items using their index in data.\r\n *\r\n * This method will not have any effect when called on a chart object.\r\n * Since the chart can have a number of axes and series, each with its own\r\n * data, the meaning of \"index\" is very ambiguous.\r\n *\r\n * To zoom the chart use `zoom*` methods on its respective axes.\r\n *\r\n * @param startIndex Index of the starting data item\r\n * @param endIndex Index of the ending data item\r\n * @param skipRangeEvent Should rangechanged event not be triggered?\r\n * @param instantly Do not animate?\r\n */\r\n Component.prototype.zoomToIndexes = function (startIndex, endIndex, skipRangeEvent, instantly) {\r\n if (!$type.isNumber(startIndex) || !$type.isNumber(endIndex)) {\r\n return;\r\n }\r\n var start = startIndex / this.dataItems.length;\r\n var end = endIndex / this.dataItems.length;\r\n this.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n };\r\n Object.defineProperty(Component.prototype, \"zoomFactor\", {\r\n /**\r\n * A current zoom factor (0-1). 1 meaning fully zoomed out. (showing all of\r\n * the available data)\r\n *\r\n * @return Zoom factor\r\n */\r\n get: function () {\r\n return $math.fitToRange(1 / (this.end - this.start), 1, this.maxZoomFactor);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"maxZoomFactor\", {\r\n /**\r\n * @return Maximum zoomFactor\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxZoomFactor\");\r\n },\r\n /**\r\n * Max available `zoomFactor`.\r\n *\r\n * The element will not allow zoom to occur beyond this factor.\r\n *\r\n * [[DateAxis]] and [[CategoryAxis]] calculate this atutomatically so that\r\n * category axis could be zoomed to one category and date axis allows to be\r\n * zoomed up to one base interval.\r\n *\r\n * In case you want to restrict category or date axis to be zoomed to more\r\n * than one category or more than one base interval, use `minZoomCount`\r\n * property (set it to `> 1`).\r\n *\r\n * Default value of [[ValueAxis]]'s `maxZoomFactor` is `1000`.\r\n *\r\n * Feel free to modify it to allow bigger zoom or to restrict zooming.\r\n *\r\n * @param value Maximum zoomFactor\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"maxZoomFactor\", value)) {\r\n if (value == 1) {\r\n this.maxZoomDeclination = 0;\r\n }\r\n this.invalidateDataRange();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"maxZoomDeclination\", {\r\n /**\r\n * @ignore\r\n * @return Maximum zoom declination\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxZoomDeclination\");\r\n },\r\n /**\r\n * Max zoom declination.\r\n *\r\n * @ignore\r\n * @default 1\r\n * @param value Maximum zoom declination\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"maxZoomDeclination\", value)) {\r\n this.invalidateDataRange();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"startIndex\", {\r\n /**\r\n * Current starting index.\r\n *\r\n * @return Start index\r\n */\r\n get: function () {\r\n if (!$type.isNumber(this._startIndex)) {\r\n this._startIndex = 0;\r\n }\r\n return this._startIndex;\r\n },\r\n /**\r\n * Sets current starting index.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Start index\r\n */\r\n set: function (value) {\r\n this._startIndex = $math.fitToRange(Math.round(value), 0, this.dataItems.length);\r\n //this._workingStartIndex = this._startIndex; // not good, breaks adjusted working start index of line series\r\n this.start = this.indexToPosition(this._startIndex);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n * @todo:review description\r\n * returns item's relative position by the index of the item\r\n * @param index\r\n */\r\n Component.prototype.indexToPosition = function (index) {\r\n return index / this.dataItems.length;\r\n };\r\n Object.defineProperty(Component.prototype, \"endIndex\", {\r\n /**\r\n * Current ending index.\r\n *\r\n * @return End index\r\n */\r\n get: function () {\r\n var count = this.dataItems.length;\r\n if (!$type.isNumber(this._endIndex) || this._endIndex > count) {\r\n this._endIndex = count;\r\n }\r\n return this._endIndex;\r\n },\r\n /**\r\n * Sets current ending index.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value End index\r\n */\r\n set: function (value) {\r\n this._endIndex = $math.fitToRange(Math.round(value), 0, this.dataItems.length);\r\n //this._workingEndIndex = this._endIndex; // not good, breaks adjusted workingend index of line series\r\n this.end = this.indexToPosition(this._endIndex);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"start\", {\r\n /**\r\n * @return Start (0-1)\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n return this._start;\r\n }\r\n else {\r\n return this._adapterO.apply(\"start\", this._start);\r\n }\r\n },\r\n /**\r\n * Start of the current data range (zoom).\r\n *\r\n * These are relative values from 0 (beginning) to 1 (end).\r\n *\r\n * @param value Start (0-1)\r\n */\r\n set: function (value) {\r\n // value = $math.round(value, 10); not good\r\n //if (1 / (this.end - value) > this.maxZoomFactor) {\r\n //\tvalue = this.end - 1 / this.maxZoomFactor;\r\n //}\r\n if (this._start != value) {\r\n this._start = value;\r\n var startIndex = Math.max(0, Math.floor(this.dataItems.length * value) || 0);\r\n this._startIndex = Math.min(startIndex, this.dataItems.length);\r\n this.invalidateDataRange();\r\n this.invalidate();\r\n this.dispatchImmediately(\"startchanged\");\r\n this.dispatch(\"startendchanged\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"end\", {\r\n /**\r\n * @return End (0-1)\r\n */\r\n get: function () {\r\n if (!this._adapterO) {\r\n return this._end;\r\n }\r\n else {\r\n return this._adapterO.apply(\"end\", this._end);\r\n }\r\n },\r\n /**\r\n * End of the current data range (zoom).\r\n *\r\n * These are relative values from 0 (beginning) to 1 (end).\r\n *\r\n * @param value End (0-1)\r\n */\r\n set: function (value) {\r\n // value = $math.round(value, 10); // not good\r\n //if (1 / (value - this.start) > this.maxZoomFactor) {\r\n //\tvalue = 1 / this.maxZoomFactor + this.start;\r\n //}\r\n if (this._end != value) {\r\n this._end = value;\r\n this._endIndex = Math.min(this.dataItems.length, Math.ceil(this.dataItems.length * value) || 0);\r\n this.invalidateDataRange();\r\n this.invalidate();\r\n this.dispatchImmediately(\"endchanged\");\r\n this.dispatch(\"startendchanged\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [removeFromInvalids description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Component.prototype.removeFromInvalids = function () {\r\n _super.prototype.removeFromInvalids.call(this);\r\n registry.removeFromInvalidComponents(this);\r\n $array.remove(registry.invalidDataItems, this);\r\n $array.remove(registry.invalidDataRange, this);\r\n $array.remove(registry.invalidRawDatas, this);\r\n };\r\n Object.defineProperty(Component.prototype, \"dataItems\", {\r\n /**\r\n * Returns a list of source [[DataItem]] objects currently used in the chart.\r\n *\r\n * @return List of data items\r\n */\r\n get: function () {\r\n if (this._currentDataSetId != \"\") {\r\n var dataItems = this.dataSets.getKey(this._currentDataSetId);\r\n if (dataItems) {\r\n return dataItems;\r\n }\r\n }\r\n return this._dataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"dataSets\", {\r\n /**\r\n * Holds data items for data sets (usually aggregated data).\r\n *\r\n * @ignore\r\n * @since 4.7.0\r\n * @return Data sets\r\n */\r\n get: function () {\r\n if (!this._dataSets) {\r\n this._dataSets = new Dictionary();\r\n }\r\n return this._dataSets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Makes the chart use particular data set.\r\n *\r\n * If `id` is not provided or there is no such data set, main data will be\r\n * used.\r\n *\r\n * @ignore\r\n * @since 4.7.0\r\n * @param id Data set id\r\n */\r\n Component.prototype.setDataSet = function (id) {\r\n if (this._currentDataSetId != id) {\r\n var dataSet = this.dataSets.getKey(id);\r\n if (!dataSet) {\r\n if (this._currentDataSetId != \"\") {\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.__disabled = true;\r\n });\r\n this._currentDataSetId = \"\";\r\n this.invalidateDataRange();\r\n this._prevStartIndex = undefined;\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.__disabled = false;\r\n });\r\n return true;\r\n }\r\n }\r\n else {\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.__disabled = true;\r\n });\r\n this._currentDataSetId = id;\r\n this.invalidateDataRange();\r\n this._prevStartIndex = undefined;\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.__disabled = false;\r\n });\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Component.prototype, \"currentDataSetId\", {\r\n /**\r\n * Returns id of the currently used data set, or `undefined` if main data set\r\n * is in use.\r\n *\r\n * @since 4.7.0\r\n * @return Current data set id\r\n */\r\n get: function () {\r\n return this._currentDataSetId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"mainDataSet\", {\r\n /**\r\n * Returns reference to \"main\" data set (unaggregated data as it was supplied\r\n * in `data`).\r\n *\r\n * @since 4.7.0\r\n * @return Main data set\r\n */\r\n get: function () {\r\n return this._dataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates the indexes for the dataItems\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype._updateDataItemIndexes = function (startIndex) {\r\n var dataItems = this.mainDataSet.values;\r\n var length = dataItems.length;\r\n for (var i = startIndex; i < length; ++i) {\r\n dataItems[i]._index = i;\r\n }\r\n };\r\n /**\r\n * Processes newly added [[DataItem]] as well as triggers data re-validation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event [description]\r\n */\r\n Component.prototype.handleDataItemAdded = function (event) {\r\n event.newValue.component = this;\r\n this._updateDataItemIndexes(event.index);\r\n if (!this.dataItemsInvalid) {\r\n this.invalidateDataItems();\r\n }\r\n };\r\n /**\r\n * removes [[DataItem]] as well as triggers data re-validation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event [description]\r\n */\r\n Component.prototype.handleDataItemRemoved = function (event) {\r\n //\t\tevent.oldValue.component = undefined; // not good, as some items might be not removed from component lists\r\n this._updateDataItemIndexes(event.index);\r\n if (!this.dataItemsInvalid) {\r\n this.invalidateDataItems();\r\n }\r\n };\r\n /**\r\n * Binds a data element's field to a specific field in raw data.\r\n * For example, for the very basic column chart you'd want to bind a `value`\r\n * field to a field in data, such as `price`.\r\n *\r\n * Some more advanced Components, like [[CandlestickSeries]] need several\r\n * data fields bound to data, such as ones for open, high, low and close\r\n * values.\r\n *\r\n * @todo Example\r\n * @param field Field name\r\n * @param value Field name in data\r\n */\r\n Component.prototype.bindDataField = function (field, value) {\r\n this.dataFields[field] = value;\r\n this.invalidateDataRange();\r\n };\r\n /**\r\n * Invalidates processed data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype.invalidateProcessedData = function () {\r\n this.resetProcessedRange();\r\n this.invalidateDataRange();\r\n };\r\n /**\r\n * [resetProcessedRange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Component.prototype.resetProcessedRange = function () {\r\n this._prevEndIndex = null;\r\n this._prevStartIndex = null;\r\n };\r\n Object.defineProperty(Component.prototype, \"dataUsers\", {\r\n /**\r\n * Returns all other [[Component]] objects that are using this element's\r\n * data.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @return [description]\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._dataUsers) {\r\n this._dataUsers = new List();\r\n //this._disposers.push(new ListDisposer(this._dataUsers));\r\n // TODO better way of handling this? e.g. move into another module ?\r\n this._disposers.push(new Disposer(function () {\r\n // TODO clear the list ?\r\n $iter.each(_this._dataUsers.iterator(), function (x) {\r\n x.dispose();\r\n });\r\n }));\r\n }\r\n return this._dataUsers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a clone of this element.\r\n *\r\n * @return Clone\r\n */\r\n Component.prototype.clone = function () {\r\n var component = _super.prototype.clone.call(this);\r\n component.dataFields = $utils.copyProperties(this.dataFields, {});\r\n return component;\r\n };\r\n /**\r\n * Copies all parameters from another [[Component]].\r\n *\r\n * @param source Source Component\r\n */\r\n Component.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.data = source.data;\r\n this.sequencedInterpolation = source.sequencedInterpolation;\r\n this.sequencedInterpolationDelay = source.sequencedInterpolationDelay;\r\n this.interpolationDuration = source.interpolationDuration;\r\n this.interpolationEasing = source.interpolationEasing;\r\n };\r\n /**\r\n * Invalidates the whole element, including all its children, causing\r\n * complete re-parsing of data and redraw.\r\n *\r\n * Use sparingly!\r\n */\r\n Component.prototype.reinit = function () {\r\n this._inited = false;\r\n this.deepInvalidate();\r\n };\r\n /**\r\n * Add an adapter for data.\r\n *\r\n * @return Exporting\r\n */\r\n Component.prototype.getExporting = function () {\r\n var _export = _super.prototype.getExporting.call(this);\r\n if (!_export.adapter.has(\"data\", this._exportData, -1, this)) {\r\n _export.adapter.add(\"data\", this._exportData, -1, this);\r\n this.events.on(\"datavalidated\", function (ev) {\r\n _export.handleDataUpdated();\r\n });\r\n }\r\n return _export;\r\n };\r\n Component.prototype._exportData = function (arg) {\r\n arg.data = this.data;\r\n return arg;\r\n };\r\n Component.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (changed) {\r\n this.invalidateData();\r\n }\r\n return changed;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Component.prototype.setShowOnInit = function (value) {\r\n if (value != this.getPropertyValue(\"showOnInit\")) {\r\n if (value && !this.inited && !this.hidden) {\r\n this._showOnInitDisposer2 = this.events.once(\"dataitemsvalidated\", this.hideInitially, this, false);\r\n this._disposers.push(this._showOnInitDisposer2);\r\n }\r\n else {\r\n if (this._showOnInitDisposer2) {\r\n this.removeDispose(this._showOnInitDisposer2);\r\n }\r\n }\r\n }\r\n // important order here\r\n _super.prototype.setShowOnInit.call(this, value);\r\n };\r\n Component.prototype.setBaseId = function (value) {\r\n if (value != this._baseId) {\r\n if (this.dataInvalid) {\r\n this.dataInvalid = false;\r\n registry.removeFromInvalidComponents(this);\r\n this._baseId = value;\r\n this.invalidateData();\r\n }\r\n }\r\n _super.prototype.setBaseId.call(this, value);\r\n };\r\n Object.defineProperty(Component.prototype, \"minZoomCount\", {\r\n /**\r\n * @return Min zoom count\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minZoomCount\");\r\n },\r\n /**\r\n * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n *\r\n * Allows restricting zoom in beyond certain number of categories or base\r\n * intervals.\r\n *\r\n * @default 1\r\n * @param value Min zoom count\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minZoomCount\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"maxZoomCount\", {\r\n /**\r\n * @return Max zoom count\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxZoomCount\");\r\n },\r\n /**\r\n * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n *\r\n * Limits how many categories or base intervals can be shown at the same\r\n * time.\r\n *\r\n * If there are more items in the chart, the chart will auto-zoom.\r\n *\r\n * @default 0 (no limit)\r\n * @since 4.6.2\r\n * @param value Max zoom count\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxZoomCount\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Called during the System.update method\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Component.prototype._systemCheckIfValidate = function () {\r\n if (this.dataInvalid || (this.dataProvider && this.dataProvider.dataInvalid)) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n /**\r\n * Adds easing functions to \"function\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n Component.prototype.asFunction = function (field) {\r\n return field == \"interpolationEasing\" || field == \"rangeChangeEasing\" || _super.prototype.asIs.call(this, field);\r\n };\r\n return Component;\r\n}(Container));\r\nexport { Component };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Component\"] = Component;\r\n//# sourceMappingURL=Component.js.map","/**\r\n * Functionality for drawing circles.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { percent } from \"../utils/Percent\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to create a circle\r\n * @see {@link ICircleEvents} for a list of available events\r\n * @see {@link ICircleAdapters} for a list of available Adapters\r\n */\r\nvar Circle = /** @class */ (function (_super) {\r\n __extends(Circle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Circle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Circle\";\r\n _this.element = _this.paper.add(\"circle\");\r\n _this.setPercentProperty(\"radius\", percent(100));\r\n _this.setPropertyValue(\"horizontalCenter\", \"middle\");\r\n _this.setPropertyValue(\"verticalCenter\", \"middle\");\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the circle.\r\n */\r\n Circle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n this.element.attr({ \"r\": this.pixelRadius });\r\n };\r\n Object.defineProperty(Circle.prototype, \"radius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Radius of the circle.\r\n *\r\n * Can be either absolute (pixels) or relative ([Percent]).\r\n *\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Circle.prototype, \"pixelRadius\", {\r\n /**\r\n * Radius of the circle in pixels.\r\n *\r\n * This is a read-only property. To set radius in pixels, use `radius`\r\n * property.\r\n *\r\n * @readonly\r\n * @return Radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeToValue(this.radius, $math.min(this.innerWidth / 2, this.innerHeight / 2));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates bounding box.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Circle.prototype.measureElement = function () {\r\n var pixelRadius = this.pixelRadius;\r\n this._bbox = {\r\n x: -pixelRadius,\r\n y: -pixelRadius,\r\n width: pixelRadius * 2,\r\n height: pixelRadius * 2\r\n };\r\n };\r\n return Circle;\r\n}(Sprite));\r\nexport { Circle };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Circle\"] = Circle;\r\n//# sourceMappingURL=Circle.js.map","/**\r\n * This module contains a base class for an SVG filter.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { Animation, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { List } from \"../../utils/List\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base filter class.\r\n *\r\n * This class while can be instantiated will not do anything. It is just a base\r\n * functionality for any other \"real\" filters to extend.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n *\r\n * @todo Example\r\n */\r\nvar Filter = /** @class */ (function (_super) {\r\n __extends(Filter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Filter() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A storage for Filter property/value pairs.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link FilterProperties}\r\n */\r\n _this.properties = {};\r\n /**\r\n * Identifies if this object is a \"template\" and should not be treated as\r\n * real object that is drawn or actually used in the chart.\r\n */\r\n _this.isTemplate = false;\r\n /**\r\n * [_scale description]\r\n *\r\n * @todo Description\r\n */\r\n _this._scale = 1;\r\n /**\r\n * [_nonScaling description]\r\n *\r\n * @todo Description\r\n */\r\n _this._nonScaling = true;\r\n _this.className = \"Filter\";\r\n // Create a list to hold primitives (effect elements)\r\n _this.filterPrimitives = new List();\r\n _this.properties.filterUnits = \"objectBoundingBox\";\r\n // Automatically add added primitives to `_disposers` so they are discarded\r\n // when Filter object is destroyed (disposed)\r\n _this.filterPrimitives.events.on(\"inserted\", function (ev) {\r\n _this._disposers.push(ev.newValue);\r\n });\r\n // Set default dimensions\r\n _this.width = 120;\r\n _this.height = 120;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Appends actual filter elements to the filter group.\r\n *\r\n * @ignore Exclude from docs\r\n * @param filterElement An SVG `<group>` element to add filter element to\r\n */\r\n Filter.prototype.appendPrimitives = function (filterElement) {\r\n $iter.each(this.filterPrimitives.iterator(), function (filterPrimitive) {\r\n filterElement.add(filterPrimitive);\r\n });\r\n };\r\n /**\r\n * Uses Transitions filter's values from current to target. This is used to\r\n * smoothly appear filter, rather than it pop into effect.\r\n *\r\n * @ignore Exclude from docs\r\n * @param animationOptions Animation options\r\n * @param duration Duration in milliseconds\r\n * @param easing Easing function\r\n * @return Animation instance\r\n */\r\n Filter.prototype.animate = function (animationOptions, duration, easing) {\r\n var animation = new Animation(this, animationOptions, duration, easing).start();\r\n return animation;\r\n };\r\n Object.defineProperty(Filter.prototype, \"width\", {\r\n /**\r\n * @return Width (%)\r\n */\r\n get: function () {\r\n return this.properties[\"width\"];\r\n },\r\n /**\r\n * Width of the filter element in percent.\r\n *\r\n * If the filter is designed to \"bleed out\" of the original target element,\r\n * like for example a shadow, you need this bigger than 100, or the\r\n * non-fitting parts will be clipped.\r\n *\r\n * @default 120\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"width\"] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"height\", {\r\n /**\r\n * @return Height\r\n */\r\n get: function () {\r\n return this.properties[\"height\"];\r\n },\r\n /**\r\n * Height of the filter element in percent.\r\n *\r\n * If the filter is designed to \"bleed out\" of the original target element,\r\n * like for example a shadow, you need this bigger than 100, or the\r\n * non-fitting parts will be clipped.\r\n *\r\n * @default 120\r\n * @param value Height (%)\r\n */\r\n set: function (value) {\r\n this.properties[\"height\"] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another [[Filter]] object.\r\n *\r\n * @param filter Source [[Filter]] object\r\n */\r\n Filter.prototype.copyFrom = function (filter) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, filter);\r\n $object.each(filter.properties, function (key, value) {\r\n _this[key] = value;\r\n });\r\n };\r\n Object.defineProperty(Filter.prototype, \"paper\", {\r\n /**\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * Sets [[Paper]] instance to create filter's elements in.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"animations\", {\r\n /**\r\n * All animations currently in play.\r\n *\r\n * @ignore Exclude from docs\r\n * @return List of animations\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"scale\", {\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n return this._scale;\r\n },\r\n /**\r\n * [[Sprite]] uses this method to inform filter about it's scale.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n set: function (value) {\r\n this._scale = value;\r\n this.updateScale();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates filter properties which depend on scale.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Filter.prototype.updateScale = function () {\r\n // Dummy method for extending classes to override.\r\n };\r\n Object.defineProperty(Filter.prototype, \"filterUnits\", {\r\n /**\r\n * @return Filter units\r\n */\r\n get: function () {\r\n return this.properties.filterUnits;\r\n },\r\n /**\r\n * Which units are used when drawing filter.\r\n *\r\n * Use `\"userSpaceOnUse\"` when applying filters on a perfectly straight line.\r\n *\r\n * @since 4.9.17\r\n * @default objectBoundingBox\r\n * @param value Filter units\r\n */\r\n set: function (value) {\r\n this.properties.filterUnits = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"nonScaling\", {\r\n /**\r\n * @return Non scaling?\r\n */\r\n get: function () {\r\n return this._nonScaling;\r\n },\r\n /**\r\n * If a filter is non scaling, it will look the same even if the sprite is\r\n * scaled, otherwise filter will scale together with a [[Sprite]].\r\n *\r\n * @default false\r\n * @param value Non scaling?\r\n */\r\n set: function (value) {\r\n this._nonScaling = value;\r\n if (!value) {\r\n this._scale = 1;\r\n }\r\n this.updateScale();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Filter.prototype, \"sprite\", {\r\n /**\r\n * A target element this filter is currently attached to.\r\n *\r\n * We need to keep track of it because one filter can be used for just one\r\n * element, so we have to remove it from the old \"parent\" when attaching to\r\n * the new one.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Target element\r\n */\r\n set: function (value) {\r\n this.setSprite(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets filter's target element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Element filter is being attached to\r\n */\r\n Filter.prototype.setSprite = function (value) {\r\n if (this._sprite && this._sprite != value) {\r\n this._sprite.filters.removeValue(this);\r\n }\r\n this._sprite = value;\r\n };\r\n return Filter;\r\n}(BaseObject));\r\nexport { Filter };\r\n//# sourceMappingURL=Filter.js.map","/**\r\n * Contains code and logic for generating radial gradients.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $type from \"../../utils/Type\";\r\nimport { Percent } from \"../../utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Radial gradient class.\r\n */\r\nvar RadialGradient = /** @class */ (function (_super) {\r\n __extends(RadialGradient, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadialGradient() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * List of colors switch definitions in a gradient.\r\n */\r\n _this._stops = new List();\r\n _this.element = _this.paper.addGroup(\"radialGradient\");\r\n _this.id = \"gradient-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws gradient.\r\n */\r\n RadialGradient.prototype.draw = function () {\r\n var _this = this;\r\n var gradientElement = this.element;\r\n if ($type.isNumber(this.cx)) {\r\n var value = this.cx;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"cx\": value });\r\n }\r\n if ($type.isNumber(this.cy)) {\r\n var value = this.cy;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"cy\": value });\r\n }\r\n if (this.fx) {\r\n var value = this.fx;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"fx\": value });\r\n }\r\n if (this.fy) {\r\n var value = this.fy;\r\n if (value instanceof Percent) {\r\n value = value.percent + \"%\";\r\n }\r\n gradientElement.attr({ \"fy\": value });\r\n }\r\n gradientElement.removeChildNodes();\r\n $iter.each($iter.indexed(this._stops.iterator()), function (a) {\r\n var i = a[0];\r\n var stop = a[1];\r\n var offset = stop.offset;\r\n if (!$type.isNumber(offset)) {\r\n offset = i / (_this._stops.length - 1);\r\n }\r\n var gradientStop = _this.paper.add(\"stop\");\r\n if ($type.hasValue(stop.color)) {\r\n gradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n }\r\n if ($type.isNumber(stop.opacity)) {\r\n gradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n }\r\n if ($type.isNumber(offset)) {\r\n gradientStop.attr({ \"offset\": offset });\r\n }\r\n gradientElement.add(gradientStop);\r\n });\r\n };\r\n /**\r\n * Adds a color step to the gradient.\r\n *\r\n * @param color Color (hex code or named color)\r\n * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n */\r\n RadialGradient.prototype.addColor = function (color, opacity, offset) {\r\n this._stops.push({ color: color, opacity: opacity, offset: offset });\r\n this.draw();\r\n };\r\n Object.defineProperty(RadialGradient.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * A [[Paper]] instace to use for the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.draw();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"cx\", {\r\n get: function () {\r\n return this._cx;\r\n },\r\n /**\r\n * Center x coordinate of the gradient, can be set as number or Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._cx = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"cy\", {\r\n get: function () {\r\n return this._cy;\r\n },\r\n /**\r\n * Center y coordinate of the gradient, can be set as number or Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._cy = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"fx\", {\r\n get: function () {\r\n return this._fx;\r\n },\r\n /**\r\n * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._fx = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadialGradient.prototype, \"fy\", {\r\n get: function () {\r\n return this._fy;\r\n },\r\n /**\r\n * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n *\r\n * @param point Center point\r\n */\r\n set: function (value) {\r\n this._fy = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n RadialGradient.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.stops.copyFrom(source.stops);\r\n this.cx = source.cx;\r\n this.cy = source.cy;\r\n this.fx = source.fx;\r\n this.fy = source.fy;\r\n };\r\n Object.defineProperty(RadialGradient.prototype, \"stops\", {\r\n /**\r\n * A list of color stops in the gradient.\r\n *\r\n * @return Stops\r\n */\r\n get: function () {\r\n return this._stops;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Clears the gradient.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadialGradient.prototype.clear = function () {\r\n this._stops.clear();\r\n };\r\n return RadialGradient;\r\n}(BaseObject));\r\nexport { RadialGradient };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradient\"] = RadialGradient;\r\n//# sourceMappingURL=RadialGradient.js.map","import addDOMEventListener from 'add-dom-event-listener';\nimport 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 return addDOMEventListener(target, eventType, callback, option);\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}","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","/**\r\n * Slice module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport { Percent } from \"../utils/Percent\";\r\nimport { RadialGradient } from \"../rendering/fills/RadialGradient\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a wedged semi-circle - slice. Usually used for Pie/Donut charts.\r\n *\r\n * @see {@link ISliceEvents} for a list of available events\r\n * @see {@link ISliceAdapters} for a list of available Adapters\r\n */\r\nvar Slice = /** @class */ (function (_super) {\r\n __extends(Slice, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Slice() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"Slice\";\r\n // Set defaults\r\n _this.setPropertyValue(\"cornerRadius\", 0);\r\n _this.setPropertyValue(\"startAngle\", 0);\r\n _this.setPercentProperty(\"innerRadius\", 0);\r\n _this.setPercentProperty(\"radius\", 0);\r\n _this.setPropertyValue(\"arc\", 0);\r\n _this.setPropertyValue(\"shiftRadius\", 0);\r\n _this.strokeOpacity = 1;\r\n _this.setPropertyValue(\"layout\", \"none\");\r\n // Create a slice wedge element\r\n _this.slice = _this.createChild(Sprite);\r\n _this.slice.isMeasured = false;\r\n _this._disposers.push(_this.slice);\r\n //this.element.attr({ \"stroke-linejoin\": \"round\" });\r\n //this.element.attr({ \"stroke-linecap\": \"round\" });\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Slice.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var radiusY = this.radiusY;\r\n if (this.radius > 0 && radiusY == 0) {\r\n radiusY = 0.01;\r\n }\r\n this.slice.path = $path.arc(this.startAngle, this.arc, this.radius, this.pixelInnerRadius, radiusY, this.cornerRadius, this.innerCornerRadius);\r\n this.slice.invalidate();\r\n this.shiftRadius = this.shiftRadius;\r\n if (this.realFill instanceof RadialGradient) {\r\n this.updateGradient(this.realFill);\r\n }\r\n if (this.realStroke instanceof RadialGradient) {\r\n this.updateGradient(this.realStroke);\r\n }\r\n };\r\n Slice.prototype.updateGradient = function (gradient) {\r\n gradient.element.attr({ \"gradientUnits\": \"userSpaceOnUse\" });\r\n gradient.element.attr({ \"r\": this.radius });\r\n gradient.cx = 0;\r\n gradient.cy = 0;\r\n gradient.element.attr({ radius: this.radius });\r\n };\r\n Object.defineProperty(Slice.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n if (this.isMeasured) {\r\n var innerRect = $math.getArcRect(this.startAngle, this.startAngle + this.arc, this.pixelInnerRadius);\r\n var outerRect = $math.getArcRect(this.startAngle, this.startAngle + this.arc, this.radius);\r\n return $math.getCommonRectangle([innerRect, outerRect]);\r\n }\r\n else {\r\n return { x: 0, y: 0, width: 0, height: 0 };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"startAngle\", {\r\n /**\r\n * @return Angle (0-360)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * The angle at which left edge of the slice is drawn. (0-360)\r\n *\r\n * 0 is to the right of the center.\r\n *\r\n * @param value Angle (0-360)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", $math.normalizeAngle(value), true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"arc\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"arc\");\r\n },\r\n /**\r\n * [arc description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n }\r\n this.setPropertyValue(\"arc\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"radius\", {\r\n /**\r\n * @return Radius (px)\r\n */\r\n get: function () {\r\n var radius = this.getPropertyValue(\"radius\");\r\n if (!$type.isNumber(radius)) {\r\n radius = 0;\r\n }\r\n return radius;\r\n },\r\n /**\r\n * Radius of the slice in pixels.\r\n *\r\n * @param value Radius (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"radiusY\", {\r\n /**\r\n * @return Vertical radius (0-1)\r\n */\r\n get: function () {\r\n var value = this.getPropertyValue(\"radiusY\");\r\n if (!$type.isNumber(value)) {\r\n value = this.radius;\r\n }\r\n return value;\r\n },\r\n /**\r\n * Vertical radius for creating skewed slices.\r\n *\r\n * This is relevant to `radius`, e.g. 0.5 will set vertical radius to half\r\n * the `radius`.\r\n *\r\n * @param value Vertical radius (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radiusY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"innerRadius\", {\r\n /**\r\n * @return Radius (px or %)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the slice for creating cut out (donut) slices.\r\n *\r\n * @default 0\r\n * @param value Radius (px or %)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * @return Radius px\r\n */\r\n get: function () {\r\n return $utils.relativeToValue(this.innerRadius, this.radius);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"cornerRadius\", {\r\n /**\r\n * @return Radius (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadius\");\r\n },\r\n /**\r\n * Radius of slice's outer corners in pixels.\r\n *\r\n * @default 0\r\n * @param value Radius (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cornerRadius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"innerCornerRadius\", {\r\n /**\r\n * @return Radius (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerCornerRadius\");\r\n },\r\n /**\r\n * Radius of slice's inner corners in pixels.\r\n *\r\n * @default 0\r\n * @param value Radius (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"innerCornerRadius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"shiftRadius\", {\r\n /**\r\n * @return Radius shift\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"shiftRadius\");\r\n },\r\n /**\r\n * Indicates how far (relatively to center) a slice should be moved.\r\n *\r\n * The value is relative to the radius of the slice. Meaning 0 no shift,\r\n * 1 - slice shifted outside by whole of its radius.\r\n *\r\n * @param value Radius shift\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"shiftRadius\", value);\r\n value = this.getPropertyValue(\"shiftRadius\");\r\n this.dx = value * this.radius * this.ix;\r\n this.dy = value * this.radiusY * this.iy;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"ix\", {\r\n /**\r\n * [ix description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return $math.cos(this.middleAngle);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"iy\", {\r\n /**\r\n * [iy description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return $math.sin(this.middleAngle);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice.prototype, \"middleAngle\", {\r\n /**\r\n * An angle of the slice's middle.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Angle\r\n */\r\n get: function () {\r\n return this.startAngle + this.arc / 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * X coordinate for the slice tooltip.\r\n *\r\n * @return X\r\n */\r\n Slice.prototype.getTooltipX = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n var p = 0.5;\r\n if (value instanceof Percent) {\r\n p = value.value;\r\n }\r\n var innerRadius = $utils.relativeToValue(this.innerRadius, this.radius);\r\n return this.ix * (innerRadius + (this.radius - innerRadius) * p);\r\n };\r\n /**\r\n * Y coordinate for the slice tooltip.\r\n *\r\n * @return Y\r\n */\r\n Slice.prototype.getTooltipY = function () {\r\n var value = this.getPropertyValue(\"tooltipY\");\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n var p = 0.5;\r\n if (value instanceof Percent) {\r\n p = value.value;\r\n }\r\n var innerRadius = $utils.relativeToValue(this.innerRadius, this.radius);\r\n return this.iy * (innerRadius + (this.radius - innerRadius) * p) + this.slice.dy;\r\n };\r\n return Slice;\r\n}(Container));\r\nexport { Slice };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Slice\"] = Slice;\r\n//# sourceMappingURL=Slice.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n// MIT License from https://github.com/kaimallea/isMobile\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\n\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\n\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : ''); // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n\n var tmp = ua.split('[FBAN');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n } // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n\n\n tmp = ua.split('Twitter');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device; // excludes 'other' devices and ipods, targeting touchscreen phones\n\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n return result;\n}\n\nvar defaultResult = _objectSpread({}, isMobile(), {\n isMobile: isMobile\n});\n\nexport default defaultResult;","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\nimport * as React from 'react';\nimport isMobile from './utils/isMobile';\nexport function noop() {}\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key || \"\".concat(prefix, \"item_\").concat(index);\n}\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return \"\".concat(eventKey, \"-menu-\");\n}\nexport function loopMenuItem(children, cb) {\n var index = -1;\n React.Children.forEach(children, function (c) {\n index += 1;\n\n if (c && c.type && c.type.isMenuItemGroup) {\n React.Children.forEach(c.props.children, function (c2) {\n index += 1;\n cb(c2, index);\n });\n } else {\n cb(c, index);\n }\n });\n}\nexport function loopMenuItemRecursively(children, keys, ret) {\n /* istanbul ignore if */\n if (!children || ret.find) {\n return;\n }\n\n React.Children.forEach(children, function (c) {\n if (c) {\n var construct = c.type;\n\n if (!construct || !(construct.isSubMenu || construct.isMenuItem || construct.isMenuItemGroup)) {\n return;\n }\n\n if (keys.indexOf(c.key) !== -1) {\n ret.find = true;\n } else if (c.props.children) {\n loopMenuItemRecursively(c.props.children, keys, ret);\n }\n }\n });\n}\nexport var menuAllProps = ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'onSelect', 'onDeselect', 'onDestroy', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'onOpenChange', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'onItemHover', 'onTitleMouseEnter', 'onTitleMouseLeave', 'onTitleClick', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator', 'motion', // the following keys found need to be removed from test regression\n'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon']; // ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\n\nexport var getWidth = function getWidth(elem) {\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n\n if (width) {\n width = +width.toFixed(6);\n }\n\n return width || 0;\n};\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n elem.style[styleProperty] = value;\n }\n};\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\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}\n\nvar vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {});\n\nvar style = {};\n\nif (canUseDOM) {\n style = document.createElement('div').style;\n}\n\nvar prefixedEventNames = {};\n\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 for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\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}\n\nexport var animationEndName = getVendorPrefixedEventName('animationend');\nexport var transitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(animationEndName && transitionEndName);\n\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 transitionName + '-' + transitionType;\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport findDOMNode from 'rc-util/es/Dom/findDOMNode';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util/motion';\n\nvar STATUS_NONE = 'none';\nvar STATUS_APPEAR = 'appear';\nvar STATUS_ENTER = 'enter';\nvar STATUS_LEAVE = 'leave';\n\nexport var MotionPropTypes = {\n eventProps: PropTypes.object, // Internal usage. Only pass by CSSMotionList\n visible: PropTypes.bool,\n children: PropTypes.func,\n motionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n motionAppear: PropTypes.bool,\n motionEnter: PropTypes.bool,\n motionLeave: PropTypes.bool,\n motionLeaveImmediately: PropTypes.bool, // Trigger leave motion immediately\n motionDeadline: PropTypes.number,\n removeOnLeave: PropTypes.bool,\n leavedClassName: PropTypes.string,\n onAppearStart: PropTypes.func,\n onAppearActive: PropTypes.func,\n onAppearEnd: PropTypes.func,\n onEnterStart: PropTypes.func,\n onEnterActive: PropTypes.func,\n onEnterEnd: PropTypes.func,\n onLeaveStart: PropTypes.func,\n onLeaveActive: PropTypes.func,\n onLeaveEnd: PropTypes.func\n};\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 var forwardRef = !!React.forwardRef;\n\n if (typeof config === 'object') {\n transitionSupport = config.transitionSupport;\n forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = function (_React$Component) {\n _inherits(CSSMotion, _React$Component);\n\n function CSSMotion() {\n _classCallCheck(this, CSSMotion);\n\n var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this));\n\n _this.onDomUpdate = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n newStatus = _this$state.newStatus;\n var _this$props = _this.props,\n onAppearStart = _this$props.onAppearStart,\n onEnterStart = _this$props.onEnterStart,\n onLeaveStart = _this$props.onLeaveStart,\n onAppearActive = _this$props.onAppearActive,\n onEnterActive = _this$props.onEnterActive,\n onLeaveActive = _this$props.onLeaveActive,\n motionAppear = _this$props.motionAppear,\n motionEnter = _this$props.motionEnter,\n motionLeave = _this$props.motionLeave;\n\n\n if (!isSupportTransition(_this.props)) {\n return;\n }\n\n // Event injection\n var $ele = _this.getElement();\n if (_this.$cacheEle !== $ele) {\n _this.removeEventListener(_this.$cacheEle);\n _this.addEventListener($ele);\n _this.$cacheEle = $ele;\n }\n\n // Init status\n if (newStatus && status === STATUS_APPEAR && motionAppear) {\n _this.updateStatus(onAppearStart, null, null, function () {\n _this.updateActiveStatus(onAppearActive, STATUS_APPEAR);\n });\n } else if (newStatus && status === STATUS_ENTER && motionEnter) {\n _this.updateStatus(onEnterStart, null, null, function () {\n _this.updateActiveStatus(onEnterActive, STATUS_ENTER);\n });\n } else if (newStatus && status === STATUS_LEAVE && motionLeave) {\n _this.updateStatus(onLeaveStart, null, null, function () {\n _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE);\n });\n }\n };\n\n _this.onMotionEnd = function (event) {\n var _this$state2 = _this.state,\n status = _this$state2.status,\n statusActive = _this$state2.statusActive;\n var _this$props2 = _this.props,\n onAppearEnd = _this$props2.onAppearEnd,\n onEnterEnd = _this$props2.onEnterEnd,\n onLeaveEnd = _this$props2.onLeaveEnd;\n\n if (status === STATUS_APPEAR && statusActive) {\n _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_ENTER && statusActive) {\n _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_LEAVE && statusActive) {\n _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event);\n }\n };\n\n _this.setNodeRef = function (node) {\n var internalRef = _this.props.internalRef;\n\n _this.node = node;\n\n if (typeof internalRef === 'function') {\n internalRef(node);\n } else if (internalRef && 'current' in internalRef) {\n internalRef.current = node;\n }\n };\n\n _this.getElement = function () {\n try {\n return findDOMNode(_this.node || _this);\n } catch (e) {\n /**\n * Fallback to cache element.\n * This is only happen when `motionDeadline` trigger but element removed.\n */\n return _this.$cacheEle;\n }\n };\n\n _this.addEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.addEventListener(transitionEndName, _this.onMotionEnd);\n $ele.addEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.removeEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.removeEventListener(transitionEndName, _this.onMotionEnd);\n $ele.removeEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.updateStatus = function (styleFunc, additionalState, event, callback) {\n var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null;\n\n if (statusStyle === false || _this._destroyed) return;\n\n var nextStep = void 0;\n if (callback) {\n nextStep = function nextStep() {\n _this.nextFrame(callback);\n };\n }\n\n _this.setState(_extends({\n statusStyle: typeof statusStyle === 'object' ? statusStyle : null,\n newStatus: false\n }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount`\n };\n\n _this.updateActiveStatus = function (styleFunc, currentStatus) {\n // `setState` use `postMessage` to trigger at the end of frame.\n // Let's use requestAnimationFrame to update new state in next frame.\n _this.nextFrame(function () {\n var status = _this.state.status;\n\n if (status !== currentStatus) return;\n\n var motionDeadline = _this.props.motionDeadline;\n\n\n _this.updateStatus(styleFunc, { statusActive: true });\n\n if (motionDeadline > 0) {\n setTimeout(function () {\n _this.onMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n });\n };\n\n _this.nextFrame = function (func) {\n _this.cancelNextFrame();\n _this.raf = raf(func);\n };\n\n _this.cancelNextFrame = function () {\n if (_this.raf) {\n raf.cancel(_this.raf);\n _this.raf = null;\n }\n };\n\n _this.state = {\n status: STATUS_NONE,\n statusActive: false,\n newStatus: false,\n statusStyle: null\n };\n _this.$cacheEle = null;\n _this.node = null;\n _this.raf = null;\n return _this;\n }\n\n _createClass(CSSMotion, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._destroyed = true;\n this.removeEventListener(this.$cacheEle);\n this.cancelNextFrame();\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _state = this.state,\n status = _state.status,\n statusActive = _state.statusActive,\n statusStyle = _state.statusStyle;\n var _props = this.props,\n children = _props.children,\n motionName = _props.motionName,\n visible = _props.visible,\n removeOnLeave = _props.removeOnLeave,\n leavedClassName = _props.leavedClassName,\n eventProps = _props.eventProps;\n\n\n if (!children) return null;\n\n if (status === STATUS_NONE || !isSupportTransition(this.props)) {\n if (visible) {\n return children(_extends({}, eventProps), this.setNodeRef);\n } else if (!removeOnLeave) {\n return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef);\n }\n\n return null;\n }\n\n return children(_extends({}, eventProps, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), this.setNodeRef);\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, _ref) {\n var prevProps = _ref.prevProps,\n prevStatus = _ref.status;\n\n if (!isSupportTransition(props)) return {};\n\n var visible = props.visible,\n motionAppear = props.motionAppear,\n motionEnter = props.motionEnter,\n motionLeave = props.motionLeave,\n motionLeaveImmediately = props.motionLeaveImmediately;\n\n var newState = {\n prevProps: props\n };\n\n // Clean up status if prop set to false\n if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) {\n newState.status = STATUS_NONE;\n newState.statusActive = false;\n newState.newStatus = false;\n }\n\n // Appear\n if (!prevProps && visible && motionAppear) {\n newState.status = STATUS_APPEAR;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Enter\n if (prevProps && !prevProps.visible && visible && motionEnter) {\n newState.status = STATUS_ENTER;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Leave\n if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) {\n newState.status = STATUS_LEAVE;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n return newState;\n }\n }]);\n\n return CSSMotion;\n }(React.Component);\n\n CSSMotion.propTypes = _extends({}, MotionPropTypes, {\n\n internalRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n CSSMotion.defaultProps = {\n visible: true,\n motionEnter: true,\n motionAppear: true,\n motionLeave: true,\n removeOnLeave: true\n };\n\n\n polyfill(CSSMotion);\n\n if (!forwardRef) {\n return CSSMotion;\n }\n\n return React.forwardRef(function (props, ref) {\n return React.createElement(CSSMotion, _extends({ internalRef: ref }, props));\n });\n}\n\nexport default genCSSMotion(supportTransition);","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","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 default placements;","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport KeyCode from \"rc-util/es/KeyCode\"; // import Animate from 'rc-animate';\n\nimport CSSMotion from \"rc-animate/es/CSSMotion\";\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport placements from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _objectSpread({}, state.defaultActiveFirst, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nexport var SubMenu =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n function SubMenu(props) {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SubMenu).call(this, props));\n\n _this.onDestroy = function (key) {\n _this.props.onDestroy(key);\n };\n /**\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n var menu = _this.menuInstance;\n var _this$props = _this.props,\n isOpen = _this$props.isOpen,\n store = _this$props.store;\n\n if (keyCode === KeyCode.ENTER) {\n _this.onTitleClick(e);\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (isOpen) {\n menu.onKeyDown(e);\n } else {\n _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n }\n\n return true;\n }\n\n if (keyCode === KeyCode.LEFT) {\n var handled;\n\n if (isOpen) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n\n if (!handled) {\n _this.triggerOpenChange(false);\n\n handled = true;\n }\n\n return handled;\n }\n\n if (isOpen && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n\n return undefined;\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onPopupVisibleChange = function (visible) {\n _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props2 = _this.props,\n key = _this$props2.eventKey,\n onMouseEnter = _this$props2.onMouseEnter,\n store = _this$props2.store;\n updateDefaultActiveFirst(store, _this.props.eventKey, false);\n onMouseEnter({\n key: key,\n domEvent: e\n });\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props3 = _this.props,\n parentMenu = _this$props3.parentMenu,\n eventKey = _this$props3.eventKey,\n onMouseLeave = _this$props3.onMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleMouseEnter = function (domEvent) {\n var _this$props4 = _this.props,\n key = _this$props4.eventKey,\n onItemHover = _this$props4.onItemHover,\n onTitleMouseEnter = _this$props4.onTitleMouseEnter;\n onItemHover({\n key: key,\n hover: true\n });\n onTitleMouseEnter({\n key: key,\n domEvent: domEvent\n });\n };\n\n _this.onTitleMouseLeave = function (e) {\n var _this$props5 = _this.props,\n parentMenu = _this$props5.parentMenu,\n eventKey = _this$props5.eventKey,\n onItemHover = _this$props5.onItemHover,\n onTitleMouseLeave = _this$props5.onTitleMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onItemHover({\n key: eventKey,\n hover: false\n });\n onTitleMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleClick = function (e) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n props.onTitleClick({\n key: props.eventKey,\n domEvent: e\n });\n\n if (props.triggerSubMenuAction === 'hover') {\n return;\n }\n\n _this.triggerOpenChange(!props.isOpen, 'click');\n\n updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n };\n\n _this.onSubMenuClick = function (info) {\n // in the case of overflowed submenu\n // onClick is not copied over\n if (typeof _this.props.onClick === 'function') {\n _this.props.onClick(_this.addKeyPath(info));\n }\n };\n\n _this.onSelect = function (info) {\n _this.props.onSelect(info);\n };\n\n _this.onDeselect = function (info) {\n _this.props.onDeselect(info);\n };\n\n _this.getPrefixCls = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n };\n\n _this.getActiveClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-active\");\n };\n\n _this.getDisabledClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n };\n\n _this.getSelectedClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-selected\");\n };\n\n _this.getOpenClassName = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n };\n\n _this.saveMenuInstance = function (c) {\n // children menu instance\n _this.menuInstance = c;\n };\n\n _this.addKeyPath = function (info) {\n return _objectSpread({}, info, {\n keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n });\n };\n\n _this.triggerOpenChange = function (open, type) {\n var key = _this.props.eventKey;\n\n var openChange = function openChange() {\n _this.onOpenChange({\n key: key,\n item: _assertThisInitialized(_this),\n trigger: type,\n open: open\n });\n };\n\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n _this.mouseenterTimeout = setTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n };\n\n _this.isChildrenSelected = function () {\n var ret = {\n find: false\n };\n loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n return ret.find;\n };\n\n _this.isOpen = function () {\n return _this.props.openKeys.indexOf(_this.props.eventKey) !== -1;\n };\n\n _this.adjustWidth = function () {\n /* istanbul ignore if */\n if (!_this.subMenuTitle || !_this.menuInstance) {\n return;\n }\n\n var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n return;\n }\n /* istanbul ignore next */\n\n\n popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n };\n\n _this.saveSubMenuTitle = function (subMenuTitle) {\n _this.subMenuTitle = subMenuTitle;\n };\n\n var store = props.store,\n eventKey = props.eventKey;\n\n var _store$getState = store.getState(),\n defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n _this.isRootMenu = false;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this2 = this;\n\n var _this$props6 = this.props,\n mode = _this$props6.mode,\n parentMenu = _this$props6.parentMenu,\n manualRef = _this$props6.manualRef; // invoke customized ref to expose component to mixin\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !parentMenu.isRootMenu || !this.props.isOpen) {\n return;\n }\n\n this.minWidthTimeout = setTimeout(function () {\n return _this2.adjustWidth();\n }, 0);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$props7 = this.props,\n onDestroy = _this$props7.onDestroy,\n eventKey = _this$props7.eventKey;\n\n if (onDestroy) {\n onDestroy(eventKey);\n }\n /* istanbul ignore if */\n\n\n if (this.minWidthTimeout) {\n clearTimeout(this.minWidthTimeout);\n }\n /* istanbul ignore if */\n\n\n if (this.mouseenterTimeout) {\n clearTimeout(this.mouseenterTimeout);\n }\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n var props = this.props;\n var baseProps = {\n mode: props.mode === 'horizontal' ? 'vertical' : props.mode,\n visible: this.props.isOpen,\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n onClick: this.onSubMenuClick,\n onSelect: this.onSelect,\n onDeselect: this.onDeselect,\n onDestroy: this.onDestroy,\n selectedKeys: props.selectedKeys,\n eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n openKeys: props.openKeys,\n motion: props.motion,\n onOpenChange: this.onOpenChange,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: this,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n id: this.internalMenuId,\n manualRef: this.saveMenuInstance,\n itemIcon: props.itemIcon,\n expandIcon: props.expandIcon\n };\n var haveRendered = this.haveRendered;\n this.haveRendered = true;\n this.haveOpened = this.haveOpened || baseProps.visible || baseProps.forceSubMenuRender; // never rendered not planning to, don't render\n\n if (!this.haveOpened) {\n return React.createElement(\"div\", null);\n } // ================== Motion ==================\n // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n\n\n var mergedMotion = _objectSpread({}, props.motion, {\n leavedClassName: \"\".concat(props.rootPrefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: haveRendered || !baseProps.visible || baseProps.mode !== 'inline'\n });\n\n return React.createElement(CSSMotion, Object.assign({\n visible: baseProps.visible\n }, mergedMotion), function (_ref) {\n var className = _ref.className,\n style = _ref.style;\n var mergedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), className);\n return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n id: _this3.internalMenuId,\n className: mergedClassName,\n style: style\n }), children);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var props = _objectSpread({}, this.props);\n\n var isOpen = props.isOpen;\n var prefixCls = this.getPrefixCls();\n var isInlineMode = props.mode === 'inline';\n var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.mode), (_classNames = {}, _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, this.getOpenClassName(), isOpen), _defineProperty(_classNames, this.getActiveClassName(), props.active || isOpen && !isInlineMode), _defineProperty(_classNames, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames, this.getSelectedClassName(), this.isChildrenSelected()), _classNames));\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n } else {\n guid += 1;\n this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n\n if (!props.disabled) {\n mouseEvents = {\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter\n }; // only works in title, not outer li\n\n titleClickEvents = {\n onClick: this.onTitleClick\n };\n titleMouseEvents = {\n onMouseEnter: this.onTitleMouseEnter,\n onMouseLeave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n\n if (isInlineMode) {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n\n var ariaOwns = {}; // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n\n if (this.props.isOpen) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n var icon = null;\n\n if (props.mode !== 'horizontal') {\n icon = this.props.expandIcon; // ReactNode\n\n if (typeof this.props.expandIcon === 'function') {\n icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n }\n }\n\n var title = React.createElement(\"div\", Object.assign({\n ref: this.saveSubMenuTitle,\n style: style,\n className: \"\".concat(prefixCls, \"-title\")\n }, titleMouseEvents, titleClickEvents, {\n \"aria-expanded\": isOpen\n }, ariaOwns, {\n \"aria-haspopup\": \"true\",\n title: typeof props.title === 'string' ? props.title : undefined\n }), props.title, icon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }));\n var children = this.renderChildren(props.children);\n var getPopupContainer = props.parentMenu.isRootMenu ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[props.mode];\n var popupAlign = props.popupOffset ? {\n offset: props.popupOffset\n } : {};\n var popupClassName = props.mode === 'inline' ? '' : props.popupClassName;\n var disabled = props.disabled,\n triggerSubMenuAction = props.triggerSubMenuAction,\n subMenuOpenDelay = props.subMenuOpenDelay,\n forceSubMenuRender = props.forceSubMenuRender,\n subMenuCloseDelay = props.subMenuCloseDelay,\n builtinPlacements = props.builtinPlacements;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n className: className,\n role: \"menuitem\"\n }), isInlineMode && title, isInlineMode && children, !isInlineMode && React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: \"\".concat(prefixCls, \"-popup \").concat(popupClassName),\n getPopupContainer: getPopupContainer,\n builtinPlacements: Object.assign({}, placements, builtinPlacements),\n popupPlacement: popupPlacement,\n popupVisible: isOpen,\n popupAlign: popupAlign,\n popup: children,\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: this.onPopupVisibleChange,\n forceRender: forceSubMenuRender\n }, title));\n }\n }]);\n\n return SubMenu;\n}(React.Component);\nSubMenu.defaultProps = {\n onMouseEnter: noop,\n onMouseLeave: noop,\n onTitleMouseEnter: noop,\n onTitleMouseLeave: noop,\n onTitleClick: noop,\n manualRef: noop,\n mode: 'vertical',\n title: ''\n};\nvar connected = connect(function (_ref2, _ref3) {\n var openKeys = _ref2.openKeys,\n activeKey = _ref2.activeKey,\n selectedKeys = _ref2.selectedKeys;\n var eventKey = _ref3.eventKey,\n subMenuKey = _ref3.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;","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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\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; }\n\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; }\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\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport { getWidth, setStyle, menuAllProps } from './util';\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\nvar FLOAT_PRECISION_ADJUST = 0.5; // Fix ssr\n\nif (canUseDOM) {\n // eslint-disable-next-line global-require\n require('mutationobserver-shim');\n}\n\nvar DOMWrap =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(DOMWrap, _React$Component);\n\n function DOMWrap() {\n var _this;\n\n _classCallCheck(this, DOMWrap);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DOMWrap).apply(this, arguments));\n _this.resizeObserver = null;\n _this.mutationObserver = null; // original scroll size of the list\n\n _this.originalTotalWidth = 0; // copy of overflowed items\n\n _this.overflowedItems = []; // cache item of the original items (so we can track the size and order)\n\n _this.menuItemSizes = [];\n _this.state = {\n lastVisibleIndex: undefined\n }; // get all valid menuItem nodes\n\n _this.getMenuItemNodes = function () {\n var prefixCls = _this.props.prefixCls;\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return [];\n } // filter out all overflowed indicator placeholder\n\n\n return [].slice.call(ul.children).filter(function (node) {\n return node.className.split(' ').indexOf(\"\".concat(prefixCls, \"-overflowed-submenu\")) < 0;\n });\n };\n\n _this.getOverflowedSubMenuItem = function (keyPrefix, overflowedItems, renderPlaceholder) {\n var _this$props = _this.props,\n overflowedIndicator = _this$props.overflowedIndicator,\n level = _this$props.level,\n mode = _this$props.mode,\n prefixCls = _this$props.prefixCls,\n theme = _this$props.theme;\n\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n } // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n\n\n var copy = _this.props.children[0];\n\n var _copy$props = copy.props,\n throwAway = _copy$props.children,\n title = _copy$props.title,\n propStyle = _copy$props.style,\n rest = _objectWithoutProperties(_copy$props, [\"children\", \"title\", \"style\"]);\n\n var style = _objectSpread({}, propStyle);\n\n var key = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n var eventKey = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = _objectSpread({}, style, {\n display: 'none'\n });\n } else if (renderPlaceholder) {\n style = _objectSpread({}, style, {\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute'\n });\n key = \"\".concat(key, \"-placeholder\");\n eventKey = \"\".concat(eventKey, \"-placeholder\");\n }\n\n var popupClassName = theme ? \"\".concat(prefixCls, \"-\").concat(theme) : '';\n var props = {};\n menuAllProps.forEach(function (k) {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n return React.createElement(SubMenu, Object.assign({\n title: overflowedIndicator,\n className: \"\".concat(prefixCls, \"-overflowed-submenu\"),\n popupClassName: popupClassName\n }, props, {\n key: key,\n eventKey: eventKey,\n disabled: false,\n style: style\n }), overflowedItems);\n }; // memorize rendered menuSize\n\n\n _this.setChildrenWidthAndResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n var lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1]; // need last overflowed indicator for calculating length;\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n var menuItemNodes = _this.getMenuItemNodes(); // reset display attribute for all hidden elements caused by overflow to calculate updated width\n // and then reset to original state after width calculation\n\n\n var overflowedItems = menuItemNodes.filter(function (c) {\n return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'inline-block');\n });\n _this.menuItemSizes = menuItemNodes.map(function (c) {\n return getWidth(c);\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'none');\n });\n _this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1]);\n _this.originalTotalWidth = _this.menuItemSizes.reduce(function (acc, cur) {\n return acc + cur;\n }, 0);\n\n _this.handleResize(); // prevent the overflowed indicator from taking space;\n\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n };\n\n _this.handleResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var width = getWidth(ul);\n _this.overflowedItems = [];\n var currentSumWidth = 0; // index for last visible child in horizontal mode\n\n var lastVisibleIndex; // float number comparison could be problematic\n // e.g. 0.1 + 0.2 > 0.3 =====> true\n // thus using FLOAT_PRECISION_ADJUST as buffer to help the situation\n\n if (_this.originalTotalWidth > width + FLOAT_PRECISION_ADJUST) {\n lastVisibleIndex = -1;\n\n _this.menuItemSizes.forEach(function (liWidth) {\n currentSumWidth += liWidth;\n\n if (currentSumWidth + _this.overflowedIndicatorWidth <= width) {\n lastVisibleIndex += 1;\n }\n });\n }\n\n _this.setState({\n lastVisibleIndex: lastVisibleIndex\n });\n };\n\n return _this;\n }\n\n _createClass(DOMWrap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.setChildrenWidthAndResize();\n\n if (this.props.level === 1 && this.props.mode === 'horizontal') {\n var menuUl = ReactDOM.findDOMNode(this);\n\n if (!menuUl) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(_this2.setChildrenWidthAndResize);\n });\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n this.mutationObserver = new MutationObserver(function () {\n _this2.resizeObserver.disconnect();\n\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n _this2.setChildrenWidthAndResize();\n });\n this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n // need to take care of overflowed items in horizontal mode\n var lastVisibleIndex = this.state.lastVisibleIndex;\n return (children || []).reduce(function (acc, childNode, index) {\n var item = childNode;\n\n if (_this3.props.mode === 'horizontal') {\n var overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, []);\n\n if (lastVisibleIndex !== undefined && _this3.props.className.indexOf(\"\".concat(_this3.props.prefixCls, \"-root\")) !== -1) {\n if (index > lastVisibleIndex) {\n item = React.cloneElement(childNode, // 这里修改 eventKey 是为了防止隐藏状态下还会触发 openkeys 事件\n {\n style: {\n display: 'none'\n },\n eventKey: \"\".concat(childNode.props.eventKey, \"-hidden\"),\n\n /**\n * Legacy code. Here `className` never used:\n * https://github.com/react-component/menu/commit/4cd6b49fce9d116726f4ea00dda85325d6f26500#diff-e2fa48f75c2dd2318295cde428556a76R240\n */\n className: \"\".concat(MENUITEM_OVERFLOWED_CLASSNAME)\n });\n }\n\n if (index === lastVisibleIndex + 1) {\n _this3.overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c) {\n return React.cloneElement(c, // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n {\n key: c.props.eventKey,\n mode: 'vertical-left'\n });\n });\n overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, _this3.overflowedItems);\n }\n }\n\n var ret = [].concat(_toConsumableArray(acc), [overflowed, item]);\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(_this3.getOverflowedSubMenuItem(childNode.props.eventKey, [], true));\n }\n\n return ret;\n }\n\n return [].concat(_toConsumableArray(acc), [item]);\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n visible = _this$props2.visible,\n prefixCls = _this$props2.prefixCls,\n overflowedIndicator = _this$props2.overflowedIndicator,\n mode = _this$props2.mode,\n level = _this$props2.level,\n tag = _this$props2.tag,\n children = _this$props2.children,\n theme = _this$props2.theme,\n rest = _objectWithoutProperties(_this$props2, [\"visible\", \"prefixCls\", \"overflowedIndicator\", \"mode\", \"level\", \"tag\", \"children\", \"theme\"]);\n\n var Tag = tag;\n return React.createElement(Tag, Object.assign({}, rest), this.renderChildren(children));\n }\n }]);\n\n return DOMWrap;\n}(React.Component);\n\nDOMWrap.defaultProps = {\n tag: 'div',\n className: ''\n};\nexport default DOMWrap;","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 _extends() { _extends = Object.assign || 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); }\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 * as React from 'react';\nimport { connect } from 'mini-store';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport createChainedFunction from \"rc-util/es/createChainedFunction\";\nimport shallowEqual from 'shallowequal';\nimport classNames from 'classnames';\nimport { getKeyFromChildrenIndex, loopMenuItem, noop, menuAllProps, isMobileDevice } from './util';\nimport DOMWrap from './DOMWrap';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n\n return arr.every(function (c) {\n return !!c.props.disabled;\n });\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n var state = store.getState();\n store.setState({\n activeKey: _objectSpread({}, state.activeKey, _defineProperty({}, menuId, activeKey))\n });\n}\n\nfunction getEventKey(props) {\n // when eventKey not available ,it's menu and return menu id '0-menu-'\n return props.eventKey || '0-menu-';\n}\n\nexport function getActiveKey(props, originalActiveKey) {\n var activeKey = originalActiveKey;\n var children = props.children,\n eventKey = props.eventKey;\n\n if (activeKey) {\n var found;\n loopMenuItem(children, function (c, i) {\n if (c && c.props && !c.props.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n\n if (found) {\n return activeKey;\n }\n }\n\n activeKey = null;\n\n if (props.defaultActiveFirst) {\n loopMenuItem(children, function (c, i) {\n if (!activeKey && c && !c.props.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n\n return activeKey;\n}\nexport function saveRef(c) {\n if (c) {\n var index = this.instanceArray.indexOf(c);\n\n if (index !== -1) {\n // update component if it's already inside instanceArray\n this.instanceArray[index] = c;\n } else {\n // add component if it's not in instanceArray yet;\n this.instanceArray.push(c);\n }\n }\n}\nexport var SubPopupMenu =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(SubPopupMenu, _React$Component);\n\n function SubPopupMenu(props) {\n var _this;\n\n _classCallCheck(this, SubPopupMenu);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SubPopupMenu).call(this, props));\n /**\n * all keyboard events callbacks run from here at first\n *\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n _this.onKeyDown = function (e, callback) {\n var keyCode = e.keyCode;\n var handled;\n\n _this.getFlatInstanceArray().forEach(function (obj) {\n if (obj && obj.props.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n\n if (handled) {\n return 1;\n }\n\n var activeItem = null;\n\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = _this.step(keyCode === KeyCode.UP ? -1 : 1);\n }\n\n if (activeItem) {\n e.preventDefault();\n updateActiveKey(_this.props.store, getEventKey(_this.props), activeItem.props.eventKey);\n\n if (typeof callback === 'function') {\n callback(activeItem);\n }\n\n return 1;\n }\n\n return undefined;\n };\n\n _this.onItemHover = function (e) {\n var key = e.key,\n hover = e.hover;\n updateActiveKey(_this.props.store, getEventKey(_this.props), hover ? key : null);\n };\n\n _this.onDeselect = function (selectInfo) {\n _this.props.onDeselect(selectInfo);\n };\n\n _this.onSelect = function (selectInfo) {\n _this.props.onSelect(selectInfo);\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onDestroy = function (key) {\n /* istanbul ignore next */\n _this.props.onDestroy(key);\n };\n\n _this.getFlatInstanceArray = function () {\n return _this.instanceArray;\n };\n\n _this.step = function (direction) {\n var children = _this.getFlatInstanceArray();\n\n var activeKey = _this.props.store.getState().activeKey[getEventKey(_this.props)];\n\n var len = children.length;\n\n if (!len) {\n return null;\n }\n\n if (direction < 0) {\n children = children.concat().reverse();\n } // find current activeIndex\n\n\n var activeIndex = -1;\n children.every(function (c, ci) {\n if (c && c.props.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n\n return true;\n });\n\n if (!_this.props.defaultActiveFirst && activeIndex !== -1 && allDisabled(children.slice(activeIndex, len - 1))) {\n return undefined;\n }\n\n var start = (activeIndex + 1) % len;\n var i = start;\n\n do {\n var child = children[i];\n\n if (!child || child.props.disabled) {\n i = (i + 1) % len;\n } else {\n return child;\n }\n } while (i !== start);\n\n return null;\n };\n\n _this.renderCommonMenuItem = function (child, i, extraProps) {\n var state = _this.props.store.getState();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var key = getKeyFromChildrenIndex(child, props.eventKey, i);\n var childProps = child.props; // https://github.com/ant-design/ant-design/issues/11517#issuecomment-477403055\n\n if (!childProps || typeof child.type === 'string') {\n return child;\n }\n\n var isActive = key === state.activeKey;\n\n var newChildProps = _objectSpread({\n mode: childProps.mode || props.mode,\n level: props.level,\n inlineIndent: props.inlineIndent,\n renderMenuItem: _this.renderMenuItem,\n rootPrefixCls: props.prefixCls,\n index: i,\n parentMenu: props.parentMenu,\n // customized ref function, need to be invoked manually in child's componentDidMount\n manualRef: childProps.disabled ? undefined : createChainedFunction(child.ref, saveRef.bind(_assertThisInitialized(_this))),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n onClick: function onClick(e) {\n (childProps.onClick || noop)(e);\n\n _this.onClick(e);\n },\n onItemHover: _this.onItemHover,\n motion: props.motion,\n subMenuOpenDelay: props.subMenuOpenDelay,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n onOpenChange: _this.onOpenChange,\n onDeselect: _this.onDeselect,\n onSelect: _this.onSelect,\n builtinPlacements: props.builtinPlacements,\n itemIcon: childProps.itemIcon || _this.props.itemIcon,\n expandIcon: childProps.expandIcon || _this.props.expandIcon\n }, extraProps); // ref: https://github.com/ant-design/ant-design/issues/13943\n\n\n if (props.mode === 'inline' || isMobileDevice()) {\n newChildProps.triggerSubMenuAction = 'click';\n }\n\n return React.cloneElement(child, newChildProps);\n };\n\n _this.renderMenuItem = function (c, i, subMenuKey) {\n /* istanbul ignore if */\n if (!c) {\n return null;\n }\n\n var state = _this.props.store.getState();\n\n var extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: _this.props.triggerSubMenuAction,\n subMenuKey: subMenuKey\n };\n return _this.renderCommonMenuItem(c, i, extraProps);\n };\n\n props.store.setState({\n activeKey: _objectSpread({}, props.store.getState().activeKey, _defineProperty({}, props.eventKey, getActiveKey(props, props.activeKey)))\n });\n _this.instanceArray = [];\n return _this;\n }\n\n _createClass(SubPopupMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return this.props.visible || nextProps.visible || this.props.className !== nextProps.className || !shallowEqual(this.props.style, nextProps.style);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var props = this.props;\n var originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n var activeKey = getActiveKey(props, originalActiveKey);\n\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n } else if ('activeKey' in prevProps) {\n // If prev activeKey is not same as current activeKey,\n // we should set it.\n var prevActiveKey = getActiveKey(prevProps, prevProps.activeKey);\n\n if (activeKey !== prevActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props);\n\n this.instanceArray = [];\n var className = classNames(props.prefixCls, props.className, \"\".concat(props.prefixCls, \"-\").concat(props.mode));\n var domProps = {\n className: className,\n // role could be 'select' and by default set to menu\n role: props.role || 'menu'\n };\n\n if (props.id) {\n domProps.id = props.id;\n }\n\n if (props.focusable) {\n domProps.tabIndex = 0;\n domProps.onKeyDown = this.onKeyDown;\n }\n\n var prefixCls = props.prefixCls,\n eventKey = props.eventKey,\n visible = props.visible,\n level = props.level,\n mode = props.mode,\n overflowedIndicator = props.overflowedIndicator,\n theme = props.theme;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Otherwise, the propagated click event will trigger another onClick\n\n delete props.onClick;\n return React.createElement(DOMWrap, Object.assign({}, props, {\n prefixCls: prefixCls,\n mode: mode,\n tag: \"ul\",\n level: level,\n theme: theme,\n visible: visible,\n overflowedIndicator: overflowedIndicator\n }, domProps), React.Children.map(props.children, function (c, i) {\n return _this2.renderMenuItem(c, i, eventKey || '0-menu-');\n }));\n }\n }]);\n\n return SubPopupMenu;\n}(React.Component);\nSubPopupMenu.defaultProps = {\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n level: 1,\n inlineIndent: 24,\n visible: true,\n focusable: true,\n style: {},\n manualRef: noop\n};\nvar connected = connect()(SubPopupMenu);\nexport default connected;","/* 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 */","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\nimport warning from \"rc-util/es/warning\";\nexport function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName;\n\n if (motion) {\n return motion;\n }\n\n if (_typeof(openAnimation) === 'object' && openAnimation) {\n warning(false, 'Object type of `openAnimation` is removed. Please use `motion` instead.');\n } else if (typeof openAnimation === 'string') {\n return {\n motionName: \"\".concat(prefixCls, \"-open-\").concat(openAnimation)\n };\n }\n\n if (openTransitionName) {\n return {\n motionName: openTransitionName\n };\n }\n\n return null;\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\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\nimport * as React from 'react';\nimport { Provider, create } from 'mini-store';\nimport SubPopupMenu, { getActiveKey } from './SubPopupMenu';\nimport { noop } from './util';\nimport { getMotion } from './utils/legacyUtil';\n\nvar Menu =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Menu, _React$Component);\n\n function Menu(props) {\n var _this;\n\n _classCallCheck(this, Menu);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Menu).call(this, props));\n\n _this.onSelect = function (selectInfo) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n if (props.selectable) {\n // root menu\n var _this$store$getState = _this.store.getState(),\n _selectedKeys = _this$store$getState.selectedKeys;\n\n var selectedKey = selectInfo.key;\n\n if (props.multiple) {\n _selectedKeys = _selectedKeys.concat([selectedKey]);\n } else {\n _selectedKeys = [selectedKey];\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys\n });\n }\n\n props.onSelect(_objectSpread({}, selectInfo, {\n selectedKeys: _selectedKeys\n }));\n }\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n }; // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n\n\n _this.onKeyDown = function (e, callback) {\n _this.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n };\n\n _this.onOpenChange = function (event) {\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n props = _assertThisInitialize2.props;\n\n var openKeys = _this.store.getState().openKeys.concat();\n\n var changed = false;\n\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n\n changed = changed || oneChanged;\n };\n\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n\n if (changed) {\n if (!('openKeys' in _this.props)) {\n _this.store.setState({\n openKeys: openKeys\n });\n }\n\n props.onOpenChange(openKeys);\n }\n };\n\n _this.onDeselect = function (selectInfo) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n props = _assertThisInitialize3.props;\n\n if (props.selectable) {\n var _selectedKeys2 = _this.store.getState().selectedKeys.concat();\n\n var selectedKey = selectInfo.key;\n\n var index = _selectedKeys2.indexOf(selectedKey);\n\n if (index !== -1) {\n _selectedKeys2.splice(index, 1);\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys2\n });\n }\n\n props.onDeselect(_objectSpread({}, selectInfo, {\n selectedKeys: _selectedKeys2\n }));\n }\n };\n\n _this.getOpenTransitionName = function () {\n var _assertThisInitialize4 = _assertThisInitialized(_this),\n props = _assertThisInitialize4.props;\n\n var transitionName = props.openTransitionName;\n var animationName = props.openAnimation;\n\n if (!transitionName && typeof animationName === 'string') {\n transitionName = \"\".concat(props.prefixCls, \"-open-\").concat(animationName);\n }\n\n return transitionName;\n };\n\n _this.setInnerMenu = function (node) {\n _this.innerMenu = node;\n };\n\n _this.isRootMenu = true;\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n _this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(props, props.activeKey)\n }\n });\n return _this;\n }\n\n _createClass(Menu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateMiniStore();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateMiniStore();\n }\n }, {\n key: \"updateMiniStore\",\n value: function updateMiniStore() {\n if ('selectedKeys' in this.props) {\n this.store.setState({\n selectedKeys: this.props.selectedKeys || []\n });\n }\n\n if ('openKeys' in this.props) {\n this.store.setState({\n openKeys: this.props.openKeys || []\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = _objectSpread({}, this.props);\n\n props.className += \" \".concat(props.prefixCls, \"-root\");\n props = _objectSpread({}, props, {\n onClick: this.onClick,\n onOpenChange: this.onOpenChange,\n onDeselect: this.onDeselect,\n onSelect: this.onSelect,\n parentMenu: this,\n motion: getMotion(this.props)\n });\n delete props.openAnimation;\n delete props.openTransitionName;\n return React.createElement(Provider, {\n store: this.store\n }, React.createElement(SubPopupMenu, Object.assign({}, props, {\n ref: this.setInnerMenu\n }), this.props.children));\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nMenu.defaultProps = {\n selectable: true,\n onClick: noop,\n onSelect: noop,\n onOpenChange: noop,\n onDeselect: noop,\n defaultSelectedKeys: [],\n defaultOpenKeys: [],\n subMenuOpenDelay: 0.1,\n subMenuCloseDelay: 0.1,\n triggerSubMenuAction: 'hover',\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n style: {},\n builtinPlacements: {},\n overflowedIndicator: React.createElement(\"span\", null, \"\\xB7\\xB7\\xB7\")\n};\nexport default Menu;","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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\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\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { connect } from 'mini-store';\nimport { noop, menuAllProps } from './util';\nexport var MenuItem =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MenuItem).apply(this, arguments));\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n _this.onClick(e);\n\n return true;\n }\n\n return undefined;\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props = _this.props,\n eventKey = _this$props.eventKey,\n onItemHover = _this$props.onItemHover,\n onMouseLeave = _this$props.onMouseLeave;\n onItemHover({\n key: eventKey,\n hover: false\n });\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props2 = _this.props,\n eventKey = _this$props2.eventKey,\n onItemHover = _this$props2.onItemHover,\n onMouseEnter = _this$props2.onMouseEnter;\n onItemHover({\n key: eventKey,\n hover: true\n });\n onMouseEnter({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onClick = function (e) {\n var _this$props3 = _this.props,\n eventKey = _this$props3.eventKey,\n multiple = _this$props3.multiple,\n onClick = _this$props3.onClick,\n onSelect = _this$props3.onSelect,\n onDeselect = _this$props3.onDeselect,\n isSelected = _this$props3.isSelected;\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: _assertThisInitialized(_this),\n domEvent: e\n };\n onClick(info);\n\n if (multiple) {\n if (isSelected) {\n onDeselect(info);\n } else {\n onSelect(info);\n }\n } else if (!isSelected) {\n onSelect(info);\n }\n };\n\n _this.saveNode = function (node) {\n _this.node = node;\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n this.callRef();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props4 = this.props,\n active = _this$props4.active,\n parentMenu = _this$props4.parentMenu,\n eventKey = _this$props4.eventKey; // 在 parentMenu 上层保存滚动状态,避免重复的 MenuItem key 导致滚动跳动\n // https://github.com/ant-design/ant-design/issues/16181\n\n if (!prevProps.active && active && (!parentMenu || !parentMenu[\"scrolled-\".concat(eventKey)])) {\n if (this.node) {\n scrollIntoView(this.node, ReactDOM.findDOMNode(parentMenu), {\n onlyScrollIfNeeded: true\n });\n parentMenu[\"scrolled-\".concat(eventKey)] = true;\n }\n } else if (parentMenu && parentMenu[\"scrolled-\".concat(eventKey)]) {\n delete parentMenu[\"scrolled-\".concat(eventKey)];\n }\n\n this.callRef();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var props = this.props;\n\n if (props.onDestroy) {\n props.onDestroy(props.eventKey);\n }\n }\n }, {\n key: \"getPrefixCls\",\n value: function getPrefixCls() {\n return \"\".concat(this.props.rootPrefixCls, \"-item\");\n }\n }, {\n key: \"getActiveClassName\",\n value: function getActiveClassName() {\n return \"\".concat(this.getPrefixCls(), \"-active\");\n }\n }, {\n key: \"getSelectedClassName\",\n value: function getSelectedClassName() {\n return \"\".concat(this.getPrefixCls(), \"-selected\");\n }\n }, {\n key: \"getDisabledClassName\",\n value: function getDisabledClassName() {\n return \"\".concat(this.getPrefixCls(), \"-disabled\");\n }\n }, {\n key: \"callRef\",\n value: function callRef() {\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var props = _objectSpread({}, this.props);\n\n var className = classNames(this.getPrefixCls(), props.className, (_classNames = {}, _defineProperty(_classNames, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_classNames, this.getSelectedClassName(), props.isSelected), _defineProperty(_classNames, this.getDisabledClassName(), props.disabled), _classNames));\n\n var attrs = _objectSpread({}, props.attribute, {\n title: props.title,\n className: className,\n // set to menuitem by default\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n\n if (props.role === 'option') {\n // overwrite to option\n attrs = _objectSpread({}, attrs, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside <li/> element\n // <li><a role='menuitem'>Link</a></li> would be a good example\n // in this case the role on <li/> should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n } // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n\n\n var mouseEvent = {\n onClick: props.disabled ? null : this.onClick,\n onMouseLeave: props.disabled ? null : this.onMouseLeave,\n onMouseEnter: props.disabled ? null : this.onMouseEnter\n };\n\n var style = _objectSpread({}, props.style);\n\n if (props.mode === 'inline') {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n\n menuAllProps.forEach(function (key) {\n return delete props[key];\n });\n var icon = this.props.itemIcon;\n\n if (typeof this.props.itemIcon === 'function') {\n // TODO: This is a bug which should fixed after TS refactor\n icon = React.createElement(this.props.itemIcon, this.props);\n }\n\n return React.createElement(\"li\", Object.assign({}, props, attrs, mouseEvent, {\n style: style,\n ref: this.saveNode\n }), props.children, icon);\n }\n }]);\n\n return MenuItem;\n}(React.Component);\nMenuItem.isMenuItem = true;\nMenuItem.defaultProps = {\n onSelect: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n manualRef: noop\n};\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\nexport default connected;","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 _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport * as React from 'react';\nimport { menuAllProps } from './util';\n\nvar MenuItemGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(MenuItemGroup, _React$Component);\n\n function MenuItemGroup() {\n var _this;\n\n _classCallCheck(this, MenuItemGroup);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MenuItemGroup).apply(this, arguments));\n\n _this.renderInnerMenuItem = function (item) {\n var _this$props = _this.props,\n renderMenuItem = _this$props.renderMenuItem,\n index = _this$props.index;\n return renderMenuItem(item, index, _this.props.subMenuKey);\n };\n\n return _this;\n }\n\n _createClass(MenuItemGroup, [{\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n\n var _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n rootPrefixCls = props.rootPrefixCls;\n var titleClassName = \"\".concat(rootPrefixCls, \"-item-group-title\");\n var listClassName = \"\".concat(rootPrefixCls, \"-item-group-list\");\n var title = props.title,\n children = props.children;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n return React.createElement(\"li\", Object.assign({}, props, {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-group\")\n }), React.createElement(\"div\", {\n className: titleClassName,\n title: typeof title === 'string' ? title : undefined\n }, title), React.createElement(\"ul\", {\n className: listClassName\n }, React.Children.map(children, this.renderInnerMenuItem)));\n }\n }]);\n\n return MenuItemGroup;\n}(React.Component);\n\nMenuItemGroup.isMenuItemGroup = true;\nMenuItemGroup.defaultProps = {\n disabled: true\n};\nexport default MenuItemGroup;","import * as React from 'react';\n\nvar Divider = function Divider(_ref) {\n var className = _ref.className,\n rootPrefixCls = _ref.rootPrefixCls,\n style = _ref.style;\n return React.createElement(\"li\", {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-divider\"),\n style: style\n });\n};\n\nDivider.defaultProps = {\n // To fix keyboard UX.\n disabled: true,\n className: '',\n style: {}\n};\nexport default Divider;","import Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\nexport default Menu;","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data\n .arrayBuffer()\n .then(toArray)\n .then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, encoded => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, encodedPacket => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n }\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* READ_PAYLOAD */;\n }\n else if (state === 2 /* READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n }\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _spin = _interopRequireDefault(require(\"../spin\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _pagination = _interopRequireDefault(require(\"../pagination\"));\n\nvar _grid = require(\"../grid\");\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar List = /*#__PURE__*/function (_React$Component) {\n _inherits(List, _React$Component);\n\n var _super = _createSuper(List);\n\n function List(props) {\n var _this;\n\n _classCallCheck(this, List);\n\n _this = _super.call(this, props);\n _this.defaultPaginationProps = {\n current: 1,\n total: 0\n };\n _this.keys = {};\n _this.onPaginationChange = _this.triggerPaginationEvent('onChange');\n _this.onPaginationShowSizeChange = _this.triggerPaginationEvent('onShowSizeChange');\n\n _this.renderItem = function (item, index) {\n var _this$props = _this.props,\n renderItem = _this$props.renderItem,\n rowKey = _this$props.rowKey;\n if (!renderItem) return null;\n var key;\n\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (typeof rowKey === 'string') {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n\n _this.keys[index] = key;\n return renderItem(item, index);\n };\n\n _this.renderEmpty = function (prefixCls, renderEmpty) {\n var locale = _this.props.locale;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmpty('List'));\n };\n\n _this.renderList = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n renderEmpty = _ref.renderEmpty;\n var _this$state = _this.state,\n paginationCurrent = _this$state.paginationCurrent,\n paginationSize = _this$state.paginationSize;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n bordered = _a.bordered,\n split = _a.split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n pagination = _a.pagination,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n loading = _a.loading,\n rest = __rest(_a, [\"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"pagination\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\"]);\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n\n var isLoading = loadingProp && loadingProp.spinning; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var classString = (0, _classnames[\"default\"])(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-split\"), split), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), isLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-grid\"), grid), _defineProperty(_classNames, \"\".concat(prefixCls, \"-something-after-last-item\"), _this.isSomethingAfterLastItem()), _classNames));\n\n var paginationProps = _extends(_extends(_extends({}, _this.defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n\n var paginationContent = pagination ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(_pagination[\"default\"], _extends({}, paginationProps, {\n onChange: _this.onPaginationChange,\n onShowSizeChange: _this.onPaginationShowSizeChange\n }))) : null;\n\n var splitDataSource = _toConsumableArray(dataSource);\n\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n\n var childrenContent;\n childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return _this.renderItem(item, index);\n });\n var childrenList = [];\n React.Children.forEach(items, function (child, index) {\n childrenList.push( /*#__PURE__*/React.cloneElement(child, {\n key: _this.keys[index]\n }));\n });\n childrenContent = grid ? /*#__PURE__*/React.createElement(_grid.Row, {\n gutter: grid.gutter\n }, childrenList) : /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, childrenList);\n } else if (!children && !isLoading) {\n childrenContent = _this.renderEmpty(prefixCls, renderEmpty);\n }\n\n var paginationPosition = paginationProps.position || 'bottom';\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, (0, _omit[\"default\"])(rest, ['rowKey', 'renderItem', 'locale'])), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(_spin[\"default\"], loadingProp, childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent);\n };\n\n var pagination = props.pagination;\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n _this.state = {\n paginationCurrent: paginationObj.defaultCurrent || 1,\n paginationSize: paginationObj.defaultPageSize || 10\n };\n return _this;\n }\n\n _createClass(List, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n grid: this.props.grid,\n itemLayout: this.props.itemLayout\n };\n }\n }, {\n key: \"triggerPaginationEvent\",\n value: function triggerPaginationEvent(eventName) {\n var _this2 = this;\n\n return function (page, pageSize) {\n var pagination = _this2.props.pagination;\n\n _this2.setState({\n paginationCurrent: page,\n paginationSize: pageSize\n });\n\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n }\n }, {\n key: \"isSomethingAfterLastItem\",\n value: function isSomethingAfterLastItem() {\n var _this$props2 = this.props,\n loadMore = _this$props2.loadMore,\n pagination = _this$props2.pagination,\n footer = _this$props2.footer;\n return !!(loadMore || pagination || footer);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderList);\n }\n }]);\n\n return List;\n}(React.Component);\n\nexports[\"default\"] = List;\nList.Item = _Item[\"default\"];\nList.childContextTypes = {\n grid: PropTypes.any,\n itemLayout: PropTypes.string\n};\nList.defaultProps = {\n dataSource: [],\n bordered: false,\n split: true,\n loading: false,\n pagination: false\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","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"resetWarned\", {\n enumerable: true,\n get: function get() {\n return _warning.resetWarned;\n }\n});\nexports[\"default\"] = void 0;\n\nvar _warning = _interopRequireWildcard(require(\"rc-util/lib/warning\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = function _default(valid, component, message) {\n (0, _warning[\"default\"])(valid, \"[antd: \".concat(component, \"] \").concat(message));\n};\n\nexports[\"default\"] = _default;","module.exports = false;\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","/**\r\n * ============================================================================\r\n * COMPARING FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Comparing function used for ordering.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Use localeCompare\r\n * @param a Item 1\r\n * @param b Item 2\r\n * @return Result\r\n */\r\nexport function order(a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a < b) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n}\r\n/**\r\n * ============================================================================\r\n * OTHER FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Repeats a `string` number of times as set in `amount`.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Make this faster\r\n * @param string Source string\r\n * @param amount Number of times to repeat string\r\n * @return New string\r\n */\r\nexport function repeat(string, amount) {\r\n return new Array(amount + 1).join(string);\r\n}\r\n/**\r\n * Generates a random string `characters` length.\r\n *\r\n * @param chars Number of characters\r\n * @return Random string\r\n */\r\nexport function random(chars) {\r\n var res = \"\";\r\n var choice = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n for (var i = 0; i < chars; i++) {\r\n res += choice.charAt(Math.floor(Math.random() * choice.length));\r\n }\r\n return res;\r\n}\r\n//# sourceMappingURL=String.js.map","/**\r\n * Functionality for drawing waved lines.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Line } from \"./Line\";\r\nimport { color } from \"../utils/Color\";\r\nimport { wavedLine } from \"../rendering/Smoothing\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a waved line.\r\n *\r\n * @see {@link IWavedLineEvents} for a list of available events\r\n * @see {@link IWavedLineAdapters} for a list of available Adapters\r\n */\r\nvar WavedLine = /** @class */ (function (_super) {\r\n __extends(WavedLine, _super);\r\n /**\r\n * Constructor\r\n */\r\n function WavedLine() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"WavedLine\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.waveLength = 16;\r\n _this.waveHeight = 4;\r\n _this.tension = 0.8;\r\n _this.pixelPerfect = false;\r\n _this.fill = color();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the waved line.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n WavedLine.prototype.draw = function () {\r\n //super.draw();\r\n var p1 = { x: this.x1, y: this.y1 };\r\n var p2 = { x: this.x2, y: this.y2 };\r\n this.path = $path.moveTo(p1) + wavedLine(p1, p2, this.waveLength, this.waveHeight, this.tension, true);\r\n };\r\n Object.defineProperty(WavedLine.prototype, \"waveLength\", {\r\n /**\r\n * @return Wave length (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveLength\");\r\n },\r\n /**\r\n * Wave length in pixels.\r\n *\r\n * @default 16\r\n * @param value Wave length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveLength\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedLine.prototype, \"waveHeight\", {\r\n /**\r\n * @return Wave height (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveHeight\");\r\n },\r\n /**\r\n * Wave height in pixels.\r\n *\r\n * @default 4\r\n * @param value Wave height (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveHeight\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedLine.prototype, \"tension\", {\r\n /**\r\n * @return Tension\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Tension of the wave.\r\n *\r\n * @default 0.8\r\n * @param value Tension\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WavedLine;\r\n}(Line));\r\nexport { WavedLine };\r\n//# sourceMappingURL=WavedLine.js.map","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var __read = (this && this.__read) || function (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};\nimport { useCallback, useEffect, useState } from \"react\";\nvar EMPTY_ARRAY = [];\nexport function useUnmount(fn) {\n useEffect(function () { return fn; }, EMPTY_ARRAY);\n}\nexport function useForceUpdate() {\n var _a = __read(useState(0), 2), setTick = _a[1];\n var update = useCallback(function () {\n setTick(function (tick) { return tick + 1; });\n }, []);\n return update;\n}\nexport function isPlainObject(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n return !proto || proto === Object.prototype;\n}\nexport function getSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol.for(name);\n }\n return \"__$mobx-react \" + name + \"__\";\n}\nvar mockGlobal = {};\nexport function getGlobal() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n","/**\r\n * A collection of functions for ordering.\r\n */\r\n/**\r\n * [reverse description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param a [description]\r\n * @return [description]\r\n */\r\nexport function reverse(a) {\r\n switch (a) {\r\n case 0:\r\n return 0;\r\n case -1:\r\n return 1;\r\n case 1:\r\n return -1;\r\n }\r\n}\r\n/**\r\n * [or description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param a Item 1\r\n * @param b Item 2\r\n * @return [description]\r\n */\r\nexport function or(a, b) {\r\n if (a === 0) {\r\n return b;\r\n }\r\n else {\r\n return a;\r\n }\r\n}\r\n//# sourceMappingURL=Order.js.map","/**\r\n * Pattern module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { getGhostPaper } from \"../Paper\";\r\nimport { List, ListDisposer } from \"../../utils/List\";\r\nimport { Animation, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { registry } from \"../../Registry\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $type from \"../../utils/Type\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class to define patterns.\r\n */\r\nvar Pattern = /** @class */ (function (_super) {\r\n __extends(Pattern, _super);\r\n //public propertyValues = new Dictionary<PatternProperties, any>();\r\n /**\r\n * Constructor\r\n */\r\n function Pattern() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * List of elements the pattern consists of.\r\n */\r\n _this._elements = new List();\r\n /**\r\n * A storage for Filter property/value pairs.\r\n *\r\n * @ignore Exclude from docs\r\n * @see {@link PatternProperties}\r\n */\r\n _this.properties = {};\r\n _this.className = \"Pattern\";\r\n // Set defaults\r\n _this.width = 10;\r\n _this.height = 10;\r\n _this.x = 0;\r\n _this.y = 0;\r\n _this.patternUnits = \"userSpaceOnUse\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.backgroundFill = interfaceColors.getFor(\"background\");\r\n _this.backgroundOpacity = 0;\r\n _this.fillOpacity = 1;\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.stroke = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.strokeOpacity = 1;\r\n _this.strokeWidth = 1;\r\n _this.shapeRendering = \"crispEdges\";\r\n _this.rotation = 0;\r\n // Create main group to store pattern elements inelements\r\n _this.element = _this.paper.addGroup(\"pattern\");\r\n _this.id = \"pattern-\" + registry.getUniqueId();\r\n _this.element.attr({ \"id\": _this.id });\r\n _this._disposers.push(_this.element);\r\n // Make elements disposable\r\n _this._disposers.push(new ListDisposer(_this._elements));\r\n // Request again to trigger getter/setter code\r\n _this.patternUnits = _this.patternUnits;\r\n _this.width = _this.width;\r\n _this.height = _this.height;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the pattern.\r\n */\r\n Pattern.prototype.draw = function () {\r\n var _this = this;\r\n var patternElement = this.element;\r\n if (patternElement) {\r\n patternElement.removeChildNodes();\r\n var background = this.paper.add(\"rect\");\r\n background.attr({ \"width\": this.width, \"height\": this.height, \"shape-rendering\": \"crispEdges\", \"fill\": this.backgroundFill.hex, \"fill-opacity\": this.backgroundOpacity, \"stroke\": this.backgroundFill.hex, \"stroke-opacity\": 0 });\r\n patternElement.add(background);\r\n patternElement.attr({ \"x\": this.x, \"y\": this.y, \"width\": this.width, \"height\": this.height, \"stroke\": this.stroke.hex, \"fill\": this.fill.hex, \"fill-opacity\": this.fillOpacity, \"stroke-opacity\": this.strokeOpacity, \"stroke-width\": this.strokeWidth, \"shape-rendering\": this.shapeRendering, \"patternUnits\": this.patternUnits, \"stroke-dasharray\": this.strokeDasharray });\r\n $iter.each(this._elements.iterator(), function (element) {\r\n element.rotation = _this.rotation;\r\n element.rotationX = _this.properties[\"rotationX\"];\r\n element.rotationY = _this.properties[\"rotationY\"];\r\n _this.element.add(element);\r\n });\r\n }\r\n };\r\n /**\r\n * Animate pattern properties.\r\n *\r\n * @see {@link Animation}\r\n * @param animationOptions Animation options\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n * @return Animation instance\r\n */\r\n Pattern.prototype.animate = function (animationOptions, duration, easing) {\r\n return new Animation(this, animationOptions, duration, easing).start();\r\n };\r\n /**\r\n * Adds an element to the pattern.\r\n *\r\n * @param element Element\r\n */\r\n Pattern.prototype.addElement = function (element) {\r\n this._elements.push(element);\r\n this._disposers.push(element);\r\n };\r\n /**\r\n * Remove an element from the pattern.\r\n *\r\n * @param element Element\r\n */\r\n Pattern.prototype.removeElement = function (element) {\r\n this._elements.removeValue(element);\r\n this.removeDispose(element);\r\n };\r\n Object.defineProperty(Pattern.prototype, \"elements\", {\r\n /**\r\n * Returns the list of SVG elements comprising the pattern.\r\n *\r\n * @return Pattern elements\r\n */\r\n get: function () {\r\n return this._elements;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"fillOpacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"fillOpacity\"];\r\n },\r\n /**\r\n * Pattern fill opacity. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"fillOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"fill\", {\r\n /**\r\n * @return Fill color\r\n */\r\n get: function () {\r\n return this.properties[\"fill\"];\r\n },\r\n /**\r\n * Fill color of the pattern.\r\n *\r\n * @param value Fill color\r\n */\r\n set: function (value) {\r\n this.properties[\"fill\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"backgroundFill\", {\r\n /**\r\n * @return Background color\r\n */\r\n get: function () {\r\n return this.properties[\"backgroundFill\"];\r\n },\r\n /**\r\n * Pattern background fill color.\r\n *\r\n * @param value Background color\r\n */\r\n set: function (value) {\r\n this.properties[\"backgroundFill\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"backgroundOpacity\", {\r\n /**\r\n * @return Background opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"backgroundOpacity\"];\r\n },\r\n /**\r\n * Pattern backgorund opacity. (0-1)\r\n *\r\n * @param value Background opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"backgroundOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"stroke\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"stroke\"];\r\n },\r\n /**\r\n * Pattern stroke (border) color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"stroke\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"strokeOpacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeOpacity\"];\r\n },\r\n /**\r\n * Pattern stroke opacity. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeOpacity\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"strokeWidth\", {\r\n /**\r\n * @return Stroke thickness (px)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeWidth\"];\r\n },\r\n /**\r\n * Pattern stroke thickness in pixels.\r\n *\r\n * @param value Stroke thickness (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeWidth\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"shapeRendering\", {\r\n get: function () {\r\n return this.properties[\"shapeRendering\"];\r\n },\r\n /**\r\n * Shape rendering\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.properties[\"shapeRendering\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this.properties[\"rotation\"];\r\n },\r\n /**\r\n * Pattern rotation in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (value) {\r\n this.properties[\"rotation\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"patternUnits\", {\r\n /**\r\n * @return Units\r\n */\r\n get: function () {\r\n return this.properties[\"patternUnits\"];\r\n },\r\n /**\r\n * Pattern measuring units.\r\n *\r\n * Available options: \"userSpaceOnUse\" | \"objectBoundingBox\".\r\n *\r\n * @param value Units\r\n */\r\n set: function (value) {\r\n this.properties[\"patternUnits\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"width\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.properties[\"width\"];\r\n },\r\n /**\r\n * Pattern width in pixels.\r\n *\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"width\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"height\", {\r\n /**\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n return this.properties[\"height\"];\r\n },\r\n /**\r\n * Pattern height in pixels.\r\n *\r\n * @param value Height (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"height\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"x\", {\r\n /**\r\n * @return X (px)\r\n */\r\n get: function () {\r\n return this.properties[\"x\"];\r\n },\r\n /**\r\n * X position. (pixels)\r\n *\r\n * @param value X (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"x\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"y\", {\r\n /**\r\n * @return Y (px)\r\n */\r\n get: function () {\r\n return this.properties[\"y\"];\r\n },\r\n /**\r\n * Y position (px).\r\n *\r\n * @param value Y (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"y\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"paper\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Paper\r\n */\r\n get: function () {\r\n if (this._paper) {\r\n return this._paper;\r\n }\r\n return getGhostPaper();\r\n },\r\n /**\r\n * [[Paper]] instance to draw pattern in.\r\n *\r\n * @ignore Exclude from docs\r\n * @param paper Paper\r\n */\r\n set: function (paper) {\r\n if (this._paper != paper) {\r\n this._paper = paper;\r\n this.draw();\r\n paper.appendDef(this.element);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another Pattern instance.\r\n *\r\n * @param source Source pattern\r\n */\r\n Pattern.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, source);\r\n $object.each(source.properties, function (key, value) {\r\n _this[key] = value;\r\n });\r\n };\r\n Object.defineProperty(Pattern.prototype, \"animations\", {\r\n /**\r\n * A list of animations currently running on the patter.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Animation list\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Pattern.prototype, \"strokeDasharray\", {\r\n /**\r\n * @return `stroke-dasharray`\r\n */\r\n get: function () {\r\n return this.properties[\"strokeDashArray\"];\r\n },\r\n /**\r\n * A `stroke-dasharray` for the stroke (outline).\r\n *\r\n * \"Dasharray\" allows setting rules to make lines dashed, dotted, etc.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more info on `stroke-dasharray`\r\n * @param value `stroke-dasharray`\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeDashArray\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Pattern.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up series\r\n if ($type.hasValue(config.elements) && $type.isArray(config.elements)) {\r\n for (var i = 0, len = config.elements.length; i < len; i++) {\r\n var element = config.elements[i];\r\n if ($type.hasValue(element[\"type\"])) {\r\n var sprite = this.createEntryInstance(element);\r\n if (sprite instanceof BaseObject) {\r\n sprite.config = element;\r\n }\r\n this.addElement($type.hasValue(element[\"typeProperty\"])\r\n ? sprite[element[\"typeProperty\"]]\r\n : sprite.element);\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return Pattern;\r\n}(BaseObject));\r\nexport { Pattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Pattern\"] = Pattern;\r\n//# sourceMappingURL=Pattern.js.map","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","/*!\n * $script.js JS loader & dependency manager\n * https://github.com/ded/script.js\n * (c) Dustin Diaz 2014 | License MIT\n */\n\n(function (name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (typeof define == 'function' && define.amd) define(definition)\n else this[name] = definition()\n})('$script', function () {\n var doc = document\n , head = doc.getElementsByTagName('head')[0]\n , s = 'string'\n , f = false\n , push = 'push'\n , readyState = 'readyState'\n , onreadystatechange = 'onreadystatechange'\n , list = {}\n , ids = {}\n , delay = {}\n , scripts = {}\n , scriptpath\n , urlArgs\n\n function every(ar, fn) {\n for (var i = 0, j = ar.length; i < j; ++i) if (!fn(ar[i])) return f\n return 1\n }\n function each(ar, fn) {\n every(ar, function (el) {\n fn(el)\n return 1\n })\n }\n\n function $script(paths, idOrDone, optDone) {\n paths = paths[push] ? paths : [paths]\n var idOrDoneIsDone = idOrDone && idOrDone.call\n , done = idOrDoneIsDone ? idOrDone : optDone\n , id = idOrDoneIsDone ? paths.join('') : idOrDone\n , queue = paths.length\n function loopFn(item) {\n return item.call ? item() : list[item]\n }\n function callback() {\n if (!--queue) {\n list[id] = 1\n done && done()\n for (var dset in delay) {\n every(dset.split('|'), loopFn) && !each(delay[dset], loopFn) && (delay[dset] = [])\n }\n }\n }\n setTimeout(function () {\n each(paths, function loading(path, force) {\n if (path === null) return callback()\n \n if (!force && !/^https?:\\/\\//.test(path) && scriptpath) {\n path = (path.indexOf('.js') === -1) ? scriptpath + path + '.js' : scriptpath + path;\n }\n \n if (scripts[path]) {\n if (id) ids[id] = 1\n return (scripts[path] == 2) ? callback() : setTimeout(function () { loading(path, true) }, 0)\n }\n\n scripts[path] = 1\n if (id) ids[id] = 1\n create(path, callback)\n })\n }, 0)\n return $script\n }\n\n function create(path, fn) {\n var el = doc.createElement('script'), loaded\n el.onload = el.onerror = el[onreadystatechange] = function () {\n if ((el[readyState] && !(/^c|loade/.test(el[readyState]))) || loaded) return;\n el.onload = el[onreadystatechange] = null\n loaded = 1\n scripts[path] = 2\n fn()\n }\n el.async = 1\n el.src = urlArgs ? path + (path.indexOf('?') === -1 ? '?' : '&') + urlArgs : path;\n head.insertBefore(el, head.lastChild)\n }\n\n $script.get = create\n\n $script.order = function (scripts, id, done) {\n (function callback(s) {\n s = scripts.shift()\n !scripts.length ? $script(s, id, done) : $script(s, callback)\n }())\n }\n\n $script.path = function (p) {\n scriptpath = p\n }\n $script.urlArgs = function (str) {\n urlArgs = str;\n }\n $script.ready = function (deps, ready, req) {\n deps = deps[push] ? deps : [deps]\n var missing = [];\n !each(deps, function (dep) {\n list[dep] || missing[push](dep);\n }) && every(deps, function (dep) {return list[dep]}) ?\n ready() : !function (key) {\n delay[key] = delay[key] || []\n delay[key][push](ready)\n req && req(missing)\n }(deps.join('|'))\n return $script\n }\n\n $script.done = function (idOrDone) {\n $script([null], idOrDone)\n }\n\n return $script\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","/**\r\n * Handles date and time formatting\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { BaseObject } from \"../Base\";\r\nimport { getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $time from \"../utils/Time\";\r\n/**\r\n * Handles date and time formatting.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/} Tutorial on date/time formatting\r\n * @todo Better type casting of passed in date?\r\n * @todo Quarter support?\r\n * @todo When parsing named months make the search case-insensitive\r\n * @todo Escape a.m./p.m. properly when used in RegEx\r\n */\r\nvar DateFormatter = /** @class */ (function (_super) {\r\n __extends(DateFormatter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DateFormatter() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Date format.\r\n */\r\n _this._dateFormat = \"yyyy-MM-dd\";\r\n /**\r\n * Input date format.\r\n */\r\n _this._inputDateFormat = \"yyyy-MM-dd\";\r\n /**\r\n * Assume UTC time zone.\r\n */\r\n _this._utc = false;\r\n /**\r\n * If `timezone` is set, this will hold minute fraction of the timezone.\r\n *\r\n * @readonly\r\n * @ignore\r\n */\r\n _this.timezoneMinutes = 0;\r\n /**\r\n * First day of week.\r\n *\r\n * 0 - Sunday\r\n * 1 - Monday\r\n *\r\n * Etc.\r\n */\r\n _this._firstDayOfWeek = 1;\r\n /**\r\n * A list of month names.\r\n */\r\n _this.months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n /**\r\n * A list of short month names.\r\n */\r\n _this.monthsShort = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May(short)\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n /**\r\n * A list of weekday names.\r\n */\r\n _this.weekdays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\n /**\r\n * A list of short weekday names.\r\n */\r\n _this.weekdaysShort = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\r\n /**\r\n * Output format to produce. If the format calls for applying color to the\r\n * formatted value, this setting will determine what markup to use: SVG or\r\n * HTML.\r\n *\r\n * Available options: svg, html.\r\n *\r\n * @default \"svg\"\r\n */\r\n _this._outputFormat = \"svg\";\r\n /**\r\n * Should the first letter of the formatted date be capitalized?\r\n *\r\n * @default true\r\n */\r\n _this.capitalize = true;\r\n _this.className = \"DateFormatter\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DateFormatter.prototype, \"language\", {\r\n /**\r\n * @return Language\r\n */\r\n get: function () {\r\n return this._language;\r\n },\r\n /**\r\n * A reference to [[Language]] object.\r\n *\r\n * @param value Language\r\n */\r\n set: function (value) {\r\n this._language = value;\r\n this.dateFormat = this._language.translate(\"_date\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Formats the date value according to specified format.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/} Tutorial on date/time formatting\r\n * @param source Date value\r\n * @param format Format\r\n * @return Formatted date string\r\n */\r\n DateFormatter.prototype.format = function (source, format, applyTimezone) {\r\n // No language?\r\n if (!this.language) {\r\n if (this.sprite) {\r\n this.language = this.sprite.language;\r\n }\r\n else {\r\n this.language = new Language();\r\n }\r\n }\r\n // No format passed in or it's empty\r\n if (typeof format === \"undefined\" || format === \"\") {\r\n format = this._dateFormat;\r\n }\r\n // Init return value\r\n var formatted;\r\n // Do casting if required\r\n // This will take care of timestamps as well as Date objects\r\n var date;\r\n if ($type.isString(source)) {\r\n // If it's a string, let's try parsing it using our own functionality\r\n date = this.parse(source);\r\n }\r\n else {\r\n date = $utils.anyToDate(source);\r\n }\r\n // Is it a built-in format or Intl.DateTimeFormat\r\n if ($type.isObject(format)) {\r\n try {\r\n if (this.intlLocales) {\r\n return new Intl.DateTimeFormat(this.intlLocales, format).format(date);\r\n }\r\n else {\r\n return new Intl.DateTimeFormat(undefined, format).format(date);\r\n }\r\n }\r\n catch (e) {\r\n return \"Invalid\";\r\n }\r\n }\r\n else {\r\n // Clean format\r\n format = $utils.cleanFormat(format);\r\n // get format info (it will also deal with parser caching)\r\n var info = this.parseFormat(format);\r\n // Should we apply custom time zone?\r\n if ($type.hasValue(this.timezoneOffset)) {\r\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset() - this.timezoneOffset);\r\n }\r\n else if ($type.hasValue(this.timezone) && applyTimezone !== false) {\r\n date = $time.setTimezone(date, this.timezone);\r\n }\r\n // Check if it's a valid date\r\n if (!$type.isNumber(date.getTime())) {\r\n return this.language.translate(\"Invalid date\");\r\n }\r\n // Apply format\r\n formatted = this.applyFormat(date, info, this.language);\r\n // Capitalize\r\n if (this.capitalize) {\r\n formatted = formatted.replace(/^.{1}/, formatted.substr(0, 1).toUpperCase());\r\n }\r\n }\r\n // We're done\r\n return formatted;\r\n };\r\n /**\r\n * Parses format into structured infromation.\r\n *\r\n * @param format Format template\r\n */\r\n DateFormatter.prototype.parseFormat = function (format) {\r\n // Check cache\r\n var cached = this.getCache(format);\r\n if ($type.hasValue(cached)) {\r\n return cached;\r\n }\r\n // Init format parse info holder\r\n var info = {\r\n \"template\": \"\",\r\n \"parts\": []\r\n };\r\n // Let TextFormatter split into chunks\r\n var chunks = getTextFormatter().chunk(format, true);\r\n for (var i = 0; i < chunks.length; i++) {\r\n var chunk = chunks[i];\r\n if (chunk.type === \"value\") {\r\n // Just \"Date\"?\r\n if (chunk.text.match(/^date$/i) && $type.isString(this._dateFormat)) {\r\n chunk.text = this._dateFormat;\r\n }\r\n // Find all possible parts\r\n var matches = chunk.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|q|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);\r\n // Found?\r\n if (matches) {\r\n // Populate template\r\n for (var x = 0; x < matches.length; x++) {\r\n info.parts.push(matches[x]);\r\n chunk.text = chunk.text.replace(matches[x], $strings.PLACEHOLDER);\r\n }\r\n }\r\n }\r\n // Apply to template\r\n info.template += chunk.text;\r\n }\r\n // Apply style formatting\r\n //info.template = getTextFormatter().format(info.template, this.outputFormat);\r\n // Save cache\r\n this.setCache(format, info);\r\n return info;\r\n };\r\n /**\r\n * Applies format to Date.\r\n *\r\n * @param date Date object\r\n * @param info Parsed format information\r\n * @param language Language\r\n * @return Formatted date string\r\n */\r\n DateFormatter.prototype.applyFormat = function (date, info, language) {\r\n // Init return value\r\n var res = info.template;\r\n // Get values\r\n var fullYear, month, weekday, day, hours, minutes, seconds, milliseconds, offset = date.getTimezoneOffset(), timestamp = date.getTime();\r\n if (this.utc) {\r\n fullYear = date.getUTCFullYear();\r\n month = date.getUTCMonth();\r\n weekday = date.getUTCDay();\r\n day = date.getUTCDate();\r\n hours = date.getUTCHours();\r\n minutes = date.getUTCMinutes();\r\n seconds = date.getUTCSeconds();\r\n milliseconds = date.getUTCMilliseconds();\r\n }\r\n else {\r\n fullYear = date.getFullYear();\r\n month = date.getMonth();\r\n weekday = date.getDay();\r\n day = date.getDate();\r\n hours = date.getHours();\r\n minutes = date.getMinutes();\r\n seconds = date.getSeconds();\r\n milliseconds = date.getMilliseconds();\r\n }\r\n // Go through each part and format/replace it in template\r\n for (var i = 0, len = info.parts.length; i < len; i++) {\r\n var value = \"\";\r\n switch (info.parts[i]) {\r\n case \"G\":\r\n value = language.translate(fullYear < 0\r\n ? \"_era_bc\"\r\n : \"_era_ad\");\r\n break;\r\n case \"yyyy\":\r\n value = Math.abs(fullYear).toString();\r\n if (fullYear < 0) {\r\n value += language.translate(\"_era_bc\");\r\n }\r\n break;\r\n case \"yyy\":\r\n case \"yy\":\r\n case \"y\":\r\n value = Math.abs(fullYear).toString().substr(-info.parts[i].length);\r\n if (fullYear < 0) {\r\n value += language.translate(\"_era_bc\");\r\n }\r\n break;\r\n case \"YYYY\":\r\n case \"YYY\":\r\n case \"YY\":\r\n case \"Y\":\r\n var week = $utils.getWeek(date);\r\n var year = fullYear;\r\n if (week == 1 && (weekday > 4)) {\r\n year--;\r\n }\r\n if (info.parts[i] == \"YYYY\") {\r\n value = Math.abs(year).toString();\r\n }\r\n else {\r\n value = Math.abs(year).toString().substr(-info.parts[i].length);\r\n }\r\n if (year < 0) {\r\n value += language.translate(\"_era_bc\");\r\n }\r\n break;\r\n case \"u\":\r\n // @todo\r\n break;\r\n case \"q\":\r\n value = \"\" + Math.ceil((date.getMonth() + 1) / 3);\r\n break;\r\n case \"MMMMM\":\r\n value = language.translate(this.months[month]).substr(0, 1);\r\n break;\r\n case \"MMMM\":\r\n value = language.translate(this.months[month]);\r\n break;\r\n case \"MMM\":\r\n value = language.translate(this.monthsShort[month]);\r\n break;\r\n case \"MM\":\r\n value = $utils.padString(month + 1, 2, \"0\");\r\n break;\r\n case \"M\":\r\n value = (month + 1).toString();\r\n break;\r\n case \"ww\":\r\n value = $utils.padString($utils.getWeek(date, this.utc), 2, \"0\");\r\n break;\r\n case \"w\":\r\n value = $utils.getWeek(date, this.utc).toString();\r\n break;\r\n case \"W\":\r\n value = $utils.getMonthWeek(date, this.utc).toString();\r\n break;\r\n case \"dd\":\r\n value = $utils.padString(day, 2, \"0\");\r\n break;\r\n case \"d\":\r\n value = day.toString();\r\n break;\r\n case \"DD\":\r\n case \"DDD\":\r\n value = $utils.padString($utils.getYearDay(date, this.utc).toString(), info.parts[i].length, \"0\");\r\n break;\r\n case \"D\":\r\n value = $utils.getYearDay(date, this.utc).toString();\r\n break;\r\n case \"F\":\r\n // @todo\r\n break;\r\n case \"g\":\r\n // @todo\r\n break;\r\n case \"t\":\r\n value = language.translateFunc(\"_dateOrd\").call(this, day);\r\n break;\r\n case \"E\":\r\n value = (weekday || 7).toString();\r\n break;\r\n case \"EE\":\r\n value = $utils.padString((weekday || 7).toString(), 2, \"0\");\r\n break;\r\n case \"EEE\":\r\n case \"eee\":\r\n value = language.translate(this.weekdaysShort[weekday]);\r\n break;\r\n case \"EEEE\":\r\n case \"eeee\":\r\n value = language.translate(this.weekdays[weekday]);\r\n break;\r\n case \"EEEEE\":\r\n case \"eeeee\":\r\n value = language.translate(this.weekdays[weekday]).substr(0, 1);\r\n break;\r\n case \"e\":\r\n case \"ee\":\r\n value = (weekday - this.firstDayOfWeek + 1).toString();\r\n if (info.parts[i] == \"ee\") {\r\n value = $utils.padString(value, 2, \"0\");\r\n }\r\n break;\r\n case \"a\":\r\n if (hours >= 12) {\r\n value = language.translate(\"PM\");\r\n }\r\n else {\r\n value = language.translate(\"AM\");\r\n }\r\n break;\r\n case \"aa\":\r\n if (hours >= 12) {\r\n value = language.translate(\"P.M.\");\r\n }\r\n else {\r\n value = language.translate(\"A.M.\");\r\n }\r\n break;\r\n case \"aaa\":\r\n if (hours >= 12) {\r\n value = language.translate(\"P\");\r\n }\r\n else {\r\n value = language.translate(\"A\");\r\n }\r\n break;\r\n case \"h\":\r\n value = $utils.get12Hours(hours).toString();\r\n break;\r\n case \"hh\":\r\n value = $utils.padString($utils.get12Hours(hours), 2, \"0\");\r\n break;\r\n case \"H\":\r\n value = hours.toString();\r\n break;\r\n case \"HH\":\r\n value = $utils.padString(hours, 2, \"0\");\r\n break;\r\n case \"K\":\r\n value = $utils.get12Hours(hours, 0).toString();\r\n break;\r\n case \"KK\":\r\n value = $utils.padString($utils.get12Hours(hours, 0), 2, \"0\");\r\n break;\r\n case \"k\":\r\n value = (hours + 1).toString();\r\n break;\r\n case \"kk\":\r\n value = $utils.padString(hours + 1, 2, \"0\");\r\n break;\r\n case \"m\":\r\n value = minutes.toString();\r\n break;\r\n case \"mm\":\r\n value = $utils.padString(minutes, 2, \"0\");\r\n break;\r\n case \"s\":\r\n value = seconds.toString();\r\n break;\r\n case \"ss\":\r\n value = $utils.padString(seconds, 2, \"0\");\r\n break;\r\n case \"S\":\r\n case \"SS\":\r\n case \"SSS\":\r\n value = Math.round((milliseconds / 1000) * Math.pow(10, info.parts[i].length)).toString();\r\n break;\r\n case \"x\":\r\n value = timestamp.toString();\r\n break;\r\n case \"n\":\r\n case \"nn\":\r\n case \"nnn\":\r\n value = $utils.padString(milliseconds, info.parts[i].length, \"0\");\r\n break;\r\n case \"z\":\r\n value = $utils.getTimeZone(date, false, false, this.utc);\r\n break;\r\n case \"zz\":\r\n value = $utils.getTimeZone(date, true, false, this.utc);\r\n break;\r\n case \"zzz\":\r\n value = $utils.getTimeZone(date, false, true, this.utc);\r\n break;\r\n case \"zzzz\":\r\n value = $utils.getTimeZone(date, true, true, this.utc);\r\n break;\r\n case \"Z\":\r\n case \"ZZ\":\r\n var tz = Math.abs(offset) / 60;\r\n var tzh = Math.floor(tz);\r\n var tzm = tz * 60 - tzh * 60;\r\n if (this.utc) {\r\n tzh = 0;\r\n tzm = 0;\r\n }\r\n if (info.parts[i] == \"Z\") {\r\n value = \"GMT\";\r\n value += offset > 0 ? \"-\" : \"+\";\r\n value += $utils.padString(tzh, 2) + \":\" + $utils.padString(tzm, 2);\r\n }\r\n else {\r\n value = offset > 0 ? \"-\" : \"+\";\r\n value += $utils.padString(tzh, 2) + $utils.padString(tzm, 2);\r\n }\r\n break;\r\n case \"i\":\r\n value = date.toISOString();\r\n break;\r\n case \"I\":\r\n value = date.toUTCString();\r\n break;\r\n }\r\n res = res.replace($strings.PLACEHOLDER, value);\r\n }\r\n return res;\r\n };\r\n /**\r\n * Parses any input value into Date object.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/#Parsing_Dates} Tutorial on date/time parsing\r\n * @param source Source value\r\n * @param format Source format\r\n * @return Date object\r\n */\r\n DateFormatter.prototype.parse = function (source, format) {\r\n // Format set?\r\n if (!$type.hasValue(format)) {\r\n format = this.inputDateFormat;\r\n }\r\n // Is it already a Date\r\n if (source instanceof Date) {\r\n return source;\r\n }\r\n // Is it a numeric timestamp\r\n if (typeof source === \"number\") {\r\n return new Date(source);\r\n }\r\n // No? Let's check if it's string, and try converting to it if nec\r\n if (typeof source !== \"string\") {\r\n source = source.toString();\r\n }\r\n // no language?\r\n if (!this.language) {\r\n if (this.sprite) {\r\n this.language = this.sprite.language;\r\n }\r\n else {\r\n this.language = new Language;\r\n }\r\n }\r\n // Init return value\r\n var res;\r\n // Init RegEx for parsing\r\n var reg = \"\";\r\n // Clean format\r\n format = $utils.cleanFormat(format);\r\n // Clip format to length of the source string\r\n format = format.substr(0, source.length);\r\n // Parse format\r\n var info = this.parseFormat(format);\r\n // Init parsed items holder\r\n var parsedIndexes = {\r\n \"year\": -1,\r\n \"year3\": -1,\r\n \"year2\": -1,\r\n \"year1\": -1,\r\n \"month\": -1,\r\n \"monthShort\": -1,\r\n \"monthLong\": -1,\r\n \"weekdayShort\": -1,\r\n \"weekdayLong\": -1,\r\n \"day\": -1,\r\n \"yearDay\": -1,\r\n \"week\": -1,\r\n \"hourBase0\": -1,\r\n \"hour12Base0\": -1,\r\n \"hourBase1\": -1,\r\n \"hour12Base1\": -1,\r\n \"minute\": -1,\r\n \"second\": -1,\r\n \"millisecond\": -1,\r\n \"millisecondDigits\": -1,\r\n \"am\": -1,\r\n \"zone\": -1,\r\n \"timestamp\": -1,\r\n \"iso\": -1\r\n };\r\n // Init values\r\n var resValues = {\r\n \"year\": 1970,\r\n \"month\": 0,\r\n \"day\": 1,\r\n \"hour\": 0,\r\n \"minute\": 0,\r\n \"second\": 0,\r\n \"millisecond\": 0,\r\n \"timestamp\": null,\r\n \"offset\": 0,\r\n \"utc\": this.utc\r\n };\r\n // Index adjuster\r\n var indexAdjust = 0, index = 0;\r\n // Iterate through all of the parts\r\n for (var i = 0; i < info.parts.length; i++) {\r\n // Set current match index\r\n index = i + indexAdjust + 1;\r\n switch (info.parts[i]) {\r\n case \"yyyy\":\r\n case \"YYYY\":\r\n reg += \"([0-9]{4})\";\r\n parsedIndexes.year = index;\r\n break;\r\n case \"yyy\":\r\n case \"YYY\":\r\n reg += \"([0-9]{3})\";\r\n parsedIndexes.year3 = index;\r\n break;\r\n case \"yy\":\r\n case \"YY\":\r\n reg += \"([0-9]{2})\";\r\n parsedIndexes.year2 = index;\r\n break;\r\n case \"y\":\r\n case \"Y\":\r\n reg += \"([0-9]{1})\";\r\n parsedIndexes.year1 = index;\r\n break;\r\n case \"MMMM\":\r\n reg += \"(\" + this.getStringList(this.months).join(\"|\") + \")\";\r\n parsedIndexes.monthLong = index;\r\n break;\r\n case \"MMM\":\r\n reg += \"(\" + this.getStringList(this.monthsShort).join(\"|\") + \")\";\r\n parsedIndexes.monthShort = index;\r\n break;\r\n case \"MM\":\r\n case \"M\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.month = index;\r\n break;\r\n case \"ww\":\r\n case \"w\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.week = index;\r\n break;\r\n case \"dd\":\r\n case \"d\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.day = index;\r\n break;\r\n case \"DDD\":\r\n case \"DD\":\r\n case \"D\":\r\n reg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.yearDay = index;\r\n break;\r\n case \"dddd\":\r\n reg += \"(\" + this.getStringList(this.weekdays).join(\"|\") + \")\";\r\n parsedIndexes.weekdayLong = index;\r\n break;\r\n case \"ddd\":\r\n reg += \"(\" + this.getStringList(this.weekdaysShort).join(\"|\") + \")\";\r\n parsedIndexes.weekdayShort = index;\r\n break;\r\n case \"aaa\":\r\n case \"aa\":\r\n case \"a\":\r\n // TODO: fix (escape regex)\r\n reg += \"(\" + this.getStringList([\"AM\", \"PM\", \"A\\.M\\.\", \"P\\.M\\.\", \"A\", \"P\"]).join(\"|\") + \")\";\r\n parsedIndexes.am = index;\r\n break;\r\n case \"hh\":\r\n case \"h\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.hour12Base1 = index;\r\n break;\r\n case \"HH\":\r\n case \"H\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.hourBase0 = index;\r\n break;\r\n case \"KK\":\r\n case \"K\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.hour12Base0 = index;\r\n break;\r\n case \"kk\":\r\n case \"k\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.hourBase1 = index;\r\n break;\r\n case \"mm\":\r\n case \"m\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.minute = index;\r\n break;\r\n case \"ss\":\r\n case \"s\":\r\n reg += \"([0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.second = index;\r\n break;\r\n case \"SSS\":\r\n case \"SS\":\r\n case \"S\":\r\n reg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.millisecond = index;\r\n parsedIndexes.millisecondDigits = info.parts[i].length;\r\n break;\r\n case \"nnn\":\r\n case \"nn\":\r\n case \"n\":\r\n reg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n parsedIndexes.millisecond = index;\r\n break;\r\n case \"x\":\r\n reg += \"([0-9]{1,})\";\r\n parsedIndexes.timestamp = index;\r\n break;\r\n case \"Z\":\r\n reg += \"GMT([-+]+[0-9]{2}:[0-9]{2})\";\r\n parsedIndexes.zone = index;\r\n break;\r\n case \"ZZ\":\r\n reg += \"([\\\\-+]+[0-9]{2}[0-9]{2})\";\r\n parsedIndexes.zone = index;\r\n break;\r\n case \"i\":\r\n reg += \"([0-9]{4})-?([0-9]{2})-?([0-9]{2})T?([0-9]{2}):?([0-9]{2}):?([0-9]{2})\\.?([0-9]{0,3})([zZ]|[+\\-][0-9]{2}:?[0-9]{2}|$)\";\r\n parsedIndexes.iso = index;\r\n indexAdjust += 7;\r\n break;\r\n case \"G\":\r\n case \"YYYY\":\r\n case \"YYY\":\r\n case \"YY\":\r\n case \"Y\":\r\n case \"MMMMM\":\r\n case \"W\":\r\n case \"EEEEE\":\r\n case \"EEEE\":\r\n case \"EEE\":\r\n case \"EE\":\r\n case \"E\":\r\n case \"eeeee\":\r\n case \"eeee\":\r\n case \"eee\":\r\n case \"ee\":\r\n case \"e\":\r\n case \"zzzz\":\r\n case \"zzz\":\r\n case \"zz\":\r\n case \"z\":\r\n case \"t\":\r\n // Ignore\r\n indexAdjust--;\r\n break;\r\n }\r\n reg += \"[^0-9]*\";\r\n }\r\n // Try matching\r\n var regex = new RegExp(reg);\r\n var matches = source.match(regex);\r\n if (matches) {\r\n // Populate the date object\r\n // Full year\r\n if (parsedIndexes.year > -1) {\r\n resValues.year = parseInt(matches[parsedIndexes.year]);\r\n }\r\n // 3-digit year\r\n if (parsedIndexes.year3 > -1) {\r\n var val = parseInt(matches[parsedIndexes.year3]);\r\n val += 1000;\r\n resValues.year = val;\r\n }\r\n // 2-digit year\r\n if (parsedIndexes.year2 > -1) {\r\n var val = parseInt(matches[parsedIndexes.year2]);\r\n if (val > 50) {\r\n val += 1000;\r\n }\r\n else {\r\n val += 2000;\r\n }\r\n resValues.year = val;\r\n }\r\n // 1-digit year\r\n if (parsedIndexes.year1 > -1) {\r\n var val = parseInt(matches[parsedIndexes.year1]);\r\n val = Math.floor((new Date().getFullYear()) / 10) * 10 + val;\r\n resValues.year = val;\r\n }\r\n // Full month\r\n if (parsedIndexes.monthLong > -1) {\r\n resValues.month = this.resolveMonth(matches[parsedIndexes.monthLong]);\r\n }\r\n // Short month\r\n if (parsedIndexes.monthShort > -1) {\r\n resValues.month = this.resolveShortMonth(matches[parsedIndexes.monthShort]);\r\n }\r\n // Numeric month\r\n if (parsedIndexes.month > -1) {\r\n resValues.month = parseInt(matches[parsedIndexes.month]) - 1;\r\n }\r\n // Weekday\r\n // @todo\r\n // Week\r\n if ((parsedIndexes.week > -1) && (parsedIndexes.day === -1)) {\r\n // We parse weeks ONLY if day is not explicitly set\r\n // TODO: this needs work\r\n // (but maybe later - I can hardly imagine anyone passing their dates in weeks)\r\n resValues.month = 0;\r\n resValues.day = $utils.getDayFromWeek(parseInt(matches[parsedIndexes.week]), resValues.year, 1, this.utc);\r\n }\r\n // Day\r\n if (parsedIndexes.day > -1) {\r\n resValues.day = parseInt(matches[parsedIndexes.day]);\r\n }\r\n // Year day\r\n if (parsedIndexes.yearDay > -1) {\r\n resValues.month = 0;\r\n resValues.day = parseInt(matches[parsedIndexes.yearDay]);\r\n }\r\n // 24 Hour (0-23)\r\n if (parsedIndexes.hourBase0 > -1) {\r\n resValues.hour = parseInt(matches[parsedIndexes.hourBase0]);\r\n }\r\n // 24 Hour (1-24)\r\n if (parsedIndexes.hourBase1 > -1) {\r\n resValues.hour = parseInt(matches[parsedIndexes.hourBase1]) - 1;\r\n }\r\n // 12 Hour (0-11)\r\n if (parsedIndexes.hour12Base0 > -1) {\r\n var val = parseInt(matches[parsedIndexes.hour12Base0]);\r\n if (val == 11) {\r\n val = 0;\r\n }\r\n if ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\r\n val += 12;\r\n }\r\n resValues.hour = val;\r\n }\r\n // 12 Hour (1-12)\r\n if (parsedIndexes.hour12Base1 > -1) {\r\n var val = parseInt(matches[parsedIndexes.hour12Base1]);\r\n if (val == 12) {\r\n val = 0;\r\n }\r\n if ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\r\n val += 12;\r\n }\r\n resValues.hour = val;\r\n }\r\n // Minute\r\n if (parsedIndexes.minute > -1) {\r\n resValues.minute = parseInt(matches[parsedIndexes.minute]);\r\n }\r\n // Second\r\n if (parsedIndexes.second > -1) {\r\n resValues.second = parseInt(matches[parsedIndexes.second]);\r\n }\r\n // Millisecond\r\n if (parsedIndexes.millisecond > -1) {\r\n var val = parseInt(matches[parsedIndexes.millisecond]);\r\n if (parsedIndexes.millisecondDigits == 2) {\r\n val *= 10;\r\n }\r\n else if (parsedIndexes.millisecondDigits == 1) {\r\n val *= 100;\r\n }\r\n resValues.millisecond = val;\r\n }\r\n // Timestamp\r\n if (parsedIndexes.timestamp > -1) {\r\n resValues.timestamp = parseInt(matches[parsedIndexes.timestamp]);\r\n var ts = new Date(resValues.timestamp);\r\n resValues.year = ts.getUTCFullYear();\r\n resValues.month = ts.getUTCMonth();\r\n resValues.day = ts.getUTCDate();\r\n resValues.hour = ts.getUTCHours();\r\n resValues.minute = ts.getUTCMinutes();\r\n resValues.second = ts.getUTCSeconds();\r\n resValues.millisecond = ts.getUTCMilliseconds();\r\n }\r\n // Adjust time zone\r\n if (parsedIndexes.zone > -1) {\r\n resValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.zone]);\r\n }\r\n // ISO\r\n if (parsedIndexes.iso > -1) {\r\n resValues.year = $type.toNumber(matches[parsedIndexes.iso + 0]);\r\n resValues.month = $type.toNumber(matches[parsedIndexes.iso + 1]) - 1;\r\n resValues.day = $type.toNumber(matches[parsedIndexes.iso + 2]);\r\n resValues.hour = $type.toNumber(matches[parsedIndexes.iso + 3]);\r\n resValues.minute = $type.toNumber(matches[parsedIndexes.iso + 4]);\r\n resValues.second = $type.toNumber(matches[parsedIndexes.iso + 5]);\r\n resValues.millisecond = $type.toNumber(matches[parsedIndexes.iso + 6]);\r\n if (matches[parsedIndexes.iso + 7] == \"Z\" || matches[parsedIndexes.iso + 7] == \"z\") {\r\n resValues.utc = true;\r\n }\r\n else if (matches[parsedIndexes.iso + 7] != \"\") {\r\n resValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.iso + 7]);\r\n }\r\n }\r\n // Create Date object\r\n if (resValues.utc) {\r\n res = new Date(Date.UTC(resValues.year, resValues.month, resValues.day, resValues.hour, resValues.minute, resValues.second, resValues.millisecond));\r\n }\r\n else {\r\n res = new Date(resValues.year, resValues.month, resValues.day, resValues.hour, resValues.minute + resValues.offset, resValues.second, resValues.millisecond);\r\n }\r\n }\r\n else {\r\n // Didn't match anything\r\n // Let's try dropping it into Date constructor and hope for the best\r\n res = new Date(source);\r\n }\r\n return res;\r\n };\r\n DateFormatter.prototype.resolveTimezoneOffset = function (date, zone) {\r\n var value = zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/);\r\n if (value) {\r\n var match = $type.getValue(zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/));\r\n var dir = match[1];\r\n var hour = match[2];\r\n var minute = match[3];\r\n var offset = parseInt(hour) * 60 + parseInt(minute);\r\n // Adjust offset\r\n // Making it negative does not seem to make sense, but it's right\r\n // because of how JavaScript calculates GMT offsets\r\n if (dir == \"+\") {\r\n offset *= -1;\r\n }\r\n // Check the difference in offset\r\n var originalOffset = (date || new Date()).getTimezoneOffset();\r\n var diff = offset - originalOffset;\r\n return diff;\r\n }\r\n return 0;\r\n };\r\n /**\r\n * Resolves month name (i.e. \"December\") into a month number (11).\r\n *\r\n * @param value Month name\r\n * @return Month number\r\n */\r\n DateFormatter.prototype.resolveMonth = function (value) {\r\n // Let's try English first\r\n var month = this.months.indexOf(value);\r\n if (month > -1) {\r\n return month;\r\n }\r\n // Try the translation\r\n if (this.language && !this.language.isDefault()) {\r\n month = this.language.translateAll(this.months).indexOf(value);\r\n if (month > -1) {\r\n return month;\r\n }\r\n }\r\n return 0;\r\n };\r\n /**\r\n * Resolves short month name (i.e. \"Dec\") into a month number.\r\n *\r\n * @param value Short month name\r\n * @return Month number\r\n */\r\n DateFormatter.prototype.resolveShortMonth = function (value) {\r\n // Let's try English first\r\n var month = this.monthsShort.indexOf(value);\r\n if (month > -1) {\r\n return month;\r\n }\r\n // Maybe long month (workaround for May)\r\n month = this.months.indexOf(value);\r\n if (month > -1) {\r\n return month;\r\n }\r\n // Try the translation\r\n if (this.language && !this.language.isDefault()) {\r\n month = this.language.translateAll(this.monthsShort).indexOf(value);\r\n if (month > -1) {\r\n return month;\r\n }\r\n }\r\n return 0;\r\n };\r\n /**\r\n * Checks if passed in string represents AM/PM notation in many of its\r\n * versions.\r\n *\r\n * @param value Source string\r\n * @return Is it AM/PM?\r\n */\r\n DateFormatter.prototype.isAm = function (value) {\r\n var list = this.getStringList([\"AM\", \"A.M.\", \"A\"]);\r\n return list.indexOf(value.toUpperCase()) > -1;\r\n };\r\n /**\r\n * Invalidates related [[Sprite]] causing it to redraw.\r\n */\r\n DateFormatter.prototype.invalidateSprite = function () {\r\n if (this.sprite) {\r\n this.sprite.invalidate();\r\n }\r\n };\r\n /**\r\n * Translates list of strings.\r\n *\r\n * @param list Source strings\r\n * @return Translated strings\r\n */\r\n DateFormatter.prototype.getStringList = function (list) {\r\n var res = [];\r\n for (var i = 0; i < list.length; i++) {\r\n // translate?\r\n if (this.language) {\r\n res.push($utils.escapeForRgex(this.language.translate(list[i])));\r\n }\r\n else {\r\n res.push($utils.escapeForRgex(list[i]));\r\n }\r\n }\r\n return res;\r\n };\r\n Object.defineProperty(DateFormatter.prototype, \"dateFormat\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this._dateFormat;\r\n },\r\n /**\r\n * Date format to use.\r\n *\r\n * If format is not supplied in-line in the string, this setting will be\r\n * used.\r\n *\r\n * @default \"yyyy-MM-dd\"\r\n * @param value Date format\r\n */\r\n set: function (value) {\r\n this._dateFormat = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"inputDateFormat\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this._inputDateFormat;\r\n },\r\n /**\r\n * Date format to use when parsing dates.\r\n *\r\n * @default \"yyyy-MM-dd\"\r\n * @param value Date format\r\n */\r\n set: function (value) {\r\n this._inputDateFormat = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"intlLocales\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this._intlLocales;\r\n },\r\n /**\r\n * Locales if you are using date formats in `Intl.DateTimeFormatOptions` syntax.\r\n *\r\n * @param value Locales\r\n */\r\n set: function (value) {\r\n this._intlLocales = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"utc\", {\r\n /**\r\n * @return Use UTC?\r\n */\r\n get: function () {\r\n return this._utc;\r\n },\r\n /**\r\n * Should formatter use UTC functions?\r\n *\r\n * If UTC is used, all date/time values will be independent on client's\r\n * time zone.\r\n *\r\n * @param value Use UTC?\r\n */\r\n set: function (value) {\r\n this._utc = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"timezoneOffset\", {\r\n /**\r\n * @return Offset (minutes)\r\n */\r\n get: function () {\r\n return this._timezoneOffset;\r\n },\r\n /**\r\n * If set, will apply specific offset in minutes before formatting the date\r\n * text.\r\n *\r\n * The value is a number of minutes from target time zone to UTC.\r\n *\r\n * E.g. `300` will recalculate Dates in \"GMT-5\" time zone.\r\n *\r\n * @param value Offset (minutes)\r\n */\r\n set: function (value) {\r\n if (this._timezoneOffset != value) {\r\n this._timezoneOffset = value;\r\n this.invalidateSprite();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"timezone\", {\r\n /**\r\n * @return Timezone\r\n */\r\n get: function () {\r\n return this._timezone;\r\n },\r\n /**\r\n * If set, will format date/time in specific time zone.\r\n *\r\n * The value should be named time zone, e.g.:\r\n * `\"America/Vancouver\"`, `\"Australia/Sydney\"`, `\"UTC\"`.\r\n *\r\n * @since 4.10.1\r\n * @param value Timezone\r\n */\r\n set: function (value) {\r\n if (this._timezone != value) {\r\n this._timezone = value;\r\n this.timezoneMinutes = $time.getTimezoneMinutes(value);\r\n this.invalidateSprite();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"firstDayOfWeek\", {\r\n /**\r\n * @return First day of week\r\n */\r\n get: function () {\r\n return this._firstDayOfWeek;\r\n },\r\n /**\r\n * First day of the week:\r\n *\r\n * * 0 - Sunday\r\n * * 1 - Monday\r\n * * 2 - Tuesday\r\n *\r\n * Etc.\r\n *\r\n * @param value First day of week\r\n */\r\n set: function (value) {\r\n this._firstDayOfWeek = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateFormatter.prototype, \"outputFormat\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Format\r\n */\r\n get: function () {\r\n return this._outputFormat;\r\n },\r\n /**\r\n * Output format for the formatted date.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Format\r\n */\r\n set: function (value) {\r\n this._outputFormat = value.toLowerCase();\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DateFormatter;\r\n}(BaseObject));\r\nexport { DateFormatter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateFormatter\"] = DateFormatter;\r\n//# sourceMappingURL=DateFormatter.js.map","/**\r\n * This module contains ColorSet object definition\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { Color, color } from \"./Color\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $colors from \"./Colors\";\r\nimport * as $type from \"./Type\";\r\nimport * as $utils from \"./Utils\";\r\nimport * as $math from \"./Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents a set of colors. Can also generate colors according to set rules.\r\n *\r\n * @important\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nvar ColorSet = /** @class */ (function (_super) {\r\n __extends(ColorSet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColorSet() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Holds the list of the colors in this set. (preset or auto-generated)\r\n */\r\n _this._list = [];\r\n /**\r\n * Current step in a color generator's cycle.\r\n */\r\n _this._currentStep = 0;\r\n /**\r\n * If set to non-zero value, the ColorSet will start iterating colors from\r\n * that particular index, not the first color in the list.\r\n */\r\n _this._startIndex = 0;\r\n /**\r\n * Current pass in the color generator's cycle. Normally a generator would\r\n * cycle through all available hue range, then repeat it, alternating other\r\n * color properties, to generate distinctive colors.\r\n */\r\n _this._currentPass = 0;\r\n /**\r\n * A base color. If there are no colors pre-set in the color list, ColorSet\r\n * will use this color as a base when generating new ones, applying\r\n * `stepOptions` and `passOptions` to this base color.\r\n */\r\n _this.baseColor = new Color({\r\n r: 103,\r\n g: 183,\r\n b: 220\r\n });\r\n /**\r\n * Modifications to apply with each new generated color.\r\n */\r\n _this.stepOptions = {};\r\n /**\r\n * Modifications to apply on top of `stepOptions` for each \"pass\" of the\r\n * color generation.\r\n *\r\n * A \"pass\" is when ColorSet generates `minColors` number of colors.\r\n */\r\n _this.passOptions = {\r\n brighten: -0.2\r\n };\r\n /**\r\n * An index increment to use when iterating through color list.\r\n *\r\n * Default is 1, which means returning each and every color.\r\n *\r\n * Setting it to a bigger number will make ColorSet `next()` iterator skip\r\n * some colors.\r\n *\r\n * E.g. setting to 2, will return every second color in the list.\r\n *\r\n * This is useful, when the color list has colors that are too close each\r\n * other for contrast.\r\n *\r\n * However, having bigger number will mean that `next()` iterator will go\r\n * through the list quicker, and the generator will kick sooner.\r\n */\r\n _this.step = 1;\r\n /**\r\n * A number of colors to generate in one \"pass\".\r\n *\r\n * This setting can be automatically overridden, if ColorSet has a list of\r\n * pre-set colors. In such case ColorSet will generate exactly the same\r\n * number of colors with each pass as there were colors in original set.\r\n */\r\n _this.minColors = 20;\r\n /**\r\n * Do not let the \"lightness\" of generated color to fall below this\r\n * threshold.\r\n */\r\n _this.minLightness = 0.2;\r\n /**\r\n * Do not let the \"lightness\" of generated color to get above this threshold.\r\n */\r\n _this.maxLightness = 0.9;\r\n /**\r\n * Randomly shuffle generated colors.\r\n */\r\n _this.shuffle = false;\r\n /**\r\n * When colors are generated, based on `stepOptions`, each generated color\r\n * gets either lighter or darker.\r\n *\r\n * If this is set to `true`, color generator will switch to opposing spectrum\r\n * when reaching `minLightness` or `maxLightness`.\r\n *\r\n * E.g. if we start off with a red color, then gradually generate lighter\r\n * colors through rose shades, then switch back to dark red and gradually\r\n * increase the lightness of it until it reaches the starting red.\r\n *\r\n * If set to `false` it will stop there and cap lightness at whatever level\r\n * we hit `minLightness` or `maxLightness`, which may result in a number of\r\n * the same colors.\r\n */\r\n _this.wrap = true;\r\n /**\r\n * Re-use same colors in the pre-set list, when ColorSet runs out of colors,\r\n * rather than start generating new ones.\r\n */\r\n _this.reuse = false;\r\n /**\r\n * Saturation of colors. This will change saturation of all colors of color\r\n * set.\r\n *\r\n * It is recommended to set this in theme, as changing it at run time won't\r\n * make the items to redraw and change color.\r\n */\r\n _this.saturation = 1;\r\n _this.className = \"ColorSet\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ColorSet.prototype, \"list\", {\r\n /**\r\n * Returns current list of colors.\r\n *\r\n * If there are none, a new list of colors is generated, based on various\r\n * ColorSet settings.\r\n *\r\n * @return Color list\r\n */\r\n get: function () {\r\n if (!this._list) {\r\n this.generate(this.minColors);\r\n }\r\n return this._list;\r\n },\r\n /**\r\n * Sets a list of pre-defined colors to use for the iterator.\r\n *\r\n * @param value Color list\r\n */\r\n set: function (value) {\r\n this._list = value;\r\n this.reset();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Gets reusable color.\r\n *\r\n * @param index Index of color\r\n * @return Color\r\n */\r\n ColorSet.prototype.getReusableColor = function (index) {\r\n if (this._list.length == 0) {\r\n this.generate(1);\r\n return this.list[0];\r\n }\r\n else {\r\n var tmpstep = index - (Math.floor(index / this._list.length) * this.list.length);\r\n return this.list[tmpstep];\r\n }\r\n };\r\n /**\r\n * Returns next color in the list using internal iterator counter.\r\n *\r\n * If `step` is set to something other than 1, it may return other color than\r\n * exact next one in the list.\r\n *\r\n * @return Color\r\n */\r\n ColorSet.prototype.next = function () {\r\n var color;\r\n if (this.list.length <= this._currentStep) {\r\n if (this.reuse) {\r\n color = this.getReusableColor(this._currentStep);\r\n }\r\n else {\r\n this.generate($math.max(this.minColors, this._currentStep + 1));\r\n color = this.list[this._currentStep];\r\n }\r\n }\r\n else {\r\n color = this.list[this._currentStep];\r\n }\r\n this._currentStep += this.step;\r\n return color.saturate(this.saturation);\r\n };\r\n /**\r\n * Returns a color at specific index in the list.\r\n *\r\n * @param i Index\r\n * @return Color\r\n */\r\n ColorSet.prototype.getIndex = function (i) {\r\n var color;\r\n if (this.list.length <= i) {\r\n if (this.reuse) {\r\n color = this.getReusableColor(i);\r\n }\r\n else {\r\n this.generate(this.minColors);\r\n color = this.getIndex(i);\r\n }\r\n }\r\n else {\r\n color = this.list[i];\r\n }\r\n return color.saturate(this.saturation);\r\n };\r\n /**\r\n * Resets internal iterator.\r\n *\r\n * Calling `next()` after this will return the very first color in the color\r\n * list, even if it was already returned before.\r\n */\r\n ColorSet.prototype.reset = function () {\r\n this._currentStep = this._startIndex;\r\n };\r\n Object.defineProperty(ColorSet.prototype, \"currentStep\", {\r\n /**\r\n * @return Step\r\n */\r\n get: function () {\r\n return this._currentStep;\r\n },\r\n /**\r\n * Sets current color iteration. You can use this property to skip some\r\n * colors from iteration. E.g. setting it to `10` will skip first ten\r\n * colors.\r\n *\r\n * Please note that the number is zero-based.\r\n *\r\n * @param value Step\r\n */\r\n set: function (value) {\r\n this._currentStep = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColorSet.prototype, \"startIndex\", {\r\n /**\r\n * @return Index\r\n */\r\n get: function () {\r\n return this._startIndex;\r\n },\r\n /**\r\n * If set to non-zero value, the ColorSet will start iterating colors from\r\n * that particular index, not the first color in the list.\r\n *\r\n * @default 0\r\n * @since 4.4.9\r\n * @param value Index\r\n */\r\n set: function (value) {\r\n this._startIndex = value;\r\n this.reset();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Generates colors based on the various ColorSet settings.\r\n *\r\n * @param count Number of colors to generate\r\n */\r\n ColorSet.prototype.generate = function (count) {\r\n // Init\r\n var curColor = this.currentColor;\r\n var hsl = $colors.rgbToHsl($type.getValue(curColor.rgb));\r\n var hueStep = $type.hasValue(this.stepOptions.hue) ? this.stepOptions.hue : 1 / count;\r\n var mods = {\r\n brighten: 0,\r\n lighten: 0,\r\n hue: hsl.h,\r\n lightness: hsl.l,\r\n saturation: hsl.s\r\n };\r\n // Generate list of hues, and shuffle them\r\n var hues = [];\r\n var startIndex = this.list.length == 0 ? 0 : 1;\r\n if (this.reuse) {\r\n for (var i = startIndex; i <= count; i++) {\r\n hues.push($colors.rgbToHsl($type.getValue(this._list[i].rgb)).h);\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i <= count; i++) {\r\n var h = hsl.h + hueStep * i;\r\n if (this.wrap && (h > 1)) {\r\n h -= 1;\r\n }\r\n hues.push(h);\r\n }\r\n }\r\n // Shuffle colors randomly\r\n if (this.shuffle) {\r\n hues.sort(function (a, b) {\r\n return Math.random() - 0.5;\r\n });\r\n }\r\n // Generate colors by rotating hue\r\n for (var i = 0; i < count; i++) {\r\n // Update hue\r\n if (this.reuse) {\r\n hsl = $colors.rgbToHsl($type.getValue(this._list[i].rgb));\r\n }\r\n else {\r\n hsl.h = hues.shift();\r\n }\r\n // Apply HSL mods\r\n this.applyStepOptions(hsl, mods, i, this._currentPass);\r\n // Convert back to Color\r\n var c = color($colors.hslToRgb(hsl));\r\n // Apply regular color mods\r\n var brighten = (this.stepOptions.brighten || 0) * i + (this.passOptions.brighten || 0) * this._currentPass;\r\n if (brighten != 0) {\r\n if (this.wrap) {\r\n brighten = $utils.fitNumberRelative(brighten, this.minLightness, this.maxLightness);\r\n }\r\n else {\r\n brighten = $utils.fitNumber(brighten, this.minLightness, this.maxLightness);\r\n }\r\n c = c.brighten(brighten);\r\n }\r\n var lighten = (this.stepOptions.lighten || 0) * i + (this.passOptions.lighten || 0) * this._currentPass;\r\n if (lighten != 0) {\r\n if (this.wrap) {\r\n lighten = $utils.fitNumberRelative(lighten, this.minLightness, this.maxLightness);\r\n }\r\n else {\r\n lighten = $utils.fitNumber(lighten, this.minLightness, this.maxLightness);\r\n }\r\n c = c.lighten(lighten);\r\n }\r\n this._list.push(c);\r\n }\r\n this._currentPass++;\r\n };\r\n Object.defineProperty(ColorSet.prototype, \"currentColor\", {\r\n /**\r\n * Returns current last color. It's either the last color in the list of\r\n * colors, or `baseColor` if list is empty.\r\n *\r\n * @return Color\r\n */\r\n get: function () {\r\n if (this._list.length == 0) {\r\n return this.baseColor.saturate(this.saturation);\r\n }\r\n else {\r\n return this._list[this._list.length - 1].saturate(this.saturation);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Generates modifiers for color, based on what step and pass.\r\n *\r\n * @param hsl Curren HSL value of the color to modify\r\n * @param base The modifiers that were before modification to use as a base\r\n * @param step Current step\r\n * @param pass Current pass\r\n */\r\n ColorSet.prototype.applyStepOptions = function (hsl, base, step, pass) {\r\n // Process lightness\r\n hsl.l = base.lightness + (this.stepOptions.lightness || 0) * step + (this.passOptions.lightness || 0) * pass;\r\n if (this.wrap) {\r\n if (hsl.l > 1) {\r\n hsl.l = hsl.l - Math.floor(hsl.l);\r\n }\r\n else if (hsl.l < 0) {\r\n hsl.l = -(hsl.l - Math.floor(hsl.l));\r\n }\r\n hsl.l = $utils.fitNumberRelative(hsl.l, this.minLightness, this.maxLightness);\r\n }\r\n else {\r\n if (hsl.l > 1) {\r\n hsl.l = 1;\r\n }\r\n else if (hsl.l < 0) {\r\n hsl.l = 0;\r\n }\r\n hsl.l = $utils.fitNumber(hsl.l, this.minLightness, this.maxLightness);\r\n }\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n ColorSet.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Cast colors\r\n if ($type.hasValue(config.list) && $type.isArray(config.list)) {\r\n for (var i = 0, len = config.list.length; i < len; i++) {\r\n if (!(config.list[i] instanceof Color)) {\r\n config.list[i] = color(config.list[i]);\r\n }\r\n }\r\n }\r\n if ($type.hasValue(config.baseColor) && !(config.baseColor instanceof Color)) {\r\n config.baseColor = color(config.baseColor);\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return ColorSet;\r\n}(BaseObject));\r\nexport { ColorSet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorSet\"] = ColorSet;\r\n//# sourceMappingURL=ColorSet.js.map","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Dictionary } from \"./Dictionary\";\r\nimport * as $type from \"./Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents object cache.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Better storage\r\n * @todo TTL logging\r\n * @todo Garbage collector\r\n */\r\nvar Cache = /** @class */ (function () {\r\n function Cache() {\r\n /**\r\n * Storage for cache items.\r\n */\r\n this._storage = new Dictionary();\r\n /**\r\n * Default TTL in milliseconds.\r\n */\r\n this.ttl = 1000;\r\n }\r\n /**\r\n * Caches or updates cached value, resets TTL.\r\n *\r\n * If `ttl` is set to zero, item will never expire.\r\n *\r\n * @param owner An id of the object that owns this cache\r\n * @param key Index key\r\n * @param value Value\r\n * @param ttl TTL of the cache to live in milliseconds\r\n */\r\n Cache.prototype.set = function (owner, key, value, ttl) {\r\n // Create if storage does not exist for this owner\r\n var ownerStorage = this._storage.insertKeyIfEmpty(owner, function () { return new Dictionary(); });\r\n // Create cache item\r\n var item = {\r\n \"touched\": new Date().getTime(),\r\n \"ttl\": $type.isNumber(ttl) ? ttl : this.ttl,\r\n \"value\": value\r\n };\r\n // Set\r\n ownerStorage.setKey(key, item);\r\n };\r\n /**\r\n * Rerturns cached item, respecting TTL.\r\n *\r\n * @param owner An id of the object that owns this cache\r\n * @param key Index key\r\n * @param value Value to return if cache not available\r\n * @return Value, or `undefined` if not set\r\n */\r\n Cache.prototype.get = function (owner, key, value) {\r\n if (value === void 0) { value = undefined; }\r\n // \t\t || ypeof this._storage[owner][key] === \"undefined\" || this._storage[owner][key].expired === true) {\r\n if (this._storage.hasKey(owner)) {\r\n var ownerStorage = this._storage.getKey(owner);\r\n if (ownerStorage.hasKey(key)) {\r\n var cacheItem = ownerStorage.getKey(key);\r\n if (cacheItem.ttl && ((cacheItem.touched + cacheItem.ttl) < new Date().getTime())) {\r\n cacheItem.expired = true;\r\n }\r\n if (cacheItem.expired) {\r\n ownerStorage.removeKey(key);\r\n return value;\r\n }\r\n return cacheItem.value;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n else {\r\n return value;\r\n }\r\n };\r\n /**\r\n * Clears cache for specific owner or everything.\r\n *\r\n * @param owner Owner to clear cache for\r\n */\r\n Cache.prototype.clear = function (owner) {\r\n if (owner) {\r\n this._storage.removeKey(owner);\r\n }\r\n else {\r\n this._storage.clear();\r\n }\r\n };\r\n return Cache;\r\n}());\r\nexport { Cache };\r\n/**\r\n * ============================================================================\r\n * GLOBAL INSTANCE\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A global instance of cache. Use this instance to cache any values.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var cache = new Cache();\r\n//# sourceMappingURL=Cache.js.map","export default function contains(root, n) {\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","/* 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","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","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _grid = require(\"../grid\");\n\nvar _default = _grid.Col;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tupleNum = exports.tuple = void 0;\n\n// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nvar tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\n\nexports.tuple = tuple;\n\nvar tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};\n\nexports.tupleNum = tupleNum;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.create = exports.connect = exports.Provider = undefined;\n\nvar _Provider2 = require('./Provider');\n\nvar _Provider3 = _interopRequireDefault(_Provider2);\n\nvar _connect2 = require('./connect');\n\nvar _connect3 = _interopRequireDefault(_connect2);\n\nvar _create2 = require('./create');\n\nvar _create3 = _interopRequireDefault(_create2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Provider = _Provider3.default;\nexports.connect = _connect3.default;\nexports.create = _create3.default;","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\r\n * [[AMElement]] represents any SVG element and related functionality.\r\n */\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all SVG elements. Provides low-level DOM functionality.\r\n *\r\n * All visual elements extend this class.\r\n */\r\nvar AMElement = /** @class */ (function () {\r\n /**\r\n * Constructor creates a new element or uses the one that was passed in.\r\n *\r\n * @param element Element reference node type\r\n */\r\n function AMElement(element) {\r\n /**\r\n * Indicates if the element was already disposed.\r\n */\r\n this._isDisposed = false;\r\n /**\r\n * Current X coordinate.\r\n */\r\n this._x = 0;\r\n /**\r\n * Current Y coordinate.\r\n */\r\n this._y = 0;\r\n /**\r\n *\r\n */\r\n this._rotationY = 0;\r\n /**\r\n *\r\n */\r\n this._rotationX = 0;\r\n /**\r\n * Current rotation.\r\n */\r\n this._rotation = 0;\r\n /**\r\n * Current scale.\r\n */\r\n this._scale = 1;\r\n if (typeof element === \"string\") {\r\n this.node = document.createElementNS($dom.SVGNS, element);\r\n }\r\n else {\r\n this.node = element;\r\n }\r\n }\r\n /**\r\n * Removes element's node from DOM.\r\n */\r\n AMElement.prototype.removeNode = function () {\r\n if (this.node) {\r\n if (this.node.parentNode) {\r\n this.node.parentNode.removeChild(this.node);\r\n }\r\n }\r\n };\r\n Object.defineProperty(AMElement.prototype, \"transformString\", {\r\n /**\r\n * Returns `transform` attribute of the element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Transform attribute value\r\n */\r\n get: function () {\r\n if (this.node) {\r\n return this._transformString;\r\n /*\r\n const value = this.node.getAttribute(\"transform\");\r\n \r\n if (value !== null) {\r\n return value;\r\n }*/\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Appply position, rotation and scale properties via elemen's `transform`\r\n * property\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AMElement.prototype.transform = function () {\r\n var transfromString = \"translate(\" + this._x + \",\" + this._y + \")\";\r\n if (this._scale != 1) {\r\n transfromString += ((transfromString ? \" \" : \"\") + \"scale(\" + this._scale + \")\");\r\n }\r\n if (this._rotation != 0) {\r\n var rotateString = \"rotate(\" + this._rotation + \")\";\r\n if (this._rotationX && this._rotationY) {\r\n rotateString = \"rotate(\" + this._rotation + \" \" + this._rotationX + \" \" + this._rotationY + \")\";\r\n }\r\n transfromString += ((transfromString ? \" \" : \"\") + rotateString);\r\n }\r\n this._transformString = transfromString;\r\n this.node.setAttribute(\"transform\", transfromString);\r\n };\r\n /**\r\n * Returns bounding box of the element.\r\n *\r\n * ATTENTION: Bounding box calculations are extremely costly so should be\r\n * used sparingly and cached whenever possible.\r\n *\r\n * @return Bounding rectangle\r\n */\r\n AMElement.prototype.getBBox = function () {\r\n var bbox = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n // FF would fail if getBBox() is called without node added to parent\r\n if (this.node && this.node.parentNode) {\r\n try { // again for ff. TODO: check if this doesn't slow down\r\n var svgbbox = this.node.getBBox();\r\n bbox.x = svgbbox.x;\r\n bbox.y = svgbbox.y;\r\n bbox.width = svgbbox.width;\r\n bbox.height = svgbbox.height;\r\n }\r\n catch (err) { }\r\n }\r\n return bbox;\r\n };\r\n /**\r\n * Moves the element to new coordinates.\r\n *\r\n * @param x Target X\r\n * @param y Target Y\r\n */\r\n AMElement.prototype.moveTo = function (point) {\r\n if (point) {\r\n var x = point.x;\r\n var y = point.y;\r\n if (this._x != x || this._y != y) {\r\n this._x = x;\r\n this._y = y;\r\n this.transform();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AMElement.prototype, \"content\", {\r\n /**\r\n * Returns element's contents as SVG markup.\r\n *\r\n * @return Contents\r\n */\r\n get: function () {\r\n // @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n return this.node.innerHTML || \"\";\r\n },\r\n /**\r\n * Element's SVG contents.\r\n *\r\n * @param value Contents\r\n */\r\n set: function (value) {\r\n // @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n this.node.innerHTML = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"textContent\", {\r\n /**\r\n * @return Text contents\r\n */\r\n get: function () {\r\n return this.node.textContent || \"\";\r\n },\r\n /**\r\n * Text contents of the SVG element.\r\n *\r\n * @param value Text contents\r\n */\r\n set: function (value) {\r\n this.node.textContent = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"x\", {\r\n /**\r\n * @return X coordinate (px)\r\n */\r\n get: function () {\r\n return this._x;\r\n },\r\n /**\r\n * Element's X position in pixels.\r\n *\r\n * @param value X coordinate (px)\r\n */\r\n set: function (value) {\r\n if (this._x != value) {\r\n this._x = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"y\", {\r\n /**\r\n * @return Y coordinate (px)\r\n */\r\n get: function () {\r\n return this._y;\r\n },\r\n /**\r\n * Element's Y position in pixels.\r\n *\r\n * @param value Y coordinate (px)\r\n */\r\n set: function (value) {\r\n if (this._y != value) {\r\n this._y = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"rotation\", {\r\n /**\r\n * @return Rotation\r\n */\r\n get: function () {\r\n return this._rotation;\r\n },\r\n /**\r\n * Element's rotation in degrees.\r\n *\r\n * @param value Rotation\r\n */\r\n set: function (angle) {\r\n if (this._rotation != angle) {\r\n this._rotation = angle;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"rotationX\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._rotationX;\r\n },\r\n /**\r\n * @ignore\r\n */\r\n set: function (x) {\r\n if (this._rotationX != x) {\r\n this._rotationX = x;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"rotationY\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._rotationY;\r\n },\r\n /**\r\n * @ignore\r\n */\r\n set: function (y) {\r\n if (this._rotationY != y) {\r\n this._rotationY = y;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AMElement.prototype, \"scale\", {\r\n /**\r\n * @return Scale\r\n */\r\n get: function () {\r\n return this._scale;\r\n },\r\n /**\r\n * Element's scale where 1 is original size.\r\n *\r\n * Setting to 0.5 will reduce element's size by 50%, 2 will make element\r\n * twice as large, etc.\r\n *\r\n * @param value Scale\r\n */\r\n set: function (value) {\r\n if (this._scale != value) {\r\n this._scale = value;\r\n this.transform();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes an attribute from element.\r\n *\r\n * @param attribute Attribute to remove\r\n */\r\n AMElement.prototype.removeAttr = function (attribute) {\r\n this.node.removeAttribute(attribute);\r\n };\r\n /**\r\n * Sets a set of attributes on a element.\r\n *\r\n * @param attributes An object with attribute names (key) and values\r\n * @return The same element\r\n */\r\n AMElement.prototype.attr = function (attributes) {\r\n var _this = this;\r\n $object.each(attributes, function (attributeName, attributeValue) {\r\n if (!$type.hasValue(attributeValue)) {\r\n _this.node.removeAttribute(attributeName);\r\n }\r\n else {\r\n // this is for performance testing\r\n //if(attributeValue == this.node.getAttribute(attributeName)){\r\n //\tconsole.log(attributeName, attributeValue)\r\n //}\r\n _this.node.setAttribute(attributeName, attributeValue);\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Returns a value of a node attribute.\r\n *\r\n * @param attribute Attribute name\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getAttr = function (attribute) {\r\n return this.node.getAttribute(attribute);\r\n };\r\n /**\r\n * Sets a single attribute of the element's node using namesspace.\r\n *\r\n * @param ns Namespace\r\n * @param attribute Attribute\r\n * @param value Value\r\n * @return The same element\r\n */\r\n AMElement.prototype.attrNS = function (ns, attribute, value) {\r\n this.node.setAttributeNS(ns, attribute, value);\r\n return this;\r\n };\r\n /**\r\n * Returns a namespaced attribute value from node.\r\n *\r\n * @param ns Namespace\r\n * @param attribute Attribute\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getAttrNS = function (ns, attribute) {\r\n return this.node.getAttributeNS(ns, attribute);\r\n };\r\n /**\r\n * Removes `style` attribute from node.\r\n *\r\n * @param attribute Attribute to remove\r\n */\r\n AMElement.prototype.removeStyle = function (attribute) {\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n this.node.style[attribute] = null;\r\n delete this.node.style[attribute];\r\n };\r\n /**\r\n * Returns style attribute value.\r\n *\r\n * @param attribute Style attribute value\r\n * @return Attribute value\r\n */\r\n AMElement.prototype.getStyle = function (attribute) {\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n return this.node.style[attribute];\r\n };\r\n /**\r\n * Adds style attributes to element's node.\r\n *\r\n * @param attributes Object containing attribute: value pairs\r\n * @return The same element\r\n */\r\n AMElement.prototype.addStyle = function (attributes) {\r\n var _this = this;\r\n // @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n $object.each(attributes, function (attributeName, attributeValue) {\r\n if (!$type.hasValue(attributeValue)) {\r\n _this.removeStyle(attributeName);\r\n }\r\n else {\r\n _this.node.style[attributeName] = attributeValue;\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Adds a class to element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.addClass = function (name) {\r\n $dom.addClass(this.node, name);\r\n };\r\n /**\r\n * Removes a class from element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.removeClass = function (name) {\r\n $dom.removeClass(this.node, name);\r\n };\r\n /**\r\n * Sets a class name on element.\r\n *\r\n * @param name Class name\r\n */\r\n AMElement.prototype.setClass = function (name) {\r\n this.node.setAttribute(\"class\", name);\r\n };\r\n /**\r\n * Removes all element's child nodes, basically leaving it empty.\r\n */\r\n AMElement.prototype.removeChildNodes = function () {\r\n // remove all children\r\n while (this.node.childNodes.length > 0) {\r\n this.node.removeChild(this.node.firstChild);\r\n }\r\n };\r\n /**\r\n * Was this element already been disposed?\r\n *\r\n * @return Disposed?\r\n */\r\n AMElement.prototype.isDisposed = function () {\r\n return this._isDisposed;\r\n };\r\n /**\r\n * Disposes element.\r\n */\r\n AMElement.prototype.dispose = function () {\r\n this.removeNode();\r\n };\r\n return AMElement;\r\n}());\r\nexport { AMElement };\r\n//# sourceMappingURL=AMElement.js.map","/**\r\n * Polyline module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { color } from \"../utils/Color\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a polyline.\r\n *\r\n * @see {@link IPolylineEvents} for a list of available events\r\n * @see {@link IPolylineAdapters} for a list of available Adapters\r\n */\r\nvar Polyline = /** @class */ (function (_super) {\r\n __extends(Polyline, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Polyline() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * [_distance description]\r\n *\r\n * @todo Description\r\n */\r\n _this._distance = 0;\r\n _this.className = \"Polyline\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.shapeRendering = \"auto\";\r\n _this.fill = color();\r\n _this.strokeOpacity = 1;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creats and adds an SVG path for the arc.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Polyline.prototype.makePath = function () {\r\n this._distance = 0;\r\n var segments = this.segments;\r\n if (segments && segments.length > 0) {\r\n var path = \"\";\r\n for (var i = 0, len = segments.length; i < len; i++) {\r\n var points = segments[i];\r\n if (points.length > 0) {\r\n path += $path.moveTo(points[0]);\r\n for (var p = 1; p < points.length; p++) {\r\n var point = points[p];\r\n path += $path.lineTo(point);\r\n this._distance += $math.getDistance(points[p - 1], point);\r\n }\r\n }\r\n }\r\n this.path = path;\r\n }\r\n this._realSegments = segments;\r\n };\r\n Object.defineProperty(Polyline.prototype, \"segments\", {\r\n /**\r\n * @return Segments\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"segments\");\r\n },\r\n /**\r\n * A list of segment coordinates for the multi-part line.\r\n *\r\n * @todo Example\r\n * @param segments Segments\r\n */\r\n set: function (segments) {\r\n this.setPropertyValue(\"segments\", segments);\r\n this.makePath();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Polyline.prototype, \"distance\", {\r\n /**\r\n * [distance description]\r\n *\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._distance;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position along the line (0-1) into pixel coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @return Coordinates\r\n */\r\n Polyline.prototype.positionToPoint = function (position) {\r\n var deltaAngle = 0;\r\n if (position < 0) {\r\n position = Math.abs(position);\r\n deltaAngle = 180;\r\n }\r\n var segments = this._realSegments;\r\n if (segments) {\r\n var totalDistance = this.distance;\r\n var currentDistance = 0;\r\n var distanceAB = void 0;\r\n var positionA = 0;\r\n var positionB = 0;\r\n var pointA = void 0;\r\n var pointB = void 0;\r\n for (var s = 0; s < segments.length; s++) {\r\n var points = segments[s];\r\n if (points.length > 1) {\r\n for (var p = 1; p < points.length; p++) {\r\n pointA = points[p - 1];\r\n pointB = points[p];\r\n positionA = currentDistance / totalDistance;\r\n distanceAB = $math.getDistance(pointA, pointB);\r\n currentDistance += distanceAB;\r\n positionB = currentDistance / totalDistance;\r\n if (positionA <= position && positionB > position) {\r\n s = segments.length;\r\n break;\r\n }\r\n }\r\n }\r\n else if (points.length == 1) {\r\n pointA = points[0];\r\n pointB = points[0];\r\n positionA = 0;\r\n positionB = 1;\r\n }\r\n }\r\n if (pointA && pointB) {\r\n var positionAB = (position - positionA) / (positionB - positionA);\r\n var midPoint = $math.getMidPoint(pointA, pointB, positionAB);\r\n return { x: midPoint.x, y: midPoint.y, angle: deltaAngle + $math.getAngle(pointA, pointB) };\r\n }\r\n }\r\n return { x: 0, y: 0, angle: 0 };\r\n };\r\n Object.defineProperty(Polyline.prototype, \"realSegments\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._realSegments;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Polyline;\r\n}(Sprite));\r\nexport { Polyline };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polyline\"] = Polyline;\r\n//# sourceMappingURL=Polyline.js.map","/**\r\n * JSON parser.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { DataParser } from \"./DataParser\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * A parser for JSON.\r\n *\r\n * @important\r\n */\r\nvar JSONParser = /** @class */ (function (_super) {\r\n __extends(JSONParser, _super);\r\n function JSONParser() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * Content-type suitable for JSON format.\r\n */\r\n _this.contentType = \"application/json\";\r\n /**\r\n * Parser options.\r\n *\r\n * @see {@link IJSONOptions} for description of each option\r\n */\r\n _this.options = {};\r\n return _this;\r\n }\r\n /**\r\n * Tests if the data is valid JSON.\r\n *\r\n * @param data Source data\r\n * @return Is it JSON?\r\n */\r\n JSONParser.isJSON = function (data) {\r\n try {\r\n // Try parsing JSON\r\n JSON.parse(data);\r\n // If we got to this point it means it's a valid JSON\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Parses and returns data.\r\n *\r\n * @param data Unparsed data\r\n * @return Parsed data\r\n */\r\n JSONParser.prototype.parse = function (data) {\r\n var _this = this;\r\n // Init return\r\n var res;\r\n // Try parsing\r\n try {\r\n if ($type.hasValue(JSON)) {\r\n res = JSON.parse(data);\r\n }\r\n }\r\n catch (e) {\r\n return undefined;\r\n }\r\n // Do we need to cast some fields to numbers or dates?\r\n var empty = $type.hasValue(this.options.emptyAs);\r\n var numbers = this.parsableNumbers;\r\n var dates = this.parsableDates;\r\n if (Array.isArray(res) && (numbers || dates || empty)) {\r\n var _loop_1 = function (i, len) {\r\n var row = res[i];\r\n $object.each(row, function (key, value) {\r\n if (empty) {\r\n row[key] = _this.maybeToEmpty(row[key]);\r\n }\r\n if (numbers) {\r\n row[key] = _this.maybeToNumber(key, row[key]);\r\n }\r\n if (dates) {\r\n row[key] = _this.maybeToDate(key, row[key]);\r\n }\r\n });\r\n };\r\n // Iterate through the data and check if it needs to be converted\r\n for (var i = 0, len = res.length; i < len; i++) {\r\n _loop_1(i, len);\r\n }\r\n }\r\n // Convert to array\r\n //return Array.isArray(res) ? res : [res];\r\n return res;\r\n };\r\n return JSONParser;\r\n}(DataParser));\r\nexport { JSONParser };\r\n//# sourceMappingURL=JSONParser.js.map","/**\r\n * Functionality for adding images in SVG tree.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to add `<image>` elements to SVG.\r\n *\r\n * @see {@link IImageEvents} for a list of available events\r\n * @see {@link IImageAdapters} for a list of available Adapters\r\n */\r\nvar Image = /** @class */ (function (_super) {\r\n __extends(Image, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Image() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Image\";\r\n _this.element = _this.paper.add(\"image\");\r\n _this.applyTheme();\r\n _this.width = 50;\r\n _this.height = 50;\r\n return _this;\r\n }\r\n /**\r\n * Draws an `<image>` element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Image.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this.href) {\r\n var width = this.innerWidth;\r\n var height = this.innerHeight;\r\n if ($type.isNumber(this.widthRatio)) {\r\n width = height * this.widthRatio;\r\n this.width = width;\r\n }\r\n if ($type.isNumber(this.heightRatio)) {\r\n height = width * this.heightRatio;\r\n this.height = height;\r\n }\r\n this.element.attr({\r\n \"width\": width,\r\n \"height\": height\r\n });\r\n this.element.attrNS($dom.XLINK, \"xlink:href\", this.href);\r\n }\r\n };\r\n Object.defineProperty(Image.prototype, \"href\", {\r\n /**\r\n * @return Image URI\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"href\");\r\n },\r\n /**\r\n * An image URI.\r\n *\r\n * @param value Image URI\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"href\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Image.prototype, \"widthRatio\", {\r\n /**\r\n * @return Ratio\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"widthRatio\");\r\n },\r\n /**\r\n * Sets image `width` relatively to its `height`.\r\n *\r\n * If image's `height = 100` and `widthRatio = 0.5` the actual width will be\r\n * `50`.\r\n *\r\n * @param value Ratio\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"widthRatio\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Image.prototype, \"heightRatio\", {\r\n /**\r\n * @return Ratio\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"heightRatio\");\r\n },\r\n /**\r\n * Sets image `height` relatively to its `width`.\r\n *\r\n * If image's `width = 100` and `heightRatio = 0.5` the actual height will be\r\n * `50`.\r\n *\r\n * @param value Ratio\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"heightRatio\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Image.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n return {\r\n x: 0,\r\n y: 0,\r\n width: this.pixelWidth,\r\n height: this.pixelHeight\r\n };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Image;\r\n}(Sprite));\r\nexport { Image };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Image\"] = Image;\r\n//# sourceMappingURL=Image.js.map","/**\r\n * Module for a multi-part arched line.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Polyline } from \"./Polyline\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a multi-part arched line.\r\n *\r\n * @see {@link IPolyarcEvents} for a list of available events\r\n * @see {@link IPolyarcAdapters} for a list of available Adapters\r\n */\r\nvar Polyarc = /** @class */ (function (_super) {\r\n __extends(Polyarc, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Polyarc() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Polyarc\";\r\n _this.controlPointDistance = 0.5;\r\n _this.controlPointPosition = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creats and adds an SVG path for the arc.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Polyarc.prototype.makePath = function () {\r\n this._distance = 0;\r\n var segments = this.segments;\r\n if (segments && segments.length > 0) {\r\n var path = \"\";\r\n this._realSegments = [];\r\n for (var i = 0, len = segments.length; i < len; i++) {\r\n var points = segments[i];\r\n var realPoints = [];\r\n this._realSegments.push(realPoints);\r\n if (points.length > 0) {\r\n path += $path.moveTo(points[0]);\r\n for (var p = 1; p < points.length; p++) {\r\n var pointA = points[p - 1];\r\n var pointB = points[p];\r\n var distanceAB = $math.getDistance(pointB, pointA);\r\n var cpDistance = distanceAB * this.controlPointDistance;\r\n var controlPointPosition = this.controlPointPosition;\r\n var angle = -$math.getAngle(pointA, pointB);\r\n var cpx = pointA.x + (pointB.x - pointA.x) * controlPointPosition * 0.5 - cpDistance * $math.sin(angle);\r\n var cpy = pointA.y + (pointB.y - pointA.y) * controlPointPosition * 0.5 - cpDistance * $math.cos(angle);\r\n var controlPoint1 = { x: cpx, y: cpy };\r\n var cpx2 = pointA.x + (pointB.x - pointA.x) * controlPointPosition * 1.5 - cpDistance * $math.sin(angle);\r\n var cpy2 = pointA.y + (pointB.y - pointA.y) * controlPointPosition * 1.5 - cpDistance * $math.cos(angle);\r\n var controlPoint2 = { x: cpx2, y: cpy2 };\r\n path += $path.cubicCurveTo(pointB, controlPoint1, controlPoint2);\r\n // we add a lot of points in order to get the position/angle later\r\n var stepCount = Math.ceil(distanceAB);\r\n var prevPoint = pointA;\r\n if (stepCount > 0) {\r\n for (var i_1 = 0; i_1 <= stepCount; i_1++) {\r\n var point = $math.getPointOnCubicCurve(pointA, pointB, controlPoint1, controlPoint2, i_1 / stepCount);\r\n realPoints.push(point);\r\n this._distance += $math.getDistance(prevPoint, point);\r\n prevPoint = point;\r\n }\r\n }\r\n else {\r\n realPoints.push(pointA);\r\n }\r\n }\r\n }\r\n }\r\n this.path = path;\r\n }\r\n };\r\n Object.defineProperty(Polyarc.prototype, \"controlPointPosition\", {\r\n /**\r\n * @return Position (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"controlPointPosition\");\r\n },\r\n /**\r\n * Relative position along the line the control point is. (0-1)\r\n *\r\n * @default 0.5\r\n * @param value Position (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"controlPointPosition\", value);\r\n this.makePath();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Polyarc.prototype, \"controlPointDistance\", {\r\n /**\r\n * @return Distance (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"controlPointDistance\");\r\n },\r\n /**\r\n * Relative distance of the control point. (0-1)\r\n *\r\n * Default is half the length of the line. (0.5)\r\n *\r\n * @default 0.5\r\n * @param value Distance (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"controlPointDistance\", value);\r\n this.makePath();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Polyarc;\r\n}(Polyline));\r\nexport { Polyarc };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polyarc\"] = Polyarc;\r\n//# sourceMappingURL=Polyarc.js.map","/**\r\n * Morpher module contains functionality that allows morphing one polygon to\r\n * another.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { Animation, AnimationDisposer } from \"../utils/Animation\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * Morpher can be used to morph one polygon to some other polygon.\r\n */\r\nvar Morpher = /** @class */ (function (_super) {\r\n __extends(Morpher, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param morphable An object to morph\r\n */\r\n function Morpher(morphable) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A storage for measurements.\r\n */\r\n _this._bboxes = [];\r\n /**\r\n * Duration of the morphing animation in milliseconds.\r\n */\r\n _this.morphDuration = 800;\r\n /**\r\n * An easing function to use for morphing animation.\r\n *\r\n * @see {@link Ease}\r\n */\r\n _this.morphEasing = $ease.cubicOut;\r\n /**\r\n * If set to `true`, all separate parts of the multi-part polygon will\r\n * morph into a single circle or polygon when using built-in methods\r\n * `morphToCircle()` or `morphToPolygon()`.\r\n *\r\n * Otherwise each separate part of polygon will morph to individual target\r\n * circle or polgyon.\r\n */\r\n _this.morphToSingle = true;\r\n /**\r\n * A ratio to scale morphed object in relation to the source object.\r\n */\r\n _this.scaleRatio = 1;\r\n _this.className = \"Morpher\";\r\n _this.morphable = morphable;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Morphs a polygon to another polygon.\r\n *\r\n * @param toPoints Corner points of the target shape\r\n * @param duration Duration in milliseconds\r\n * @param easing Easing function\r\n * @return Animation\r\n */\r\n Morpher.prototype.morphToPolygon = function (toPoints, duration, easing) {\r\n var points = this.morphable.currentPoints;\r\n if (points && toPoints) {\r\n this.sortPoints(points);\r\n this.sortPoints(toPoints);\r\n this._morphFromPointsReal = [];\r\n this._morphToPointsReal = [];\r\n if (!$type.hasValue(duration)) {\r\n duration = this.morphDuration;\r\n }\r\n if (!$type.hasValue(easing)) {\r\n easing = this.morphEasing;\r\n }\r\n this._morphFromPointsReal = this.normalizePoints(toPoints, points);\r\n this._morphToPointsReal = this.normalizePoints(points, toPoints);\r\n this.morphable.currentPoints = this._morphFromPointsReal;\r\n var animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n this._disposers.push(animation);\r\n animation.start();\r\n return animation;\r\n }\r\n };\r\n /**\r\n * [normalizePoints description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param pointsA Point A\r\n * @param pointsB Point B\r\n * @return Normalized points\r\n */\r\n Morpher.prototype.normalizePoints = function (pointsA, pointsB) {\r\n for (var i = 0, len = pointsA.length; i < len; i++) {\r\n var surfaceA = pointsA[i][0];\r\n var holeA = pointsA[i][1];\r\n var bboxA = $type.getValue($math.getBBox(surfaceA));\r\n var middleX = bboxA.x + bboxA.width;\r\n var middleY = bboxA.y + bboxA.height;\r\n // check if we have the same in PointsB\r\n if (!pointsB[i]) {\r\n pointsB[i] = [];\r\n }\r\n // check if we have surface in pointsB\r\n if (surfaceA && !pointsB[i][0]) {\r\n pointsB[i][0] = [{ x: middleX, y: middleY }, { x: middleX, y: middleY }];\r\n }\r\n if (pointsB[i][0]) {\r\n pointsB[i][0] = this.addPoints(pointsB[i][0], surfaceA.length);\r\n var distance = Infinity;\r\n var splitAt = 0;\r\n for (var a = 0; a < pointsB[i][0].length; a++) {\r\n var newDistance = $math.getDistance(pointsB[i][0][a], surfaceA[0]);\r\n if (newDistance < distance) {\r\n splitAt = a;\r\n distance = newDistance;\r\n }\r\n }\r\n var partA = pointsB[i][0].slice(0, splitAt);\r\n var partB = pointsB[i][0].slice(splitAt);\r\n pointsB[i][0] = partB.concat(partA);\r\n }\r\n if (holeA) {\r\n if (!pointsB[i][1]) {\r\n pointsB[i][1] = [{ x: middleX, y: middleY }, { x: middleX, y: middleY }];\r\n }\r\n pointsB[i][1] = this.addPoints(pointsB[i][1], holeA.length);\r\n }\r\n }\r\n return pointsB;\r\n };\r\n /**\r\n * [sortPoints description]\r\n *\r\n * @ignore Exclude from doc\r\n * @todo Description\r\n * @param points [description]\r\n * @return common bbox of points\r\n */\r\n Morpher.prototype.sortPoints = function (points) {\r\n points.sort(function (a, b) {\r\n var bbox1 = $type.getValue($math.getBBox(a[0]));\r\n var bbox2 = $type.getValue($math.getBBox(b[0]));\r\n if (bbox1.width * bbox1.height > bbox2.width * bbox2.height) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n });\r\n var bboxes = [];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var surface = points[i][0];\r\n if (surface) {\r\n bboxes.push($type.getValue($math.getBBox(surface)));\r\n }\r\n }\r\n return $math.getCommonRectangle(bboxes);\r\n };\r\n /**\r\n * Morphs polygon to a circle (it is actually a polygon which makes a circle).\r\n *\r\n * @param radius Target circle radius (px)\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n * @return Animation\r\n */\r\n Morpher.prototype.morphToCircle = function (radius, duration, easing) {\r\n var points = this.morphable.points;\r\n var commonBBox = this.sortPoints(points);\r\n this._morphFromPointsReal = [];\r\n this._morphToPointsReal = [];\r\n if (!$type.hasValue(duration)) {\r\n duration = this.morphDuration;\r\n }\r\n if (!$type.hasValue(easing)) {\r\n easing = this.morphEasing;\r\n }\r\n // surface\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var surface = points[i][0];\r\n var hole = points[i][1];\r\n this._morphFromPointsReal[i] = [];\r\n this._morphToPointsReal[i] = [];\r\n if (surface) {\r\n var toPoints = surface;\r\n var fromPoints = surface;\r\n var bbox = $type.getValue($math.getBBox(fromPoints)); // this._bboxes[i];\r\n if (this.morphToSingle) {\r\n bbox = $type.getValue(commonBBox);\r\n }\r\n var middleX = bbox.x + bbox.width / 2;\r\n var middleY = bbox.y + bbox.height / 2;\r\n var realRadius = radius;\r\n if (!$type.isNumber(realRadius)) {\r\n realRadius = Math.min(bbox.width / 2, bbox.height / 2);\r\n }\r\n toPoints = [];\r\n // find angle for the first point\r\n var startAngle = $math.getAngle({ x: middleX, y: middleY }, surface[0]);\r\n var count = 100;\r\n if (surface.length > count) {\r\n count = surface.length;\r\n }\r\n fromPoints = this.addPoints(surface, count);\r\n count = fromPoints.length; // add Points might increase number a bit\r\n var angle = 360 / (count - 1);\r\n for (var a = 0; a < count; a++) {\r\n var realAngle = angle * a + startAngle;\r\n var pointOnCircle = { x: middleX + realRadius * $math.cos(realAngle), y: middleY + realRadius * $math.sin(realAngle) };\r\n toPoints[a] = pointOnCircle;\r\n }\r\n if (hole && hole.length > 0) {\r\n for (var i_1 = 0, hlen = hole.length; i_1 < hlen; i_1++) {\r\n toPoints.push({ x: middleX, y: middleY });\r\n }\r\n }\r\n this._morphFromPointsReal[i][0] = fromPoints;\r\n this._morphToPointsReal[i][0] = toPoints;\r\n }\r\n }\r\n this.morphable.currentPoints = this._morphFromPointsReal;\r\n var animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n this._disposers.push(animation);\r\n animation.start();\r\n return animation;\r\n };\r\n /**\r\n * [addPoints description]\r\n *\r\n * @ignore Exclude from doc\r\n * @todo Description\r\n * @param points [description]\r\n * @param mustHaveCount [description]\r\n * @return [description]\r\n */\r\n Morpher.prototype.addPoints = function (points, mustHaveCount) {\r\n var addToSegmentCount = Math.round(mustHaveCount / points.length);\r\n var newPoints = [];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point0 = points[i];\r\n var point1 = void 0;\r\n if (i == points.length - 1) {\r\n point1 = points[0];\r\n }\r\n else {\r\n point1 = points[i + 1];\r\n }\r\n newPoints.push(point0);\r\n for (var p = 1; p < addToSegmentCount; p++) {\r\n var percent = p / addToSegmentCount;\r\n var extraPoint = { x: point0.x + (point1.x - point0.x) * percent, y: point0.y + (point1.y - point0.y) * percent };\r\n newPoints.push(extraPoint);\r\n }\r\n // stop adding in case we already added more than left in original\r\n if (newPoints.length + points.length - i == mustHaveCount) {\r\n addToSegmentCount = 0;\r\n }\r\n }\r\n if (newPoints.length < mustHaveCount && points.length > 0) {\r\n var lastPoint = points[points.length - 1];\r\n for (var p = newPoints.length; p < mustHaveCount; p++) {\r\n // add same as last\r\n newPoints.push({ x: lastPoint.x, y: lastPoint.y });\r\n }\r\n }\r\n return newPoints;\r\n };\r\n /**\r\n * Morphs polygon into a rectangular polygon.\r\n *\r\n * @param width Width of the target rectangle (px)\r\n * @param height Height of the target rectangle (px)\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n * @return Animation\r\n */\r\n Morpher.prototype.morphToRectangle = function (width, height, duration, easing) {\r\n var points = this.morphable.points;\r\n this.sortPoints(points);\r\n this._morphFromPointsReal = [];\r\n this._morphToPointsReal = [];\r\n if (!$type.hasValue(duration)) {\r\n duration = this.morphDuration;\r\n }\r\n if (!$type.hasValue(easing)) {\r\n easing = this.morphEasing;\r\n }\r\n //\t\tlet biggestBBox: IRectangle = this._bboxes[this._biggestIndex];\r\n // surface\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var surface = points[i][0];\r\n var hole = points[i][1];\r\n this._morphFromPointsReal[i] = [];\r\n this._morphToPointsReal[i] = [];\r\n if (surface) {\r\n var toPoints = surface;\r\n var fromPoints = surface;\r\n var bbox = this._bboxes[i];\r\n // we only work with first area. TODO: maybe we should find the biggest one?\r\n if (this.morphToSingle) {\r\n //if (i != this._biggestIndex) {\r\n //\tbbox = { x: biggestBBox.x + biggestBBox.width / 2, y: biggestBBox.y + biggestBBox.height / 2, width: 0, height: 0 };\r\n //}\r\n }\r\n var x = bbox.x;\r\n var y = bbox.y;\r\n var realWidth = width;\r\n var realHeight = height;\r\n if (!$type.isNumber(realWidth)) {\r\n realWidth = bbox.width;\r\n }\r\n if (!$type.isNumber(realHeight)) {\r\n realHeight = bbox.height;\r\n }\r\n toPoints = [{ x: x, y: y }, { x: x + realWidth, y: y }, { x: x + realWidth, y: y + realHeight }, { x: x, y: y + realHeight }];\r\n toPoints = this.addPoints(toPoints, surface.length);\r\n // if polygon has less points then count, add\r\n if (surface.length < 4) {\r\n for (var i_2 = surface.length; i_2 < 4; i_2++) {\r\n toPoints.push({ x: surface[i_2].x, y: surface[i_2].y });\r\n }\r\n }\r\n if (hole && hole.length > 0) {\r\n var middleX = bbox.x + bbox.width / 2;\r\n var middleY = bbox.y + bbox.height / 2;\r\n for (var i_3 = 0, hlen = hole.length; i_3 < hlen; i_3++) {\r\n toPoints.push({ x: middleX, y: middleY });\r\n }\r\n }\r\n this._morphFromPointsReal[i][0] = fromPoints;\r\n this._morphToPointsReal[i][0] = toPoints;\r\n }\r\n }\r\n this.morphable.currentPoints = this._morphFromPointsReal;\r\n var animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n this._disposers.push(animation);\r\n animation.start();\r\n return animation;\r\n };\r\n Object.defineProperty(Morpher.prototype, \"morphProgress\", {\r\n /**\r\n * Returns the progress of morph transition.\r\n *\r\n * @return Progress (0-1)\r\n */\r\n get: function () {\r\n return this._morphProgress;\r\n },\r\n /**\r\n * Progress of the morph transition.\r\n *\r\n * Setting this will also trigger actual transformation.\r\n *\r\n * @param value Progress (0-1)\r\n */\r\n set: function (value) {\r\n this._morphProgress = value;\r\n var currentPoints = [];\r\n if (value != null) {\r\n var fromPoints = this._morphFromPointsReal;\r\n var toPoints = this._morphToPointsReal;\r\n if (fromPoints != null && toPoints != null) {\r\n for (var i = 0, len = fromPoints.length; i < len; i++) {\r\n var currentArea = [];\r\n currentPoints.push(currentArea);\r\n var surfaceFrom = fromPoints[i][0];\r\n var holeFrom = fromPoints[i][1];\r\n var surfaceTo = toPoints[i][0];\r\n var holeTo = toPoints[i][1];\r\n if (surfaceFrom && surfaceFrom.length > 0 && surfaceTo && surfaceTo.length > 0) {\r\n var currentSurface = [];\r\n for (var i_4 = 0, slen = surfaceFrom.length; i_4 < slen; i_4++) {\r\n var point0 = surfaceFrom[i_4];\r\n var point1 = surfaceTo[i_4];\r\n var currentPoint = { x: point0.x + (point1.x * this.scaleRatio - point0.x) * value, y: point0.y + (point1.y * this.scaleRatio - point0.y) * value };\r\n currentSurface.push(currentPoint);\r\n }\r\n currentArea[0] = currentSurface;\r\n }\r\n if (holeFrom && holeFrom.length > 0 && holeTo && holeTo.length > 0) {\r\n var currentHole = [];\r\n for (var i_5 = 0, hlen = holeFrom.length; i_5 < hlen; i_5++) {\r\n var point0 = holeFrom[i_5];\r\n var point1 = holeTo[i_5];\r\n var currentPoint = { x: point0.x + (point1.x * this.scaleRatio - point0.x) * value, y: point0.y + (point1.y * this.scaleRatio - point0.y) * value };\r\n currentHole.push(currentPoint);\r\n }\r\n currentArea[1] = currentHole;\r\n }\r\n }\r\n }\r\n }\r\n this.morphable.currentPoints = currentPoints;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Restores the polygon to its original appearance.\r\n *\r\n * @param duration Duration (ms)\r\n * @param easing Easing function\r\n * @return Animation\r\n */\r\n Morpher.prototype.morphBack = function (duration, easing) {\r\n this._morphToPointsReal = this._morphFromPointsReal;\r\n this._morphFromPointsReal = this.morphable.currentPoints;\r\n if (!$type.hasValue(duration)) {\r\n duration = this.morphDuration;\r\n }\r\n if (!$type.hasValue(easing)) {\r\n easing = this.morphEasing;\r\n }\r\n var animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n this._disposers.push(animation);\r\n animation.start();\r\n return animation;\r\n };\r\n Object.defineProperty(Morpher.prototype, \"animations\", {\r\n /**\r\n * Returns a list of morph animations currently being played.\r\n *\r\n * @return List of animations\r\n */\r\n get: function () {\r\n if (!this._animations) {\r\n this._animations = [];\r\n this._disposers.push(new AnimationDisposer(this._animations));\r\n }\r\n return this._animations;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Morpher;\r\n}(BaseObject));\r\nexport { Morpher };\r\n//# sourceMappingURL=Morpher.js.map","/**\r\n * Polygon module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Morpher } from \"../utils/Morpher\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a polygon.\r\n *\r\n * @see {@link IPolygonEvents} for a list of available events\r\n * @see {@link IPolygonAdapters} for a list of available Adapters\r\n */\r\nvar Polygon = /** @class */ (function (_super) {\r\n __extends(Polygon, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Polygon() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Polygon\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.shapeRendering = \"auto\";\r\n _this._currentPoints = [];\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Polygon.prototype, \"points\", {\r\n /**\r\n * @return Polygon points\r\n */\r\n get: function () {\r\n var points = this.getPropertyValue(\"points\");\r\n var path = this.path;\r\n if (path && (!points || points.length == 0)) {\r\n var valueStr = path.slice(1, path.length - 1);\r\n var segments = valueStr.split(\"ZM\");\r\n for (var s = 0; s < segments.length; s++) {\r\n var segment = segments[s];\r\n if (segment.length > 0) {\r\n var areaHole = segment.split(\"M\");\r\n var areaArr = areaHole[0];\r\n var holeArr = areaHole[1];\r\n if (areaArr && areaArr.length > 0) {\r\n var pointsArr = areaArr.split(\"L\");\r\n if (pointsArr.length > 0) {\r\n var area = [];\r\n var areaAndHole = [area];\r\n points.push(areaAndHole);\r\n for (var p = 0; p < pointsArr.length; p++) {\r\n var coords = pointsArr[p].split(\",\");\r\n area.push({ x: +coords[0], y: +coords[1] });\r\n }\r\n if (holeArr && holeArr.length > 0) {\r\n var pointsArr_1 = holeArr.split(\"L\");\r\n if (pointsArr_1.length > 0) {\r\n var hole = [];\r\n areaAndHole.push(hole);\r\n for (var p = pointsArr_1.length - 1; p >= 0; p--) {\r\n var coords = pointsArr_1[p].split(\",\");\r\n hole.push({ x: +coords[0], y: +coords[1] });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.setPropertyValue(\"points\", points);\r\n this._currentPoints = points;\r\n }\r\n return points;\r\n },\r\n /**\r\n * An array of X/Y coordinates for each elbow of the polygon.\r\n *\r\n * @todo Example\r\n * @param points Polygon points\r\n */\r\n set: function (points) {\r\n this.setPropertyValue(\"points\", points, true);\r\n this._currentPoints = points;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Polygon.prototype, \"currentPoints\", {\r\n /**\r\n * @return Polygon points\r\n */\r\n get: function () {\r\n if ((!this._currentPoints || this._currentPoints.length == 0) && this.path) {\r\n this._currentPoints = this.points;\r\n }\r\n return this._currentPoints;\r\n },\r\n /**\r\n * Current points. Used when morphing the element, so that original `points`\r\n * are not overwritten.\r\n *\r\n * @param points Polygon points\r\n */\r\n set: function (points) {\r\n if (this._currentPoints != points) {\r\n this._currentPoints = points;\r\n this.draw();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Polygon.prototype.draw = function () {\r\n var path = \"\";\r\n var points = this._currentPoints;\r\n var left;\r\n var right;\r\n var top;\r\n var bottom;\r\n if (points.length > 0) {\r\n // separate areas\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n // surface\r\n var surface = points[i][0];\r\n var hole = points[i][1];\r\n if (surface && surface.length > 0) {\r\n var point = surface[0];\r\n path += $path.moveTo(point);\r\n for (var s = 0; s < surface.length; s++) {\r\n point = surface[s];\r\n path += $path.lineTo(point);\r\n if (!$type.isNumber(right) || (right < point.x)) {\r\n right = point.x;\r\n }\r\n if (!$type.isNumber(left) || (left > point.x)) {\r\n left = point.x;\r\n }\r\n if (!$type.isNumber(top) || (top > point.y)) {\r\n top = point.y;\r\n }\r\n if (!$type.isNumber(bottom) || (bottom < point.y)) {\r\n bottom = point.y;\r\n }\r\n }\r\n }\r\n // hole\r\n if (hole && hole.length > 0) {\r\n var point = hole[0];\r\n path += $path.moveTo(point);\r\n for (var h = 0, hlen = hole.length; h < hlen; h++) {\r\n point = hole[h];\r\n path += $path.lineTo(point);\r\n }\r\n }\r\n }\r\n if (path) {\r\n path += $path.closePath();\r\n }\r\n this.bbox.x = left;\r\n this.bbox.y = top;\r\n this.bbox.width = right - left;\r\n this.bbox.height = bottom - top;\r\n _super.prototype.setPath.call(this, path);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Polygon.prototype.setPath = function (value) {\r\n if (_super.prototype.setPath.call(this, value)) {\r\n this.points = [];\r\n this._bbox = this.group.getBBox();\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Measures element\r\n */\r\n Polygon.prototype.measureElement = function () {\r\n // Overriding to avoid extra measurement.\r\n };\r\n Object.defineProperty(Polygon.prototype, \"centerPoint\", {\r\n /**\r\n * A calculated center point for the shape.\r\n *\r\n * @readonly\r\n * @return Center\r\n */\r\n get: function () {\r\n return { x: this.bbox.x + this.bbox.width / 2, y: this.bbox.y + this.bbox.height / 2 };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Polygon.prototype, \"morpher\", {\r\n /**\r\n * A [[Morpher]] instance that is used to morph polygon into some other\r\n * shape.\r\n *\r\n * @readonly\r\n * @return Morpher instance\r\n */\r\n get: function () {\r\n if (!this._morpher) {\r\n this._morpher = new Morpher(this);\r\n this._disposers.push(this._morpher);\r\n }\r\n return this._morpher;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Polygon;\r\n}(Sprite));\r\nexport { Polygon };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polygon\"] = Polygon;\r\n//# sourceMappingURL=Polygon.js.map","/**\r\n * Preloader module.\r\n *\r\n * Preloader is a progress indicator.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Slice } from \"./Slice\";\r\nimport { Label } from \"./Label\";\r\nimport { registry } from \"../Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A class used to draw and display progress indicator.\r\n *\r\n * @see {@link IPreloaderEvents} for a list of available events\r\n * @see {@link IPreloaderAdapters} for a list of available Adapters\r\n */\r\nvar Preloader = /** @class */ (function (_super) {\r\n __extends(Preloader, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Preloader() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"Preloader\";\r\n // Set dimensions\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create main container\r\n var sliceContainer = _this.createChild(Container);\r\n sliceContainer.shouldClone = false;\r\n // Add background (100%) slice\r\n var backgroundSlice = sliceContainer.createChild(Slice);\r\n backgroundSlice.shouldClone = false;\r\n backgroundSlice.radius = 53;\r\n backgroundSlice.arc = 360;\r\n backgroundSlice.fill = interfaceColors.getFor(\"fill\");\r\n backgroundSlice.fillOpacity = 0.8;\r\n backgroundSlice.innerRadius = 42;\r\n backgroundSlice.isMeasured = false;\r\n _this.backgroundSlice = backgroundSlice;\r\n // Add progress slice\r\n var progressSlice = sliceContainer.createChild(Slice);\r\n progressSlice.shouldClone = false;\r\n progressSlice.radius = 50;\r\n progressSlice.innerRadius = 45;\r\n progressSlice.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n progressSlice.fillOpacity = 0.2;\r\n progressSlice.isMeasured = false;\r\n _this.progressSlice = progressSlice;\r\n // Add text label element\r\n var label = sliceContainer.createChild(Label);\r\n label.shouldClone = false;\r\n label.horizontalCenter = \"middle\";\r\n label.verticalCenter = \"middle\";\r\n label.isMeasured = false;\r\n label.fill = interfaceColors.getFor(\"text\");\r\n label.align = \"center\";\r\n label.valign = \"middle\";\r\n label.textAlign = \"middle\";\r\n label.fillOpacity = 0.4;\r\n _this.label = label;\r\n // Set defaults\r\n _this.background.opacity = 1;\r\n _this.background.fill = interfaceColors.getFor(\"background\");\r\n _this.contentAlign = \"center\";\r\n _this.contentValign = \"middle\";\r\n _this.delay = 300;\r\n // Create hidden state\r\n var hiddenState = _this.states.create(\"hidden\");\r\n hiddenState.properties.opacity = 0;\r\n // Hide by default\r\n _this.visible = false;\r\n _this.hide(0);\r\n _this.__disabled = true;\r\n // Make it disposable\r\n // @todo Maybe it's enough to just dispose `sliceContainer`?\r\n _this._disposers.push(_this.backgroundSlice);\r\n _this._disposers.push(_this.progressSlice);\r\n _this._disposers.push(_this.label);\r\n _this._disposers.push(sliceContainer);\r\n return _this;\r\n }\r\n Object.defineProperty(Preloader.prototype, \"progress\", {\r\n /**\r\n * @return Progress (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"progress\");\r\n },\r\n /**\r\n * Current preload progress. (0-1)\r\n *\r\n * * 0 - 0%\r\n * * 0.5 - 50%\r\n * * 1 - 100%\r\n *\r\n * Setting this to a value less than 1, will automatically reveal the\r\n * preloader, while setting it to 1 (100%) will hide it.\r\n *\r\n * @param value Progress (0-1)\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n this.__disabled = false;\r\n this.validateLayout(); // show not in center without this\r\n this.setPropertyValue(\"progress\", value);\r\n /*if (!this.visible && value == 1) {\r\n return;\r\n }*/\r\n this.progressSlice.arc = 360 * value;\r\n if (this.label) {\r\n this.label.text = Math.round(value * 100) + \"%\";\r\n }\r\n if (value >= 1) {\r\n // Cancel the timeout\r\n if (this._started) {\r\n this._started = undefined;\r\n }\r\n // TODO remove closure ?\r\n registry.events.once(\"enterframe\", function () {\r\n var animation = _this.hide();\r\n if (animation && !animation.isFinished()) {\r\n animation.events.once(\"animationended\", function () {\r\n _this.__disabled = true;\r\n });\r\n }\r\n else {\r\n _this.__disabled = true;\r\n }\r\n });\r\n this.interactionsEnabled = false;\r\n this.setPropertyValue(\"progress\", 0);\r\n }\r\n else if (value > 0) {\r\n if (this.delay) {\r\n if (!this._started) {\r\n this._started = new Date().getTime();\r\n }\r\n else if ((this._started + this.delay) <= new Date().getTime()) {\r\n this.__disabled = false;\r\n this.show();\r\n this.interactionsEnabled = true;\r\n }\r\n }\r\n else {\r\n this.__disabled = false;\r\n this.show();\r\n this.interactionsEnabled = true;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Preloader.prototype, \"delay\", {\r\n /**\r\n * @return Delay (ms)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"delay\");\r\n },\r\n /**\r\n * Delay display of preloader by X milliseconds.\r\n *\r\n * When loading starts (`progress` is set to <1) and finishes (`progress` is\r\n * set to 1) before `delay` ms, the loader is never shown.\r\n *\r\n * This is used to avoid brief flashing of the preload for very quick loads.\r\n *\r\n * @default 1000\r\n * @param value Delay (ms)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"delay\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Preloader;\r\n}(Container));\r\nexport { Preloader };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Preloader\"] = Preloader;\r\n//# sourceMappingURL=Preloader.js.map","/**\r\n * Zoom out button functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a zoom out button.\r\n *\r\n * @see {@link ICloseButtonEvents} for a list of available events\r\n * @see {@link ICloseButtonAdapters} for a list of available Adapters\r\n */\r\nvar CloseButton = /** @class */ (function (_super) {\r\n __extends(CloseButton, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CloseButton() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"CloseButton\";\r\n _this.padding(8, 8, 8, 8);\r\n _this.showSystemTooltip = true;\r\n _this.width = 30;\r\n _this.height = 30;\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.cursorOverStyle = MouseCursorStyle.pointer;\r\n var background = _this.background;\r\n background.cornerRadius(20, 20, 20, 20);\r\n var bgc = interfaceColors.getFor(\"background\");\r\n background.fill = bgc;\r\n background.stroke = interfaceColors.getFor(\"primaryButton\");\r\n background.strokeOpacity = 1;\r\n background.strokeWidth = 1;\r\n var downColor = interfaceColors.getFor(\"primaryButtonActive\");\r\n var bhs = background.states.getKey(\"hover\");\r\n bhs.properties.strokeWidth = 3;\r\n bhs.properties.fill = bgc;\r\n var bds = background.states.getKey(\"down\");\r\n bds.properties.stroke = downColor;\r\n bds.properties.fill = bgc;\r\n // Create an icon\r\n var icon = new Sprite();\r\n icon.element = _this.paper.add(\"path\");\r\n icon.stroke = background.stroke;\r\n _this.icon = icon;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n CloseButton.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n var w = this.pixelWidth / 3;\r\n var h = this.pixelHeight / 3;\r\n var path = $path.moveTo({ x: -w / 2, y: -h / 2 });\r\n path += $path.lineTo({ x: w / 2, y: h / 2 });\r\n path += $path.moveTo({ x: w / 2, y: -h / 2 });\r\n path += $path.lineTo({ x: -w / 2, y: h / 2 });\r\n this.icon.path = path;\r\n this.invalidateLayout();\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n CloseButton.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Close\");\r\n }\r\n };\r\n return CloseButton;\r\n}(Button));\r\nexport { CloseButton };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CloseButton\"] = CloseButton;\r\n//# sourceMappingURL=CloseButton.js.map","/**\r\n * Functionality for drawing simple SwitchButtons.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { Label } from \"./Label\";\r\nimport { Button } from \"../elements/Button\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * SwitchButton class is capable of drawing a simple rectangular SwitchButton with\r\n * optionally rounded corners and an icon in it.\r\n *\r\n * @see {@link ISwitchButtonEvents} for a list of available events\r\n * @see {@link ISwitchButtonAdapters} for a list of available Adapters\r\n */\r\nvar SwitchButton = /** @class */ (function (_super) {\r\n __extends(SwitchButton, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SwitchButton() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"SwitchButton\";\r\n _this.tooltipY = 0;\r\n // Set defaults\r\n _this.layout = \"horizontal\";\r\n _this.contentAlign = \"center\";\r\n _this.contentValign = \"middle\";\r\n _this.padding(8, 16, 8, 16);\r\n _this.setStateOnChildren = true;\r\n _this.states.create(\"active\");\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create the label element\r\n var leftLabel = new Label();\r\n leftLabel.fillOpacity = 0.3;\r\n var llas = leftLabel.states.create(\"active\");\r\n llas.properties.fillOpacity = 1;\r\n leftLabel.isActive = true;\r\n _this.leftLabel = leftLabel;\r\n var button = new Button();\r\n var circle = new Circle();\r\n button.contentValign = \"none\";\r\n button.padding(0, 0, 0, 0);\r\n circle.radius = 10;\r\n button.icon = circle;\r\n button.icon.valign = \"middle\";\r\n button.label = undefined;\r\n var p100 = percent(100);\r\n button.background.cornerRadius(p100, p100, p100, p100);\r\n button.width = circle.radius * 3.5;\r\n button.height = circle.radius * 2.1;\r\n button.marginLeft = 8;\r\n button.marginRight = 8;\r\n button.togglable = true;\r\n circle.dx = -circle.radius * 0.7;\r\n circle.fill = interfaceColors.getFor(\"primaryButton\");\r\n var hs = circle.states.create(\"hover\");\r\n hs.properties.fill = interfaceColors.getFor(\"primaryButtonHover\");\r\n var as = circle.states.create(\"active\");\r\n as.properties.fill = interfaceColors.getFor(\"primaryButtonActive\");\r\n as.properties.dx = circle.radius * 0.7;\r\n _this.switchButton = button;\r\n _this.events.on(\"toggled\", function () {\r\n _this.leftLabel.isActive = !_this.isActive;\r\n _this.rightLabel.isActive = _this.isActive;\r\n });\r\n // Create the label element\r\n var rightLabel = new Label();\r\n rightLabel.fillOpacity = 0.3;\r\n var rlas = rightLabel.states.create(\"active\");\r\n rlas.properties.fillOpacity = 1;\r\n _this.rightLabel = rightLabel;\r\n // Set up accessibility\r\n // A Button should be always focusable\r\n _this.role = \"button\";\r\n _this.focusable = true;\r\n rightLabel.valign = \"middle\";\r\n leftLabel.valign = \"middle\";\r\n button.valign = \"middle\";\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(SwitchButton.prototype, \"leftLabel\", {\r\n /**\r\n * @return Left label element\r\n */\r\n get: function () {\r\n return this._leftLabel;\r\n },\r\n /**\r\n * [[Label]] element to be used for left text.\r\n *\r\n * @param left label element\r\n */\r\n set: function (label) {\r\n if (this._leftLabel) {\r\n this.removeDispose(this._leftLabel);\r\n }\r\n this._leftLabel = label;\r\n if (label) {\r\n label.parent = this;\r\n label.interactionsEnabled = false;\r\n label.shouldClone = false;\r\n this._disposers.push(this._leftLabel);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SwitchButton.prototype, \"rightLabel\", {\r\n /**\r\n * @return Rigth label element\r\n */\r\n get: function () {\r\n return this._rightLabel;\r\n },\r\n /**\r\n * [[Label]] element to be used for left text.\r\n *\r\n * @param rigth label element\r\n */\r\n set: function (label) {\r\n if (this._rightLabel) {\r\n this.removeDispose(this._rightLabel);\r\n }\r\n this._rightLabel = label;\r\n if (label) {\r\n label.parent = this;\r\n label.interactionsEnabled = false;\r\n label.shouldClone = false;\r\n this._disposers.push(this._rightLabel);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SwitchButton.prototype, \"switch\", {\r\n /**\r\n * @ignore\r\n * @deprecated Use `switchButton` instead\r\n */\r\n get: function () {\r\n return this._switchButton;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SwitchButton.prototype, \"switchButton\", {\r\n /**\r\n * @return Button\r\n */\r\n get: function () {\r\n return this._switchButton;\r\n },\r\n /**\r\n * A [[Button]] element for switch.\r\n *\r\n * @param Button\r\n */\r\n set: function (button) {\r\n if (this._switchButton) {\r\n this.removeDispose(this._switchButton);\r\n }\r\n this._switchButton = button;\r\n if (button) {\r\n button.parent = this;\r\n button.shouldClone = false;\r\n this._disposers.push(this._switchButton);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties and other attributes.\r\n *\r\n * @param source Source\r\n */\r\n SwitchButton.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (source.leftLabel) {\r\n this.leftLabel.copyFrom(source.leftLabel);\r\n }\r\n if (source.rightLabel) {\r\n this.rightLabel.copyFrom(source.rightLabel);\r\n }\r\n if (source.switchButton) {\r\n this.switchButton.copyFrom(source.switchButton);\r\n }\r\n };\r\n return SwitchButton;\r\n}(Container));\r\nexport { SwitchButton };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SwitchButton\"] = SwitchButton;\r\n//# sourceMappingURL=SwitchButton.js.map","/**\r\n * Slider is a scrollbar with just one selection grip.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar } from \"../../core/elements/Scrollbar\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a slider - a version of scrollbar with just one grip.\r\n *\r\n * @see {@link ISliderEvents} for a list of available events\r\n * @see {@link ISliderAdapters} for a list of available Adapters\r\n */\r\nvar Slider = /** @class */ (function (_super) {\r\n __extends(Slider, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Slider() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Slider\";\r\n _this.thumb.opacity = 0;\r\n _this.thumb.interactionsEnabled = false;\r\n _this.endGrip.opacity = 0;\r\n _this.endGrip.interactionsEnabled = false;\r\n _this.startGrip.events.on(\"drag\", function () {\r\n _this.endGrip.x = _this.startGrip.x;\r\n _this.endGrip.y = _this.startGrip.y;\r\n });\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Slider.prototype, \"__end\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._start;\r\n },\r\n set: function (value) {\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slider.prototype, \"end\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._start;\r\n },\r\n /**\r\n * Relative position (0-1) of the end grip.\r\n *\r\n * @param position Position (0-1)\r\n */\r\n set: function (position) {\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slider.prototype, \"start\", {\r\n /**\r\n * @return Position (0-1)\r\n */\r\n get: function () {\r\n return this._start;\r\n },\r\n /**\r\n * Relative position (0-1) of the start grip.\r\n *\r\n * @param position Position (0-1)\r\n */\r\n set: function (position) {\r\n if (!this._isBusy) {\r\n this.__start = position;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Slider;\r\n}(Scrollbar));\r\nexport { Slider };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Slider\"] = Slider;\r\n//# sourceMappingURL=Slider.js.map","/**\r\n * Play button functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button } from \"./Button\";\r\nimport { RoundedRectangle } from \"./RoundedRectangle\";\r\nimport { registry } from \"../Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Triangle } from \"./Triangle\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a zoom out button.\r\n *\r\n * @see {@link IPlayButtonEvents} for a list of available events\r\n * @see {@link IPlayButtonAdapters} for a list of available Adapters\r\n */\r\nvar PlayButton = /** @class */ (function (_super) {\r\n __extends(PlayButton, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PlayButton() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"PlayButton\";\r\n _this.padding(12, 12, 12, 12);\r\n _this.showSystemTooltip = true;\r\n var interfaceColors = new InterfaceColorSet();\r\n var background = _this.background;\r\n background.cornerRadius(25, 25, 25, 25);\r\n background.fill = interfaceColors.getFor(\"primaryButton\");\r\n background.stroke = interfaceColors.getFor(\"primaryButtonStroke\");\r\n background.strokeOpacity = 0;\r\n background.states.getKey(\"hover\").properties.fill = interfaceColors.getFor(\"primaryButtonHover\");\r\n background.states.getKey(\"down\").properties.fill = interfaceColors.getFor(\"primaryButtonActive\");\r\n // Create a play icon\r\n var playIcon = new Triangle();\r\n playIcon.direction = \"right\";\r\n playIcon.width = 9;\r\n playIcon.height = 11;\r\n playIcon.marginLeft = 1;\r\n playIcon.marginRight = 1;\r\n playIcon.horizontalCenter = \"middle\";\r\n playIcon.verticalCenter = \"middle\";\r\n playIcon.stroke = interfaceColors.getFor(\"primaryButtonText\");\r\n playIcon.fill = playIcon.stroke;\r\n _this.icon = playIcon;\r\n // Create a play icon\r\n var stopIcon = new RoundedRectangle();\r\n stopIcon.width = 11;\r\n stopIcon.height = 11;\r\n stopIcon.horizontalCenter = \"middle\";\r\n stopIcon.verticalCenter = \"middle\";\r\n stopIcon.cornerRadius(0, 0, 0, 0);\r\n stopIcon.stroke = interfaceColors.getFor(\"primaryButtonText\");\r\n stopIcon.fill = playIcon.stroke;\r\n _this.togglable = true;\r\n var activeState = _this.states.create(\"active\");\r\n activeState.transitionDuration = 0;\r\n activeState.properties.icon = stopIcon;\r\n _this.defaultState.transitionDuration = 0;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n PlayButton.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Play\");\r\n }\r\n };\r\n return PlayButton;\r\n}(Button));\r\nexport { PlayButton };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PlayButton\"] = PlayButton;\r\n//# sourceMappingURL=PlayButton.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadialGradient } from \"./RadialGradient\";\r\nimport { GradientModifier } from \"./GradientModifier\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify radial gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"LinearGradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar RadialGradientModifier = /** @class */ (function (_super) {\r\n __extends(RadialGradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function RadialGradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadialGradientModifier\";\r\n _this.gradient = new RadialGradient();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n RadialGradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.gradient = source.gradient.clone();\r\n };\r\n return RadialGradientModifier;\r\n}(GradientModifier));\r\nexport { RadialGradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradientModifier\"] = RadialGradientModifier;\r\n//# sourceMappingURL=RadialGradientModifier.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern } from \"./Pattern\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $path from \"../../rendering/Path\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Line pattern.\r\n */\r\nvar LinePattern = /** @class */ (function (_super) {\r\n __extends(LinePattern, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LinePattern() {\r\n var _this = _super.call(this) || this;\r\n _this.properties[\"gap\"] = 0;\r\n _this._line = _this.paper.add(\"path\");\r\n _this.addElement(_this._line);\r\n return _this;\r\n }\r\n /**\r\n * Draws the pattern.\r\n */\r\n LinePattern.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n this.properties[\"shapeRendering\"] = \"auto\";\r\n }\r\n if (this._line) {\r\n var w = this.width;\r\n var h = this.height;\r\n var path = \"\";\r\n if (!this.gap) {\r\n if (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n path = $path.moveTo({ x: -w, y: h / 2 }) + $path.lineTo({ x: w * 2, y: h / 2 });\r\n this.properties[\"rotationX\"] = this.width / 2;\r\n this.properties[\"rotationY\"] = this.height / 2;\r\n }\r\n else {\r\n path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: w, y: 0 });\r\n }\r\n }\r\n else {\r\n var step = this.gap + this.strokeWidth;\r\n var count = this.height / step;\r\n for (var i = -count / 2; i < count * 1.5; i++) {\r\n if (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n path += $path.moveTo({ x: -w, y: (i + 0.5) * step }) + $path.lineTo({ x: w * 2, y: (i + 0.5) * step });\r\n this.properties[\"rotationX\"] = this.width / 2;\r\n this.properties[\"rotationY\"] = this.height / 2;\r\n }\r\n else {\r\n path += $path.moveTo({ x: -w, y: i * step }) + $path.lineTo({ x: w * 2, y: i * step });\r\n }\r\n }\r\n }\r\n this._line.attr({ \"d\": path });\r\n }\r\n };\r\n Object.defineProperty(LinePattern.prototype, \"gap\", {\r\n /**\r\n * @return gap\r\n */\r\n get: function () {\r\n return this.properties[\"gap\"];\r\n },\r\n /**\r\n * Number of pixels between pattern lines.\r\n *\r\n * The pattern will automatically draw required number of lines to fill\r\n * pattern area maintaining `gap` distance between them.\r\n *\r\n * 0 (zero) means only single line will be drawn.\r\n *\r\n * @default 0\r\n * @since 4.7.7\r\n */\r\n set: function (value) {\r\n this.properties[\"gap\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LinePattern;\r\n}(Pattern));\r\nexport { LinePattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinePattern\"] = LinePattern;\r\n//# sourceMappingURL=LinePattern.js.map","/**\r\n * Rectangular pattern module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern } from \"./Pattern\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Circular pattern\r\n */\r\nvar CirclePattern = /** @class */ (function (_super) {\r\n __extends(CirclePattern, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CirclePattern() {\r\n var _this = _super.call(this) || this;\r\n _this.properties[\"radius\"] = 2;\r\n _this._circle = _this.paper.add(\"circle\");\r\n _this.addElement(_this._circle);\r\n _this.shapeRendering = \"auto\";\r\n return _this;\r\n }\r\n /**\r\n * Draws the circle element.\r\n */\r\n CirclePattern.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this._circle) {\r\n this._circle.attr({ \"r\": this.radius, \"cx\": this.width / 2, \"cy\": this.height / 2 });\r\n }\r\n };\r\n Object.defineProperty(CirclePattern.prototype, \"radius\", {\r\n /**\r\n * @return Radius (px)\r\n */\r\n get: function () {\r\n return this.properties[\"radius\"];\r\n },\r\n /**\r\n * Circle radius in pixels.\r\n *\r\n * @param value Radius (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"radius\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CirclePattern;\r\n}(Pattern));\r\nexport { CirclePattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CirclePattern\"] = CirclePattern;\r\n//# sourceMappingURL=CirclePattern.js.map","/**\r\n * Rectangular pattern module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern } from \"./Pattern\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Rectangular pattern\r\n */\r\nvar RectPattern = /** @class */ (function (_super) {\r\n __extends(RectPattern, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RectPattern() {\r\n var _this = _super.call(this) || this;\r\n _this.rectHeight = 1;\r\n _this.rectWidth = 1;\r\n _this._rect = _this.paper.add(\"rect\");\r\n _this.addElement(_this._rect);\r\n return _this;\r\n }\r\n /**\r\n * Draws the rectangular element.\r\n */\r\n RectPattern.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n this.properties[\"rotationX\"] = this.width / 2;\r\n this.properties[\"rotationY\"] = this.height / 2;\r\n if (this._rect) {\r\n this._rect.attr({ \"width\": this.rectWidth, \"height\": this.rectHeight, \"x\": (this.width - this.rectWidth) / 2, \"y\": (this.height - this.rectHeight) / 2 });\r\n }\r\n };\r\n Object.defineProperty(RectPattern.prototype, \"rectWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.properties[\"rectWidth\"];\r\n },\r\n /**\r\n * Rectangle width in pixels.\r\n *\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"rectWidth\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RectPattern.prototype, \"rectHeight\", {\r\n /**\r\n * @return Height (px)\r\n */\r\n get: function () {\r\n return this.properties[\"rectHeight\"];\r\n },\r\n /**\r\n * Rectangle height in pixels.\r\n *\r\n * @param value Height (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"rectHeight\"] = value;\r\n this.draw();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return RectPattern;\r\n}(Pattern));\r\nexport { RectPattern };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RectPattern\"] = RectPattern;\r\n//# sourceMappingURL=RectPattern.js.map","/**\r\n * Module for \"Colorize\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Colorize\" filter.\r\n */\r\nvar ColorizeFilter = /** @class */ (function (_super) {\r\n __extends(ColorizeFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColorizeFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColorizeFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"matrix\" });\r\n //this.feColorMatrix.setAttribute(\"in\", \"SourceAlpha\");\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.intensity = 1;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)applies colors to the already existing filter by modifying filyer's\r\n * color matrix element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ColorizeFilter.prototype.applyFilter = function () {\r\n var i = this.intensity;\r\n var ii = 1 - i;\r\n var r;\r\n var g;\r\n var b;\r\n var color = this.color;\r\n if (color && color.rgb) {\r\n r = color.rgb.r / 255 * i;\r\n g = color.rgb.g / 255 * i;\r\n b = color.rgb.b / 255 * i;\r\n }\r\n else {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n }\r\n this.feColorMatrix.attr({ \"values\": ii + \" 0 0 0 \" + r + \" 0 \" + ii + \" 0 0 \" + g + \" 0 0 \" + ii + \" 0 \" + b + \" 0 0 0 1 0\" });\r\n };\r\n Object.defineProperty(ColorizeFilter.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"color\"];\r\n },\r\n /**\r\n * Target color to apply to the element.\r\n *\r\n * Depending on the `intensity`, all colors of the target element will steer\r\n * towards this color.\r\n *\r\n * E.g. setting to `am4core.color(\"greener\")` will make all colors greener.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"color\"] = value;\r\n this.applyFilter();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColorizeFilter.prototype, \"intensity\", {\r\n /**\r\n * @return Intensity (0-1)\r\n */\r\n get: function () {\r\n return this.properties.intensity;\r\n },\r\n /**\r\n * Intensity of the color (0-1).\r\n *\r\n * The bigger the number the more of a `color` target's colors will become.\r\n *\r\n * 0 means the colors will remain as they are.\r\n * 1 means all colors will become the target `color`.\r\n *\r\n * @default 1\r\n * @param value Intensity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties.intensity = value;\r\n this.applyFilter();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ColorizeFilter;\r\n}(Filter));\r\nexport { ColorizeFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorizeFilter\"] = ColorizeFilter;\r\n//# sourceMappingURL=ColorizeFilter.js.map","/**\r\n * Module for \"Blur\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Blur\" filter.\r\n */\r\nvar BlurFilter = /** @class */ (function (_super) {\r\n __extends(BlurFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function BlurFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"BlurFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feGaussianBlur = _this.paper.add(\"feGaussianBlur\");\r\n _this.feGaussianBlur.attr({ \"result\": \"blurOut\", \"in\": \"SourceGraphic\" });\r\n _this.filterPrimitives.push(_this.feGaussianBlur);\r\n // Set default properties\r\n _this.width = 200;\r\n _this.height = 200;\r\n _this.blur = 1.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(BlurFilter.prototype, \"blur\", {\r\n /**\r\n * @return Blur\r\n */\r\n get: function () {\r\n return this.properties.blur;\r\n },\r\n /**\r\n * Blur value.\r\n *\r\n * The bigger the value, the blurrier the target element will become.\r\n *\r\n * @default 1.5\r\n * @param value Blur\r\n */\r\n set: function (value) {\r\n this.properties.blur = value;\r\n this.feGaussianBlur.attr({ \"stdDeviation\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BlurFilter;\r\n}(Filter));\r\nexport { BlurFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"BlurFilter\"] = BlurFilter;\r\n//# sourceMappingURL=BlurFilter.js.map","/**\r\n * Module for \"Focus\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { Filter } from \"./Filter\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Focus\" filter.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/accessibility/} more about accessibility\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/changing-appearance-of-focused-items/} cusomizing focus appearance\r\n */\r\nvar FocusFilter = /** @class */ (function (_super) {\r\n __extends(FocusFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FocusFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FocusFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feFlood = _this.paper.add(\"feFlood\");\r\n _this.feFlood.attr({ \"flood-color\": new InterfaceColorSet().getFor(\"primaryButtonHover\"), \"result\": \"base\" });\r\n _this.filterPrimitives.push(_this.feFlood);\r\n _this.feMorphology = _this.paper.add(\"feMorphology\");\r\n _this.feMorphology.attr({ \"result\": \"bigger\", \"in\": \"SourceGraphic\", \"operator\": \"dilate\", \"radius\": \"2\" });\r\n _this.filterPrimitives.push(_this.feMorphology);\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"result\": \"mask\", \"in\": \"bigger\", \"type\": \"matrix\", \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n _this.feComposite = _this.paper.add(\"feComposite\");\r\n _this.feComposite.attr({ \"result\": \"drop\", \"in\": \"base\", \"in2\": \"mask\", \"operator\": \"in\" });\r\n _this.filterPrimitives.push(_this.feComposite);\r\n _this.feBlend = _this.paper.add(\"feBlend\");\r\n _this.feBlend.attr({ \"in\": \"SourceGraphic\", \"in2\": \"drop\", \"mode\": \"normal\" });\r\n _this.filterPrimitives.push(_this.feBlend);\r\n // Set default properties\r\n _this.width = 130;\r\n _this.height = 130;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(FocusFilter.prototype, \"stroke\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties[\"stroke\"];\r\n },\r\n /**\r\n * Stroke (outline) color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties[\"stroke\"] = value;\r\n this.feFlood.attr({ \"flood-color\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FocusFilter.prototype, \"strokeWidth\", {\r\n /**\r\n * @return Outline thickness (px)\r\n */\r\n get: function () {\r\n return this.properties[\"strokeWidth\"];\r\n },\r\n /**\r\n * Stroke (outline) thickness in pixels.\r\n *\r\n * @param value Outline thickness (px)\r\n */\r\n set: function (value) {\r\n this.properties[\"strokeWidth\"] = value;\r\n this.feMorphology.attr({ \"radius\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FocusFilter.prototype, \"opacity\", {\r\n /**\r\n * @return Outline opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"opacity\"];\r\n },\r\n /**\r\n * Opacity of the outline. (0-1)\r\n *\r\n * @param value Outline opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"opacity\"] = value;\r\n this.feColorMatrix.attr({ \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \" + value + \" 0\" });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets filter's target element.\r\n *\r\n * In addition it also disables built-in focus outline on element this\r\n * filter is applied to.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Element filter is being attached to\r\n */\r\n FocusFilter.prototype.setSprite = function (value) {\r\n if (this._sprite && this._sprite != value) {\r\n this._sprite.group.removeStyle(\"outline\");\r\n }\r\n value.group.addStyle({\r\n \"outline\": \"none\"\r\n });\r\n _super.prototype.setSprite.call(this, value);\r\n };\r\n return FocusFilter;\r\n}(Filter));\r\nexport { FocusFilter };\r\n//# sourceMappingURL=FocusFilter.js.map","/**\r\n * This module contains PatternSet object definition\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { Color } from \"./Color\";\r\nimport { InterfaceColorSet } from \"./InterfaceColorSet\";\r\nimport { LinePattern } from \"../rendering/fills/LinePattern\";\r\nimport { RectPattern } from \"../rendering/fills/RectPattern\";\r\nimport { CirclePattern } from \"../rendering/fills/CirclePattern\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines an interable list of distinctive patterns that can be used in\r\n * conjunction to colors to generate various fill patterns.\r\n *\r\n * @important\r\n * @since 4.7.5\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nvar PatternSet = /** @class */ (function (_super) {\r\n __extends(PatternSet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PatternSet() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Holds the list of the colors in this set. (preset or auto-generated)\r\n */\r\n _this._list = [];\r\n /**\r\n * Current step.\r\n */\r\n _this._currentStep = 0;\r\n /**\r\n * If set to non-zero value, the PatternSet will start iterating patterns from\r\n * that particular index, not the first pattern in the list.\r\n */\r\n _this._startIndex = 0;\r\n /**\r\n * Current pass in cycle. Once all patterns in the list are iterated,\r\n * iteration restarts from beginning and currentPass is incremented.\r\n */\r\n _this._currentPass = 0;\r\n /**\r\n * A base color. If there are no colors pre-set in the color list, ColorSet\r\n * will use this color as a base when generating new ones, applying\r\n * `stepOptions` and `passOptions` to this base color.\r\n */\r\n _this.baseColor = new Color({\r\n r: 103,\r\n g: 183,\r\n b: 220\r\n });\r\n _this.className = \"PatternSet\";\r\n // Set base color to be used for pattern elements\r\n var interfaceColors = new InterfaceColorSet();\r\n // Set default patterns\r\n _this.list = [\r\n _this.getLinePattern(1000, 45, 1, 6),\r\n _this.getRectPattern(10, 0, 4),\r\n _this.getLinePattern(1000, -45, 1, 6),\r\n _this.getCirclePattern(11, 2, true),\r\n _this.getLinePattern(6, 90, 1),\r\n _this.getRectPattern(12, 45, 6, true),\r\n _this.getLinePattern(6, 0, 1),\r\n _this.getRectPattern(7, 0, 4),\r\n _this.getLinePattern(1000, 45, 2, 3, \"4,2\"),\r\n _this.getCirclePattern(9, 3, false),\r\n _this.getLinePattern(1000, -45, 2, 3, \"4,2\"),\r\n _this.getRectPattern(10, 45, Math.sqrt(50)),\r\n _this.getLinePattern(1000, -45, 2, 1),\r\n _this.getRectPattern(10, 0, 9),\r\n _this.getLinePattern(1000, 45, 2, 1),\r\n _this.getLinePattern(1000, 0, 3, 1),\r\n _this.getRectPattern(10, 45, 10),\r\n _this.getLinePattern(1000, 90, 3, 1)\r\n ];\r\n _this.baseColor = interfaceColors.getFor(\"stroke\");\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n PatternSet.prototype.getLinePattern = function (size, rotation, thickness, gap, strokeDashArray) {\r\n var pattern = new LinePattern();\r\n pattern.width = size;\r\n pattern.height = size;\r\n pattern.stroke = this.baseColor;\r\n pattern.gap = gap;\r\n pattern.strokeDasharray = strokeDashArray;\r\n pattern.strokeWidth = thickness;\r\n pattern.rotation = rotation;\r\n return pattern;\r\n };\r\n PatternSet.prototype.getRectPattern = function (size, rotation, thickness, outline) {\r\n var pattern = new RectPattern();\r\n pattern.width = size;\r\n pattern.height = size;\r\n pattern.rectWidth = thickness;\r\n pattern.rectHeight = thickness;\r\n if (outline) {\r\n pattern.stroke = this.baseColor;\r\n pattern.strokeWidth = 1;\r\n pattern.fillOpacity = 0;\r\n }\r\n else {\r\n pattern.fill = this.baseColor;\r\n pattern.strokeWidth = 0;\r\n }\r\n if (rotation != 0) {\r\n pattern.shapeRendering = \"auto\";\r\n }\r\n pattern.rotation = rotation;\r\n return pattern;\r\n };\r\n PatternSet.prototype.getCirclePattern = function (size, radius, outline) {\r\n var pattern = new CirclePattern();\r\n pattern.width = size;\r\n pattern.height = size;\r\n pattern.shapeRendering = \"auto\";\r\n pattern.radius = radius;\r\n if (outline) {\r\n pattern.stroke = this.baseColor;\r\n pattern.strokeWidth = 1;\r\n pattern.fillOpacity = 0;\r\n }\r\n else {\r\n pattern.fill = this.baseColor;\r\n pattern.strokeWidth = 0;\r\n }\r\n return pattern;\r\n };\r\n Object.defineProperty(PatternSet.prototype, \"list\", {\r\n /**\r\n * @return Pattern list\r\n */\r\n get: function () {\r\n return this._list;\r\n },\r\n /**\r\n * List of pre-defined patterns to be used in set.\r\n *\r\n * @param value Pattern list\r\n */\r\n set: function (value) {\r\n this._list = value;\r\n this.reset();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the next pattern in list.\r\n *\r\n * @return Pattern\r\n */\r\n PatternSet.prototype.next = function () {\r\n var pattern = this.getIndex(this.currentStep);\r\n this._currentStep++;\r\n return pattern;\r\n };\r\n /**\r\n * Returns a color at specific index in the list.\r\n *\r\n * @param i Index\r\n * @return Pattern\r\n */\r\n PatternSet.prototype.getIndex = function (i) {\r\n var pattern;\r\n while (this.list.length <= i) {\r\n this.generatePatterns();\r\n }\r\n pattern = this.list[i];\r\n return pattern.clone();\r\n };\r\n /**\r\n * Generates a new set of patterns.\r\n */\r\n PatternSet.prototype.generatePatterns = function () {\r\n var count = this.list.length / (this._currentPass + 1);\r\n this._currentPass++;\r\n for (var i = 0; i < count; i++) {\r\n this.list.push(this.list[i].clone());\r\n }\r\n };\r\n /**\r\n * Resets internal iterator.\r\n *\r\n * Calling `next()` after this will return the very first color in the color\r\n * list, even if it was already returned before.\r\n */\r\n PatternSet.prototype.reset = function () {\r\n this._currentStep = this._startIndex;\r\n };\r\n Object.defineProperty(PatternSet.prototype, \"currentStep\", {\r\n /**\r\n * @return Step\r\n */\r\n get: function () {\r\n return this._currentStep;\r\n },\r\n /**\r\n * Sets current color iteration. You can use this property to skip some\r\n * colors from iteration. E.g. setting it to `10` will skip first ten\r\n * colors.\r\n *\r\n * Please note that the number is zero-based.\r\n *\r\n * @param value Step\r\n */\r\n set: function (value) {\r\n this._currentStep = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PatternSet.prototype, \"startIndex\", {\r\n /**\r\n * @return Index\r\n */\r\n get: function () {\r\n return this._startIndex;\r\n },\r\n /**\r\n * If set to non-zero value, the ColorSet will start iterating colors from\r\n * that particular index, not the first color in the list.\r\n *\r\n * @default 0\r\n * @param value Index\r\n */\r\n set: function (value) {\r\n this._startIndex = value;\r\n this.reset();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n PatternSet.prototype.processConfig = function (config) {\r\n // if (config) {\r\n // \t// Set up axis ranges\r\n // \tif ($type.hasValue(config.list) && $type.isArray(config.list)) {\r\n // \t\tfor (let i = 0, len = config.list.length; i < len; i++) {\r\n // \t\t\tif (!(config.list[i] instanceof Color)) {\r\n // \t\t\t\tconfig.list[i] = color(config.list[i]);\r\n // \t\t\t}\r\n // \t\t}\r\n // \t}\r\n // }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return PatternSet;\r\n}(BaseObject));\r\nexport { PatternSet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PatternSet\"] = PatternSet;\r\n//# sourceMappingURL=PatternSet.js.map","/**\r\n * A plugin base class.\r\n */\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This is a base class that provides core functionality for plugins.\r\n *\r\n * The easiest way to start off with a new plugin is to extend this class.\r\n *\r\n * It will provide all the mandatory functionality, such as disposers.\r\n *\r\n * @since 4.2.2\r\n */\r\nvar Plugin = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n */\r\n function Plugin() {\r\n /**\r\n * Is this object disposed?\r\n */\r\n this._disposed = false;\r\n /**\r\n * List of IDisposer which will be disposed when the BaseObject is disposed.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n this._disposers = [];\r\n // Nothing to do here\r\n }\r\n /**\r\n * Decorates series with required events and adapters used to hijack its\r\n * data.\r\n */\r\n Plugin.prototype.init = function () {\r\n // Does nothing\r\n // Override it\r\n };\r\n /**\r\n * Returns if this element is already disposed.\r\n *\r\n * @return Is disposed?\r\n */\r\n Plugin.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Disposes this object and related stuff.\r\n */\r\n Plugin.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n var a = this._disposers;\r\n this._disposers = null;\r\n while (a.length !== 0) {\r\n var disposer = a.shift();\r\n disposer.dispose();\r\n }\r\n }\r\n };\r\n return Plugin;\r\n}());\r\nexport { Plugin };\r\n//# sourceMappingURL=Plugin.js.map","/**\r\n * AmChartsLogo module.\r\n *\r\n * AmChartsLogo shows amCharts logo for non-commercial users of a library.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Polyspline } from \"./Polyspline\";\r\nimport { color } from \"../utils/Color\";\r\nimport { LinearGradient } from \"../rendering/fills/LinearGradient\";\r\nimport { DesaturateFilter } from \"../rendering/filters/DesaturateFilter\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A class used to draw and display progress indicator.\r\n *\r\n * @see {@link IAmChartsLogoEvents} for a list of available events\r\n * @see {@link IAmChartsLogoAdapters} for a list of available Adapters\r\n * @ignore Exclude from docs\r\n */\r\nvar AmChartsLogo = /** @class */ (function (_super) {\r\n __extends(AmChartsLogo, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AmChartsLogo() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"AmChartsLogo\";\r\n _this.valign = \"bottom\";\r\n var d = 0.3;\r\n _this.opacity = 0.3;\r\n _this.defaultState.properties.opacity = 0.4;\r\n _this.url = \"https://www.amcharts.com/\";\r\n _this.urlTarget = \"_blank\";\r\n _this.showSystemTooltip = true;\r\n _this.readerTitle = \"Chart created using amCharts library\";\r\n _this.width = 220 * d;\r\n _this.height = 70 * d;\r\n _this.background.opacity = 0;\r\n var aColor = color(\"#474758\");\r\n if (new InterfaceColorSet().getFor(\"background\").alternative.hex == \"#ffffff\") {\r\n aColor = color(\"#ffffff\");\r\n }\r\n var aGradient = new LinearGradient();\r\n aGradient.addColor(aColor);\r\n aGradient.addColor(aColor, 1, 0.75);\r\n aGradient.addColor(color(\"#3cabff\"), 1, 0.755);\r\n aGradient.rotation = -10;\r\n var aStroke = aGradient;\r\n var m = _this.createChild(Polyspline);\r\n m.shouldClone = false;\r\n m.isMeasured = false;\r\n m.segments = [[{ x: 50 * d, y: 50 * d }, { x: 90 * d, y: 50 * d }, { x: 120 * d, y: 20 * d }, { x: 135 * d, y: 35 * d }, { x: 150 * d, y: 20 * d }, { x: 180 * d, y: 50 * d }, { x: 200 * d, y: 50 * d }]];\r\n m.strokeWidth = 6 * d;\r\n m.tensionX = 0.8;\r\n m.tensionY = 1;\r\n m.stroke = color(\"#3cabff\");\r\n var a = _this.createChild(Polyspline);\r\n a.shouldClone = false;\r\n a.isMeasured = false;\r\n a.segments = [[{ x: 20 * d, y: 50 * d }, { x: 50 * d, y: 50 * d }, { x: 90 * d, y: 12 * d }, { x: 133 * d, y: 50 * d }, { x: 170 * d, y: 50 * d }, { x: 200 * d, y: 50 * d }]];\r\n a.strokeWidth = 6 * d;\r\n a.tensionX = 0.75;\r\n a.tensionY = 1;\r\n a.stroke = aStroke;\r\n _this._disposers.push(a);\r\n var desaturateFilter = new DesaturateFilter();\r\n _this.filters.push(desaturateFilter);\r\n var desaturateFilterHover = new DesaturateFilter();\r\n desaturateFilterHover.saturation = 1;\r\n var hoverState = _this.states.create(\"hover\");\r\n hoverState.properties.opacity = 1;\r\n hoverState.filters.push(desaturateFilterHover);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return AmChartsLogo;\r\n}(Container));\r\nexport { AmChartsLogo };\r\n//# sourceMappingURL=AmChartsLogo.js.map","import { __read, __spread } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { system } from \"../System\";\r\nimport { registry } from \"../Registry\";\r\nimport { Container } from \"../Container\";\r\nimport { Component } from \"../Component\";\r\nimport { Paper } from \"../rendering/Paper\";\r\nimport { SVGContainer, svgContainers } from \"../rendering/SVGContainer\";\r\nimport { FocusFilter } from \"../rendering/filters/FocusFilter\";\r\nimport { Preloader } from \"../elements/Preloader\";\r\nimport { AmChartsLogo } from \"../elements/AmChartsLogo\";\r\nimport { Tooltip } from \"../elements/Tooltip\";\r\nimport { Disposer, MultiDisposer } from \"../utils/Disposer\";\r\nimport { percent } from \"./Percent\";\r\nimport { options } from \"../Options\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\nimport * as $dom from \"./DOM\";\r\nimport * as $utils from \"./Utils\";\r\nimport * as $log from \"./Log\";\r\n/**\r\n * ============================================================================\r\n * INSTANTIATION FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates all HTML and SVG containers needed for the chart instance, as well\r\n * as the new [[Sprite]] (as specified in `classType` parameter).\r\n *\r\n * @param htmlElement A container to creat elements in\r\n * @param classType A class definition of the new element to create\r\n * @return Newly-created Sprite object\r\n */\r\nfunction createChild(htmlElement, classType) {\r\n var htmlContainer = $dom.getElement(htmlElement);\r\n // If there's no container available yet, we create a fake one\r\n var tmpContainer = false;\r\n if (!htmlContainer) {\r\n htmlContainer = document.createElement(\"div\");\r\n htmlContainer.style.width = \"200px\";\r\n htmlContainer.style.height = \"200px\";\r\n htmlContainer.style.top = \"0\";\r\n htmlContainer.style.left = \"0\";\r\n htmlContainer.style.visibility = \"hidden\";\r\n htmlContainer.style.position = \"absolute\";\r\n document.body.appendChild(htmlContainer);\r\n tmpContainer = true;\r\n }\r\n if (htmlContainer) {\r\n htmlContainer.innerHTML = \"\";\r\n //htmlContainer.style.overflow = \"hidden\";\r\n var svgDiv_1 = new SVGContainer(htmlContainer);\r\n var paper = new Paper(svgDiv_1.SVGContainer, \"svg-\" + (svgContainers.length - 1));\r\n // the approach with masks is chosen because overflow:visible is set on SVG element in order tooltips could go outside\r\n // svg area - this is often needed when working with small charts.\r\n // main container which holds content container and tooltips container\r\n var container_1 = new Container();\r\n container_1.htmlContainer = htmlContainer;\r\n container_1.svgContainer = svgDiv_1;\r\n container_1.width = percent(100);\r\n container_1.height = percent(100);\r\n container_1.background.fillOpacity = 0;\r\n container_1.paper = paper;\r\n paper.append(container_1.group);\r\n // Set up moving to proper element container if it's not yet ready at call time\r\n if (tmpContainer) {\r\n $dom.ready(function () {\r\n container_1.moveHtmlContainer(htmlElement);\r\n });\r\n }\r\n // this is set from parent container, but this one doesn't have, so do it manually.\r\n container_1.relativeWidth = 1;\r\n container_1.relativeHeight = 1;\r\n svgDiv_1.container = container_1;\r\n // creating classType instance\r\n var sprite_1 = container_1.createChild(classType);\r\n sprite_1.topParent = container_1;\r\n var uid = sprite_1.uid;\r\n registry.invalidSprites[uid] = [];\r\n registry.invalidDatas[uid] = [];\r\n registry.invalidPositions[uid] = [];\r\n registry.invalidLayouts[uid] = [];\r\n container_1.baseId = uid;\r\n sprite_1.isBaseSprite = true;\r\n sprite_1.focusFilter = new FocusFilter();\r\n registry.baseSprites.push(sprite_1);\r\n registry.baseSpritesByUid[uid] = sprite_1;\r\n sprite_1.maskRectangle = { x: 0, y: 0, width: Math.max(svgDiv_1.width || 0, 0), height: Math.max(svgDiv_1.height || 0, 0) };\r\n // this solves issues with display:none, as all children are measured as 0x0\r\n container_1.events.on(\"maxsizechanged\", function (event) {\r\n if (event.previousWidth == 0 || event.previousHeight == 0) {\r\n container_1.deepInvalidate();\r\n }\r\n if (sprite_1.maskRectangle) {\r\n sprite_1.maskRectangle = { x: 0, y: 0, width: Math.max(svgDiv_1.width || 0, 0), height: Math.max(svgDiv_1.height || 0, 0) };\r\n }\r\n });\r\n var loopTimer_1 = null;\r\n // Checks to see whether the chart was properly disposed or not\r\n var loop_1 = function () {\r\n if (!sprite_1.isDisposed()) {\r\n if ($dom.getRoot(sprite_1.dom) == null) {\r\n if (options.autoDispose) {\r\n container_1.htmlContainer = undefined;\r\n svgDiv_1.htmlElement = undefined;\r\n sprite_1.dispose();\r\n }\r\n else {\r\n $log.warn(\"Chart was not disposed\", sprite_1.uid);\r\n }\r\n loopTimer_1 = null;\r\n }\r\n else {\r\n loopTimer_1 = window.setTimeout(loop_1, 1000);\r\n }\r\n }\r\n else {\r\n loopTimer_1 = null;\r\n }\r\n };\r\n loop_1();\r\n sprite_1.addDisposer(new Disposer(function () {\r\n if (loopTimer_1 !== null) {\r\n clearTimeout(loopTimer_1);\r\n }\r\n $array.remove(registry.baseSprites, sprite_1);\r\n registry.baseSpritesByUid[sprite_1.uid] = undefined;\r\n }));\r\n // TODO figure out a better way of doing this\r\n sprite_1.addDisposer(container_1);\r\n // tooltip container\r\n var tooltipContainer_1 = container_1.createChild(Container);\r\n tooltipContainer_1.topParent = container_1;\r\n tooltipContainer_1.width = percent(100);\r\n tooltipContainer_1.height = percent(100);\r\n tooltipContainer_1.isMeasured = false;\r\n container_1.tooltipContainer = tooltipContainer_1;\r\n sprite_1.tooltip = new Tooltip();\r\n sprite_1.tooltip.hide(0);\r\n sprite_1.tooltip.setBounds({ x: 0, y: 0, width: tooltipContainer_1.maxWidth, height: tooltipContainer_1.maxHeight });\r\n tooltipContainer_1.events.on(\"maxsizechanged\", function () {\r\n $type.getValue(sprite_1.tooltip).setBounds({ x: 0, y: 0, width: tooltipContainer_1.maxWidth, height: tooltipContainer_1.maxHeight });\r\n }, undefined, false);\r\n //@todo: maybe we don't need to create one by default but only on request?\r\n var preloader_1 = new Preloader();\r\n preloader_1.events.on(\"inited\", function () {\r\n preloader_1.__disabled = true;\r\n }, undefined, false);\r\n container_1.preloader = preloader_1;\r\n //if (!options.commercialLicense) {\r\n if (sprite_1 instanceof Container && !sprite_1.hasLicense()) {\r\n var logo_1 = tooltipContainer_1.createChild(AmChartsLogo);\r\n tooltipContainer_1.events.on(\"maxsizechanged\", function (ev) {\r\n if ((tooltipContainer_1.maxWidth <= 100) || (tooltipContainer_1.maxHeight <= 50)) {\r\n logo_1.hide();\r\n }\r\n else if (logo_1.isHidden || logo_1.isHiding) {\r\n logo_1.show();\r\n }\r\n }, undefined, false);\r\n sprite_1.logo = logo_1;\r\n logo_1.align = \"left\";\r\n logo_1.valign = \"bottom\";\r\n }\r\n $utils.used(sprite_1.numberFormatter); // need to create one.\r\n // Set this as an autonomouse instance\r\n // Controls like Preloader, Export will use this.\r\n container_1.isStandaloneInstance = true;\r\n if (options.onlyShowOnViewport) {\r\n if (!$dom.isElementInViewport(htmlContainer, options.viewportTarget)) {\r\n sprite_1.__disabled = true;\r\n sprite_1.tooltipContainer.__disabled = true;\r\n var disposers = [\r\n $dom.addEventListener(window, \"DOMContentLoaded\", function () { viewPortHandler(sprite_1); }),\r\n $dom.addEventListener(window, \"load\", function () { viewPortHandler(sprite_1); }),\r\n $dom.addEventListener(window, \"resize\", function () { viewPortHandler(sprite_1); }),\r\n $dom.addEventListener(window, \"scroll\", function () { viewPortHandler(sprite_1); })\r\n ];\r\n if (options.viewportTarget) {\r\n var targets = $type.isArray(options.viewportTarget) ? options.viewportTarget : options.viewportTarget ? [options.viewportTarget] : [];\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n disposers.push($dom.addEventListener(target, \"resize\", function () { viewPortHandler(sprite_1); }));\r\n disposers.push($dom.addEventListener(target, \"scroll\", function () { viewPortHandler(sprite_1); }));\r\n }\r\n }\r\n var disposer = new MultiDisposer(disposers);\r\n sprite_1.addDisposer(disposer);\r\n sprite_1.vpDisposer = disposer;\r\n }\r\n else if (options.queue) {\r\n addToQueue(sprite_1);\r\n }\r\n }\r\n else if (options.queue) {\r\n addToQueue(sprite_1);\r\n }\r\n return sprite_1;\r\n }\r\n else {\r\n system.log(\"html container not found\");\r\n throw new Error(\"html container not found\");\r\n }\r\n}\r\n/**\r\n * Disposes all of the currently active charts.\r\n */\r\nexport function disposeAllCharts() {\r\n while (registry.baseSprites.length !== 0) {\r\n registry.baseSprites.pop().dispose();\r\n }\r\n}\r\nexport function addToQueue(sprite) {\r\n if (registry.queue.indexOf(sprite) == -1) {\r\n sprite.__disabled = true;\r\n sprite.tooltipContainer.__disabled = true;\r\n sprite.events.disableType(\"appeared\");\r\n if (registry.queue.length == 0) {\r\n registry.events.once(\"exitframe\", function () {\r\n queueHandler(sprite);\r\n });\r\n system.requestFrame();\r\n }\r\n sprite.addDisposer(new Disposer(function () {\r\n removeFromQueue(sprite);\r\n }));\r\n registry.queue.push(sprite);\r\n }\r\n}\r\nexport function removeFromQueue(sprite) {\r\n var index = registry.queue.indexOf(sprite);\r\n if (index >= 0) {\r\n registry.queue.splice(registry.queue.indexOf(sprite), 1);\r\n var nextSprite = registry.queue[index];\r\n if (nextSprite) {\r\n queueHandler(nextSprite);\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the chart was not initialized fully due to setting\r\n * of `onlyShowOnViewport`. If it hasn't and is now in the viewport\r\n * the chart will be initialized.\r\n *\r\n * @since 4.9.12\r\n * @param sprite Top-level chart object\r\n */\r\nexport function viewPortHandler(sprite) {\r\n if (sprite.__disabled && $dom.isElementInViewport(sprite.htmlContainer, options.viewportTarget)) {\r\n if (sprite.vpDisposer) {\r\n sprite.vpDisposer.dispose();\r\n }\r\n addToQueue(sprite);\r\n }\r\n}\r\nexport function queueHandler(sprite) {\r\n if (sprite && sprite.tooltipContainer) {\r\n sprite.__disabled = false;\r\n sprite.tooltipContainer.__disabled = false;\r\n sprite.events.enableType(\"appeared\");\r\n sprite.dispatch(\"removedfromqueue\");\r\n if (sprite.showOnInit) {\r\n sprite.events.on(\"appeared\", function () {\r\n removeFromQueue(sprite);\r\n });\r\n }\r\n if (sprite.vpDisposer) {\r\n sprite.vpDisposer.dispose();\r\n }\r\n if (sprite instanceof Container) {\r\n sprite.invalidateLabels();\r\n }\r\n if (sprite.tooltipContainer) {\r\n sprite.tooltipContainer.invalidateLayout();\r\n }\r\n if (sprite instanceof Component) {\r\n sprite.invalidateData();\r\n sprite.reinit();\r\n sprite.events.once(\"datavalidated\", function () {\r\n if (sprite.showOnInit) {\r\n sprite.appear();\r\n }\r\n else {\r\n removeFromQueue(sprite);\r\n }\r\n });\r\n }\r\n else {\r\n sprite.reinit();\r\n sprite.events.once(\"inited\", function () {\r\n removeFromQueue(sprite);\r\n });\r\n if (sprite.showOnInit) {\r\n sprite.appear();\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * A shortcut to creating a chart instance.\r\n *\r\n * The first argument is either a reference to or an id of a DOM element to be\r\n * used as a container for the chart.\r\n *\r\n * The second argument is the type reference of the chart type. (for plain\r\n * JavaScript users this can also be a string indicating chart type)\r\n *\r\n * ```TypeScript\r\n * let chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n * ```\r\n * ```JavaScript\r\n * // Can pass in chart type reference like this:\r\n * var chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // ... or chart class type as a string:\r\n * var chart = am4core.create(\"chartdiv\", \"PieChart\");\r\n * ```\r\n *\r\n * @param htmlElement Reference or id of the target container element\r\n * @param classType Class type of the target chart type\r\n * @return Chart instance\r\n */\r\nexport function create(htmlElement, classType) {\r\n // This is a nasty hack for the benefit of vanilla JS users, who do not\r\n // enjoy benefits of type-check anyway.\r\n // We're allowing passing in a name of the class rather than type reference\r\n // itself.\r\n var classError;\r\n if ($type.isString(classType)) {\r\n if ($type.hasValue(registry.registeredClasses[classType])) {\r\n classType = registry.registeredClasses[classType];\r\n }\r\n else {\r\n classType = registry.registeredClasses[\"Container\"];\r\n classError = new Error(\"Class [\" + classType + \"] is not loaded.\");\r\n }\r\n }\r\n // Create the chart\r\n var chart = createChild(htmlElement, classType);\r\n // Error?\r\n if (classError) {\r\n chart.raiseCriticalError(classError);\r\n }\r\n return chart;\r\n}\r\n/**\r\n * A shortcut to creating a chart from a config object.\r\n *\r\n * Example:\r\n *\r\n * ```TypeScript\r\n * let chart am4core.createFromConfig({ ... }, \"chartdiv\", am4charts.XYChart );\r\n * ```\r\n * ```JavaScript\r\n * var chart am4core.createFromConfig({ ... }, \"chartdiv\", \"XYChart\" );\r\n * ```\r\n *\r\n * If `chartType` parameter is not supplied it must be set in a config object,\r\n * via reference to chart type, e.g.:\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": am4charts.XYChart,\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": am4charts.XYChart,\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * Or via string: (if you are using JavaScript)\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * A `container` can either be a reference to an HTML container to put chart\r\n * in, or it's unique id.\r\n *\r\n * If `container` is not specified, it must be included in the config object:\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * \"container\": \"chartdiv\",\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * \"container\": \"chartdiv\",\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @param config Config object in property/value pairs\r\n * @param htmlElement Container reference or ID\r\n * @param objectType Chart type\r\n * @return A newly created chart instance\r\n * @todo Throw exception if type is not correct\r\n */\r\nexport function createFromConfig(config, htmlElement, classType) {\r\n // Extract chart type from config if necessary\r\n if (!$type.hasValue(classType)) {\r\n classType = config.type;\r\n delete config.type;\r\n }\r\n // Extract element from config if necessary\r\n if (!$type.hasValue(htmlElement)) {\r\n htmlElement = config.container;\r\n delete config.container;\r\n }\r\n // Check if we need to extract actual type reference\r\n var finalType;\r\n var classError;\r\n if ($type.isString(classType) && $type.hasValue(registry.registeredClasses[classType])) {\r\n finalType = registry.registeredClasses[classType];\r\n }\r\n else if (typeof classType !== \"function\") {\r\n finalType = Container;\r\n classError = new Error(\"Class [\" + classType + \"] is not loaded.\");\r\n }\r\n else {\r\n finalType = classType;\r\n }\r\n // Create the chart\r\n var chart = createChild(htmlElement, finalType);\r\n // Set config\r\n if (classError) {\r\n chart.raiseCriticalError(classError);\r\n }\r\n else {\r\n chart.config = config;\r\n }\r\n return chart;\r\n}\r\n/**\r\n * Useful in creating real queues form mult-chart creation.\r\n *\r\n * Accepts a reference to a function which crates and returns actual chart\r\n * object.\r\n *\r\n * It returns a `Promise` which you can use to catch chart instance once it's\r\n * created.\r\n *\r\n * ```TypeScript\r\n * am4core.createDeferred(function(div) {\r\n * // Create first chart\r\n * let chart = am4core.create(div, am4charts.XYChart);\r\n * // ...\r\n * return chart;\r\n * }, \"chartdiv1\").then(chart) {\r\n * // `chart` variable holds an instance of the chart\r\n * console.log(\"Chart ready\", chart);\r\n * }\r\n *\r\n * am4core.createDeferred(function(div) {\r\n * // Create second chart\r\n * let chart = am4core.create(div, am4charts.PieChart);\r\n * // ...\r\n * return chart;\r\n * }, \"chartdiv2\").then(chart) {\r\n * // `chart` variable holds an instance of the chart\r\n * console.log(\"Chart ready\", chart);\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * am4core.createDeferred(function(div) {\r\n * // Create first chart\r\n * var chart = am4core.create(div, am4charts.XYChart);\r\n * // ...\r\n * return chart;\r\n * }, \"chartdiv1\").then(chart) {\r\n * // `chart` variable holds an instance of the chart\r\n * console.log(\"Chart ready\", chart);\r\n * }\r\n *\r\n * am4core.createDeferred(function(div) {\r\n * // Create second chart\r\n * var chart = am4core.create(div, am4charts.PieChart);\r\n * // ...\r\n * return chart;\r\n * }, \"chartdiv2\").then(chart) {\r\n * // `chart` variable holds an instance of the chart\r\n * console.log(\"Chart ready\", chart);\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/performance/#Deferred_daisy_chained_instantiation} for more information\r\n * @since 4.10.0\r\n * @param callback Callback function that creates chart\r\n * @param scope Scope to call callback in\r\n * @param ...rest Parameters to pass into callback\r\n * @return Promise with chart instance\r\n */\r\nexport function createDeferred(callback, scope) {\r\n var rest = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n rest[_i - 2] = arguments[_i];\r\n }\r\n return new Promise(function (resolve, reject) {\r\n registry.deferred.push({\r\n scope: scope,\r\n callback: callback,\r\n args: rest,\r\n resolve: resolve\r\n });\r\n if (registry.deferred.length == 1) {\r\n processNextDeferred();\r\n }\r\n });\r\n}\r\nfunction processNextDeferred() {\r\n var _a;\r\n var next = registry.deferred[0];\r\n if (next) {\r\n var sprite_2 = (_a = next.callback).call.apply(_a, __spread([next.scope], next.args));\r\n sprite_2.events.on(\"ready\", function () {\r\n next.resolve(sprite_2);\r\n registry.deferred.shift();\r\n if (options.deferredDelay) {\r\n setTimeout(processNextDeferred, options.deferredDelay);\r\n }\r\n else {\r\n processNextDeferred();\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Applies a theme to System, and subsequently all chart instances created\r\n * from that point forward.\r\n *\r\n * amCharts supports multiple themes. Calling `useTheme` multiple times will\r\n * make the System apply multiple themes, rather than overwrite previously\r\n * set one.\r\n *\r\n * This enables combining features from multiple themes on the same chart.\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * am4core.useTheme(am4themes.material);\r\n * am4core.useTheme(am4themes.animated);\r\n * ```\r\n * ```JavaScript\r\n * am4core.useTheme(am4themes.material);\r\n * am4core.useTheme(am4themes.animated);\r\n * ```\r\n *\r\n * The above will apply both the Material color and animation options to all\r\n * charts created.\r\n *\r\n * @param value A reference to a theme\r\n */\r\nexport function useTheme(value) {\r\n if (registry.themes.indexOf(value) === -1) {\r\n registry.themes.push(value);\r\n }\r\n}\r\n/**\r\n * Removes a theme from \"active themes\" list, so it won't get applied to any\r\n * charts created subsequently.\r\n *\r\n * @param value A reference to a theme\r\n */\r\nexport function unuseTheme(value) {\r\n $array.remove(registry.themes, value);\r\n}\r\n/**\r\n * Removes all \"active\" themes. Any charts created subsequently will not have\r\n * any theme applied to them.\r\n */\r\nexport function unuseAllThemes() {\r\n registry.themes = [];\r\n}\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am4core.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am4core.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @since 4.5.16\r\n * @param license License key\r\n */\r\nexport function addLicense(license) {\r\n options.licenses.push(license);\r\n}\r\n//# sourceMappingURL=Instance.js.map","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PlaceholderEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst EmbedStyle_1 = require(\"../embeds/EmbedStyle\");\nconst BorderSpinner_1 = require(\"./parts/BorderSpinner\");\nconst EngagementIconsPlaceholder_1 = require(\"./parts/EngagementIconsPlaceholder\");\nconst ProfilePlaceholder_1 = require(\"./parts/ProfilePlaceholder\");\n// See: https://pragmaticwebsecurity.com/articles/spasecurity/react-xss-part1\nconst isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nconst PlaceholderEmbed = (_a) => {\n var _b;\n var { url, linkText = 'View post', imageUrl, spinner = react_1.default.createElement(BorderSpinner_1.BorderSpinner, null), allowJavaScriptUrls = true, spinnerDisabled } = _a, divProps = __rest(_a, [\"url\", \"linkText\", \"imageUrl\", \"spinner\", \"allowJavaScriptUrls\", \"spinnerDisabled\"]);\n if (isJavaScriptProtocol.test(url) && !allowJavaScriptUrls) {\n console.warn(`PlaceholderEmbed has blocked a javascript: URL as a security precaution`);\n return null;\n }\n return (react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)(divProps.className), style: Object.assign({ overflow: 'hidden', border: '1px solid #dee2e6', backgroundColor: '#ffffff', borderRadius: 0, boxSizing: 'border-box', position: 'relative' }, divProps.style) }),\n react_1.default.createElement(EmbedStyle_1.EmbedStyle, null),\n react_1.default.createElement(\"a\", { href: url, style: { textDecoration: 'none' }, target: \"_blank\", rel: \"noopener noreferrer\" },\n !imageUrl && (react_1.default.createElement(\"div\", { style: {\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'start',\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 16,\n paddingBottom: 16,\n zIndex: 2,\n backgroundColor: '#ffffff',\n } },\n react_1.default.createElement(ProfilePlaceholder_1.ProfilePlaceholder, null))),\n react_1.default.createElement(\"div\", { style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: imageUrl ? 'start' : 'center',\n height: '100%',\n width: '100%',\n } },\n !imageUrl && (react_1.default.createElement(\"div\", { style: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n rowGap: 16,\n zIndex: 3,\n padding: 8,\n backgroundColor: '#ffffff',\n } },\n !spinnerDisabled && spinner,\n !!linkText && (react_1.default.createElement(\"div\", { style: {\n color: '#000000',\n fontFamily: 'Arial,sans-serif',\n fontSize: '14px',\n fontStyle: 'normal',\n fontWeight: 550,\n lineHeight: '18px',\n textAlign: 'center',\n } }, linkText)))),\n imageUrl &&\n (typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' ? (react_1.default.createElement(\"div\", { style: {\n width: '100%',\n height: '100%',\n background: `url(\"${imageUrl}\")`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n marginBottom: '40',\n } })) : (react_1.default.createElement(\"div\", { style: { width: '100%', marginBottom: 40 } },\n react_1.default.createElement(\"img\", { src: imageUrl, style: { width: '100%' } }))))),\n react_1.default.createElement(\"div\", { style: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n height: 40,\n width: '100%',\n backgroundColor: '#ffffff',\n zIndex: 1,\n } },\n !imageUrl && (react_1.default.createElement(EngagementIconsPlaceholder_1.EngagementIconsPlaceholder, { style: {\n marginLeft: 16,\n } })),\n imageUrl && (react_1.default.createElement(\"div\", { style: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'space-between',\n columnGap: 16,\n } },\n react_1.default.createElement(\"div\", { style: {\n color: '#0095f6',\n fontWeight: 600,\n fontFamily: 'Arial,sans-serif',\n fontSize: '14px',\n fontStyle: 'normal',\n whiteSpace: 'nowrap',\n marginLeft: 16,\n } }, linkText),\n !spinnerDisabled && react_1.default.createElement(\"div\", { style: { marginRight: 16 } }, spinner)))))));\n};\nexports.PlaceholderEmbed = PlaceholderEmbed;\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmbedStyle = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst EmbedStyle = (_a) => {\n var styleProps = __rest(_a, []);\n return (react_1.default.createElement(\"style\", Object.assign({}, styleProps, { className: (0, classnames_1.default)(styleProps.className), style: Object.assign({}, styleProps.style) }), `\n .rsme-embed .rsme-d-none {\n display: none;\n }\n \n .rsme-embed .twitter-tweet {\n margin: 0 !important;\n }\n \n .rsme-embed blockquote {\n margin: 0 !important;\n padding: 0 !important;\n }\n\n .rsme-embed.rsme-facebook-embed .fb-post iframe {\n width: 100% !important;\n }\n\n .rsme-embed.rsme-facebook-embed .fb-post span {\n width: 100% !important;\n }\n `));\n};\nexports.EmbedStyle = EmbedStyle;\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","/**\r\n * Functionality for drawing rectangles.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw a rectangle.\r\n *\r\n * @see {@link IRectangleEvents} for a list of available events\r\n * @see {@link IRectangleAdapters} for a list of available Adapters\r\n */\r\nvar Rectangle = /** @class */ (function (_super) {\r\n __extends(Rectangle, _super);\r\n /**\r\n * Constructor\r\n * * Creates a `<rect>` element\r\n * * Creates default state\r\n */\r\n function Rectangle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Rectangle\";\r\n _this.element = _this.paper.add(\"rect\");\r\n //this.pixelPerfect = false;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Rectangle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var precision = this._positionPrecision;\r\n if (this.pixelPerfect) {\r\n precision = 0;\r\n }\r\n var w = $math.round(this.innerWidth, precision);\r\n var h = $math.round(this.innerHeight, precision);\r\n this.element.attr({\r\n \"width\": w,\r\n \"height\": h\r\n });\r\n };\r\n /**\r\n * Measures the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Rectangle.prototype.measureElement = function () {\r\n };\r\n Object.defineProperty(Rectangle.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n if (this.isMeasured) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n width: this.innerWidth,\r\n height: this.innerHeight\r\n };\r\n }\r\n else {\r\n return { x: 0, y: 0, width: 0, height: 0 };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Rectangle;\r\n}(Sprite));\r\nexport { Rectangle };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Rectangle\"] = Rectangle;\r\n//# sourceMappingURL=Rectangle.js.map","/**\r\n * Provides functionality used to build scrollbars.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { ResizeButton } from \"../elements/ResizeButton\";\r\nimport { Button } from \"../elements/Button\";\r\nimport { getInteraction } from \"../interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"../interaction/Mouse\";\r\nimport { RoundedRectangle } from \"../elements/RoundedRectangle\";\r\nimport { registry } from \"../Registry\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { percent, Percent } from \"../utils/Percent\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Scrollbar is a generic control allowing to select a range of values or pan\r\n * the selection.\r\n *\r\n * @see {@link IScrollbarEvents} for a list of available events\r\n * @see {@link IScrollbarAdapters} for a list of available Adapters\r\n */\r\nvar Scrollbar = /** @class */ (function (_super) {\r\n __extends(Scrollbar, _super);\r\n /**\r\n * Construtor\r\n */\r\n function Scrollbar() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Previously selected lower (start) value.\r\n */\r\n _this._previousStart = 0;\r\n /**\r\n * Previously selected upper (end) value.\r\n */\r\n _this._previousEnd = 1;\r\n /**\r\n * A value of previously selected lower value, used for doubleclick function.\r\n */\r\n _this._prevStart = 0;\r\n /**\r\n * A value of previously selected upper value, used for doubleclick function.\r\n */\r\n _this._prevEnd = 1;\r\n /**\r\n * Indicates if the Scrollbar is currently \"busy\" (animating and or\r\n * performing zoom by user interaction).\r\n */\r\n _this._isBusy = false;\r\n /**\r\n * [_skipRangeEvents description]\r\n *\r\n * @todo Description\r\n */\r\n _this._skipRangeEvents = false;\r\n /**\r\n * Update the selection when dragging the grips.\r\n *\r\n * If set to `false` selection will be updated only when the grip is\r\n * released.\r\n *\r\n * @default true\r\n */\r\n _this.updateWhileMoving = true;\r\n _this.className = \"Scrollbar\";\r\n _this.minHeight = 12;\r\n _this.minWidth = 12;\r\n _this.animationDuration = 0;\r\n _this.animationEasing = $ease.cubicOut;\r\n _this.margin(10, 10, 10, 10);\r\n var interfaceColors = new InterfaceColorSet();\r\n // background is also container as it might contain graphs, grid, etc\r\n var background = _this.background;\r\n background.cornerRadius(10, 10, 10, 10);\r\n background.fill = interfaceColors.getFor(\"fill\");\r\n background.fillOpacity = 0.5;\r\n // Make system tooltips appear by default\r\n _this.showSystemTooltip = true;\r\n _this.startGrip = new ResizeButton();\r\n _this.endGrip = new ResizeButton();\r\n // Default orientation...\r\n // ... is set in `applyInternalDefaults()` because it accesses `language`\r\n // and should only be started to access when parent is set\r\n // Set events\r\n _this.events.on(\"transformed\", function () {\r\n _this.updateThumb();\r\n }, _this, false);\r\n // Initial positions\r\n _this.start = 0;\r\n _this.end = 1;\r\n // Set roles\r\n _this.role = \"scrollbar\";\r\n _this.thumb.role = \"slider\";\r\n _this.thumb.readerLive = \"polite\";\r\n _this.startGrip.role = \"slider\";\r\n _this.endGrip.role = \"slider\";\r\n // otherwise range changed won't be registered\r\n _this.events.once(\"inited\", function () {\r\n _this._previousStart = undefined;\r\n _this.dispatchRangeChange();\r\n }, undefined, false);\r\n _this.hideGrips = false;\r\n _this.orientation = \"horizontal\";\r\n // Min/max values for accessibility\r\n _this.setSVGAttribute({ \"aria-valuemin\": \"0\" });\r\n _this.setSVGAttribute({ \"aria-valuemax\": \"100\" });\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Scrollbar.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Set screen reader tetxt accordingly\r\n if (this.orientation === \"horizontal\") {\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Use TAB to select grip buttons or left and right arrows to change selection\");\r\n }\r\n if (!$type.hasValue(this.thumb.readerDescription)) {\r\n this.thumb.readerDescription = this.language.translate(\"Use left and right arrows to move selection\");\r\n }\r\n if (!$type.hasValue(this.startGrip.readerDescription)) {\r\n this.startGrip.readerDescription = this.language.translate(\"Use left and right arrows to move left selection\");\r\n }\r\n if (!$type.hasValue(this.endGrip.readerDescription)) {\r\n this.endGrip.readerDescription = this.language.translate(\"Use left and right arrows to move right selection\");\r\n }\r\n this.readerOrientation = \"horizontal\";\r\n }\r\n else {\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Use TAB select grip buttons or up and down arrows to change selection\");\r\n }\r\n if (!$type.hasValue(this.thumb.readerDescription)) {\r\n this.thumb.readerDescription = this.language.translate(\"Use up and down arrows to move selection\");\r\n }\r\n if (!$type.hasValue(this.startGrip.readerDescription)) {\r\n this.startGrip.readerDescription = this.language.translate(\"Use up and down arrows to move upper selection\");\r\n }\r\n if (!$type.hasValue(this.endGrip.readerDescription)) {\r\n this.endGrip.readerDescription = this.language.translate(\"Use up and down arrows to move lower selection\");\r\n }\r\n this.readerOrientation = \"vertical\";\r\n }\r\n this.readerControls = this.baseSprite.uidAttr();\r\n };\r\n /**\r\n * Validates the layout of the scrollbar's elements.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.validateLayout = function () {\r\n this.updateSize();\r\n _super.prototype.validateLayout.call(this);\r\n // when size changes, need to update extremes\r\n this.updateExtremes();\r\n };\r\n /**\r\n * Update background for the scrollbar.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.processBackground = function () {\r\n _super.prototype.processBackground.call(this);\r\n var background = this.background;\r\n background.clickable = true;\r\n background.events.on(\"hit\", this.handleBgHit, this, undefined);\r\n };\r\n /**\r\n * Zooms to the particular place when clicked/tapped on the scrollbar\r\n * background.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n Scrollbar.prototype.handleBgHit = function (event) {\r\n this.makeBusy();\r\n var point = event.spritePoint;\r\n point = $utils.spritePointToSprite(point, this.background, this);\r\n var thumb = this.thumb;\r\n if (this.orientation == \"horizontal\") {\r\n var thumbX = point.x - thumb.pixelWidth / 2;\r\n thumbX = $math.fitToRange(thumbX, 0, this.innerWidth - thumb.pixelWidth);\r\n this._thumbAnimation = thumb.animate({ property: \"x\", to: thumbX }, this.animationDuration, this.animationEasing);\r\n }\r\n else {\r\n var thumbY = point.y - thumb.pixelHeight / 2;\r\n thumbY = $math.fitToRange(thumbY, 0, this.innerHeight - thumb.pixelHeight);\r\n this._thumbAnimation = thumb.animate({ property: \"y\", to: thumbY }, this.animationDuration, this.animationEasing);\r\n }\r\n if (this.animationDuration > 0) {\r\n this._thumbAnimation.events.on(\"animationended\", this.makeUnbusy, this, false);\r\n }\r\n else {\r\n this._thumb.validate();\r\n this.makeUnbusy();\r\n }\r\n };\r\n /**\r\n * Set scrollbar as busy. (currently zooming)\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.makeBusy = function () {\r\n this._isBusy = true;\r\n this._skipRangeEvents = false;\r\n if (this._unbusyTimeout) {\r\n this.removeDispose(this._unbusyTimeout);\r\n }\r\n this._unbusyTimeout = undefined;\r\n this.stopAnimations();\r\n };\r\n /**\r\n * Stops all animations, currently playing for the scrollbar.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.stopAnimations = function () {\r\n if (this._thumbAnimation) {\r\n this._thumbAnimation.stop(true);\r\n }\r\n if (this._zoomAnimation) {\r\n this._zoomAnimation.stop(true);\r\n }\r\n };\r\n /**\r\n * Cancels \"busy\" status of the Scrollbar.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.makeUnbusy = function () {\r\n /**\r\n * We cannot make Scrollbar not busy right after release, because then axes\r\n * will take over controll and Scrollbar will start to animate.\r\n * Theorethically, it's not right to set timeout by `animationDuration`,\r\n * however we can not know all the durations of elements we scroll, so we\r\n * assume that animation duration will be the same as\r\n * `interpolationDuration` or `rangeChange` duration.\r\n */\r\n this._unbusyTimeout = this.setTimeout(this.makeUnbusyReal.bind(this), this.animationDuration * 1.1);\r\n };\r\n /**\r\n * [makeUnbusyReal description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.makeUnbusyReal = function () {\r\n this._usingGrip = undefined;\r\n this._isBusy = false;\r\n if (!this.updateWhileMoving) {\r\n this.dispatchRangeChange();\r\n }\r\n };\r\n /**\r\n * Disptatches rangechanged event if it really changed\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.dispatchRangeChange = function () {\r\n if (this._previousEnd != this.end || this._previousStart != this.start) {\r\n this._previousStart = this.start;\r\n this._previousEnd = this.end;\r\n this.dispatch(\"rangechanged\");\r\n }\r\n };\r\n /**\r\n * Updates the \"thumb\" element. A draggable element between the grips.\r\n * @ignore\r\n */\r\n Scrollbar.prototype.updateThumb = function (dispatchEvents) {\r\n if (dispatchEvents === void 0) { dispatchEvents = true; }\r\n if (!this.parent) {\r\n return;\r\n }\r\n var thumb = this.thumb;\r\n var start = this.start;\r\n var end = this.end;\r\n var startGrip = this.startGrip;\r\n var endGrip = this.endGrip;\r\n var directionFlipped = this.adapter.apply(\"positionValueDirection\", {\r\n flipped: false\r\n }).flipped;\r\n var fromName = directionFlipped ? \"To %1\" : \"From %1\";\r\n var toName = directionFlipped ? \"From %1\" : \"To %1\";\r\n var fromValue;\r\n var toValue;\r\n if (this.orientation == \"horizontal\") {\r\n var innerWidth_1 = this.innerWidth;\r\n thumb.width = innerWidth_1 * (end - start);\r\n thumb.maxX = innerWidth_1 - thumb.pixelWidth;\r\n thumb.x = start * innerWidth_1;\r\n startGrip.moveTo({ x: thumb.pixelX, y: 0 }, undefined, undefined, true); // overrides dragging\r\n endGrip.moveTo({ x: thumb.pixelX + thumb.pixelWidth, y: 0 }, undefined, undefined, true);\r\n fromValue = this.adapter.apply(\"positionValue\", {\r\n value: Math.round(start * 100) + \"%\",\r\n position: start\r\n }).value;\r\n toValue = this.adapter.apply(\"positionValue\", {\r\n value: Math.round(end * 100) + \"%\",\r\n position: end\r\n }).value;\r\n startGrip.readerTitle = this.language.translate(fromName, undefined, fromValue);\r\n startGrip.readerValueNow = \"\" + Math.round(start * 100);\r\n startGrip.readerValueText = startGrip.readerTitle;\r\n endGrip.readerTitle = this.language.translate(toName, undefined, toValue);\r\n endGrip.readerValueNow = \"\" + Math.round(end * 100);\r\n endGrip.readerValueText = endGrip.readerTitle;\r\n }\r\n else {\r\n var innerHeight_1 = this.innerHeight;\r\n thumb.height = innerHeight_1 * (end - start);\r\n thumb.maxY = innerHeight_1 - thumb.pixelHeight;\r\n thumb.y = (1 - end) * innerHeight_1;\r\n startGrip.moveTo({ x: 0, y: thumb.pixelY + thumb.pixelHeight }, undefined, undefined, true);\r\n endGrip.moveTo({ x: 0, y: thumb.pixelY }, undefined, undefined, true);\r\n fromValue = this.adapter.apply(\"positionValue\", {\r\n value: Math.round((1 - start) * 100) + \"%\",\r\n position: (1 - start)\r\n }).value;\r\n toValue = this.adapter.apply(\"positionValue\", {\r\n value: Math.round((1 - end) * 100) + \"%\",\r\n position: (1 - end)\r\n }).value;\r\n startGrip.readerTitle = this.language.translate(toName, undefined, fromValue);\r\n startGrip.readerValueNow = \"\" + Math.round(start * 100);\r\n startGrip.readerValueText = startGrip.readerTitle;\r\n endGrip.readerTitle = this.language.translate(fromName, undefined, toValue);\r\n endGrip.readerValueNow = \"\" + Math.round(end * 100);\r\n endGrip.readerValueText = endGrip.readerTitle;\r\n }\r\n // Add accessibility\r\n thumb.readerTitle = this.language.translate(\"From %1 to %2\", undefined, fromValue, toValue);\r\n thumb.readerValueNow = \"\" + Math.round(start * 100);\r\n thumb.readerValueText = thumb.readerTitle;\r\n this.readerValueNow = \"\" + Math.round(start * 100);\r\n this.readerValueText = thumb.readerTitle;\r\n if (!this._skipRangeEvents && this.updateWhileMoving && dispatchEvents) {\r\n this.dispatchRangeChange();\r\n }\r\n };\r\n /**\r\n * Updates extremes of the scrollbar.\r\n */\r\n Scrollbar.prototype.updateExtremes = function () {\r\n var orientation = this.orientation;\r\n var minX = 0;\r\n var minY = 0;\r\n var maxX = 0;\r\n var maxY = 0;\r\n if (orientation == \"horizontal\") {\r\n maxX = this.innerWidth;\r\n minY = maxY = this.innerHeight / 2;\r\n }\r\n else {\r\n maxY = this.innerHeight;\r\n minX = maxX = this.innerWidth / 2;\r\n }\r\n var startGrip = this.startGrip;\r\n startGrip.minX = minX;\r\n startGrip.maxX = maxX;\r\n startGrip.minY = minY;\r\n startGrip.maxY = maxY;\r\n var endGrip = this.endGrip;\r\n endGrip.minX = minX;\r\n endGrip.maxX = maxX;\r\n endGrip.minY = minY;\r\n endGrip.maxY = maxY;\r\n var thumb = this.thumb;\r\n thumb.minX = minX;\r\n thumb.maxX = maxX;\r\n thumb.minY = minY;\r\n thumb.maxY = maxY;\r\n };\r\n /**\r\n * Updates size of the scrollbar.\r\n */\r\n Scrollbar.prototype.updateSize = function () {\r\n var orientation = this.orientation;\r\n var startGrip = this.startGrip;\r\n if (startGrip) {\r\n startGrip.orientation = orientation;\r\n }\r\n if (this.endGrip) {\r\n this.endGrip.orientation = orientation;\r\n }\r\n var thumb = this.thumb;\r\n if (thumb) {\r\n if (orientation == \"horizontal\") {\r\n if (!$type.isNumber(this._pixelWidth)) {\r\n if (!(this.width instanceof Percent)) {\r\n this.width = percent(100);\r\n }\r\n }\r\n // this teorethically might be wrong, if user indeed sets height of a horizontal scrollbar in percent\r\n // however without this height might be equal to 100% if previous orientation was set to horizontal\r\n // so this is ok solution, in case user really wants to have scrollbar height set in percent,\r\n // he should do this after orientation.\r\n if ($type.hasValue(this.percentHeight)) {\r\n this.height = this.minHeight;\r\n }\r\n thumb.height = this.innerHeight;\r\n thumb.verticalCenter = \"middle\";\r\n thumb.horizontalCenter = \"left\";\r\n }\r\n else {\r\n if (!$type.isNumber(this._pixelHeight)) {\r\n if (!(this.height instanceof Percent)) {\r\n this.height = percent(100);\r\n }\r\n }\r\n // same as above with percentHeight\r\n if ($type.hasValue(this.percentWidth)) {\r\n this.width = this.minWidth;\r\n }\r\n thumb.width = this.innerWidth;\r\n thumb.verticalCenter = \"top\";\r\n thumb.horizontalCenter = \"middle\";\r\n }\r\n }\r\n };\r\n Object.defineProperty(Scrollbar.prototype, \"isBusy\", {\r\n /**\r\n * Indicates if the Scrollbar is currently \"busy\" (animating and or\r\n * performing zoom by user interaction).\r\n * @return boolean\r\n */\r\n get: function () {\r\n return this._isBusy;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"start\", {\r\n /**\r\n * @return Position (0-1)\r\n */\r\n get: function () {\r\n return Math.min(this.getPosition(this._start), this.getPosition(this._end));\r\n },\r\n /**\r\n * ==========================================================================\r\n * POSITIONS\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Relative position (0-1) of the start grip.\r\n *\r\n * @param position Position (0-1)\r\n */\r\n set: function (position) {\r\n if (!this._isBusy) {\r\n this.__start = position;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"__start\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._start;\r\n },\r\n /**\r\n * [__start description]\r\n *\r\n * @todo Description\r\n * @param position [description]\r\n */\r\n set: function (position) {\r\n this._start = this.getPosition(position);\r\n this.updateThumb();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"end\", {\r\n /**\r\n * @return Position (0-1)\r\n */\r\n get: function () {\r\n return Math.max(this.getPosition(this._start), this.getPosition(this._end));\r\n },\r\n /**\r\n * Relative position (0-1) of the end grip.\r\n *\r\n * @param position Position (0-1)\r\n */\r\n set: function (position) {\r\n if (!this._isBusy) {\r\n this.__end = position;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"__end\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._end;\r\n },\r\n /**\r\n * [__end description]\r\n *\r\n * @todo Description\r\n * @param position [description]\r\n */\r\n set: function (position) {\r\n this._end = this.getPosition(position);\r\n this.updateThumb();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"range\", {\r\n /**\r\n * Current selection range.\r\n *\r\n * @readonly\r\n * @return Range\r\n */\r\n get: function () {\r\n return { start: this.start, end: this.end, priority: this._usingGrip };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Disables range change events.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.skipRangeEvents = function () {\r\n if (!this._isBusy) {\r\n this._skipRangeEvents = true;\r\n }\r\n };\r\n /**\r\n * [fixRange description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n * @param range Range\r\n */\r\n Scrollbar.prototype.fixRange = function (range) {\r\n if (range.start != $math.round(this._start, 2) || range.end != $math.round(this._end, 2)) {\r\n this._start = range.start;\r\n this._end = range.end;\r\n this._skipRangeEvents = true;\r\n this.updateThumb();\r\n this._skipRangeEvents = false;\r\n this.thumb.validate();\r\n this.thumb.background.validate();\r\n }\r\n };\r\n /**\r\n * [getPosition description]\r\n *\r\n * @todo Description\r\n * @param position [description]\r\n * @return [description]\r\n */\r\n Scrollbar.prototype.getPosition = function (position) {\r\n return $math.fitToRange($math.round(position, 4), 0, 1);\r\n };\r\n Object.defineProperty(Scrollbar.prototype, \"orientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * ==========================================================================\r\n * MISC\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Orientation of the scrollbar.\r\n *\r\n * Available options: \"horizontal\" (default) and \"vertical\".\r\n *\r\n * @default \"horizontal\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"orientation\", value)) {\r\n // Set mouse cursors and screen reader tetxt accordingly\r\n if (value === \"horizontal\") {\r\n // Mouse styles\r\n this.startGrip.cursorOverStyle = MouseCursorStyle.horizontalResize;\r\n this.endGrip.cursorOverStyle = MouseCursorStyle.horizontalResize;\r\n // Reader text\r\n /*this.readerTitle = this.language.translate(\"Use TAB to select grip buttons or left and right arrows to change selection\");\r\n this.thumb.readerDescription = this.language.translate(\"Use left and right arrows to move selection\");\r\n this.startGrip.readerDescription = this.language.translate(\"Use left and right arrows to move left selection\");\r\n this.endGrip.readerDescription = this.language.translate(\"Use left and right arrows to move right selection\");*/\r\n }\r\n else {\r\n // Mouse styles\r\n this.startGrip.cursorOverStyle = MouseCursorStyle.verticalResize;\r\n this.endGrip.cursorOverStyle = MouseCursorStyle.verticalResize;\r\n // Reader text\r\n /*this.readerTitle = this.language.translate(\"Use TAB select grip buttons or up and down arrows to change selection\");\r\n this.thumb.readerDescription = this.language.translate(\"Use up and down arrows to move selection\");\r\n this.startGrip.readerDescription = this.language.translate(\"Use up and down arrows to move upper selection\");\r\n this.endGrip.readerDescription = this.language.translate(\"Use up and down arrows to move lower selection\");*/\r\n }\r\n this.updateByOrientation();\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Scrollbar.prototype.updateByOrientation = function () {\r\n };\r\n Object.defineProperty(Scrollbar.prototype, \"startGrip\", {\r\n /**\r\n * @return Grip element\r\n */\r\n get: function () {\r\n return this._startGrip;\r\n },\r\n /**\r\n * ==========================================================================\r\n * GRIPS\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Start grip element. (button)\r\n *\r\n * @param button Grip element\r\n */\r\n set: function (button) {\r\n if (this._startGrip) {\r\n this.removeDispose(this._startGrip);\r\n }\r\n this._startGrip = button;\r\n this.processGrip(button);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"endGrip\", {\r\n /**\r\n * @return Grip element\r\n */\r\n get: function () {\r\n return this._endGrip;\r\n },\r\n /**\r\n * End grip element. (button)\r\n *\r\n * @param button Grip element\r\n */\r\n set: function (button) {\r\n if (this._endGrip) {\r\n this.removeDispose(this._endGrip);\r\n }\r\n this._endGrip = button;\r\n this.processGrip(button);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Decorates the grip button with properties and events.\r\n *\r\n * @ignore Exclude from docs\r\n * @param button Grip button\r\n */\r\n Scrollbar.prototype.processGrip = function (button) {\r\n button.parent = this;\r\n button.isMeasured = false;\r\n button.focusable = true;\r\n button.shouldClone = false;\r\n // Set button defaults\r\n //button.showSystemTooltip = true; // setting this here is not right because we break inheritance\r\n button.zIndex = 100;\r\n button.events.on(\"drag\", this.handleGripDrag, this, false);\r\n button.events.on(\"dragstop\", this.makeUnbusy, this, false);\r\n button.events.on(\"down\", this.makeBusy, this, false);\r\n button.events.on(\"up\", this.makeUnbusy, this, false);\r\n this._disposers.push(button);\r\n };\r\n /**\r\n * Updates positions of related elements after grip element is dragged.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n Scrollbar.prototype.handleGripDrag = function (event) {\r\n this.makeBusy();\r\n if (event.target === this._startGrip) {\r\n this._usingGrip = \"start\";\r\n }\r\n else {\r\n this._usingGrip = \"end\";\r\n }\r\n if (this.orientation == \"horizontal\") {\r\n this._start = this.startGrip.pixelX / this.innerWidth;\r\n this._end = this.endGrip.pixelX / this.innerWidth;\r\n }\r\n else {\r\n this._start = 1 - this.startGrip.pixelY / this.innerHeight;\r\n this._end = 1 - this.endGrip.pixelY / this.innerHeight;\r\n }\r\n this.updateThumb();\r\n };\r\n Object.defineProperty(Scrollbar.prototype, \"thumb\", {\r\n /**\r\n * @return Thumb element\r\n */\r\n get: function () {\r\n if (!this._thumb) {\r\n // Create scrollbar controls (setters will handle adding disposers)\r\n var thumb = new Button();\r\n thumb.background.cornerRadius(10, 10, 10, 10);\r\n thumb.padding(0, 0, 0, 0);\r\n this.thumb = thumb;\r\n }\r\n return this._thumb;\r\n },\r\n /**\r\n * A \"thumb\" element.\r\n *\r\n * It's a draggable square space between the grips, that can be used to\r\n * pan the selection.\r\n *\r\n * @param thumb Thumb element\r\n */\r\n set: function (thumb) {\r\n var _this = this;\r\n if (thumb) {\r\n if (this._thumb) {\r\n this.removeDispose(this._thumb);\r\n }\r\n this._thumb = thumb;\r\n thumb.parent = this;\r\n thumb.isMeasured = false;\r\n thumb.inert = true;\r\n thumb.draggable = true;\r\n thumb.clickable = true;\r\n thumb.hoverable = true;\r\n thumb.focusable = true;\r\n thumb.shouldClone = false;\r\n thumb.zIndex = 0;\r\n // TODO remove closures ?\r\n // Add events\r\n // Add cursor styles to thumb\r\n thumb.cursorOverStyle = MouseCursorStyle.grab;\r\n thumb.cursorDownStyle = MouseCursorStyle.grabbing;\r\n thumb.events.on(\"dragstart\", this.makeBusy, this, false);\r\n thumb.events.on(\"dragstop\", this.makeUnbusy, this, false);\r\n thumb.events.on(\"positionchanged\", this.handleThumbPosition, this, false);\r\n thumb.events.on(\"sizechanged\", this.handleThumbPosition, this, false);\r\n thumb.events.on(\"doublehit\", this.handleDoubleClick, this, false);\r\n // Add event for space and ENTER to toggle full zoom out and back\r\n // (same as doubleclick)\r\n this._disposers.push(getInteraction().body.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, [\"space\", \"enter\"]) && _this.thumb.isFocused) {\r\n ev.event.preventDefault();\r\n _this.handleDoubleClick();\r\n }\r\n }));\r\n this._disposers.push(this._thumb);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Zooms-in and out the selection on double-click of the thumb.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.handleDoubleClick = function () {\r\n this.makeBusy();\r\n var newStart = 0;\r\n var newEnd = 1;\r\n if (this.start != 0 || this.end != 1) {\r\n this._prevStart = this.start;\r\n this._prevEnd = this.end;\r\n }\r\n else {\r\n newStart = this._prevStart;\r\n newEnd = this._prevEnd;\r\n }\r\n var zoomAnimation = this.animate([{ property: \"__start\", to: newStart }, { property: \"__end\", to: newEnd }], this.animationDuration, this.animationEasing);\r\n if (zoomAnimation && !zoomAnimation.isFinished()) {\r\n zoomAnimation.events.on(\"animationended\", this.makeUnbusy, this, false);\r\n this._zoomAnimation = zoomAnimation;\r\n }\r\n else {\r\n this.makeUnbusy();\r\n }\r\n };\r\n /**\r\n * Updates positions of other elements when thumb is moved.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Scrollbar.prototype.handleThumbPosition = function () {\r\n var thumb = this.thumb;\r\n if (this.orientation == \"horizontal\") {\r\n var innerWidth_2 = this.innerWidth;\r\n var w = thumb.innerWidth;\r\n var x = thumb.pixelX;\r\n this._start = x / innerWidth_2;\r\n this._end = (x + w) / innerWidth_2;\r\n this.updateThumb();\r\n }\r\n else {\r\n var innerHeight_2 = this.innerHeight;\r\n var h = thumb.innerHeight;\r\n var y = thumb.pixelY;\r\n if (y + h > innerHeight_2) {\r\n y = innerHeight_2 - h;\r\n thumb.y = y;\r\n }\r\n this._start = 1 - (y + h) / innerHeight_2;\r\n this._end = 1 - y / innerHeight_2;\r\n this.updateThumb();\r\n }\r\n };\r\n /**\r\n * Creates a background element for the scrollbar.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Background\r\n */\r\n Scrollbar.prototype.createBackground = function () {\r\n return new RoundedRectangle();\r\n };\r\n Object.defineProperty(Scrollbar.prototype, \"hideGrips\", {\r\n /**\r\n * @return Show only on hover?\r\n */\r\n get: function () {\r\n return this._hideGrips;\r\n },\r\n /**\r\n * Use this property to set whether grips should be always visible (`false`),\r\n * or they should just appear on scrollbar hover (`true`).\r\n *\r\n * @param value Show only on hover?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n this._hideGrips = value;\r\n if (this._overDisposer) {\r\n this.removeDispose(this._overDisposer);\r\n }\r\n if (this._outDisposer) {\r\n this.removeDispose(this._outDisposer);\r\n }\r\n if (value) {\r\n this._overDisposer = this.events.on(\"over\", function () {\r\n _this.startGrip.show();\r\n _this.endGrip.show();\r\n }, undefined, false);\r\n this._outDisposer = this.events.on(\"out\", function () {\r\n _this.startGrip.hide();\r\n _this.endGrip.hide();\r\n }, undefined, false);\r\n this.startGrip.hide();\r\n this.endGrip.hide();\r\n }\r\n else {\r\n this.startGrip.show();\r\n this.endGrip.show();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"animationDuration\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"animationDuration\");\r\n },\r\n /**\r\n * Duration in milliseconds of scrollbar animation (happens when user clicks on a background of a scrollbar)\r\n * @default 0\r\n * @param value number\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"animationDuration\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Scrollbar.prototype, \"animationEasing\", {\r\n /**\r\n * @return {Function}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"animationEasing\");\r\n },\r\n /**\r\n * Animation easing function.\r\n * @todo: review description and default\r\n * @default $ease.cubicOut\r\n * @param value (value: number) => number\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"animationEasing\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds easing functions to \"function\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n Scrollbar.prototype.asFunction = function (field) {\r\n return field == \"animationEasing\" || _super.prototype.asIs.call(this, field);\r\n };\r\n return Scrollbar;\r\n}(Container));\r\nexport { Scrollbar };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Scrollbar\"] = Scrollbar;\r\n//# sourceMappingURL=Scrollbar.js.map","/**\r\n * Provides functionality used to creating and showing tooltips (balloons).\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { PointedRectangle } from \"./PointedRectangle\";\r\nimport { Label } from \"../elements/Label\";\r\nimport { Animation } from \"../utils/Animation\";\r\nimport { color } from \"../utils/Color\";\r\nimport { DropShadowFilter } from \"../rendering/filters/DropShadowFilter\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $utils from \"../utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Tooltip displays text and/or multimedia information in a balloon over chart\r\n * area.\r\n * @see {@link ITooltipEvents} for a list of available events\r\n * @see {@link ITooltipAdapters} for a list of available Adapters\r\n */\r\nvar Tooltip = /** @class */ (function (_super) {\r\n __extends(Tooltip, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Tooltip() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Holds numeric boundary values. Calculated from the `boundingContainer`.\r\n * @ignore\r\n */\r\n _this._boundingRect = { x: -40000, y: -40000, width: 80000, height: 80000 };\r\n /**\r\n * Coordinates tooltip's pointer (stem) should point to.\r\n */\r\n _this._pointTo = { x: 0, y: 0 };\r\n /**\r\n * If set to `true` the pointer/stem of the Tooltip will not go outside\r\n * Tooltip's width or height depending on pointer's orientation.\r\n *\r\n * @default false\r\n */\r\n _this.fitPointerToBounds = false;\r\n /**\r\n * If `tooltipOrientation` is vertical, it can be drawn below or above point\r\n * We need to know this when solving overlapping.\r\n */\r\n _this._verticalOrientation = \"up\";\r\n /**\r\n * @ignore\r\n */\r\n _this.fixDoc = true;\r\n _this.className = \"Tooltip\";\r\n _this.isMeasured = false;\r\n _this.getFillFromObject = true;\r\n _this.margin(5, 5, 5, 5);\r\n _this.defaultState.transitionDuration = 1;\r\n _this.hiddenState.transitionDuration = 1;\r\n // Create chrome/background\r\n var background = _this.background;\r\n background.interactionsEnabled = false;\r\n background.fillOpacity = 0.9;\r\n background.strokeWidth = 1;\r\n background.strokeOpacity = 1;\r\n background.stroke = color(\"#ffffff\");\r\n background.cornerRadius = 3;\r\n background.pointerLength = 6;\r\n background.pointerBaseWidth = 10;\r\n var dropShadow = new DropShadowFilter();\r\n dropShadow.dy = 1;\r\n dropShadow.dx = 1;\r\n dropShadow.opacity = 0.5;\r\n background.filters.push(dropShadow);\r\n _this.autoTextColor = true;\r\n // Create text element\r\n var label = _this.createChild(Label);\r\n label.shouldClone = false;\r\n _this.label = label;\r\n label.padding(7, 12, 4, 12);\r\n label.interactionsEnabled = false;\r\n label.horizontalCenter = \"middle\";\r\n label.fill = color(\"#ffffff\");\r\n _this._disposers.push(label);\r\n _this.label.events.on(\"sizechanged\", _this.drawBackground, _this);\r\n _this.label.zIndex = 1; // @todo remove this line when bg sorting is solved\r\n // Set defaults\r\n _this.pointerOrientation = \"vertical\";\r\n _this.animationDuration = 0;\r\n _this.animationEasing = $ease.cubicOut;\r\n _this.setPropertyValue(\"showInViewport\", false);\r\n // Set accessibility options\r\n _this.role = \"tooltip\";\r\n _this.visible = false;\r\n _this.opacity = 0;\r\n _this.x = 0;\r\n _this.y = 0;\r\n _this.events.on(\"visibilitychanged\", _this.handleVisibility, _this);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Tooltip.prototype.handleVisibility = function () {\r\n if (this.visible) {\r\n this.label.invalidate();\r\n }\r\n };\r\n Object.defineProperty(Tooltip.prototype, \"getStrokeFromObject\", {\r\n /**\r\n * Specifies if tooltip background should get stroke color from the sprite it is pointing to.\r\n *\r\n * @return {boolean}\r\n * @default false\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"getStrokeFromObject\");\r\n },\r\n /**\r\n * Specifies if tooltip background should get stroke color from the sprite it is pointing to.\r\n *\r\n * @param value boolean\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"getStrokeFromObject\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"autoTextColor\", {\r\n /**\r\n * @return {boolean}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"autoTextColor\");\r\n },\r\n /**\r\n * Specifies if text color should be chosen automatically for a better\r\n * readability.\r\n *\r\n * IMPORTANT: this feature is generally ignored, if `getFillFromObject = false`.\r\n *\r\n * If inheriting of `fill` color from object tooltip is displayed for is\r\n * disabled, this feature will not work. If you are explicitly setting a\r\n * color for tooltip background, you may set a color for its label as well\r\n * using `tooltip.label.fill` property.\r\n *\r\n *\r\n * @param value boolean\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"autoTextColor\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"keepTargetHover\", {\r\n /**\r\n * @return Keep target hovered?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"keepTargetHover\");\r\n },\r\n /**\r\n * If this tooltip is displayed on hover on some other object, keep that\r\n * element hovered if hovering on the tooltip.\r\n *\r\n * @default false\r\n * @since 4.1.13\r\n * @param value Keep target hovered?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this.setPropertyValue(\"keepTargetHover\", value, true)) {\r\n if (value) {\r\n this.hoverable = true;\r\n this.background.interactionsEnabled = true;\r\n this._disposers.push(this.events.on(\"over\", function (ev) {\r\n if (_this.targetSprite && _this.targetSprite.hoverable) {\r\n _this.targetSprite.isHover = true;\r\n }\r\n }));\r\n this._disposers.push(this.events.on(\"out\", function (ev) {\r\n if (_this.targetSprite && _this.targetSprite.hoverable) {\r\n //this.hideTooltip();\r\n //this.targetSprite.handleOut();\r\n _this.targetSprite.isHover = false;\r\n }\r\n }));\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"showInViewport\", {\r\n /**\r\n * @return Force showing tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"showInViewport\");\r\n },\r\n /**\r\n * Normally, a tooltip will hide itself if it is pointing to a coordinate\r\n * that is outside viewport.\r\n *\r\n * Setting this setting to `true` will override that and make tooltip\r\n * appear next to the viewport edge closest to the target point.\r\n *\r\n * @default false\r\n * @since 4.5.7\r\n * @param value Force showing tooltip?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"showInViewport\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"getFillFromObject\", {\r\n /**\r\n * Specifies if tooltip background should get fill color from the sprite it is pointing to.\r\n *\r\n * @return {boolean}\r\n * @default true\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"getFillFromObject\");\r\n },\r\n /**\r\n * @param value boolean\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"getFillFromObject\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates and returns a background element.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Background\r\n */\r\n Tooltip.prototype.createBackground = function () {\r\n return new PointedRectangle();\r\n };\r\n Object.defineProperty(Tooltip.prototype, \"pointerOrientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pointerOrientation\");\r\n },\r\n /**\r\n * Pointer orientation: `\"horizontal\"`, `\"vertical\"`, `\"up\"`, `\"down\"`,\r\n * `\"right\"`, or `\"left\"`.\r\n *\r\n * Options`\"horizontal\"` or `\"vertical\"` are location-aware, meaning they\r\n * will change position of the Tooltip based on the target point's position\r\n * in relation to chart center.\r\n *\r\n * Options `\"up\"`, `\"down\"`, `\"right\"`, `\"left\"` are static and will point\r\n * in the specified direction regardless of the position, even if that means\r\n * going out of chart/screen bounds.\r\n *\r\n * IMPORTANT: in some situations, like having multiple tooltips stacked for\r\n * multiple series, the `\"up\"` and `\"down\"` values might be ignored in order\r\n * to make tooltip overlap algorithm work.\r\n *\r\n * @default \"vertical\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"pointerOrientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"animationDuration\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"animationDuration\");\r\n },\r\n /**\r\n * Duration in milliseconds for the animation to take place when the tooltip\r\n * is moving from one place to another.\r\n *\r\n * @default 0\r\n * @param value number\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"animationDuration\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"animationEasing\", {\r\n /**\r\n * @return {Function}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"animationEasing\");\r\n },\r\n /**\r\n * Tooltip animation (moving from one place to another) easing function.\r\n *\r\n * @default $ease.cubicOut\r\n * @param value (value: number) => number\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"animationEasing\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"html\", {\r\n /**\r\n * @return HTML content\r\n */\r\n get: function () {\r\n return this.label.html;\r\n },\r\n /**\r\n * HTML content for the Tooltip.\r\n *\r\n * Provided value will be used as is, without applying any further\r\n * formatting to it.\r\n *\r\n * @param value HTML content\r\n */\r\n set: function (value) {\r\n if (this.label.html != value) {\r\n this.label.html = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"text\", {\r\n /**\r\n * @return SVG text\r\n */\r\n get: function () {\r\n return this.label.text;\r\n },\r\n /**\r\n * SVG text content for the Tooltip.\r\n *\r\n * Text can have a number of formatting options supported by\r\n * [[TextFormatter]].\r\n *\r\n * @param value SVG text\r\n */\r\n set: function (value) {\r\n if (this.label.text != value) {\r\n this.label.text = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates the Tooltip.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Tooltip.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var label = this.label;\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n var x = this._pointTo.x;\r\n var y = this._pointTo.y;\r\n var boundingRect = this._boundingRect;\r\n var textW = label.measuredWidth;\r\n var textH = label.measuredHeight;\r\n var pointerLength = this.background.pointerLength;\r\n var textX;\r\n var textY;\r\n if (this.ignoreBounds) {\r\n boundingRect = undefined;\r\n }\r\n // try to handle if text is wider than br\r\n if (boundingRect && this.fixDoc && textW > boundingRect.width) {\r\n // TODO maybe this isn't needed ?\r\n $utils.spritePointToDocument({ x: boundingRect.x, y: boundingRect.y }, this.parent);\r\n var p1 = $utils.spritePointToDocument({ x: boundingRect.x + boundingRect.width, y: boundingRect.y + boundingRect.height }, this.parent);\r\n var documentWidth = document.body.offsetWidth;\r\n // TODO maybe this isn't needed ?\r\n $utils.used(document.body.offsetHeight);\r\n if (p1.x > documentWidth / 2) {\r\n boundingRect.x = boundingRect.width - textW;\r\n }\r\n else {\r\n boundingRect.width = boundingRect.x + textW;\r\n }\r\n }\r\n var pointerOrientation = this.pointerOrientation;\r\n // horizontal\r\n if (pointerOrientation == \"horizontal\" || pointerOrientation == \"left\" || pointerOrientation == \"right\") {\r\n textY = -textH / 2;\r\n if (pointerOrientation == \"horizontal\") {\r\n if (boundingRect && x > boundingRect.x + boundingRect.width / 2) {\r\n textX = -textW / 2 - pointerLength;\r\n }\r\n else {\r\n textX = textW / 2 + pointerLength;\r\n }\r\n }\r\n else if (pointerOrientation == \"left\") {\r\n textX = textW / 2 + pointerLength;\r\n }\r\n else {\r\n textX = -textW / 2 - pointerLength;\r\n }\r\n }\r\n // vertical pointer\r\n else {\r\n if (boundingRect) {\r\n textX = $math.fitToRange(0, boundingRect.x - x + textW / 2, boundingRect.x - x + boundingRect.width - textW / 2);\r\n }\r\n if (pointerOrientation == \"vertical\") {\r\n if (boundingRect && y > boundingRect.y + textH + pointerLength) {\r\n textY = -textH - pointerLength;\r\n this._verticalOrientation = \"up\";\r\n }\r\n else {\r\n textY = pointerLength;\r\n this._verticalOrientation = \"down\";\r\n }\r\n }\r\n else if (pointerOrientation == \"down\") {\r\n textY = -textH - pointerLength;\r\n this._verticalOrientation = \"up\";\r\n }\r\n else {\r\n textY = pointerLength;\r\n this._verticalOrientation = \"down\";\r\n }\r\n }\r\n if (boundingRect) {\r\n textY = $math.fitToRange(textY, boundingRect.y - y, boundingRect.y + boundingRect.height - textH - y);\r\n }\r\n label.x = textX;\r\n label.y = textY;\r\n this.drawBackground();\r\n };\r\n /**\r\n * Overrides functionality from the superclass.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Tooltip.prototype.updateBackground = function () {\r\n this.group.addToBack(this.background.group);\r\n };\r\n /**\r\n * Draws Tooltip background (chrome, background and pointer/stem).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Tooltip.prototype.drawBackground = function () {\r\n var label = this.label;\r\n var background = this.background;\r\n var textWidth = label.measuredWidth;\r\n var textHeight = label.measuredHeight;\r\n var boundingRect = this._boundingRect;\r\n var bgWidth = textWidth;\r\n var bgX = label.pixelX - textWidth / 2;\r\n var bgHeight = textHeight;\r\n var bgY = label.pixelY;\r\n var x = this._pointTo.x;\r\n var y = this._pointTo.y;\r\n var boundX1 = boundingRect.x - x;\r\n var boundX2 = boundX1 + boundingRect.width;\r\n var boundY1 = boundingRect.y - y;\r\n var boundY2 = boundY1 + boundingRect.height;\r\n background.x = bgX;\r\n background.y = bgY;\r\n background.width = bgWidth;\r\n background.height = bgHeight;\r\n if (this.fitPointerToBounds) {\r\n background.pointerX = $math.fitToRange(-background.x, boundX1 - background.x, boundX2 - background.x);\r\n background.pointerY = $math.fitToRange(-background.y, boundY1 - background.y, boundY2 - background.y);\r\n }\r\n else {\r\n background.pointerX = -background.x;\r\n background.pointerY = -background.y;\r\n }\r\n background.validate();\r\n };\r\n /**\r\n *\r\n */\r\n Tooltip.prototype.delayedPointTo = function (point, instantly) {\r\n var _this = this;\r\n if (this._pointToDisposer) {\r\n this._pointToDisposer.dispose();\r\n }\r\n this._pointToDisposer = registry.events.once(\"exitframe\", function () {\r\n _this.pointTo(point, instantly);\r\n });\r\n this.addDisposer(this._pointToDisposer);\r\n };\r\n /**\r\n * Set nes tooltip's anchor point and moves whole tooltip.\r\n *\r\n * @param x X coordinate\r\n * @param y Y coordinate\r\n */\r\n Tooltip.prototype.pointTo = function (point, instantly) {\r\n if (this._pointTo.x != point.x || this._pointTo.y != point.y) {\r\n this._pointTo = point;\r\n this.invalidate();\r\n // this helps to avoid strange animation from nowhere on initial show or when balloon was hidden already\r\n if (!this.visible || instantly) {\r\n this.moveTo(this._pointTo);\r\n if (this._animation) {\r\n this._animation.kill();\r\n }\r\n }\r\n else {\r\n // helps to avoid flicker on top/left corner\r\n if (this.pixelX == 0 && this.pixelY == 0) {\r\n this.moveTo(this._pointTo);\r\n }\r\n else {\r\n if (this._animation) {\r\n this._animation.kill();\r\n }\r\n this._animation = new Animation(this, [{ property: \"x\", to: point.x, from: this.pixelX }, { property: \"y\", to: point.y, from: this.pixelY }], this.animationDuration, this.animationEasing).start();\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Sets numeric boundaries Tooltip needs to obey (so it does not go outside\r\n * specific area).\r\n *\r\n * @ignore Exclude from docs\r\n * @param rectangle Boundary rectangle\r\n */\r\n Tooltip.prototype.setBounds = function (rectangle) {\r\n var oldRect = this._boundingRect;\r\n if (oldRect.x != rectangle.x || oldRect.y != rectangle.y || oldRect.width != rectangle.width || oldRect.height != rectangle.height) {\r\n this._boundingRect = rectangle;\r\n this.invalidate();\r\n }\r\n };\r\n Object.defineProperty(Tooltip.prototype, \"boundingContainer\", {\r\n /**\r\n * Sets a [[Container]] instance to be used when calculating numeric\r\n * boundaries for the Tooltip.\r\n *\r\n * @ignore Exclude from docs\r\n * @param container Boundary container\r\n */\r\n set: function (container) {\r\n this._boundingContainer = container;\r\n // TODO remove closures ?\r\n container.events.on(\"sizechanged\", this.updateBounds, this);\r\n container.events.on(\"positionchanged\", this.updateBounds, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates numeric boundaries for the Tooltip, based on the\r\n * `boundingCountrainer`.\r\n */\r\n Tooltip.prototype.updateBounds = function () {\r\n var boundingContainer = this._boundingContainer;\r\n // to global\r\n var rect = $utils.spriteRectToSvg({\r\n x: boundingContainer.pixelX,\r\n y: boundingContainer.pixelY,\r\n width: boundingContainer.maxWidth,\r\n height: boundingContainer.maxHeight\r\n }, boundingContainer);\r\n this.setBounds(rect);\r\n };\r\n Object.defineProperty(Tooltip.prototype, \"ignoreBounds\", {\r\n /**\r\n * @return Ignore chart bounds?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"ignoreBounds\");\r\n },\r\n /**\r\n * Normally, a tooltip's position will be adjusted so it always fits into\r\n * chart's coundaries.\r\n *\r\n * Setting this to `false` will disable such checks and will allow tooltip\r\n * to \"bleed over\" the edge of the chart.\r\n *\r\n * @default false\r\n * @since 4.10.8\r\n * @param value Ignore chart bounds?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"ignoreBounds\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"verticalOrientation\", {\r\n /**\r\n * If tooltipOrientation is vertical, it can be drawn below or above point.\r\n * We need to know this when solving overlapping.\r\n *\r\n * @ignore Exclude from docs\r\n * @return \"up\" | \"down\"\r\n */\r\n get: function () {\r\n return this._verticalOrientation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Tooltip.prototype, \"tooltip\", {\r\n /**\r\n * To avoid stackoverflow\r\n * @ignore\r\n */\r\n get: function () {\r\n return undefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties and other attributes.\r\n *\r\n * @param source Source\r\n */\r\n Tooltip.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.label.copyFrom(source.label);\r\n if (source._boundingRect) {\r\n this._boundingRect = source._boundingRect;\r\n }\r\n };\r\n /**\r\n * Adds easing functions to \"function\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n Tooltip.prototype.asFunction = function (field) {\r\n return field == \"animationEasing\" || _super.prototype.asIs.call(this, field);\r\n };\r\n return Tooltip;\r\n}(Container));\r\nexport { Tooltip };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Tooltip\"] = Tooltip;\r\n//# sourceMappingURL=Tooltip.js.map","var locale = {\n title: '日期选择',\n today: '今天',\n month: '月',\n year: '年',\n am: '上午',\n pm: '下午',\n dateTimeFormat: 'yyyy年MM月dd日 星期w hh:mm',\n dateFormat: 'yyyy年MM月dd日 星期w',\n noChoose: '未选择',\n week: ['日', '一', '二', '三', '四', '五', '六'],\n clear: '清除',\n selectTime: '选择时间',\n selectStartTime: '选择开始时间',\n selectEndTime: '选择结束时间',\n start: '开始',\n end: '结束',\n begin: '起',\n over: '止',\n begin_over: '起/止',\n confirm: '确认',\n monthTitle: 'yyyy年MM月',\n loadPrevMonth: '加载上一个月',\n yesterday: '昨天',\n lastWeek: '近一周',\n lastMonth: '近一个月'\n};\nexport default locale;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","import { __read, __spread } from \"tslib\";\r\nimport { options } from \"../Options\";\r\n/**\r\n * Outputs string to console if `verbose` is `true`.\r\n */\r\nexport function log() {\r\n var messages = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n messages[_i] = arguments[_i];\r\n }\r\n if (options.verbose) {\r\n if (console) {\r\n console.log.apply(console, __spread(messages));\r\n }\r\n }\r\n}\r\n/**\r\n * Outputs a warning to the console.\r\n */\r\nexport function warn() {\r\n var messages = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n messages[_i] = arguments[_i];\r\n }\r\n if (!options.suppressWarnings) {\r\n if (console) {\r\n console.warn.apply(console, __spread(messages));\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=Log.js.map","/**\r\n * A collection of network-related functions\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $type from \"./Type\";\r\n/**\r\n * Loads an external file via its URL.\r\n *\r\n * Please note that this is an asynchronous function.\r\n *\r\n * It will not return the result, but rather a `Promise`.\r\n *\r\n * You can use the `await` notion, or `then()`.\r\n *\r\n * ```TypeScript\r\n * // Using await\r\n * let response = await Net.load( \"http://www.my.com/data.json\" );\r\n * console.log( response.response );\r\n *\r\n * // Using then()\r\n * Net.load( \"http://www.my.com/data.json\" ).then( ( response ) => {\r\n * console.log( response.response );\r\n * } );\r\n * ```\r\n * ```JavaScript\r\n * // Using then()\r\n * Net.load( \"http://www.my.com/data.json\" ).then( function( response ) {\r\n * console.log( response.response );\r\n * } );\r\n * ```\r\n *\r\n * @async\r\n * @param url URL for the file to load\r\n * @param target A target element that is requesting the net load\r\n * @param options Request options\r\n * @return Result (Promise)\r\n */\r\nexport function load(url, target, options) {\r\n return new Promise(function (success, error) {\r\n // Is return type Blob?\r\n var isBlob = $type.hasValue(options) && options.responseType == \"blob\";\r\n // Create request and set up handlers\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n var response = void 0;\r\n var blob_1;\r\n if (isBlob) {\r\n blob_1 = xhr.response;\r\n readBlob(blob_1).then(function (response) {\r\n var output = {\r\n xhr: xhr,\r\n error: false,\r\n response: response,\r\n blob: blob_1,\r\n type: xhr.getResponseHeader(\"Content-Type\"),\r\n target: target\r\n };\r\n success(output);\r\n });\r\n return;\r\n }\r\n else {\r\n response = xhr.responseText || xhr.response;\r\n }\r\n var output = {\r\n xhr: xhr,\r\n error: false,\r\n response: response,\r\n blob: blob_1,\r\n type: xhr.getResponseHeader(\"Content-Type\"),\r\n target: target\r\n };\r\n success(output);\r\n }\r\n else {\r\n error({\r\n xhr: xhr,\r\n error: true,\r\n type: xhr.getResponseHeader(\"Content-Type\"),\r\n target: target\r\n });\r\n }\r\n };\r\n xhr.onerror = function () {\r\n error({\r\n xhr: xhr,\r\n error: true,\r\n type: xhr.getResponseHeader(\"Content-Type\"),\r\n target: target\r\n });\r\n };\r\n // Open request\r\n xhr.open(\"GET\", url, true);\r\n if (options && options.withCredentials) {\r\n xhr.withCredentials = true;\r\n }\r\n // Process options\r\n if ($type.hasValue(options)) {\r\n if ($type.hasValue(options.requestHeaders)) {\r\n for (var i = 0; i < options.requestHeaders.length; i++) {\r\n var header = options.requestHeaders[i];\r\n xhr.setRequestHeader(header.key, header.value);\r\n }\r\n }\r\n if ($type.hasValue(options.responseType)) {\r\n xhr.responseType = options.responseType;\r\n }\r\n }\r\n // Send request\r\n xhr.send();\r\n });\r\n}\r\n/**\r\n * Returns textual representation of a Blob object.\r\n *\r\n * @param blob Target blob\r\n * @return Text promise\r\n */\r\nexport function readBlob(blob) {\r\n return new Promise(function (success, error) {\r\n var reader = new FileReader();\r\n reader.onload = function (event) {\r\n success(reader.result);\r\n };\r\n reader.onerror = function (e) {\r\n error(e);\r\n };\r\n reader.readAsText(blob);\r\n });\r\n}\r\n//# sourceMappingURL=Net.js.map","/**\r\n * CSV parser.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { DataParser } from \"./DataParser\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $array from \"../utils/Array\";\r\n/**\r\n * Define possible separators.\r\n */\r\nvar separators = [\",\", \";\", \"\\t\"];\r\n/**\r\n * A parser for CSV format.\r\n *\r\n * @important\r\n */\r\nvar CSVParser = /** @class */ (function (_super) {\r\n __extends(CSVParser, _super);\r\n function CSVParser() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * Content-type suitable for CSV format.\r\n */\r\n _this.contentType = \"text/csv\";\r\n /**\r\n * Parser options.\r\n *\r\n * @see {@link ICSVOptions} for description of each option\r\n */\r\n _this.options = {\r\n delimiter: \"\",\r\n reverse: false,\r\n skipRows: 0,\r\n skipEmpty: true,\r\n useColumnNames: false\r\n };\r\n return _this;\r\n }\r\n /**\r\n * Tests if the format is CSV.\r\n *\r\n * @param data Source data\r\n * @return Is it CSV?\r\n */\r\n CSVParser.isCSV = function (data) {\r\n return CSVParser.getDelimiterFromData(data) ? true : false;\r\n };\r\n /**\r\n * Tries to determine a column separator.\r\n *\r\n * @param data Source data\r\n * @return Separator\r\n */\r\n CSVParser.getDelimiterFromData = function (data) {\r\n // We're going to take first few lines of the CSV with different\r\n // possible separators and check if it results in same number of columns.\r\n // If it does, we're going to assume it's a CSV\r\n var lines = data.split(\"\\n\");\r\n var len = lines.length;\r\n var separator;\r\n $array.each(separators, function (sep) {\r\n var columns = 0, lineColums = 0;\r\n // TODO replace with iterators\r\n for (var i = 0; i < len; ++i) {\r\n // Get number of columns in a line\r\n columns = lines[i].split(sep).length;\r\n if (columns > 1) {\r\n // More than one column - possible candidate\r\n if (lineColums === 0) {\r\n // First line\r\n lineColums = columns;\r\n }\r\n else if (columns != lineColums) {\r\n // Incorrect number of columns, give up on this separator\r\n lineColums = 0;\r\n break;\r\n }\r\n }\r\n else {\r\n // Not this separator\r\n // Not point in continuing\r\n lineColums = 0;\r\n break;\r\n }\r\n }\r\n // Check if we have a winner\r\n if (lineColums) {\r\n separator = sep;\r\n }\r\n });\r\n return separator;\r\n };\r\n /**\r\n * Parses and returns data.\r\n *\r\n * @param data Unparsed data\r\n * @return Parsed data\r\n */\r\n CSVParser.prototype.parse = function (csv) {\r\n // Check if we have delimiter set\r\n if (!this.options.delimiter) {\r\n this.options.delimiter = CSVParser.getDelimiterFromData(csv);\r\n }\r\n // Get CSV data as array\r\n var data = this.CSVToArray(csv, this.options.delimiter);\r\n // Do we need to cast some fields to numbers?\r\n var empty = $type.hasValue(this.options.emptyAs);\r\n var numbers = this.parsableNumbers;\r\n var dates = this.parsableDates;\r\n // Init resuling array\r\n var res = [], cols = [], col, i;\r\n // Skip rows\r\n for (i = 0; i < this.options.skipRows; i++) {\r\n data.shift();\r\n }\r\n // First row holds column names?\r\n if (this.options.useColumnNames) {\r\n cols = data.shift();\r\n // Normalize column names\r\n for (var x = 0; x < cols.length; x++) {\r\n // trim\r\n col = $type.hasValue(cols[x]) ? cols[x].replace(/^\\s+|\\s+$/gm, \"\") : \"\";\r\n // Check for empty\r\n if (\"\" === col) {\r\n col = \"col\" + x;\r\n }\r\n cols[x] = col;\r\n }\r\n }\r\n // Iterate through the result set\r\n var row;\r\n while (true) {\r\n row = this.options.reverse ? data.pop() : data.shift();\r\n if (!row) {\r\n break;\r\n }\r\n if (this.options.skipEmpty && row.length === 1 && row[0] === \"\") {\r\n continue;\r\n }\r\n var dataPoint = {};\r\n for (i = 0; i < row.length; i++) {\r\n col = undefined === cols[i] ? \"col\" + i : cols[i];\r\n dataPoint[col] = row[i] === \"\" ? this.options.emptyAs : row[i];\r\n // Convert\r\n if (empty) {\r\n dataPoint[col] = this.maybeToEmpty(dataPoint[col]);\r\n }\r\n if (numbers) {\r\n dataPoint[col] = this.maybeToNumber(col, dataPoint[col]);\r\n }\r\n if (dates) {\r\n dataPoint[col] = this.maybeToDate(col, dataPoint[col]);\r\n }\r\n }\r\n res.push(dataPoint);\r\n }\r\n return res;\r\n };\r\n /**\r\n * Converts CSV into array.\r\n *\r\n * The functionality of this function is taken from here:\r\n * http://www.bennadel.com/blog/1504-ask-ben-parsing-csv-strings-with-javascript-exec-regular-expression-command.htm\r\n *\r\n * @param data Source data\r\n * @param delimiter Column delimiter\r\n * @return Parsed array\r\n */\r\n CSVParser.prototype.CSVToArray = function (data, delimiter) {\r\n // Check to see if the delimiter is defined. If not,\r\n // then default to comma.\r\n delimiter = (delimiter || ',');\r\n // Create a regular expression to parse the CSV values.\r\n var objPattern = new RegExp((\r\n // Delimiters.\r\n \"(\\\\\" + delimiter + \"|\\\\r?\\\\n|\\\\r|^)\" +\r\n // Quoted fields.\r\n \"(?:\\\"([^\\\"]*(?:\\\"\\\"[^\\\"]*)*)\\\"|\" +\r\n // Standard fields.\r\n \"([^\\\"\\\\\" + delimiter + \"\\\\r\\\\n]*))\"), \"gi\");\r\n // Create an array to hold our data. Give the array\r\n // a default empty first row.\r\n var arrData = [\r\n []\r\n ];\r\n // Create an array to hold our individual pattern\r\n // matching groups.\r\n var arrMatches = null;\r\n // Keep looping over the regular expression matches\r\n // until we can no longer find a match.\r\n while (true) {\r\n arrMatches = objPattern.exec(data);\r\n if (!arrMatches) {\r\n break;\r\n }\r\n // Get the delimiter that was found.\r\n var strMatchedDelimiter = arrMatches[1];\r\n // Check to see if the given delimiter has a length\r\n // (is not the start of string) and if it matches\r\n // field delimiter. If id does not, then we know\r\n // that this delimiter is a row delimiter.\r\n if (strMatchedDelimiter.length &&\r\n (strMatchedDelimiter !== delimiter)) {\r\n // Since we have reached a new row of data,\r\n // add an empty row to our data array.\r\n arrData.push([]);\r\n }\r\n // Now that we have our delimiter out of the way,\r\n // let's check to see which kind of value we\r\n // captured (quoted or unquoted).\r\n var strMatchedValue = void 0;\r\n if (arrMatches[2]) {\r\n // We found a quoted value. When we capture\r\n // this value, unescape any double quotes.\r\n strMatchedValue = arrMatches[2].replace(new RegExp(\"\\\"\\\"\", \"g\"), \"\\\"\");\r\n }\r\n else {\r\n // We found a non-quoted value.\r\n strMatchedValue = arrMatches[3];\r\n }\r\n // Now that we have our value string, let's add\r\n // it to the data array.\r\n arrData[arrData.length - 1].push(strMatchedValue);\r\n }\r\n // Return the parsed data.\r\n return (arrData);\r\n };\r\n return CSVParser;\r\n}(DataParser));\r\nexport { CSVParser };\r\n//# sourceMappingURL=CSVParser.js.map","var START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexport default TransitionEvents;","import _typeof from 'babel-runtime/helpers/typeof';\nimport Event from './Event';\nimport classes from 'component-classes';\n\nvar isCssAnimationSupported = Event.endEvents.length !== 0;\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = classes(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = setTimeout(function () {\n node.rcAnimTimeout = null;\n nodeClasses.add(activeClassName);\n if (active) {\n setTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = setTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexport { isCssAnimationSupported };\n\nexport default cssAnimation;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport { generate as generateColor } from '@ant-design/colors';\nimport * as React from 'react';\nexport function log(message) {\n if (!(process && process.env && process.env.NODE_ENV === 'production')) {\n console.error('[@ant-design/icons-react]: ' + message + '.');\n }\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\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 var MiniMap = function () {\n function MiniMap() {\n _classCallCheck(this, MiniMap);\n\n this.collection = {};\n }\n\n _createClass(MiniMap, [{\n key: 'clear',\n value: function clear() {\n this.collection = {};\n }\n }, {\n key: 'delete',\n value: function _delete(key) {\n return delete this.collection[key];\n }\n }, {\n key: 'get',\n value: function get(key) {\n return this.collection[key];\n }\n }, {\n key: 'has',\n value: function has(key) {\n return Boolean(this.collection[key]);\n }\n }, {\n key: 'set',\n value: function set(key, value) {\n this.collection[key] = value;\n return this;\n }\n }, {\n key: 'size',\n get: function get() {\n return Object.keys(this.collection).length;\n }\n }]);\n\n return MiniMap;\n}();\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return React.createElement(node.tag, _extends({ key: key }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, key + '-' + node.tag + '-' + index);\n }));\n }\n return React.createElement(node.tag, _extends({\n key: key\n }, normalizeAttrs(node.attrs), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, key + '-' + node.tag + '-' + index);\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function withSuffix(name, theme) {\n switch (theme) {\n case 'fill':\n return name + '-fill';\n case 'outline':\n return name + '-o';\n case 'twotone':\n return name + '-twotone';\n default:\n throw new TypeError('Unknown theme type: ' + theme + ', name: ' + name);\n }\n}","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\r\n * Module contains functionality related to [[Sprite]] states.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"./Base\";\r\nimport { registry } from \"./Registry\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { List, ListDisposer } from \"./utils/List\";\r\nimport { toColor } from \"./utils/Color\";\r\nimport { percent } from \"./utils/Percent\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $ease from \"./utils/Ease\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n/**\r\n * Defines a state for [[Sprite]].\r\n *\r\n * A \"state\" is a special object that has all the same properties as the\r\n * [[Sprite]] of the same type, and which can be used to quickly apply a set\r\n * of property values. (set state)\r\n *\r\n * When [[Sprite]] (or any object that extends Sprite) is created it creates a\r\n * \"default\" state. You can modify the \"default\" state so that when the Sprite\r\n * returns to default state certain properties are added.\r\n *\r\n * Default state can be accessed using Sprite's `defaultState` getter.\r\n *\r\n * ```TypeScript\r\n * sprite.defaultState.properties.fillOpacity = 0.5;\r\n * ```\r\n * ```JavaScript\r\n * sprite.defaultState.properties.fillOpacity = 0.5;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"defaultState\": {\r\n * \"properties\": {\r\n * \"fillOpacity\": 0.5\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * If Sprite is \"hoverable\", it automatically adds a \"hover\" state, which is\r\n * applied when it has a cursor over it.\r\n *\r\n * ```TypeScript\r\n * let hoverstate = sprite.states.create(\"hover\");\r\n * hoverstate.properties.fillOpacity = 1;\r\n * ```\r\n * ```JavaScript\r\n * var hoverstate = sprite.states.create(\"hover\");\r\n * hoverstate.properties.fillOpacity = 1;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"states\": {\r\n * \"hover\": {\r\n * \"properties\": {\r\n * \"fillOpacity\": 0.5\r\n * }\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * The above will automatically apply \"hover\" state when the Sprite is hovered,\r\n * thus will set its `fillOpacity` property to 1, and will reset it to 0.5 when\r\n * it's no longer hovered.\r\n *\r\n * Every object that inherits from [[Sprite]] can and will add their own\r\n * properties to the available list.\r\n *\r\n * User can create their own states, and apply them as needed:\r\n *\r\n * ```TypeScript\r\n * let myCustomState = sprite.states.create(\"mystate\");\r\n * myCustomState.properties.fillOpacity = 0.5;\r\n * myCustomState.properties.strokeOpacity = 0.8;\r\n * sprite.setState(\"mystate\");\r\n * ```\r\n * ```JavaScript\r\n * var myCustomState = sprite.states.create(\"mystate\");\r\n * myCustomState.properties.fillOpacity = 0.5;\r\n * myCustomState.properties.strokeOpacity = 0.8;\r\n * sprite.setState(\"mystate\");\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/states/}\r\n * @important\r\n */\r\nvar SpriteState = /** @class */ (function (_super) {\r\n __extends(SpriteState, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SpriteState() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Duration of the transition to this state. 0 means instantenous transition.\r\n * Any number means the [[Sprite]] will transit smoothly to this state,\r\n * animating all animatable properties.\r\n *\r\n * @default 0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.transitionDuration = 0;\r\n /**\r\n * Easing function to use when transitioning to this state.\r\n *\r\n * @default cubicOut\r\n * @see {@link Ease}\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n */\r\n _this.transitionEasing = $ease.cubicOut;\r\n /**\r\n * Collection of properties and their values that should be applied to [[Sprite]]\r\n * when switching to this State.\r\n *\r\n * The property values set on a [[SpriteState]] will override the ones set\r\n * directly on a [[Sprite]].\r\n */\r\n _this.properties = {};\r\n /**\r\n * A collection of key/value pairs that can be used to bind specific Sprite\r\n * properties to [[DataItem]].\r\n *\r\n * For example: `fill` property can be bound to `myCustomColor` field in\r\n * DataItem. The Sprite will automatically get the value for `fill` from its\r\n * DataItem.\r\n *\r\n * SpriteState-specific binding will override binding set directly on\r\n * [[Sprite]]. I.e. you can make Sprite use different fill color on hover by\r\n * adding a `fill` binding to a different DataItem key for Sprite's \"hover\"\r\n * state object.\r\n *\r\n * @see {@link Sprite}\r\n */\r\n _this.propertyFields = {};\r\n //public propertyFields: Dictionary<keyof this[\"_properties\"], string> = new Dictionary<keyof this[\"_properties\"], string>();;\r\n /**\r\n * A list of [[Filter]] elements to be applied to the relative [[Sprite]]\r\n * when switching to this State.\r\n *\r\n * @param {List}\r\n */\r\n _this.filters = new List();\r\n /**\r\n * Identifies if this object is a \"template\" and should not be treated as\r\n * real object that is drawn or actually used in the chart.\r\n */\r\n _this.isTemplate = false;\r\n _this.className = \"SpriteState\";\r\n // Make filter list disposable\r\n _this._disposers.push(new ListDisposer(_this.filters));\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(SpriteState.prototype, \"adapter\", {\r\n /**\r\n * Holds Adapter.\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._adapterO) {\r\n this._adapterO = new Adapter(this);\r\n // Decorate adapter with events so that we can apply its settings whenever\r\n // it is modified\r\n this._adapterO.events.on(\"inserted\", function (ev) {\r\n _this[ev.newValue.key] = _this[ev.newValue.key];\r\n }, undefined, false);\r\n this._adapterO.events.on(\"removed\", function (ev) {\r\n _this[ev.newValue.key] = _this[ev.newValue.key];\r\n }, undefined, false);\r\n }\r\n return this._adapterO;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns [[Sprite]] element's property value.\r\n *\r\n * Will check if there are any bindings with [[DataItem]] and if there are\r\n * any method callbacks set up for the specific property.\r\n *\r\n * @param propertyName Property name\r\n * @return Property value\r\n */\r\n SpriteState.prototype.getPropertyValue = function (propertyName) {\r\n var propValue = this.properties[propertyName];\r\n var sprite = this.sprite;\r\n if (sprite) {\r\n var fieldName = this.propertyFields[propertyName];\r\n if ($type.hasValue(fieldName)) {\r\n if (sprite.dataItem) {\r\n propValue = sprite.dataItem.dataContext[fieldName];\r\n }\r\n if (propValue == undefined) {\r\n propValue = \"__unset\";\r\n }\r\n }\r\n // Apply adapters\r\n // If the value itself is undefined, we're going to pass in Sprite's\r\n // value to adapters\r\n // @todo get rid of <any>\r\n if (!$type.hasValue(propValue)) {\r\n var spriteValue = sprite.getPropertyValue(propertyName);\r\n if (this._adapterO) {\r\n propValue = this._adapterO.apply(propertyName, spriteValue);\r\n }\r\n else {\r\n propValue = spriteValue;\r\n }\r\n if (propValue == spriteValue) {\r\n propValue = undefined;\r\n }\r\n }\r\n else {\r\n if (this._adapterO) {\r\n propValue = this._adapterO.apply(propertyName, propValue);\r\n }\r\n }\r\n /*let method = this.propertyMethods.getKey(propertyName);\r\n if (method) {\r\n propValue = method(sprite, propertyName);\r\n }*/\r\n }\r\n return propValue;\r\n };\r\n /**\r\n * Copies all property and style values from another [[SpriteState]] object.\r\n *\r\n * @param source Source [[SpriteState]]\r\n */\r\n SpriteState.prototype.copyFrom = function (source) {\r\n if (source && source != this) {\r\n this.transitionDuration = source.transitionDuration;\r\n this.transitionEasing = source.transitionEasing;\r\n $utils.copyProperties(source.properties, this.properties);\r\n $utils.copyProperties(source.propertyFields, this.propertyFields);\r\n this.filters.copyFrom(source.filters);\r\n if (source._adapterO) {\r\n this.adapter.copyFrom(source._adapterO);\r\n }\r\n }\r\n };\r\n Object.defineProperty(SpriteState.prototype, \"allValues\", {\r\n /**\r\n * Returns all values that should be applied by the SpriteState.\r\n *\r\n * It takes adapters into account.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Properties\r\n * @todo Add adapter values\r\n * @todo proper type this[\"_properties\"]\r\n */\r\n get: function () {\r\n var _this = this;\r\n // Init return value\r\n var res = {};\r\n // Apply adapters to all values\r\n $object.each(this.properties, function (prop, value) {\r\n res[prop] = _this.getPropertyValue(prop);\r\n });\r\n // Cycle through all adapters and add values for missing properties\r\n if (this._adapterO) {\r\n var keys = this._adapterO.keys();\r\n $object.each(keys, function (_x, prop) {\r\n var value = _this.getPropertyValue(prop);\r\n res[prop] = value;\r\n });\r\n }\r\n // Cycle through all property fileds and add values for missing properties\r\n var propertyFields = this.propertyFields;\r\n $object.each(propertyFields, function (prop) {\r\n var value = _this.getPropertyValue(prop);\r\n res[prop] = value;\r\n });\r\n return res;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Resets the State to initial state - no values or Filters applied.\r\n */\r\n SpriteState.prototype.reset = function () {\r\n this.properties = {};\r\n this.filters.clear();\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n SpriteState.prototype.processConfig = function (config) {\r\n if ($type.hasValue(config) && $type.hasValue(config[\"properties\"])) {\r\n $object.each(config[\"properties\"], function (key, value) {\r\n if ($type.isString(value)) {\r\n if (value.match(/^[0-9.\\-]+\\%$/)) {\r\n config[\"properties\"][key] = percent($type.toNumber(value));\r\n }\r\n else if (value.match(/^\\#[0-9abcdef]{3,}$/i)) {\r\n config[\"properties\"][key] = toColor(value);\r\n }\r\n }\r\n });\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Adds easing functions to \"function\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as function?\r\n */\r\n SpriteState.prototype.asFunction = function (field) {\r\n return field == \"transitionEasing\" || _super.prototype.asIs.call(this, field);\r\n };\r\n return SpriteState;\r\n}(BaseObject));\r\nexport { SpriteState };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SpriteState\"] = SpriteState;\r\n//# sourceMappingURL=SpriteState.js.map","/**\r\n * Data Loader is responsible for loading and parsing external data\r\n */\r\nimport { CSVParser } from \"./CSVParser\";\r\nimport { JSONParser } from \"./JSONParser\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport * as $net from \"../utils/Net\";\r\nimport * as $array from \"../utils/Array\";\r\n;\r\n/**\r\n * Data Loader is responsible for loading and parsing external data.\r\n *\r\n * There is just one instance of DataLoader per system. Unless you have a\r\n * speicific reason, do not instantiate additional instances.\r\n *\r\n * The global instance of Data Loader is accessible via:\r\n *\r\n * ```TypeScript\r\n * am4core.dataLoader;\r\n * ```\r\n * ```JavaScript\r\n * am4core.dataLoader;\r\n * ```\r\n *\r\n * A loading of specific data source is done via [[DataSource]].\r\n *\r\n Please refer to [[DataSource]] for information how to use it.\r\n *\r\n * @see {@link IDataLoaderAdapters} for a list of available Adapters\r\n */\r\nvar DataLoader = /** @class */ (function () {\r\n function DataLoader() {\r\n /**\r\n * Adapter.\r\n */\r\n this.adapter = new Adapter(this);\r\n }\r\n /**\r\n * Loads a supplied [[DataSource]] or an array of data sources, then calls\r\n * their respective `parse` methods.\r\n *\r\n * @param source A single data source or an array of multiple of data sources\r\n */\r\n DataLoader.prototype.load = function (source) {\r\n var sources = Array.isArray(source) ? source : [source];\r\n // Add each Source to the list to be loaded simultaneously\r\n var promises = $array.map(sources, function (x) {\r\n // Dispatch events\r\n x.dispatchImmediately(\"started\");\r\n x.dispatchImmediately(\"loadstarted\");\r\n return $net.load(x.url, x, x.requestOptions);\r\n });\r\n // Run all promises in parallel\r\n Promise.all(promises).then(function (res) {\r\n // Process each loaded source\r\n $array.each(res, function (result) {\r\n // Get Source\r\n var source = result.target;\r\n // Dispatch events\r\n source.dispatchImmediately(\"loadended\");\r\n if (result.error) {\r\n if (source.events.isEnabled(\"error\")) {\r\n source.events.dispatchImmediately(\"error\", {\r\n type: \"error\",\r\n code: result.xhr.status,\r\n message: source.language.translate(\"Unable to load file: %1\", null, source.url),\r\n target: source\r\n });\r\n }\r\n }\r\n else {\r\n // Initiate parsing of the loaded data\r\n source.processData(result.response, result.type);\r\n }\r\n source.dispatchImmediately(\"ended\");\r\n });\r\n }).catch(function (res) {\r\n if (res.target) {\r\n res.target.dispatchImmediately(\"loadended\");\r\n if (res.target.events.isEnabled(\"error\")) {\r\n res.target.events.dispatchImmediately(\"error\", {\r\n type: \"error\",\r\n code: res.xhr.status,\r\n message: res.target.language.translate(\"Unable to load file: %1\", null, res.target.url),\r\n target: res.target\r\n });\r\n }\r\n res.target.dispatchImmediately(\"ended\");\r\n }\r\n });\r\n };\r\n /**\r\n * Instantiates a [[DataParser]] object based on the data type.\r\n * Built-in parser types are as follows:\r\n *\r\n * * \"csv\" or \"text/csv\"\r\n * * \"json\" or \"application/json\"\r\n *\r\n * @param contentType A format type\r\n * @return A parser object\r\n */\r\n DataLoader.prototype.getParserByType = function (contentType) {\r\n // Let some plugin decide\r\n var parser = this.adapter.apply(\"getParserByType\", {\r\n parser: null,\r\n type: contentType\r\n }).parser;\r\n if (parser) {\r\n return parser;\r\n }\r\n if (contentType == \"csv\" || contentType == \"text/csv\" || contentType == \"application/vnd.ms-excel\") {\r\n return new CSVParser();\r\n }\r\n if (contentType == \"json\" || contentType == \"application/json\") {\r\n return new JSONParser();\r\n }\r\n return;\r\n };\r\n /**\r\n * Tries to determine a parser out of content type and/or actual data.\r\n *\r\n * @param data Data\r\n * @param contentType Content-type\r\n * @return Parser instance\r\n */\r\n DataLoader.prototype.getParserByData = function (data, contentType) {\r\n // Let some plugin decide\r\n var parser = this.adapter.apply(\"getParserByData\", {\r\n parser: null,\r\n data: data,\r\n type: contentType\r\n }).parser;\r\n // Check if we have parser from outside code\r\n if (!parser) {\r\n // No, let's try to figure it out\r\n parser = this.getParserByType(contentType);\r\n if (parser) {\r\n // We're able to figure out parser by content-type\r\n return parser;\r\n }\r\n else if (JSONParser.isJSON(data)) {\r\n return this.getParserByType(\"json\");\r\n }\r\n else if (CSVParser.isCSV(data)) {\r\n return this.getParserByType(\"csv\");\r\n }\r\n }\r\n return parser;\r\n };\r\n return DataLoader;\r\n}());\r\nexport { DataLoader };\r\n/**\r\n * Create instance of Data Loader\r\n */\r\nexport var dataLoader = new DataLoader();\r\n//# sourceMappingURL=DataLoader.js.map","/**\r\n * Polyspline (smoothed line) module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Polyline } from \"./Polyline\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a polysline. (smoothed multi-sigment line)\r\n *\r\n * @see {@link IPolysplineEvents} for a list of available events\r\n * @see {@link IPolysplineAdapters} for a list of available Adapters\r\n */\r\nvar Polyspline = /** @class */ (function (_super) {\r\n __extends(Polyspline, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Polyspline() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Polyspline\";\r\n _this.tensionX = 0.5;\r\n _this.tensionY = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creats and adds an SVG path for the arc.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Polyspline.prototype.makePath = function () {\r\n this._distance = 0;\r\n var segments = this.segments;\r\n var tensionX = this.tensionX;\r\n var tensionY = this.tensionY;\r\n this.allPoints = [];\r\n if (segments && segments.length > 0) {\r\n var path = \"\";\r\n this._realSegments = [];\r\n for (var i = 0, len = segments.length; i < len; i++) {\r\n var points = segments[i];\r\n var realPoints = [];\r\n this._realSegments.push(realPoints);\r\n if (points.length > 0) {\r\n var first = points[0];\r\n var last = points[points.length - 1];\r\n var closed_1 = false;\r\n if ($math.round(first.x, 3) == $math.round(last.x) && $math.round(first.y) == $math.round(last.y)) {\r\n closed_1 = true;\r\n }\r\n path += $path.moveTo(points[0]);\r\n for (var p = 0; p < points.length - 1; p++) {\r\n var p0 = points[p - 1];\r\n var p1 = points[p];\r\n var p2 = points[p + 1];\r\n var p3 = points[p + 2];\r\n if (p === 0) {\r\n p0 = points[p];\r\n }\r\n else if (p == points.length - 2) {\r\n p3 = points[p + 1];\r\n }\r\n if (!p3) {\r\n p3 = p2;\r\n }\r\n if (p === 0) {\r\n if (closed_1) {\r\n p0 = points[points.length - 2];\r\n }\r\n else {\r\n p0 = points[i];\r\n }\r\n }\r\n else if (p == points.length - 2) {\r\n if (closed_1) {\r\n p3 = points[1];\r\n }\r\n else {\r\n p3 = points[p + 1];\r\n }\r\n }\r\n var controlPointA = $math.getCubicControlPointA(p0, p1, p2, p3, tensionX, tensionY);\r\n var controlPointB = $math.getCubicControlPointB(p0, p1, p2, p3, tensionX, tensionY);\r\n path += $path.cubicCurveTo(p2, controlPointA, controlPointB);\r\n // now split to small segments so that we could have positionToPoint later\r\n var stepCount = Math.ceil($math.getCubicCurveDistance(p1, p2, controlPointA, controlPointB, 20)) * 1.2;\r\n var prevPoint = p1;\r\n if (stepCount > 0) {\r\n // not good for curved charts\r\n //this.allPoints[0] = { x: points[0].x, y: points[0].y, angle: $math.getAngle(points[0], points[1]) };\r\n //realPoints.push(this.allPoints[0]);\r\n for (var s = 0; s <= stepCount; s++) {\r\n var point = $math.getPointOnCubicCurve(p1, p2, controlPointA, controlPointB, s / stepCount);\r\n if (point.x == prevPoint.x && point.y == prevPoint.y) {\r\n continue;\r\n }\r\n realPoints.push(point);\r\n var angle = $math.round($math.getAngle(prevPoint, point), 5);\r\n //this.allPoints.push({ x: point.x, y: point.y, angle: angle });\r\n this._distance += $math.getDistance(prevPoint, point);\r\n this.allPoints[Math.floor(this._distance)] = { x: point.x, y: point.y, angle: angle };\r\n prevPoint = point;\r\n }\r\n }\r\n else {\r\n realPoints.push(p0);\r\n }\r\n }\r\n }\r\n var allPoints = this.allPoints;\r\n if (allPoints.length > 1) {\r\n for (var i_1 = 0; i_1 < allPoints.length; i_1++) {\r\n if (!allPoints[i_1]) {\r\n if (i_1 > 1) {\r\n allPoints[i_1] = allPoints[i_1 - 1];\r\n }\r\n else {\r\n for (var k = 1; k < allPoints.length; k++) {\r\n if (allPoints[k]) {\r\n allPoints[i_1] = allPoints[k];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.path = path;\r\n }\r\n };\r\n /**\r\n * Returns an index of the point that is closest to specified coordinates.\r\n *\r\n * @param point Reference point\r\n * @return Index\r\n */\r\n Polyspline.prototype.getClosestPointIndex = function (point) {\r\n var points = this.allPoints;\r\n var index;\r\n var closest = Infinity;\r\n if (points.length > 1) {\r\n for (var p = 1; p < points.length; p++) {\r\n var distance = $math.getDistance(point, points[p]);\r\n if (distance < closest) {\r\n index = p;\r\n closest = distance;\r\n }\r\n }\r\n }\r\n return index;\r\n };\r\n Object.defineProperty(Polyspline.prototype, \"tensionX\", {\r\n /**\r\n * @return Tension\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tensionX\");\r\n },\r\n /**\r\n * Horizontal tension for the spline.\r\n *\r\n * Used by the line smoothing algorithm.\r\n *\r\n * @default 0.5\r\n * @param value Tension\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tensionX\", value);\r\n this.makePath();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Polyspline.prototype, \"tensionY\", {\r\n /**\r\n * @return Tension\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tensionY\");\r\n },\r\n /**\r\n * Vertical tension for the spline.\r\n *\r\n * Used by the line smoothing algorithm.\r\n *\r\n * @default 0.5\r\n * @param value Tensions\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tensionY\", value, true);\r\n this.makePath();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position along the line (0-1) into pixel coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @return Coordinates\r\n */\r\n Polyspline.prototype.positionToPoint = function (position, extend) {\r\n var deltaAngle = 0;\r\n var allPoints = this.allPoints;\r\n var len = allPoints.length;\r\n if (!$type.isNumber(position)) {\r\n position = 0;\r\n }\r\n if (len > 1) {\r\n if (extend && len > 3) {\r\n if (position < 0) {\r\n if (position < -0.01) {\r\n position = -0.01;\r\n }\r\n var f0 = allPoints[0];\r\n var f1 = allPoints[1];\r\n var x = f0.x - (f0.x - f1.x) * len * position;\r\n var y = f0.y - (f0.y - f1.y) * len * position;\r\n return { x: x, y: y, angle: $math.getAngle(f0, f1) };\r\n }\r\n else if (position > 1) {\r\n if (position > 1.01) {\r\n position = 1.01;\r\n }\r\n var f0 = allPoints[allPoints.length - 2];\r\n var f1 = allPoints[allPoints.length - 3];\r\n var x = f0.x + (f0.x - f1.x) * len * (position - 1);\r\n var y = f0.y + (f0.y - f1.y) * len * (position - 1);\r\n return { x: x, y: y, angle: $math.getAngle(f0, { x: x, y: y }) };\r\n }\r\n else if (position == 1) {\r\n var point_1 = allPoints[allPoints.length - 1];\r\n return { x: point_1.x, y: point_1.y, angle: point_1.angle };\r\n }\r\n }\r\n else {\r\n if (position < 0) {\r\n position = Math.abs(position);\r\n deltaAngle = 180;\r\n }\r\n if (position >= 1) {\r\n position = 0.9999999999999;\r\n }\r\n }\r\n var point = allPoints[Math.floor(position * len)];\r\n return { x: point.x, y: point.y, angle: point.angle + deltaAngle };\r\n }\r\n else if (len == 1) {\r\n var point = allPoints[0];\r\n return { x: point.x, y: point.y, angle: point.angle };\r\n }\r\n else {\r\n return { x: 0, y: 0, angle: 0 };\r\n }\r\n };\r\n return Polyspline;\r\n}(Polyline));\r\nexport { Polyspline };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polyspline\"] = Polyspline;\r\n//# sourceMappingURL=Polyspline.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LinearGradient } from \"./LinearGradient\";\r\nimport { GradientModifier } from \"./GradientModifier\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify linear gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"LinearGradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar LinearGradientModifier = /** @class */ (function (_super) {\r\n __extends(LinearGradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function LinearGradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LinearGradientModifier\";\r\n _this.gradient = new LinearGradient();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n LinearGradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.gradient = source.gradient.clone();\r\n };\r\n return LinearGradientModifier;\r\n}(GradientModifier));\r\nexport { LinearGradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinearGradientModifier\"] = LinearGradientModifier;\r\n//# sourceMappingURL=LinearGradientModifier.js.map","/**\r\n * Module for \"Desaturate\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creats a \"Desaturate\" filter\r\n */\r\nvar DesaturateFilter = /** @class */ (function (_super) {\r\n __extends(DesaturateFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DesaturateFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DesaturateFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"saturate\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.width = 120;\r\n _this.height = 120;\r\n _this.saturation = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DesaturateFilter.prototype, \"saturation\", {\r\n /**\r\n * @return Saturation (0-1)\r\n */\r\n get: function () {\r\n return this.properties[\"saturation\"];\r\n },\r\n /**\r\n * Saturation.\r\n *\r\n * 0 - completely desaturated.\r\n * 1 - fully saturated (gray).\r\n *\r\n * @param value Saturation (0-1)\r\n */\r\n set: function (value) {\r\n this.properties[\"saturation\"] = value;\r\n this.feColorMatrix.attr({ \"values\": value.toString() });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DesaturateFilter;\r\n}(Filter));\r\nexport { DesaturateFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DesaturateFilter\"] = DesaturateFilter;\r\n//# sourceMappingURL=DesaturateFilter.js.map","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\n\nexport function saveRef(name, component) {\n this[name] = component;\n}","import contains from 'rc-util/es/Dom/contains';\n\nexport function buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\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}\n\nexport function isWindow(obj) {\n return obj && typeof obj === 'object' && obj.window === obj;\n}\n\nexport function isSimilarValue(val1, val2) {\n var int1 = Math.floor(val1);\n var int2 = Math.floor(val2);\n return Math.abs(int1 - int2) <= 1;\n}\n\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement)) {\n activeElement.focus();\n }\n}","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\n\nimport { isWindow, buffer, isSamePoint, isSimilarValue, restoreFocus } from './util';\n\nfunction getElement(func) {\n if (typeof func !== 'function' || !func) 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 (_Component) {\n _inherits(Align, _Component);\n\n function Align() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Align);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Align.__proto__ || Object.getPrototypeOf(Align)).call.apply(_ref, [this].concat(args))), _this), _this.forceAlign = function () {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n target = _this$props.target,\n align = _this$props.align,\n onAlign = _this$props.onAlign;\n\n if (!disabled && target) {\n var source = ReactDOM.findDOMNode(_this);\n\n var result = void 0;\n var element = getElement(target);\n var point = getPoint(target);\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var activeElement = document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (onAlign) {\n onAlign(source, result);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Align, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var props = this.props;\n // if parent ref not attached .... use document.getElementById\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n\n if (!props.disabled) {\n var source = ReactDOM.findDOMNode(this);\n var sourceRect = source ? source.getBoundingClientRect() : null;\n\n if (prevProps.disabled) {\n reAlign = true;\n } else {\n var lastElement = getElement(prevProps.target);\n var currentElement = getElement(props.target);\n var lastPoint = getPoint(prevProps.target);\n var currentPoint = getPoint(props.target);\n\n if (isWindow(lastElement) && isWindow(currentElement)) {\n // Skip if is window\n reAlign = false;\n } else if (lastElement !== currentElement || // Element change\n lastElement && !currentElement && currentPoint || // Change from element to point\n lastPoint && currentPoint && currentElement || // Change from point to element\n currentPoint && !isSamePoint(lastPoint, currentPoint)) {\n reAlign = true;\n }\n\n // If source element size changed\n var preRect = this.sourceRect || {};\n if (!reAlign && source && (!isSimilarValue(preRect.width, sourceRect.width) || !isSimilarValue(preRect.height, sourceRect.height))) {\n reAlign = true;\n }\n }\n\n this.sourceRect = sourceRect;\n }\n\n if (reAlign) {\n this.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n }\n }, {\n key: 'startMonitorWindowResize',\n value: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n }\n }, {\n key: 'stopMonitorWindowResize',\n value: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n childrenProps = _props.childrenProps,\n children = _props.children;\n\n var child = React.Children.only(children);\n if (childrenProps) {\n var newProps = {};\n var propList = Object.keys(childrenProps);\n propList.forEach(function (prop) {\n newProps[prop] = _this2.props[childrenProps[prop]];\n });\n\n return React.cloneElement(child, newProps);\n }\n return child;\n }\n }]);\n\n return Align;\n}(Component);\n\nAlign.propTypes = {\n childrenProps: PropTypes.object,\n align: PropTypes.object.isRequired,\n target: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n clientX: PropTypes.number,\n clientY: PropTypes.number,\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })]),\n onAlign: PropTypes.func,\n monitorBufferTime: PropTypes.number,\n monitorWindowResize: PropTypes.bool,\n disabled: PropTypes.bool,\n children: PropTypes.any\n};\nAlign.defaultProps = {\n target: function target() {\n return window;\n },\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n};\n\n\nexport default Align;","// export this package's api\nimport Align from './Align';\n\nexport default Align;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nvar LazyRenderBox = function (_Component) {\n _inherits(LazyRenderBox, _Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n LazyRenderBox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n };\n\n LazyRenderBox.prototype.render = function render() {\n var _props = this.props,\n hiddenClassName = _props.hiddenClassName,\n visible = _props.visible,\n props = _objectWithoutProperties(_props, ['hiddenClassName', 'visible']);\n\n if (hiddenClassName || React.Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += ' ' + hiddenClassName;\n }\n return React.createElement('div', props);\n }\n\n return React.Children.only(props.children);\n };\n\n return LazyRenderBox;\n}(Component);\n\nLazyRenderBox.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string\n};\n\n\nexport default LazyRenderBox;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport LazyRenderBox from './LazyRenderBox';\n\nvar PopupInner = function (_Component) {\n _inherits(PopupInner, _Component);\n\n function PopupInner() {\n _classCallCheck(this, PopupInner);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n PopupInner.prototype.render = function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return React.createElement(\n 'div',\n {\n className: className,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.onTouchStart,\n style: props.style\n },\n React.createElement(\n LazyRenderBox,\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n };\n\n return PopupInner;\n}(Component);\n\nPopupInner.propTypes = {\n hiddenClassName: PropTypes.string,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n children: PropTypes.any\n};\n\n\nexport default PopupInner;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Align from 'rc-align';\nimport Animate from 'rc-animate';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport { saveRef } from './utils';\n\nvar Popup = function (_Component) {\n _inherits(Popup, _Component);\n\n function Popup(props) {\n _classCallCheck(this, Popup);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n\n _this.savePopupRef = saveRef.bind(_this, 'popupInstance');\n _this.saveAlignRef = saveRef.bind(_this, 'alignInstance');\n return _this;\n }\n\n Popup.prototype.componentDidMount = function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n this.setStretchSize();\n };\n\n Popup.prototype.componentDidUpdate = function componentDidUpdate() {\n this.setStretchSize();\n };\n\n // Record size if stretch needed\n\n\n Popup.prototype.getPopupDomNode = function getPopupDomNode() {\n return ReactDOM.findDOMNode(this.popupInstance);\n };\n\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n\n Popup.prototype.getMaskTransitionName = function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getTransitionName = function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getClassName = function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n };\n\n Popup.prototype.getPopupElement = function getPopupElement() {\n var _this2 = this;\n\n var savePopupRef = this.savePopupRef;\n var _state = this.state,\n stretchChecked = _state.stretchChecked,\n targetHeight = _state.targetHeight,\n targetWidth = _state.targetWidth;\n var _props = this.props,\n align = _props.align,\n visible = _props.visible,\n prefixCls = _props.prefixCls,\n style = _props.style,\n getClassNameFromAlign = _props.getClassNameFromAlign,\n destroyPopupOnHide = _props.destroyPopupOnHide,\n stretch = _props.stretch,\n children = _props.children,\n onMouseEnter = _props.onMouseEnter,\n onMouseLeave = _props.onMouseLeave,\n onMouseDown = _props.onMouseDown,\n onTouchStart = _props.onTouchStart;\n\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n var sizeStyle = {};\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = targetHeight;\n }\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = targetWidth;\n }\n\n // Delay force align to makes ui smooth\n if (!stretchChecked) {\n sizeStyle.visibility = 'hidden';\n setTimeout(function () {\n if (_this2.alignInstance) {\n _this2.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n\n var newStyle = _extends({}, sizeStyle, style, this.getZIndexStyle());\n\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: savePopupRef,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName()\n },\n visible ? React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n visible: true\n }, popupInnerProps),\n children\n )\n ) : null\n );\n }\n\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName(),\n showProp: 'xVisible'\n },\n React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n xVisible: visible,\n childrenProps: { visible: 'xVisible' },\n disabled: !visible,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n hiddenClassName: hiddenClassName\n }, popupInnerProps),\n children\n )\n )\n );\n };\n\n Popup.prototype.getZIndexStyle = function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n };\n\n Popup.prototype.getMaskElement = function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, {\n style: this.getZIndexStyle(),\n key: 'mask',\n className: props.prefixCls + '-mask',\n hiddenClassName: props.prefixCls + '-mask-hidden',\n visible: props.visible\n });\n if (maskTransition) {\n maskElement = React.createElement(\n Animate,\n {\n key: 'mask',\n showProp: 'visible',\n transitionAppear: true,\n component: '',\n transitionName: maskTransition\n },\n maskElement\n );\n }\n }\n return maskElement;\n };\n\n Popup.prototype.render = function render() {\n return React.createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n };\n\n return Popup;\n}(Component);\n\nPopup.propTypes = {\n visible: PropTypes.bool,\n style: PropTypes.object,\n getClassNameFromAlign: PropTypes.func,\n onAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n stretch: PropTypes.string,\n children: PropTypes.node,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this.onAlign = function (popupDomNode, align) {\n var props = _this3.props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (_this3.currentAlignClassName !== currentAlignClassName) {\n _this3.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = _this3.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n };\n\n this.setStretchSize = function () {\n var _props2 = _this3.props,\n stretch = _props2.stretch,\n getRootDomNode = _props2.getRootDomNode,\n visible = _props2.visible;\n var _state2 = _this3.state,\n stretchChecked = _state2.stretchChecked,\n targetHeight = _state2.targetHeight,\n targetWidth = _state2.targetWidth;\n\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n _this3.setState({ stretchChecked: false });\n }\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n _this3.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n };\n\n this.getTargetElement = function () {\n return _this3.props.getRootDomNode();\n };\n\n this.getAlignTarget = function () {\n var point = _this3.props.point;\n\n if (point) {\n return point;\n }\n return _this3.getTargetElement;\n };\n};\n\nexport default Popup;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode, createPortal } from 'react-dom';\nimport { polyfill } from 'react-lifecycles-compat';\nimport contains from 'rc-util/es/Dom/contains';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport ContainerRender from 'rc-util/es/ContainerRender';\nimport Portal from 'rc-util/es/Portal';\nimport classNames from 'classnames';\n\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils';\nimport Popup from './Popup';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\nvar IS_REACT_16 = !!createPortal;\n\nvar contextTypes = {\n rcTrigger: PropTypes.shape({\n onPopupMouseDown: PropTypes.func\n })\n};\n\nvar Trigger = function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n function Trigger(props) {\n _classCallCheck(this, Trigger);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n var popupVisible = void 0;\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\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n Trigger.prototype.getChildContext = function getChildContext() {\n return {\n rcTrigger: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n };\n };\n\n Trigger.prototype.componentDidMount = function componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible\n });\n };\n\n Trigger.prototype.componentDidUpdate = function componentDidUpdate(_, prevState) {\n var props = this.props;\n var state = this.state;\n var triggerAfterPopupVisibleChange = function triggerAfterPopupVisibleChange() {\n if (prevState.popupVisible !== state.popupVisible) {\n props.afterPopupVisibleChange(state.popupVisible);\n }\n };\n if (!IS_REACT_16) {\n this.renderComponent(null, triggerAfterPopupVisibleChange);\n }\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.popupVisible) {\n var currentDocument = void 0;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n }\n // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n }\n // close popup when trigger type contains 'onContextMenu' and window is blur.\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n return;\n }\n\n this.clearOutsideHandler();\n };\n\n Trigger.prototype.componentWillUnmount = function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n };\n\n Trigger.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n\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 Trigger.prototype.getPopupDomNode = function getPopupDomNode() {\n // for test\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n };\n\n Trigger.prototype.getPopupAlign = function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n };\n\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n Trigger.prototype.setPopupVisible = function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n\n\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({ popupVisible: popupVisible, prevPopupVisible: prevPopupVisible });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n\n // Always record the point position since mouseEnterDelay will delay the show\n if (alignPoint && event) {\n this.setPoint(event);\n }\n };\n\n Trigger.prototype.delaySetPopupVisible = function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n var point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n this.delayTimer = setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n };\n\n Trigger.prototype.clearDelayTimer = function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n };\n\n Trigger.prototype.clearOutsideHandler = function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n };\n\n Trigger.prototype.createTwoChains = function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n if (childPros[event] && props[event]) {\n return this['fire' + event];\n }\n return childPros[event] || props[event];\n };\n\n Trigger.prototype.isClickToShow = function isClickToShow() {\n var _props = this.props,\n action = _props.action,\n showAction = _props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isContextMenuToShow = function isContextMenuToShow() {\n var _props2 = this.props,\n action = _props2.action,\n showAction = _props2.showAction;\n\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n };\n\n Trigger.prototype.isClickToHide = function isClickToHide() {\n var _props3 = this.props,\n action = _props3.action,\n hideAction = _props3.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isMouseEnterToShow = function isMouseEnterToShow() {\n var _props4 = this.props,\n action = _props4.action,\n showAction = _props4.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n };\n\n Trigger.prototype.isMouseLeaveToHide = function isMouseLeaveToHide() {\n var _props5 = this.props,\n action = _props5.action,\n hideAction = _props5.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n };\n\n Trigger.prototype.isFocusToShow = function isFocusToShow() {\n var _props6 = this.props,\n action = _props6.action,\n showAction = _props6.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n };\n\n Trigger.prototype.isBlurToHide = function isBlurToHide() {\n var _props7 = this.props,\n action = _props7.action,\n hideAction = _props7.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n };\n\n Trigger.prototype.forcePopupAlign = function forcePopupAlign() {\n if (this.state.popupVisible && this._component && this._component.alignInstance) {\n this._component.alignInstance.forceAlign();\n }\n };\n\n Trigger.prototype.fireEvents = function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n var callback = this.props[type];\n if (callback) {\n callback(e);\n }\n };\n\n Trigger.prototype.close = function close() {\n this.setPopupVisible(false);\n };\n\n Trigger.prototype.render = function render() {\n var _this3 = this;\n\n var popupVisible = this.state.popupVisible;\n var _props8 = this.props,\n children = _props8.children,\n forceRender = _props8.forceRender,\n alignPoint = _props8.alignPoint,\n className = _props8.className;\n\n var child = React.Children.only(children);\n var newChildProps = { key: 'trigger' };\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n 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 }\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n var trigger = React.cloneElement(child, newChildProps);\n\n if (!IS_REACT_16) {\n return React.createElement(\n ContainerRender,\n {\n parent: this,\n visible: popupVisible,\n autoMount: false,\n forceRender: forceRender,\n getComponent: this.getComponent,\n getContainer: this.getContainer\n },\n function (_ref2) {\n var renderComponent = _ref2.renderComponent;\n\n _this3.renderComponent = renderComponent;\n return trigger;\n }\n );\n }\n\n var portal = void 0;\n // prevent unmounting after it's rendered\n if (popupVisible || this._component || forceRender) {\n portal = React.createElement(\n Portal,\n { key: 'portal', getContainer: this.getContainer, didUpdate: this.handlePortalUpdate },\n this.getComponent()\n );\n }\n\n return [trigger, portal];\n };\n\n return Trigger;\n}(React.Component);\n\nTrigger.propTypes = {\n children: PropTypes.any,\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n showAction: PropTypes.any,\n hideAction: PropTypes.any,\n getPopupClassNameFromAlign: PropTypes.any,\n onPopupVisibleChange: PropTypes.func,\n afterPopupVisibleChange: PropTypes.func,\n popup: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n popupStyle: PropTypes.object,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n className: PropTypes.string,\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number,\n blurDelay: PropTypes.number,\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func,\n forceRender: PropTypes.bool,\n destroyPopupOnHide: PropTypes.bool,\n mask: PropTypes.bool,\n maskClosable: PropTypes.bool,\n onPopupAlign: PropTypes.func,\n popupAlign: PropTypes.object,\n popupVisible: PropTypes.bool,\n defaultPopupVisible: PropTypes.bool,\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.bool // Maybe we can support user pass position in the future\n};\nTrigger.contextTypes = contextTypes;\nTrigger.childContextTypes = contextTypes;\nTrigger.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};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this4 = this;\n\n this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this4.props.mouseEnterDelay;\n\n _this4.fireEvents('onMouseEnter', e);\n _this4.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n this.onMouseMove = function (e) {\n _this4.fireEvents('onMouseMove', e);\n _this4.setPoint(e);\n };\n\n this.onMouseLeave = function (e) {\n _this4.fireEvents('onMouseLeave', e);\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onPopupMouseEnter = function () {\n _this4.clearDelayTimer();\n };\n\n this.onPopupMouseLeave = function (e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && _this4._component && _this4._component.getPopupDomNode && contains(_this4._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onFocus = function (e) {\n _this4.fireEvents('onFocus', e);\n // incase focusin and focusout\n _this4.clearDelayTimer();\n if (_this4.isFocusToShow()) {\n _this4.focusTime = Date.now();\n _this4.delaySetPopupVisible(true, _this4.props.focusDelay);\n }\n };\n\n this.onMouseDown = function (e) {\n _this4.fireEvents('onMouseDown', e);\n _this4.preClickTime = Date.now();\n };\n\n this.onTouchStart = function (e) {\n _this4.fireEvents('onTouchStart', e);\n _this4.preTouchTime = Date.now();\n };\n\n this.onBlur = function (e) {\n _this4.fireEvents('onBlur', e);\n _this4.clearDelayTimer();\n if (_this4.isBlurToHide()) {\n _this4.delaySetPopupVisible(false, _this4.props.blurDelay);\n }\n };\n\n this.onContextMenu = function (e) {\n e.preventDefault();\n _this4.fireEvents('onContextMenu', e);\n _this4.setPopupVisible(true, e);\n };\n\n this.onContextMenuClose = function () {\n if (_this4.isContextMenuToShow()) {\n _this4.close();\n }\n };\n\n this.onClick = function (event) {\n _this4.fireEvents('onClick', event);\n // focus will trigger click\n if (_this4.focusTime) {\n var preTime = void 0;\n if (_this4.preClickTime && _this4.preTouchTime) {\n preTime = Math.min(_this4.preClickTime, _this4.preTouchTime);\n } else if (_this4.preClickTime) {\n preTime = _this4.preClickTime;\n } else if (_this4.preTouchTime) {\n preTime = _this4.preTouchTime;\n }\n if (Math.abs(preTime - _this4.focusTime) < 20) {\n return;\n }\n _this4.focusTime = 0;\n }\n _this4.preClickTime = 0;\n _this4.preTouchTime = 0;\n\n // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n if (_this4.isClickToShow() && (_this4.isClickToHide() || _this4.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n var nextVisible = !_this4.state.popupVisible;\n if (_this4.isClickToHide() && !nextVisible || nextVisible && _this4.isClickToShow()) {\n _this4.setPopupVisible(!_this4.state.popupVisible, event);\n }\n };\n\n this.onPopupMouseDown = function () {\n var _context$rcTrigger = _this4.context.rcTrigger,\n rcTrigger = _context$rcTrigger === undefined ? {} : _context$rcTrigger;\n\n _this4.hasPopupMouseDown = true;\n\n clearTimeout(_this4.mouseDownTimeout);\n _this4.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (rcTrigger.onPopupMouseDown) {\n rcTrigger.onPopupMouseDown.apply(rcTrigger, arguments);\n }\n };\n\n this.onDocumentClick = function (event) {\n if (_this4.props.mask && !_this4.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n var root = findDOMNode(_this4);\n if (!contains(root, target) && !_this4.hasPopupMouseDown) {\n _this4.close();\n }\n };\n\n this.getRootDomNode = function () {\n return findDOMNode(_this4);\n };\n\n this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _props9 = _this4.props,\n popupPlacement = _props9.popupPlacement,\n builtinPlacements = _props9.builtinPlacements,\n prefixCls = _props9.prefixCls,\n alignPoint = _props9.alignPoint,\n getPopupClassNameFromAlign = _props9.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n };\n\n this.getComponent = function () {\n var _props10 = _this4.props,\n prefixCls = _props10.prefixCls,\n destroyPopupOnHide = _props10.destroyPopupOnHide,\n popupClassName = _props10.popupClassName,\n action = _props10.action,\n onPopupAlign = _props10.onPopupAlign,\n popupAnimation = _props10.popupAnimation,\n popupTransitionName = _props10.popupTransitionName,\n popupStyle = _props10.popupStyle,\n mask = _props10.mask,\n maskAnimation = _props10.maskAnimation,\n maskTransitionName = _props10.maskTransitionName,\n zIndex = _props10.zIndex,\n popup = _props10.popup,\n stretch = _props10.stretch,\n alignPoint = _props10.alignPoint;\n var _state = _this4.state,\n popupVisible = _state.popupVisible,\n point = _state.point;\n\n\n var align = _this4.getPopupAlign();\n\n var mouseProps = {};\n if (_this4.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this4.onPopupMouseEnter;\n }\n if (_this4.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this4.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this4.onPopupMouseDown;\n mouseProps.onTouchStart = _this4.onPopupMouseDown;\n\n return React.createElement(\n Popup,\n _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n action: action,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this4.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this4.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n ref: _this4.savePopup\n }),\n typeof popup === 'function' ? popup() : popup\n );\n };\n\n this.getContainer = function () {\n var props = _this4.props;\n\n var popupContainer = document.createElement('div');\n // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(_this4)) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n };\n\n this.setPoint = function (point) {\n var alignPoint = _this4.props.alignPoint;\n\n if (!alignPoint || !point) return;\n\n _this4.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n this.handlePortalUpdate = function () {\n if (_this4.state.prevPopupVisible !== _this4.state.popupVisible) {\n _this4.props.afterPopupVisibleChange(_this4.state.popupVisible);\n }\n };\n\n this.savePopup = function (node) {\n _this4._component = node;\n };\n};\n\npolyfill(Trigger);\n\nexport default Trigger;","import * as $array from \"./Array\";\r\nimport * as $log from \"./Log\";\r\nvar Native = /** @class */ (function () {\r\n function Native() {\r\n var _this = this;\r\n this._targets = [];\r\n this._observer = new ResizeObserver(function (entries) {\r\n $array.each(entries, function (entry) {\r\n $array.each(_this._targets, function (x) {\r\n if (x.target === entry.target) {\r\n x.callback();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n Native.prototype.addTarget = function (target, callback) {\r\n this._observer.observe(target, { box: \"content-box\" });\r\n this._targets.push({ target: target, callback: callback });\r\n };\r\n Native.prototype.removeTarget = function (target) {\r\n this._observer.unobserve(target);\r\n $array.keepIf(this._targets, function (x) {\r\n return x.target !== target;\r\n });\r\n };\r\n return Native;\r\n}());\r\nvar Raf = /** @class */ (function () {\r\n function Raf() {\r\n this._targets = [];\r\n }\r\n Raf.prototype.addTarget = function (target, callback) {\r\n var _this = this;\r\n if (this._targets.length === 0) {\r\n var lastTime_1 = null;\r\n var loop_1 = function () {\r\n var currentTime = Date.now();\r\n if (lastTime_1 === null || currentTime > (lastTime_1 + Raf.delay)) {\r\n lastTime_1 = currentTime;\r\n $array.each(_this._targets, function (x) {\r\n var newSize = x.target.getBoundingClientRect();\r\n if (newSize.width !== x.size.width || newSize.height !== x.size.height) {\r\n x.size = newSize;\r\n x.callback();\r\n }\r\n });\r\n }\r\n _this._timer = requestAnimationFrame(loop_1);\r\n };\r\n this._timer = requestAnimationFrame(loop_1);\r\n }\r\n var size = target.getBoundingClientRect();\r\n this._targets.push({ target: target, callback: callback, size: size });\r\n };\r\n Raf.prototype.removeTarget = function (target) {\r\n $array.keepIf(this._targets, function (x) {\r\n return x.target !== target;\r\n });\r\n if (this._targets.length === 0) {\r\n cancelAnimationFrame(this._timer);\r\n }\r\n };\r\n Raf.delay = 200;\r\n return Raf;\r\n}());\r\nvar observer = null;\r\nfunction makeSensor() {\r\n if (observer === null) {\r\n if (typeof ResizeObserver !== \"undefined\") {\r\n observer = new Native();\r\n }\r\n else {\r\n observer = new Raf();\r\n }\r\n }\r\n return observer;\r\n}\r\nvar ResizeSensor = /** @class */ (function () {\r\n function ResizeSensor(element, callback) {\r\n this._disposed = false;\r\n this._sensor = makeSensor();\r\n this._element = element;\r\n this._sensor.addTarget(element, callback);\r\n }\r\n ResizeSensor.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ResizeSensor.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n this._sensor.removeTarget(this._element);\r\n }\r\n };\r\n Object.defineProperty(ResizeSensor.prototype, \"sensor\", {\r\n get: function () {\r\n return this._sensor;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Deprecated: do not use.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ResizeSensor.prototype.reset = function () {\r\n $log.warn(\"resizeSensor.reset() is no longer needed and can be removed\");\r\n };\r\n return ResizeSensor;\r\n}());\r\nexport { ResizeSensor };\r\n//# sourceMappingURL=ResizeSensor.js.map","/**\r\n * This functionality is related to the HTML wrapper that houses `<svg>` tag.\r\n */\r\nimport { Popup } from \"../elements/Popup\";\r\nimport { Modal } from \"../elements/Modal\";\r\nimport { ListTemplate, ListDisposer } from \"../utils/List\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { ResizeSensor } from \"../utils/ResizeSensor\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A array of all SVG Containers (one SVG container per chart instance).\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport var svgContainers = [];\r\n/**\r\n * A class used to create an HTML wrapper for the SVG contents.\r\n */\r\nvar SVGContainer = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * * Creates an HTML wrapper for SVG\r\n */\r\n function SVGContainer(htmlElement, ghost) {\r\n var _this = this;\r\n /**\r\n * Indicates if this object has already been deleted. Any\r\n * destruction/disposal code should take this into account when deciding\r\n * wheter to run potentially costly disposal operations if they already have\r\n * been run.\r\n */\r\n this._disposed = false;\r\n /**\r\n * If this component is in a separate HTML container, `autoResize` means the\r\n * module will constantly measure container's size and adopt contents to it.\r\n */\r\n this.autoResize = true;\r\n /**\r\n * Holds list of references to [[Sprite]] objects that should not be exported\r\n * when exporting chart to an image.\r\n *\r\n * @ignore\r\n */\r\n this.nonExportableSprites = [];\r\n /**\r\n * List of objects that need to be disposed when this one is disposed.\r\n */\r\n this._disposers = [];\r\n this.cssScale = 1;\r\n // This is needed so that it won't resize while printing, so that way printing works correctly.\r\n this._printing = false;\r\n // Log parent HTML element\r\n this.htmlElement = htmlElement;\r\n if (!ghost) {\r\n this._printing = false;\r\n this.initSensor();\r\n this._disposers.push($dom.addEventListener(window, \"beforeprint\", function () {\r\n _this._printing = true;\r\n }));\r\n this._disposers.push($dom.addEventListener(window, \"afterprint\", function () {\r\n _this._printing = false;\r\n }));\r\n }\r\n // Adds to containers array\r\n svgContainers.push(this);\r\n /**\r\n * Create child div for the container - it will have svg node\r\n * It might seem that this container is not necessay, however having it solves\r\n * a problems with mouse position detection and some other.\r\n */\r\n var svgContainer = document.createElement(\"div\");\r\n var style = svgContainer.style;\r\n style.width = \"100%\";\r\n style.height = \"100%\";\r\n style.position = \"relative\";\r\n htmlElement.appendChild(svgContainer);\r\n this.SVGContainer = svgContainer;\r\n }\r\n /**\r\n * (Re)Initializes a resize sensor.\r\n */\r\n SVGContainer.prototype.initSensor = function () {\r\n var _this = this;\r\n if (this.resizeSensor) {\r\n this.resizeSensor.dispose();\r\n }\r\n var callback = function () {\r\n if (_this.autoResize && !_this._printing) {\r\n _this.measure();\r\n }\r\n };\r\n this.resizeSensor = new ResizeSensor(this.htmlElement, callback);\r\n this._disposers.push(this.resizeSensor);\r\n };\r\n /**\r\n * Measures size of parent HTML element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SVGContainer.prototype.measure = function () {\r\n var width = $utils.width(this.htmlElement);\r\n var height = $utils.height(this.htmlElement);\r\n var container = this.container;\r\n if (container) {\r\n if (this.width != width || this.height != height) {\r\n this.width = width;\r\n this.height = height;\r\n if (width > 0) {\r\n container.maxWidth = width;\r\n }\r\n if (height > 0) {\r\n container.maxHeight = height;\r\n }\r\n $dom.fixPixelPerfect(this.SVGContainer);\r\n }\r\n if (!container.maxWidth) {\r\n container.maxWidth = 0;\r\n }\r\n if (!container.maxHeight) {\r\n container.maxHeight = 0;\r\n }\r\n this.cssScale = 1;\r\n this.checkTransform(this.htmlElement);\r\n }\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"container\", {\r\n /**\r\n * @return Container\r\n */\r\n get: function () {\r\n return this._container;\r\n },\r\n /**\r\n * A [[Container]] element which is placed into container.\r\n *\r\n * @param container Container\r\n */\r\n set: function (container) {\r\n this._container = container;\r\n this.measure();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns if this object has been already been disposed.\r\n *\r\n * @return Is disposed?\r\n */\r\n SVGContainer.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Removes this container from SVG container list in system, which\r\n * effectively disables size change monitoring for it.\r\n */\r\n SVGContainer.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n $array.remove(svgContainers, this);\r\n }\r\n $array.each(this._disposers, function (item) {\r\n item.dispose();\r\n });\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"hideOverflow\", {\r\n /**\r\n * Indicates if chart container should have its style set\r\n * to `overflow: hidden`.\r\n *\r\n * Normally, we don't want that, so that certain elements, such as tooltips,\r\n * would be able to go outside chart area.\r\n *\r\n * There is one issue though. Some browsers ignore SVG masks and would\r\n * display scrollbars if chart elements, that go outside chart area extend\r\n * outside window.\r\n *\r\n * This is especially true for [[MapChart]], which can have its elements\r\n * extend very widely when zoomed in. Even if those parts are not visible\r\n * because of SVG masks, some browsers might still display window scrollbars.\r\n *\r\n * This is why we set this setting to `true` in [[MapChart]].\r\n *\r\n * Other charts use default of `false`.\r\n */\r\n set: function (value) {\r\n if (value) {\r\n this.SVGContainer.style.overflow = \"hidden\";\r\n }\r\n else {\r\n this.SVGContainer.style.overflow = \"\";\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SVGContainer.prototype, \"modal\", {\r\n /**\r\n * ==========================================================================\r\n * MODAL/POPUP RELATED STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * Returns a [[Modal]] instance, associated with this chart.\r\n * (elements top parent)\r\n *\r\n * Accessing modal does not make it appear. To make a modal appear, use\r\n * `showModal()` method.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @return Modal instance\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._modal)) {\r\n // Create new modal\r\n this._modal = new Modal();\r\n this._modal.container = this.SVGContainer;\r\n // Add to disposers\r\n this._disposers.push(this._modal);\r\n }\r\n return this._modal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Opens a modal window with specific content (`text` parameter) and,\r\n * optionally, `title`.\r\n *\r\n * The `text` parameter can contain HTML content.\r\n *\r\n * @see {@link Modal} for more information about using Modal windows\r\n * @param text Modal contents\r\n * @param title Title for the modal window\r\n */\r\n SVGContainer.prototype.openModal = function (text, title) {\r\n // Hide previous modal\r\n this.closeModal();\r\n // Create modal\r\n var modal = this.modal;\r\n modal.content = text;\r\n modal.readerTitle = title || \"\";\r\n modal.title = title || \"\";\r\n modal.open();\r\n return modal;\r\n };\r\n /**\r\n * Hides modal window if there is one currently open.\r\n */\r\n SVGContainer.prototype.closeModal = function () {\r\n if (this._modal) {\r\n this.modal.close();\r\n }\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"popups\", {\r\n /**\r\n * A list of popups for this chart.\r\n *\r\n * @return Popups\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._popups)) {\r\n // Create popup template\r\n var popupTemplate = new Popup();\r\n popupTemplate.container = this.SVGContainer;\r\n // Create the list\r\n this._popups = new ListTemplate(popupTemplate);\r\n // Add to disposers\r\n this._disposers.push(new ListDisposer(this._popups));\r\n this._disposers.push(this._popups.template);\r\n }\r\n return this._popups;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates, opens, and returns a new [[Popup]] window.\r\n *\r\n * `text` can be any valid HTML.\r\n *\r\n * `title` is currently not supported.\r\n *\r\n * @param text Popup contents\r\n * @param title Popup title\r\n * @return Popup instance\r\n */\r\n SVGContainer.prototype.openPopup = function (text, title) {\r\n var popup = this.popups.create();\r\n popup.content = text;\r\n if ($type.hasValue(title)) {\r\n popup.title = title;\r\n }\r\n popup.open();\r\n return popup;\r\n };\r\n /**\r\n * Closes all currently open popup windows\r\n */\r\n SVGContainer.prototype.closeAllPopups = function () {\r\n this.popups.each(function (popup) {\r\n popup.close();\r\n });\r\n };\r\n Object.defineProperty(SVGContainer.prototype, \"readerAlertElement\", {\r\n /**\r\n * ==========================================================================\r\n * ACCESSIBILITY STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * A `<div>` element used as as placeholder to trigger screen alerts.\r\n *\r\n * @sunce 4.9.2\r\n * @return Element\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._readerAlertElement)) {\r\n // Create element\r\n var div = document.createElement(\"div\");\r\n div.setAttribute(\"role\", \"alert\");\r\n div.style.zIndex = \"-100000\";\r\n div.style.opacity = \"0\";\r\n div.style.position = \"absolute\";\r\n div.style.top = \"0\";\r\n this.SVGContainer.appendChild(div);\r\n this._readerAlertElement = div;\r\n }\r\n return this._readerAlertElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Triggers screen reader read out a message.\r\n *\r\n * @since 4.9.2\r\n * @param text Alert text\r\n */\r\n SVGContainer.prototype.readerAlert = function (text) {\r\n this.readerAlertElement.innerHTML = text;\r\n };\r\n /**\r\n * ==========================================================================\r\n * OTHER STUFF\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n SVGContainer.prototype.checkTransform = function (div) {\r\n if (window.getComputedStyle) {\r\n if (div && div.style) {\r\n var style = window.getComputedStyle(div, null);\r\n if (style) {\r\n var matrix = style.getPropertyValue(\"-webkit-transform\") ||\r\n style.getPropertyValue(\"-moz-transform\") ||\r\n style.getPropertyValue(\"-ms-transform\") ||\r\n style.getPropertyValue(\"-o-transform\") ||\r\n style.getPropertyValue(\"transform\");\r\n if (matrix && matrix !== \"none\") {\r\n var values = matrix.split('(')[1].split(')')[0].split(',');\r\n var a = Number(values[0]);\r\n var b = Number(values[1]);\r\n var scale = Math.sqrt(a * a + b * b);\r\n if (!isNaN(scale)) {\r\n this.cssScale *= scale;\r\n }\r\n }\r\n }\r\n }\r\n if (div.parentNode && div.parentNode instanceof HTMLElement) {\r\n this.checkTransform(div.parentNode);\r\n }\r\n }\r\n };\r\n return SVGContainer;\r\n}());\r\nexport { SVGContainer };\r\n//# sourceMappingURL=SVGContainer.js.map","export function getOffsetTop(elem) {\n var offsetTop = 0;\n /* eslint no-cond-assign: 0 */\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop;\n }\n } while (elem = elem.offsetParent);\n return offsetTop;\n}\n\nexport function _event(e) {\n if (e.touches && e.touches.length) {\n return e.touches[0];\n }\n if (e.changedTouches && e.changedTouches.length) {\n return e.changedTouches[0];\n }\n return e;\n}\n\nexport function throttle(fn, delay) {\n var delayFlag = true;\n var firstInvoke = true;\n // console.log('exec once');\n return function _throttle(e) {\n if (delayFlag) {\n delayFlag = false;\n setTimeout(function () {\n delayFlag = true;\n // console.log('exec delay time');\n fn(e);\n }, delay);\n if (firstInvoke) {\n // console.log('first invoke');\n fn(e);\n firstInvoke = false;\n }\n }\n };\n}\n\nexport function setTransform(nodeStyle, value) {\n nodeStyle.transform = value;\n nodeStyle.webkitTransform = value;\n nodeStyle.MozTransform = value;\n}\n\nexport function setTransformOrigin(nodeStyle, value) {\n nodeStyle.transformOrigin = value;\n nodeStyle.webkitTransformOrigin = value;\n nodeStyle.MozTransformOrigin = value;\n}","import React from \"react\";\nimport objectAssign from \"object-assign\";\nconst Iframe = ({ url, allowFullScreen, position, display, height, width, overflow, styles, onLoad, onMouseOver, onMouseOut, scrolling, id, frameBorder, ariaHidden, sandbox, allow, className, title, ariaLabel, ariaLabelledby, name, target, loading, importance, referrerpolicy, allowpaymentrequest, src, key }) => {\n const defaultProps = objectAssign({\n src: src || url,\n target: target || null,\n style: {\n position: position || null,\n display: display || \"initial\",\n overflow: overflow || null\n },\n scrolling: scrolling || null,\n allowpaymentrequest: allowpaymentrequest || null,\n importance: importance || null,\n sandbox: (sandbox && [...sandbox].join(\" \")) || null,\n loading: loading || null,\n styles: styles || null,\n name: name || null,\n className: className || null,\n allowFullScreen: \"allowFullScreen\" || null,\n referrerpolicy: referrerpolicy || null,\n title: title || null,\n allow: allow || null,\n id: id || null,\n \"aria-labelledby\": ariaLabelledby || null,\n \"aria-hidden\": ariaHidden || null,\n \"aria-label\": ariaLabel || null,\n width: width || null,\n height: height || null,\n onLoad: onLoad || null,\n onMouseOver: onMouseOver || null,\n onMouseOut: onMouseOut || null,\n key: key || \"iframe\"\n });\n let props = Object.create(null);\n for (let prop of Object.keys(defaultProps)) {\n if (defaultProps[prop] != null) {\n props[prop] = defaultProps[prop];\n }\n }\n for (let i of Object.keys(props.style)) {\n if (props.style[i] == null) {\n delete props.style[i];\n }\n }\n if (props.styles) {\n for (let key of Object.keys(props.styles)) {\n if (props.styles.hasOwnProperty(key)) {\n props.style[key] = props.styles[key];\n }\n if (Object.keys(props.styles).pop() == key) {\n delete props.styles;\n }\n }\n }\n if (allowFullScreen) {\n if (\"allow\" in props) {\n const currentAllow = props.allow.replace(\"fullscreen\", \"\");\n props.allow = `fullscreen ${currentAllow.trim()}`.trim();\n }\n else {\n props.allow = \"fullscreen\";\n }\n }\n if (frameBorder >= 0) {\n if (!props.style.hasOwnProperty(\"border\")) {\n props.style.border = frameBorder;\n }\n }\n return React.createElement(\"iframe\", Object.assign({}, props));\n};\nexport default Iframe;\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\nexport function createCookieJar() { }\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { createCookieJar, XHR as XMLHttpRequest, } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n if (this.opts.withCredentials) {\n this.cookieJar = createCookieJar();\n }\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var _a;\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, true);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(xhr);\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"./websocket-constructor.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n // @ts-ignore\n if (typeof WebTransport !== \"function\") {\n return;\n }\n // @ts-ignore\n this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n this.transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this.writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this.writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this.writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: Polling,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { defaultBinaryType } from \"./transports/websocket-constructor.js\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\",\n ];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this.upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n this.resetPingTimeout();\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexport const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./transports/websocket-constructor.js\";\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../button/style\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../empty/style\");","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.27.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.27.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/**\r\n * Modal class is used to display information over chart area.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Popup } from \"./Popup\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\n/**\r\n * Shows an HTML modal which covers window or a chart area.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/popups-and-modals/} For examples and docs on Popups and Modals.\r\n */\r\nvar Modal = /** @class */ (function (_super) {\r\n __extends(Modal, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Modal() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n _this.className = \"Modal\";\r\n _this.showCurtain = true;\r\n _this.draggable = false;\r\n return _this;\r\n }\r\n return Modal;\r\n}(Popup));\r\nexport { Modal };\r\n//# sourceMappingURL=Modal.js.map","/**\r\n * Number formatting-related functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { BaseObject } from \"../Base\";\r\nimport { getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * NumberFormatter class. Formats numbers according to specified formats.\r\n *\r\n * @todo Apply translations to suffixes/prefixes\r\n */\r\nvar NumberFormatter = /** @class */ (function (_super) {\r\n __extends(NumberFormatter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function NumberFormatter() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A base value for negative numbers. Will treat all numbers below this value\r\n * as negative numbers.\r\n */\r\n _this._negativeBase = 0;\r\n /**\r\n * Holds number format.\r\n *\r\n * @default #,###.#####\r\n */\r\n _this._numberFormat = \"#,###.#####\";\r\n /**\r\n * Output format to produce. If the format calls for applying color to the\r\n * formatted value, this setting will determine what markup to use: SVG or\r\n * HTML.\r\n *\r\n * Available options: svg, html.\r\n *\r\n * @default \"svg\"\r\n */\r\n _this._outputFormat = \"svg\";\r\n /**\r\n * Any number smaller than this will be considered \"small\" number, which will\r\n * trigger special formatting if \"a\" format modifier is used.\r\n */\r\n _this._smallNumberThreshold = 1.00;\r\n _this._forceLTR = false;\r\n _this.className = \"NumberFormatter\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n NumberFormatter.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n if (this.language) {\r\n this.language.dispose();\r\n }\r\n };\r\n Object.defineProperty(NumberFormatter.prototype, \"language\", {\r\n /**\r\n * @return Language\r\n */\r\n get: function () {\r\n if (!this._language) {\r\n if (this.sprite) {\r\n this._language = this.sprite.language;\r\n }\r\n else {\r\n this._language = new Language;\r\n }\r\n }\r\n return this._language;\r\n },\r\n /**\r\n * A reference to [[Language]] instance.\r\n *\r\n * Formatter will use language to translate various items, like number\r\n * suffixes, etc.\r\n *\r\n * @param value Language\r\n */\r\n set: function (value) {\r\n this._language = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Formats the number according to specific format.\r\n *\r\n * @param value Value to format\r\n * @param format Format to apply\r\n * @return Formatted number\r\n */\r\n NumberFormatter.prototype.format = function (value, format, precision) {\r\n // no format passed in or \"Number\"\r\n if (typeof format === \"undefined\" || ($type.isString(format) && format.toLowerCase() === \"number\")) {\r\n format = this._numberFormat;\r\n }\r\n // Init return value\r\n var formatted;\r\n // Cast to number just in case\r\n // TODO: maybe use better casting\r\n var source = Number(value);\r\n // Is it a built-in format or Intl.NumberFormatOptions\r\n if ($type.isObject(format)) {\r\n try {\r\n if (this.intlLocales) {\r\n return new Intl.NumberFormat(this.intlLocales, format).format(source);\r\n }\r\n else {\r\n return new Intl.NumberFormat(undefined, format).format(source);\r\n }\r\n }\r\n catch (e) {\r\n return \"Invalid\";\r\n }\r\n }\r\n else {\r\n // Clean format\r\n format = $utils.cleanFormat(format);\r\n // Get format info (it will also deal with parser caching)\r\n var info = this.parseFormat(format, this.language);\r\n // format and replace the number\r\n var details = void 0;\r\n if (source > this._negativeBase) {\r\n details = info.positive;\r\n }\r\n else if (source < this._negativeBase) {\r\n details = info.negative;\r\n }\r\n else {\r\n details = info.zero;\r\n }\r\n // Adjust precision\r\n if ($type.hasValue(precision) && !details.mod) {\r\n details = $object.clone(details);\r\n details.decimals.active = source == 0 ? 0 : precision;\r\n }\r\n // Format\r\n formatted = details.template.split($strings.PLACEHOLDER).join(this.applyFormat(source, details));\r\n }\r\n if (this.forceLTR) {\r\n formatted = \"‎\" + formatted;\r\n }\r\n return formatted;\r\n };\r\n /**\r\n * Parses supplied format into structured object which can be used to format\r\n * the number.\r\n *\r\n * @param format Format string, i.e. \"#,###.00\"\r\n * @param language Language\r\n */\r\n NumberFormatter.prototype.parseFormat = function (format, language) {\r\n var _this = this;\r\n // Check cache\r\n var cached = this.getCache(format);\r\n if ($type.hasValue(cached)) {\r\n return cached;\r\n }\r\n // init format parse info holder\r\n var info = {\r\n \"positive\": {\r\n \"thousands\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"interval\": -1,\r\n \"separator\": language.translateEmpty(\"_thousandSeparator\")\r\n },\r\n \"decimals\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"separator\": language.translateEmpty(\"_decimalSeparator\")\r\n },\r\n \"template\": \"\",\r\n \"source\": \"\",\r\n \"parsed\": false\r\n },\r\n \"negative\": {\r\n \"thousands\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"interval\": -1,\r\n \"separator\": language.translateEmpty(\"_thousandSeparator\")\r\n },\r\n \"decimals\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"separator\": language.translateEmpty(\"_decimalSeparator\")\r\n },\r\n \"template\": \"\",\r\n \"source\": \"\",\r\n \"parsed\": false\r\n },\r\n \"zero\": {\r\n \"thousands\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"interval\": -1,\r\n \"separator\": language.translateEmpty(\"_thousandSeparator\")\r\n },\r\n \"decimals\": {\r\n \"active\": -1,\r\n \"passive\": -1,\r\n \"separator\": language.translateEmpty(\"_decimalSeparator\")\r\n },\r\n \"template\": \"\",\r\n \"source\": \"\",\r\n \"parsed\": false\r\n }\r\n };\r\n // Escape double vertical bars (that mean display one vertical bar)\r\n format = format.replace(\"||\", $strings.PLACEHOLDER2);\r\n // Split it up and deal with different formats\r\n var parts = format.split(\"|\");\r\n info.positive.source = parts[0];\r\n if (typeof parts[2] === \"undefined\") {\r\n info.zero = info.positive;\r\n }\r\n else {\r\n info.zero.source = parts[2];\r\n }\r\n if (typeof parts[1] === \"undefined\") {\r\n info.negative = info.positive;\r\n }\r\n else {\r\n info.negative.source = parts[1];\r\n }\r\n // Parse each\r\n $object.each(info, function (part, item) {\r\n // Already parsed\r\n if (item.parsed) {\r\n return;\r\n }\r\n // Check cached\r\n if (typeof _this.getCache(item.source) !== \"undefined\") {\r\n info[part] = _this.getCache(item.source);\r\n return;\r\n }\r\n // Begin parsing\r\n var partFormat = item.source;\r\n // Just \"Number\"?\r\n if (partFormat.toLowerCase() === \"number\") {\r\n partFormat = $type.isString(_this._numberFormat) ? _this._numberFormat : \"#,###.#####\";\r\n }\r\n // Let TextFormatter split into chunks\r\n var chunks = getTextFormatter().chunk(partFormat, true);\r\n for (var i = 0; i < chunks.length; i++) {\r\n var chunk = chunks[i];\r\n // replace back double vertical bar\r\n chunk.text = chunk.text.replace($strings.PLACEHOLDER2, \"|\");\r\n if (chunk.type === \"value\") {\r\n // Parse format\r\n // Look for codes\r\n var matches = chunk.text.match(/[#0.,]+[ ]?[abespABESP%!]?[abespABESP‰!]?/);\r\n if (matches) {\r\n if (matches === null || matches[0] === \"\") {\r\n // no codes here - assume string\r\n // nothing to do here\r\n item.template += chunk.text;\r\n }\r\n else {\r\n // look for the format modifiers at the end\r\n var mods = matches[0].match(/[abespABESP%‰!]{2}|[abespABESP%‰]{1}$/);\r\n if (mods) {\r\n item.mod = mods[0].toLowerCase();\r\n item.modSpacing = matches[0].match(/[ ]{1}[abespABESP%‰!]{1}$/) ? true : false;\r\n }\r\n // break the format up\r\n var a = matches[0].split(\".\");\r\n // Deal with thousands\r\n if (a[0] === \"\") {\r\n // No directives for thousands\r\n // Leave default settings (no formatting)\r\n }\r\n else {\r\n // Counts\r\n item.thousands.active = (a[0].match(/0/g) || []).length;\r\n item.thousands.passive = (a[0].match(/\\#/g) || []).length + item.thousands.active;\r\n // Separator interval\r\n var b = a[0].split(\",\");\r\n if (b.length === 1) {\r\n // No thousands separators\r\n // Do nothing\r\n }\r\n else {\r\n // Use length fo the last chunk as thousands length\r\n item.thousands.interval = $type.getValue(b.pop()).length;\r\n if (item.thousands.interval === 0) {\r\n item.thousands.interval = -1;\r\n }\r\n }\r\n }\r\n // Deal with decimals\r\n if (typeof (a[1]) === \"undefined\") {\r\n // No directives for decimals\r\n // Leave at defaults (no formatting)\r\n }\r\n else {\r\n // Counts\r\n item.decimals.active = (a[1].match(/0/g) || []).length;\r\n item.decimals.passive = (a[1].match(/\\#/g) || []).length + item.decimals.active;\r\n }\r\n // Add special code to template\r\n item.template += chunk.text.split(matches[0]).join($strings.PLACEHOLDER);\r\n }\r\n }\r\n }\r\n else {\r\n // Quoted string - take it as it is\r\n item.template += chunk.text;\r\n }\r\n }\r\n // Apply style formatting\r\n //item.template = getTextFormatter().format(item.template, this.outputFormat);\r\n // Save cache\r\n _this.setCache(item.source, item);\r\n // Mark this as parsed\r\n item.parsed = true;\r\n });\r\n // Save cache (the whole thing)\r\n this.setCache(format, info);\r\n return info;\r\n };\r\n /**\r\n * Applies parsed format to a numeric value.\r\n *\r\n * @param value Value\r\n * @param details Parsed format as returned by parseFormat()\r\n * @return Formatted number\r\n */\r\n NumberFormatter.prototype.applyFormat = function (value, details) {\r\n // Use absolute values\r\n var negative = value < 0;\r\n value = Math.abs(value);\r\n // Recalculate according to modifier\r\n var prefix = \"\", suffix = \"\";\r\n var mods = details.mod ? details.mod.split(\"\") : [];\r\n if (mods.indexOf(\"b\") !== -1) {\r\n var a_1 = this.applyPrefix(value, this.bytePrefixes, mods.indexOf(\"!\") !== -1);\r\n value = a_1[0];\r\n prefix = a_1[1];\r\n suffix = a_1[2];\r\n if (details.modSpacing) {\r\n suffix = \" \" + suffix;\r\n }\r\n }\r\n else if (mods.indexOf(\"a\") !== -1) {\r\n var a_2 = this.applyPrefix(value, value < this.smallNumberThreshold ? this.smallNumberPrefixes : this.bigNumberPrefixes, mods.indexOf(\"!\") !== -1);\r\n value = a_2[0];\r\n prefix = a_2[1];\r\n suffix = a_2[2];\r\n if (details.modSpacing) {\r\n suffix = \" \" + suffix;\r\n }\r\n }\r\n else if (mods.indexOf(\"p\") !== -1) {\r\n var ol = Math.min(value.toString().length + 2, 21);\r\n //value *= 100;\r\n value = parseFloat(value.toPrecision(ol));\r\n prefix = this.language.translate(\"_percentPrefix\") || \"\";\r\n suffix = this.language.translate(\"_percentSuffix\") || \"\";\r\n if (prefix == \"\" && suffix == \"\") {\r\n suffix = \"%\";\r\n }\r\n }\r\n else if (mods.indexOf(\"%\") !== -1) {\r\n var ol = $math.min(value.toString().length + 2, 21);\r\n value *= 100;\r\n value = parseFloat(value.toPrecision(ol));\r\n suffix = \"%\";\r\n }\r\n else if (mods.indexOf(\"‰\") !== -1) {\r\n var ol = $math.min(value.toString().length + 3, 21);\r\n value *= 1000;\r\n value = parseFloat(value.toPrecision(ol));\r\n suffix = \"‰\";\r\n }\r\n // Round to passive\r\n if (mods.indexOf(\"e\") !== -1) {\r\n // convert the value to exponential\r\n var exp = void 0;\r\n if (details.decimals.passive >= 0) {\r\n exp = value.toExponential(details.decimals.passive).split(\"e\");\r\n }\r\n else {\r\n exp = value.toExponential().split(\"e\");\r\n }\r\n value = Number(exp[0]);\r\n suffix = \"e\" + exp[1];\r\n if (details.modSpacing) {\r\n suffix = \" \" + suffix;\r\n }\r\n }\r\n else if (details.decimals.passive === 0) {\r\n value = Math.round(value);\r\n }\r\n else if (details.decimals.passive > 0) {\r\n var d = Math.pow(10, details.decimals.passive);\r\n value = Math.round(value * d) / d;\r\n }\r\n // Init return value\r\n var res = \"\";\r\n // Calc integer and decimal parts\r\n var a = $utils.numberToString(value).split(\".\");\r\n // Format integers\r\n var ints = a[0];\r\n // Pad integers to active length\r\n if (ints.length < details.thousands.active) {\r\n ints = Array(details.thousands.active - ints.length + 1).join(\"0\") + ints;\r\n }\r\n // Insert thousands separators\r\n if (details.thousands.interval > 0) {\r\n var ip = [];\r\n var intsr = ints.split(\"\").reverse().join(\"\");\r\n for (var i = 0, len = ints.length; i <= len; i += details.thousands.interval) {\r\n var c = intsr.substr(i, details.thousands.interval).split(\"\").reverse().join(\"\");\r\n if (c !== \"\") {\r\n ip.unshift(c);\r\n }\r\n }\r\n ints = ip.join(details.thousands.separator);\r\n }\r\n // Add integers\r\n res += ints;\r\n // Add decimals\r\n if (a.length === 1) {\r\n a.push(\"\");\r\n }\r\n var decs = a[1];\r\n // Fill zeros?\r\n if (decs.length < details.decimals.active) {\r\n decs += Array(details.decimals.active - decs.length + 1).join(\"0\");\r\n }\r\n if (decs !== \"\") {\r\n res += details.decimals.separator + decs;\r\n }\r\n // Can't have empty return value\r\n if (res === \"\") {\r\n res = \"0\";\r\n }\r\n // Add minus sign back\r\n if (value !== 0 && negative && (mods.indexOf(\"s\") === -1)) {\r\n res = \"-\" + res;\r\n }\r\n // Add suffixes/prefixes\r\n if (prefix) {\r\n res = prefix + res;\r\n }\r\n if (suffix) {\r\n res += suffix;\r\n }\r\n return res;\r\n };\r\n /**\r\n * Chooses appropriate prefix and suffix based on the passed in rules.\r\n *\r\n * @param value Value\r\n * @param prefixes Prefix array\r\n * @param force Force application of a first prefix (@sice 4.5.4)\r\n * @return Result\r\n */\r\n NumberFormatter.prototype.applyPrefix = function (value, prefixes, force) {\r\n if (force === void 0) { force = false; }\r\n var newvalue = value;\r\n var prefix = \"\";\r\n var suffix = \"\";\r\n var applied = false;\r\n var k = 1;\r\n for (var i = 0, len = prefixes.length; i < len; i++) {\r\n if (prefixes[i].number <= value) {\r\n if (prefixes[i].number === 0) {\r\n newvalue = 0;\r\n }\r\n else {\r\n newvalue = value / prefixes[i].number;\r\n k = prefixes[i].number;\r\n }\r\n prefix = prefixes[i].prefix;\r\n suffix = prefixes[i].suffix;\r\n applied = true;\r\n }\r\n }\r\n if (!applied && force && prefixes.length && value != 0) {\r\n // Prefix was not applied. Use the first prefix.\r\n newvalue = value / prefixes[0].number;\r\n prefix = prefixes[0].prefix;\r\n suffix = prefixes[0].suffix;\r\n applied = true;\r\n }\r\n if (applied) {\r\n newvalue = parseFloat(newvalue.toPrecision($math.min(k.toString().length + Math.floor(newvalue).toString().replace(/[^0-9]*/g, \"\").length, 21)));\r\n }\r\n return [newvalue, prefix, suffix];\r\n };\r\n /**\r\n * Invalidates the parent [[Sprite]] object.\r\n */\r\n NumberFormatter.prototype.invalidateSprite = function () {\r\n if (this.sprite) {\r\n this.sprite.invalidate();\r\n }\r\n };\r\n Object.defineProperty(NumberFormatter.prototype, \"numberFormat\", {\r\n /**\r\n * @return A format to use for number formatting\r\n */\r\n get: function () {\r\n return this._numberFormat;\r\n },\r\n /**\r\n * Number format.\r\n *\r\n * @default \"#,###.#####\"\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-numbers/} Tutorial on number formatting\r\n * @param format A format to use for number formatting\r\n */\r\n set: function (format) {\r\n this._numberFormat = format;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"intlLocales\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this._intlLocales;\r\n },\r\n /**\r\n * Locales if you are using date formats in `Intl.NumberFormatOptions` syntax.\r\n *\r\n * @see (@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat) about using Intl for number formatting\r\n * @param value Locales\r\n */\r\n set: function (value) {\r\n this._intlLocales = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"negativeBase\", {\r\n /**\r\n * @return A format to use for number formatting\r\n */\r\n get: function () {\r\n return this._negativeBase;\r\n },\r\n /**\r\n * Negative base for negative numbers.\r\n *\r\n * @default 0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-numbers/} Tutorial on number formatting\r\n * @param format A format to use for number formatting\r\n */\r\n set: function (value) {\r\n this._negativeBase = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"bigNumberPrefixes\", {\r\n /**\r\n * @return Prefixes for big numbers\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._bigNumberPrefixes)) {\r\n this._bigNumberPrefixes = [\r\n { \"number\": 1e+3, \"suffix\": this.language.translate(\"_big_number_suffix_3\") },\r\n { \"number\": 1e+6, \"suffix\": this.language.translate(\"_big_number_suffix_6\") },\r\n { \"number\": 1e+9, \"suffix\": this.language.translate(\"_big_number_suffix_9\") },\r\n { \"number\": 1e+12, \"suffix\": this.language.translate(\"_big_number_suffix_12\") },\r\n { \"number\": 1e+15, \"suffix\": this.language.translate(\"_big_number_suffix_15\") },\r\n { \"number\": 1e+18, \"suffix\": this.language.translate(\"_big_number_suffix_18\") },\r\n { \"number\": 1e+21, \"suffix\": this.language.translate(\"_big_number_suffix_21\") },\r\n { \"number\": 1e+24, \"suffix\": this.language.translate(\"_big_number_suffix_24\") }\r\n ];\r\n }\r\n return this._bigNumberPrefixes;\r\n },\r\n /**\r\n * Prefixes for big numbers.\r\n *\r\n * It's an array of objects of number/prefix pairs.\r\n *\r\n * ```JSON\r\n * [\r\n * { \"number\": 1e+3, \"suffix\": \"K\" },\r\n * { \"number\": 1e+6, \"suffix\": \"M\" },\r\n * { \"number\": 1e+9, \"suffix\": \"G\" },\r\n * { \"number\": 1e+12, \"suffix\": \"T\" },\r\n * { \"number\": 1e+15, \"suffix\": \"P\" },\r\n * { \"number\": 1e+18, \"suffix\": \"E\" },\r\n * { \"number\": 1e+21, \"suffix\": \"Z\" },\r\n * { \"number\": 1e+24, \"suffix\": \"Y\" }\r\n * ]\r\n * ```\r\n *\r\n * If the number is bigger than the `number` ir will be converted to the\r\n * appropriate bigger number with prefix.\r\n *\r\n * E.g. as per above `1500` will be converted to `1.5K`.\r\n *\r\n * Please note that for this transformation to be enabled, you need to\r\n * enable it specific modifier in your format setting.\r\n *\r\n * The modifier for big/small number modification is \"a\":\r\n *\r\n * ```Text\r\n * {myfield.formatNumber(\"#,###.00a\")}\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-numbers/} Tutorial on number formatting\r\n * @param prefixes Prefixes for big numbers\r\n */\r\n set: function (prefixes) {\r\n this._bigNumberPrefixes = prefixes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"smallNumberPrefixes\", {\r\n /**\r\n * @return Prefixes for small numbers\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._smallNumberPrefixes)) {\r\n this._smallNumberPrefixes = [\r\n { \"number\": 1e-24, \"suffix\": this.language.translate(\"_small_number_suffix_24\") },\r\n { \"number\": 1e-21, \"suffix\": this.language.translate(\"_small_number_suffix_21\") },\r\n { \"number\": 1e-18, \"suffix\": this.language.translate(\"_small_number_suffix_18\") },\r\n { \"number\": 1e-15, \"suffix\": this.language.translate(\"_small_number_suffix_15\") },\r\n { \"number\": 1e-12, \"suffix\": this.language.translate(\"_small_number_suffix_12\") },\r\n { \"number\": 1e-9, \"suffix\": this.language.translate(\"_small_number_suffix_9\") },\r\n { \"number\": 1e-6, \"suffix\": this.language.translate(\"_small_number_suffix_6\") },\r\n { \"number\": 1e-3, \"suffix\": this.language.translate(\"_small_number_suffix_3\") }\r\n ];\r\n }\r\n return this._smallNumberPrefixes;\r\n },\r\n /**\r\n * Prefixes for big numbers.\r\n *\r\n * It's an array of objects of number/prefix pairs.\r\n *\r\n * ```JSON\r\n * [\r\n * { \"number\": 1e-24, \"suffix\": \"y\" },\r\n * { \"number\": 1e-21, \"suffix\": \"z\" },\r\n * { \"number\": 1e-18, \"suffix\": \"a\" },\r\n * { \"number\": 1e-15, \"suffix\": \"f\" },\r\n * { \"number\": 1e-12, \"suffix\": \"p\" },\r\n * { \"number\": 1e-9, \"suffix\": \"n\" },\r\n * { \"number\": 1e-6, \"suffix\": \"μ\" },\r\n * { \"number\": 1e-3, \"suffix\": \"m\" }\r\n * ]\r\n * ```\r\n *\r\n * If the number is smaller than the `number` ir will be converted to the\r\n * appropriate smaller number with prefix.\r\n *\r\n * E.g. as per above `0.0015` will be converted to `1.5m`.\r\n *\r\n * Please note that for this transformation to be enabled, you need to\r\n * enable it specific modifier in your format setting.\r\n *\r\n * The modifier for big/small number modification is \"a\":\r\n *\r\n * ```Text\r\n * {myfield.formatNumber(\"#,###.00a\")}\r\n * ```\r\n *\r\n * IMPORTANT: The order of the suffixes is important. The list must start\r\n * from the smallest number and work towards bigger ones.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-numbers/} Tutorial on number formatting\r\n * @param prefixes Prefixes for small numbers\r\n */\r\n set: function (prefixes) {\r\n this._smallNumberPrefixes = prefixes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"smallNumberThreshold\", {\r\n /**\r\n * @return Small number threshold\r\n */\r\n get: function () {\r\n return this._smallNumberThreshold;\r\n },\r\n /**\r\n * Any number smaller than this will be considered \"small\" number, which will\r\n * trigger special formatting if \"a\" format modifier is used.\r\n *\r\n * @since 4.6.8\r\n * @param value Small number threshold\r\n */\r\n set: function (value) {\r\n this._smallNumberThreshold = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"bytePrefixes\", {\r\n /**\r\n * @return Prefixes for byte-size formatting\r\n */\r\n get: function () {\r\n if (!$type.hasValue(this._bytePrefixes)) {\r\n this._bytePrefixes = [\r\n { \"number\": 1, suffix: this.language.translate(\"_byte_suffix_B\") },\r\n { \"number\": 1024, suffix: this.language.translate(\"_byte_suffix_KB\") },\r\n { \"number\": 1048576, suffix: this.language.translate(\"_byte_suffix_MB\") },\r\n { \"number\": 1073741824, suffix: this.language.translate(\"_byte_suffix_GB\") },\r\n { \"number\": 1099511627776, suffix: this.language.translate(\"_byte_suffix_TB\") },\r\n { \"number\": 1125899906842624, suffix: this.language.translate(\"_byte_suffix_PB\") }\r\n ];\r\n }\r\n return this._bytePrefixes;\r\n },\r\n /**\r\n * Basically the same as `bigNumberPrefixes`, except base for calculation\r\n * is not thousand but byte (1024).\r\n *\r\n * The modifier is \"b\".\r\n *\r\n * ```Text\r\n * {myfield.formatNumber(\"#,###.00b\")}\r\n * ```\r\n *\r\n * The above `2048` will change to `2K`.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-numbers/} Tutorial on number formatting\r\n * @param prefixes Prefixes for byte-size formatting\r\n */\r\n set: function (prefixes) {\r\n this._bytePrefixes = prefixes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"outputFormat\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Output format\r\n */\r\n get: function () {\r\n return this._outputFormat;\r\n },\r\n /**\r\n * Ooutput format: \"svg\" or \"html\".\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Output format\r\n */\r\n set: function (outputFormat) {\r\n this._outputFormat = outputFormat.toLowerCase();\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NumberFormatter.prototype, \"forceLTR\", {\r\n get: function () {\r\n return this._forceLTR;\r\n },\r\n set: function (value) {\r\n this._forceLTR = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces brackets with temporary placeholders.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Input text\r\n * @return Escaped text\r\n */\r\n NumberFormatter.prototype.escape = function (text) {\r\n return text.replace(\"||\", $strings.PLACEHOLDER2);\r\n };\r\n /**\r\n * Replaces placeholders back to brackets.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Escaped text\r\n * @return Unescaped text\r\n */\r\n NumberFormatter.prototype.unescape = function (text) {\r\n return text.replace($strings.PLACEHOLDER2, \"|\");\r\n };\r\n return NumberFormatter;\r\n}(BaseObject));\r\nexport { NumberFormatter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"NumberFormatter\"] = NumberFormatter;\r\n//# sourceMappingURL=NumberFormatter.js.map","/**\r\n * Duration formatting functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { BaseObject } from \"../Base\";\r\nimport { getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * DurationFormatter class. Formats numbers as durations.\r\n *\r\n * `1000` as `16:40`\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} Tutorial on duration formatting\r\n */\r\nvar DurationFormatter = /** @class */ (function (_super) {\r\n __extends(DurationFormatter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DurationFormatter() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A base value for negative numbers. Will treat all numbers below this value\r\n * as negative numbers.\r\n */\r\n _this._negativeBase = 0;\r\n /**\r\n * A base unit to consider values are in.\r\n *\r\n * @default \"s\"\r\n */\r\n _this._baseUnit = \"second\";\r\n /**\r\n * Output format to produce. If the format calls for applying color to the\r\n * formatted value, this setting will determine what markup to use: SVG or\r\n * HTML.\r\n *\r\n * Available options: svg, html.\r\n *\r\n * @default \"svg\"\r\n */\r\n _this._outputFormat = \"svg\";\r\n /**\r\n * How many milliseconds each unit represents.\r\n */\r\n _this._unitValues = {\r\n \"millisecond\": 1,\r\n \"second\": 1000,\r\n \"minute\": 60000,\r\n \"hour\": 3600000,\r\n \"day\": 86400000,\r\n \"week\": 604800000,\r\n \"month\": 2592000000,\r\n \"year\": 31536000000,\r\n };\r\n /**\r\n * Collection of aliases for units.\r\n */\r\n _this._unitAliases = {\r\n \"Y\": \"y\",\r\n \"D\": \"d\",\r\n \"H\": \"h\",\r\n \"K\": \"h\",\r\n \"k\": \"h\",\r\n \"n\": \"S\"\r\n };\r\n _this.className = \"DurationFormatter\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Formats the number according as duration.\r\n *\r\n * For example `1000` (base unit seconds) would be converted to `16:40` as in\r\n * 16 minutes and 40 seconds.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} Tutorial on duration formatting\r\n * @param value Value to format\r\n * @param format Format to apply\r\n * @param base Override base unit\r\n * @return Formatted number\r\n */\r\n DurationFormatter.prototype.format = function (value, format, base) {\r\n // no language?\r\n if (!this.language) {\r\n if (this.sprite) {\r\n this.language = this.sprite.language;\r\n }\r\n else {\r\n this.language = new Language;\r\n }\r\n }\r\n // no base unit?\r\n var baseUnit = base || this._baseUnit;\r\n // no format passed in or empty\r\n if (typeof format === \"undefined\" || format === \"\") {\r\n if ($type.hasValue(this.durationFormat)) {\r\n format = this.durationFormat;\r\n }\r\n else {\r\n format = this.getFormat($type.toNumber(value), null, baseUnit);\r\n }\r\n }\r\n // Clean format\r\n format = $utils.cleanFormat(format);\r\n // get format info (it will also deal with parser caching)\r\n var info = this.parseFormat(format, baseUnit);\r\n // cast to number just in case\r\n // TODO: maybe use better casting\r\n var source = Number(value);\r\n // format and replace the number\r\n var details;\r\n if (source > this._negativeBase) {\r\n details = info.positive;\r\n }\r\n else if (source < this._negativeBase) {\r\n details = info.negative;\r\n }\r\n else {\r\n details = info.zero;\r\n }\r\n // Format\r\n var formatted = this.applyFormat(source, details);\r\n // Apply color?\r\n if (details.color !== \"\") {\r\n if (this._outputFormat === \"svg\") {\r\n formatted = \"<tspan fill='\" + details.color + \"'>\" + formatted + \"</tspan>\";\r\n }\r\n else if (this._outputFormat === \"html\") {\r\n formatted = \"<span style='color: \" + details.color + \";'>\" + formatted + \"</span>\";\r\n }\r\n }\r\n return formatted;\r\n };\r\n /**\r\n * Parses supplied format into structured object which can be used to format\r\n * the number.\r\n *\r\n * @param format Format string, i.e. \"#,###.00\"\r\n * @param base Override base unit\r\n * @return Parsed information\r\n */\r\n DurationFormatter.prototype.parseFormat = function (format, base) {\r\n var _this = this;\r\n // Check cache\r\n var cached = this.getCache(format);\r\n if ($type.hasValue(cached)) {\r\n return cached;\r\n }\r\n // no base unit?\r\n var baseUnit = base || this._baseUnit;\r\n // Initialize duration parsing info\r\n var info = {\r\n \"positive\": {\r\n \"color\": \"\",\r\n \"template\": \"\",\r\n \"parts\": [],\r\n \"source\": \"\",\r\n \"baseUnit\": baseUnit,\r\n \"parsed\": false,\r\n \"absolute\": false\r\n },\r\n \"negative\": {\r\n \"color\": \"\",\r\n \"template\": \"\",\r\n \"parts\": [],\r\n \"source\": \"\",\r\n \"baseUnit\": baseUnit,\r\n \"parsed\": false,\r\n \"absolute\": false\r\n },\r\n \"zero\": {\r\n \"color\": \"\",\r\n \"template\": \"\",\r\n \"parts\": [],\r\n \"source\": \"\",\r\n \"baseUnit\": baseUnit,\r\n \"parsed\": false,\r\n \"absolute\": false\r\n }\r\n };\r\n // Escape double vertical bars (that mean display one vertical bar)\r\n format = format.replace(\"||\", $strings.PLACEHOLDER2);\r\n // Split it up and deal with different formats\r\n var parts = format.split(\"|\");\r\n info.positive.source = parts[0];\r\n if (typeof parts[2] === \"undefined\") {\r\n info.zero = info.positive;\r\n }\r\n else {\r\n info.zero.source = parts[2];\r\n }\r\n if (typeof parts[1] === \"undefined\") {\r\n info.negative = info.positive;\r\n }\r\n else {\r\n info.negative.source = parts[1];\r\n }\r\n // Parse each\r\n $object.each(info, function (part, item) {\r\n // Already parsed\r\n if (item.parsed) {\r\n return;\r\n }\r\n // Check cached\r\n if (typeof _this.getCache(item.source) !== \"undefined\") {\r\n info[part] = _this.getCache(item.source);\r\n return;\r\n }\r\n // Begin parsing\r\n var partFormat = item.source;\r\n // Check for [] directives\r\n var dirs = [];\r\n dirs = item.source.match(/^\\[([^\\]]*)\\]/);\r\n if (dirs && dirs.length && dirs[0] !== \"\") {\r\n partFormat = item.source.substr(dirs[0].length);\r\n item.color = dirs[1];\r\n }\r\n // Let TextFormatter split into chunks\r\n var chunks = getTextFormatter().chunk(partFormat, true);\r\n for (var i = 0; i < chunks.length; i++) {\r\n var chunk = chunks[i];\r\n // replace back double vertical bar\r\n chunk.text = chunk.text.replace($strings.PLACEHOLDER2, \"|\");\r\n if (chunk.type === \"value\") {\r\n // Just \"Duration\"?\r\n // if (chunk.text.toLowerCase() === \"duration\") {\r\n // \tchunk.text = durationFormat;\r\n // }\r\n // Check for \"a\" (absolute) modifier\r\n if (chunk.text.match(/[yYMdDwhHKkmsSn]+a/)) {\r\n item.absolute = true;\r\n chunk.text = chunk.text.replace(/([yYMdDwhHKkmsSn]+)a/, \"$1\");\r\n }\r\n // Find all possible parts\r\n var matches = chunk.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);\r\n if (matches) {\r\n // Populate template\r\n for (var x = 0; x < matches.length; x++) {\r\n // Is it an alias?\r\n if (!$type.hasValue(matches[x])) {\r\n matches[x] = _this._unitAliases[matches[x]];\r\n }\r\n item.parts.push(matches[x]);\r\n chunk.text = chunk.text.replace(matches[x], $strings.PLACEHOLDER);\r\n }\r\n }\r\n }\r\n // Apply to template\r\n item.template += chunk.text;\r\n }\r\n // Apply style formatting\r\n //item.template = getTextFormatter().format(item.template, this.outputFormat);\r\n // Save cache\r\n _this.setCache(item.source, item);\r\n // Mark this as parsed\r\n item.parsed = true;\r\n });\r\n // Save cache (the whole thing)\r\n this.setCache(format, info);\r\n return info;\r\n };\r\n /**\r\n * Applies parsed format to a numeric value.\r\n *\r\n * @param value Value\r\n * @param details Parsed format as returned by {parseFormat}\r\n * @return Formatted duration\r\n */\r\n DurationFormatter.prototype.applyFormat = function (value, details) {\r\n // Use absolute values\r\n var negative = !details.absolute && (value < this._negativeBase);\r\n value = Math.abs(value);\r\n // Recalculate to milliseconds\r\n var tstamp = this.toTimeStamp(value, details.baseUnit);\r\n // Init return value\r\n var res = details.template;\r\n // Iterate through duration parts\r\n for (var i = 0, len = details.parts.length; i < len; i++) {\r\n // Gather the part\r\n var part = details.parts[i];\r\n var unit = this.toTimeUnit(part.substr(0, 1));\r\n var digits = part.length;\r\n // Calculate current unit value\r\n var ints = Math.floor(tstamp / this._unitValues[unit]);\r\n res = res.replace($strings.PLACEHOLDER, $utils.padString(ints, digits, \"0\"));\r\n // Reduce timestamp\r\n tstamp -= ints * this._unitValues[unit];\r\n }\r\n // Reapply negative sign\r\n if (negative) {\r\n res = \"-\" + res;\r\n }\r\n return res;\r\n };\r\n /**\r\n * Converts numeric value to timestamp in milliseconds.\r\n *\r\n * @param value A source value\r\n * @param baseUnit Base unit the source value is in: \"q\", \"s\", \"i\", \"h\", \"d\", \"w\", \"m\", \"y\"\r\n * @return Value representation as a timestamp in milliseconds\r\n */\r\n DurationFormatter.prototype.toTimeStamp = function (value, baseUnit) {\r\n return value * this._unitValues[baseUnit];\r\n };\r\n DurationFormatter.prototype.toTimeUnit = function (code) {\r\n switch (code) {\r\n case \"S\":\r\n return \"millisecond\";\r\n case \"s\":\r\n return \"second\";\r\n case \"m\":\r\n return \"minute\";\r\n case \"h\":\r\n return \"hour\";\r\n case \"d\":\r\n return \"day\";\r\n case \"w\":\r\n return \"week\";\r\n case \"M\":\r\n return \"month\";\r\n case \"y\":\r\n return \"year\";\r\n }\r\n ;\r\n };\r\n /**\r\n * Invalidates the parent [[Sprite]] object.\r\n */\r\n DurationFormatter.prototype.invalidateSprite = function () {\r\n if (this.sprite) {\r\n this.sprite.invalidate();\r\n }\r\n };\r\n Object.defineProperty(DurationFormatter.prototype, \"baseUnit\", {\r\n /**\r\n * @return Base unit\r\n */\r\n get: function () {\r\n return this._baseUnit;\r\n },\r\n /**\r\n * Base unit the values are in.\r\n *\r\n * A base unit will be used to recalculate the numeric value to millisecond\r\n * timestamps.\r\n *\r\n * Available options:\r\n *\r\n * * \"millisecond\"\r\n * * \"second\"\r\n * * \"minute\"\r\n * * \"hour\"\r\n * * \"day\"\r\n * * \"week\"\r\n * * \"month\"\r\n * * \"year\"\r\n *\r\n * @default \"s\"\r\n * @param baseUnit A base unit\r\n */\r\n set: function (baseUnit) {\r\n this._baseUnit = baseUnit;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DurationFormatter.prototype, \"outputFormat\", {\r\n /**\r\n * Getter for output format.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Output format\r\n */\r\n get: function () {\r\n return this._outputFormat;\r\n },\r\n /**\r\n * Setter for output format: \"svg\" or \"html.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Output format\r\n */\r\n set: function (outputFormat) {\r\n this._outputFormat = outputFormat.toLowerCase();\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns appropriate default format for the value.\r\n *\r\n * If `maxValue` is sepcified, it will use that value to determine the time\r\n * unit for the format.\r\n *\r\n * For example if your `baseUnit` is `\"second\"` and you pass in `10`, you\r\n * will get `\"10\"`.\r\n *\r\n * However, you might want it to be formatted in the context of bigger scale,\r\n * say 10 minutes (600 seconds). If you pass in `600` as `maxValue`, all\r\n * values, including small ones will use format with minutes, e.g.:\r\n * `00:10`, `00:50`, `12: 30`, etc.\r\n *\r\n * @param value Value to format\r\n * @param maxValue Maximum value to be used to determine format\r\n * @param baseUnit Base unit of the value\r\n * @return Format\r\n */\r\n DurationFormatter.prototype.getFormat = function (value, maxValue, baseUnit) {\r\n // Is format override set?\r\n if ($type.hasValue(this.durationFormat)) {\r\n return this.durationFormat;\r\n }\r\n // Get base unit\r\n if (!baseUnit) {\r\n baseUnit = this.baseUnit;\r\n }\r\n if ($type.hasValue(maxValue) && value != maxValue) {\r\n value = Math.abs(value);\r\n maxValue = Math.abs(maxValue);\r\n var maxUnit = this.getValueUnit($math.max(value, maxValue), baseUnit);\r\n //let diffUnit = this.getValueUnit(Math.abs(maxValue - value), baseUnit);\r\n //console.log(maxUnit, diffUnit);\r\n return this.durationFormats[baseUnit][maxUnit];\r\n }\r\n else {\r\n var unit = this.getValueUnit(value, baseUnit);\r\n return this.durationFormats[baseUnit][unit];\r\n }\r\n };\r\n /**\r\n * Returns value's closest denominator time unit, e.g 100 seconds is\r\n * `\"minute\"`, while 59 seconds would still be `second`.\r\n *\r\n * @param value Source duration value\r\n * @param baseUnit Base unit\r\n * @return Denominator\r\n */\r\n DurationFormatter.prototype.getValueUnit = function (value, baseUnit) {\r\n // Get base unit\r\n if (!baseUnit) {\r\n baseUnit = this.baseUnit;\r\n }\r\n // Convert to milliseconds\r\n var currentUnit;\r\n var ms = this.getMilliseconds(value, baseUnit);\r\n $object.eachContinue(this._unitValues, function (key, val) {\r\n if (key == baseUnit || currentUnit) {\r\n var num = ms / val;\r\n if (num <= 1) {\r\n if (!currentUnit) {\r\n currentUnit = key;\r\n }\r\n return false;\r\n }\r\n currentUnit = key;\r\n }\r\n return true;\r\n });\r\n return currentUnit;\r\n };\r\n /**\r\n * Converts value to milliseconds according to `baseUnit`.\r\n *\r\n * @param value Source duration value\r\n * @param baseUnit Base unit\r\n * @return Value in milliseconds\r\n */\r\n DurationFormatter.prototype.getMilliseconds = function (value, baseUnit) {\r\n // Get base unit\r\n if (!baseUnit) {\r\n baseUnit = this.baseUnit;\r\n }\r\n return value * this._unitValues[baseUnit];\r\n };\r\n Object.defineProperty(DurationFormatter.prototype, \"durationFormat\", {\r\n /**\r\n * @return Format\r\n */\r\n get: function () {\r\n return this._durationFormat;\r\n },\r\n /**\r\n * If set, this format will be used instead of the one determined dynamically\r\n * based on the basedUnit and range of values.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} Available fomatting codes\r\n * @param value Format\r\n */\r\n set: function (value) {\r\n if (this._durationFormat != value) {\r\n this._durationFormat = value;\r\n this.invalidateSprite();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DurationFormatter.prototype, \"durationFormats\", {\r\n /**\r\n * @return Formats\r\n */\r\n get: function () {\r\n if (!this._durationFormats) {\r\n this._durationFormats = {\r\n \"millisecond\": {\r\n \"millisecond\": this.language.translate(\"_duration_millisecond\"),\r\n \"second\": this.language.translate(\"_duration_millisecond_second\"),\r\n \"minute\": this.language.translate(\"_duration_millisecond_minute\"),\r\n \"hour\": this.language.translate(\"_duration_millisecond_hour\"),\r\n \"day\": this.language.translate(\"_duration_millisecond_day\"),\r\n \"week\": this.language.translate(\"_duration_millisecond_week\"),\r\n \"month\": this.language.translate(\"_duration_millisecond_month\"),\r\n \"year\": this.language.translate(\"_duration_millisecond_year\")\r\n },\r\n \"second\": {\r\n \"second\": this.language.translate(\"_duration_second\"),\r\n \"minute\": this.language.translate(\"_duration_second_minute\"),\r\n \"hour\": this.language.translate(\"_duration_second_hour\"),\r\n \"day\": this.language.translate(\"_duration_second_day\"),\r\n \"week\": this.language.translate(\"_duration_second_week\"),\r\n \"month\": this.language.translate(\"_duration_second_month\"),\r\n \"year\": this.language.translate(\"_duration_second_year\")\r\n },\r\n \"minute\": {\r\n \"minute\": this.language.translate(\"_duration_minute\"),\r\n \"hour\": this.language.translate(\"_duration_minute_hour\"),\r\n \"day\": this.language.translate(\"_duration_minute_day\"),\r\n \"week\": this.language.translate(\"_duration_minute_week\"),\r\n \"month\": this.language.translate(\"_duration_minute_month\"),\r\n \"year\": this.language.translate(\"_duration_minute_year\")\r\n },\r\n \"hour\": {\r\n \"hour\": this.language.translate(\"_duration_hour\"),\r\n \"day\": this.language.translate(\"_duration_hour_day\"),\r\n \"week\": this.language.translate(\"_duration_hour_week\"),\r\n \"month\": this.language.translate(\"_duration_hour_month\"),\r\n \"year\": this.language.translate(\"_duration_hour_year\")\r\n },\r\n \"day\": {\r\n \"day\": this.language.translate(\"_duration_day\"),\r\n \"week\": this.language.translate(\"_duration_day_week\"),\r\n \"month\": this.language.translate(\"_duration_day_month\"),\r\n \"year\": this.language.translate(\"_duration_day_year\")\r\n },\r\n \"week\": {\r\n \"week\": this.language.translate(\"_duration_week\"),\r\n \"month\": this.language.translate(\"_duration_week_month\"),\r\n \"year\": this.language.translate(\"_duration_week_year\")\r\n },\r\n \"month\": {\r\n \"month\": this.language.translate(\"_duration_month\"),\r\n \"year\": this.language.translate(\"_duration_month_year\")\r\n },\r\n \"year\": {\r\n \"year\": this.language.translate(\"_duration_year\")\r\n }\r\n };\r\n }\r\n return this._durationFormats;\r\n },\r\n /**\r\n * Duration formats for various combination of base units.\r\n *\r\n * @param value Formats\r\n */\r\n set: function (value) {\r\n this._durationFormats = value;\r\n this.invalidateSprite();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DurationFormatter;\r\n}(BaseObject));\r\nexport { DurationFormatter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DurationFormatter\"] = DurationFormatter;\r\n//# sourceMappingURL=DurationFormatter.js.map","/**\r\n * This module defines a [[Validatable]] class which can be used by all\r\n * non-[[Sprite]] classes to use system beats to revalidate themselves.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * This module defines a [[Validatable]] class which can be used by all\r\n * non-[[Sprite]] classes to use system update cycle to revalidate themselves.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar Validatable = /** @class */ (function (_super) {\r\n __extends(Validatable, _super);\r\n function Validatable() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * Is invalid and should be revalidated?\r\n */\r\n _this._validateDisposer = null;\r\n return _this;\r\n }\r\n /**\r\n * Invalidates the element, so that it can re-validate/redraw itself in the\r\n * next cycle.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Validatable.prototype.invalidate = function () {\r\n if (this._validateDisposer === null) {\r\n this._validateDisposer = registry.events.on(\"exitframe\", this.validate, this);\r\n }\r\n };\r\n /**\r\n * Validates itself.\r\n *\r\n * Most probably the extending class will have an overriding `validate()`\r\n * method which will do actual work, as well as call this method using\r\n * `super.validate()`.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Validatable.prototype.validate = function () {\r\n if (this._validateDisposer !== null) {\r\n this._validateDisposer.dispose();\r\n this._validateDisposer = null;\r\n }\r\n };\r\n Validatable.prototype.dispose = function () {\r\n if (this._validateDisposer !== null) {\r\n this._validateDisposer.dispose();\r\n this._validateDisposer = null;\r\n }\r\n _super.prototype.dispose.call(this);\r\n };\r\n return Validatable;\r\n}(BaseObjectEvents));\r\nexport { Validatable };\r\n//# sourceMappingURL=Validatable.js.map","/**\r\n * Data parser module.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { DateFormatter } from \"../formatters/DateFormatter\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class for the data parsers.\r\n */\r\nvar DataParser = /** @class */ (function () {\r\n function DataParser() {\r\n }\r\n /**\r\n * A \"placeholder\" function for real parsers to override.\r\n *\r\n * @ignore Exclude from docs\r\n * @param data Source data\r\n * @return Parsed data (empty)\r\n */\r\n DataParser.prototype.parse = function (data) {\r\n return [];\r\n };\r\n ;\r\n Object.defineProperty(DataParser.prototype, \"parsableNumbers\", {\r\n /**\r\n * Checks if there are any numeric fields that need to be converted to\r\n * numbers.\r\n *\r\n * @return Numeric fields?\r\n */\r\n get: function () {\r\n return this.options.numberFields && (this.options.numberFields.length > 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts a value to 'number' if it is in `numberFields`.\r\n *\r\n * @param field Field name\r\n * @param value Value\r\n * @return Parsed or original value\r\n */\r\n DataParser.prototype.maybeToNumber = function (field, value) {\r\n if (this.options.numberFields.indexOf(field) !== -1) {\r\n return $utils.anyToNumber(value);\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(DataParser.prototype, \"parsableDates\", {\r\n /**\r\n * Checks if there are any date fields that need to be converted to `Date`\r\n * objects.\r\n *\r\n * @return Date fields?\r\n */\r\n get: function () {\r\n return this.options.dateFields && (this.options.dateFields.length > 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts a value to `Date` if it is in `dateFields`.\r\n *\r\n * @param field Field name\r\n * @param value Value\r\n * @return Parsed or original value\r\n */\r\n DataParser.prototype.maybeToDate = function (field, value) {\r\n if (this.options.dateFields.indexOf(field) !== -1) {\r\n return this.options.dateFormatter.parse(value, this.dateFormat);\r\n }\r\n return value;\r\n };\r\n /**\r\n * Replaces empty value with something else.\r\n *\r\n * @param value Source value\r\n * @return Source value or replacement\r\n */\r\n DataParser.prototype.maybeToEmpty = function (value) {\r\n if ((!$type.hasValue(value) || value == \"\") && $type.hasValue(this.options.emptyAs)) {\r\n return this.options.emptyAs;\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(DataParser.prototype, \"dateFormatter\", {\r\n /**\r\n * [[DateFormatter]] object for date parsing.\r\n *\r\n * If there was not [[DateFormatter]] supplied in parser options, a new one\r\n * is created.\r\n *\r\n * @return Date formatter\r\n * @see {@link DateFormatter}\r\n */\r\n get: function () {\r\n if (!this.options.dateFormatter) {\r\n this.options.dateFormatter = new DateFormatter;\r\n if (this.options.dateFormat) {\r\n this.options.dateFormat = this.options.dateFormat;\r\n }\r\n }\r\n return this.options.dateFormatter;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataParser.prototype, \"dateFormat\", {\r\n /**\r\n * A date format to use when parsing dates.\r\n *\r\n * @return Date format\r\n * @see {@link DateFormatter}\r\n */\r\n get: function () {\r\n return this.options.dateFormat || this.dateFormatter.inputDateFormat;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DataParser;\r\n}());\r\nexport { DataParser };\r\n//# sourceMappingURL=DataParser.js.map","/**\r\n * Functionality for drawing triangles.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw a triangle.\r\n *\r\n * @see {@link ITriangleEvents} for a list of available events\r\n * @see {@link ITriangleAdapters} for a list of available Adapters\r\n */\r\nvar Triangle = /** @class */ (function (_super) {\r\n __extends(Triangle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Triangle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Triangle\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.direction = \"top\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Triangle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.pixelWidth;\r\n var h = this.pixelHeight;\r\n var path;\r\n switch (this.direction) {\r\n case \"right\":\r\n path = $path.moveTo({ x: 0, y: 0 })\r\n + $path.lineTo({ x: w, y: h / 2 })\r\n + $path.lineTo({ x: 0, y: h })\r\n + $path.closePath();\r\n break;\r\n case \"left\":\r\n path = $path.moveTo({ x: w, y: 0 })\r\n + $path.lineTo({ x: 0, y: h / 2 })\r\n + $path.lineTo({ x: w, y: h })\r\n + $path.closePath();\r\n break;\r\n case \"bottom\":\r\n path = $path.moveTo({ x: 0, y: 0 })\r\n + $path.lineTo({ x: w, y: 0 })\r\n + $path.lineTo({ x: w / 2, y: h })\r\n + $path.closePath();\r\n break;\r\n case \"top\":\r\n path = $path.moveTo({ x: w / 2, y: 0 })\r\n + $path.lineTo({ x: w, y: h })\r\n + $path.lineTo({ x: 0, y: h })\r\n + $path.closePath();\r\n break;\r\n }\r\n this.path = path;\r\n };\r\n Object.defineProperty(Triangle.prototype, \"direction\", {\r\n /**\r\n * Returns direction of a triangle\r\n *\r\n * @return value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"direction\");\r\n },\r\n /**\r\n * Sets direction of a triangle\r\n *\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"direction\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Triangle;\r\n}(Sprite));\r\nexport { Triangle };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Triangle\"] = Triangle;\r\n//# sourceMappingURL=Triangle.js.map","/**\r\n * Functionality for drawing rectangles with waved edges.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Rectangle } from \"./Rectangle\";\r\nimport { wavedLine } from \"../rendering/Smoothing\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a rectangle with waved edges.\r\n *\r\n * @see {@link IWavedRectangleEvents} for a list of available events\r\n * @see {@link IWavedRectangleAdapters} for a list of available Adapters\r\n */\r\nvar WavedRectangle = /** @class */ (function (_super) {\r\n __extends(WavedRectangle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function WavedRectangle() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"WavedRectangle\";\r\n // Add path element\r\n _this.element = _this.paper.add(\"path\");\r\n // Set defaults\r\n _this.waveLength = 16;\r\n _this.waveHeight = 4;\r\n _this.tension = 0.8;\r\n _this.setPropertyValue(\"wavedLeft\", true);\r\n _this.setPropertyValue(\"wavedRight\", true);\r\n _this.setPropertyValue(\"wavedTop\", true);\r\n _this.setPropertyValue(\"wavedBottom\", true);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the waved rectangle.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n WavedRectangle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.pixelWidth;\r\n var h = this.pixelHeight;\r\n if (w > 0 && h > 0) {\r\n var p1 = { x: 0, y: 0 };\r\n var p2 = { x: w, y: 0 };\r\n var p3 = { x: w, y: h };\r\n var p4 = { x: 0, y: h };\r\n var waveLengthH = Math.min(w, this.waveLength);\r\n var waveHeightH = Math.min(h, this.waveHeight);\r\n var waveLengthV = Math.min(h, this.waveLength);\r\n var waveHeightV = Math.min(w, this.waveHeight);\r\n var td = \"\";\r\n var rd = \"\";\r\n var bd = \"\";\r\n var ld = \"\";\r\n if (this.wavedTop) {\r\n td = wavedLine(p1, p2, waveLengthH, waveHeightH, this.tension, true);\r\n }\r\n if (this.wavedRight) {\r\n rd = wavedLine(p2, p3, waveLengthV, waveHeightV, this.tension, true);\r\n }\r\n if (this.wavedBottom) {\r\n bd = wavedLine(p3, p4, waveLengthH, waveHeightH, this.tension, true);\r\n }\r\n if (this.wavedLeft) {\r\n ld = wavedLine(p4, p1, waveLengthV, waveHeightV, this.tension, true);\r\n }\r\n this.path = $path.moveTo(p1) + td + $path.lineTo(p2) + rd + $path.lineTo(p3) + bd + $path.lineTo(p4) + ld + \"z\";\r\n }\r\n };\r\n Object.defineProperty(WavedRectangle.prototype, \"waveLength\", {\r\n /**\r\n * @return Wave length (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveLength\");\r\n },\r\n /**\r\n * Wave length in pixels.\r\n *\r\n * @default 16\r\n * @param value Wave length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveLength\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedRectangle.prototype, \"waveHeight\", {\r\n /**\r\n * @return Wave height (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveHeight\");\r\n },\r\n /**\r\n * Wave height in pixels.\r\n *\r\n * @default 4\r\n * @param value Wave height (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveHeight\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets which side should be waved or not. If particular side is set to\r\n * `false`, a straight line will be drawn on that side.\r\n *\r\n * @param top Top waved?\r\n * @param right Right side waved?\r\n * @param bottom Bottom Waved?\r\n * @param left Left side waved?\r\n */\r\n WavedRectangle.prototype.setWavedSides = function (top, right, bottom, left) {\r\n this.wavedTop = top;\r\n this.wavedRight = right;\r\n this.wavedBottom = bottom;\r\n this.wavedLeft = left;\r\n };\r\n Object.defineProperty(WavedRectangle.prototype, \"tension\", {\r\n /**\r\n * @return Tension\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Tension of the wave.\r\n *\r\n * @default 0.8\r\n * @param value Tension\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedRectangle.prototype, \"wavedRight\", {\r\n /**\r\n * @return Wave right side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wavedRight\");\r\n },\r\n /**\r\n * Specifies if right side should be waved.\r\n *\r\n * @default true\r\n * @param value Waved?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"wavedRight\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedRectangle.prototype, \"wavedLeft\", {\r\n /**\r\n * @return Wave left side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wavedLeft\");\r\n },\r\n /**\r\n * Specifies if left side should be waved.\r\n *\r\n * @default true\r\n * @param value Waved?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"wavedLeft\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedRectangle.prototype, \"wavedTop\", {\r\n /**\r\n * @return Wave top side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wavedTop\");\r\n },\r\n /**\r\n * Specifies if top side should be waved.\r\n *\r\n * @default true\r\n * @param value Waved?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"wavedTop\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedRectangle.prototype, \"wavedBottom\", {\r\n /**\r\n * @return Wave bottom side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"wavedBottom\");\r\n },\r\n /**\r\n * Specifies if bottom side should be waved.\r\n *\r\n * @default true\r\n * @param value Waved?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"wavedBottom\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WavedRectangle;\r\n}(Rectangle));\r\nexport { WavedRectangle };\r\n//# sourceMappingURL=WavedRectangle.js.map","/**\r\n * Module for \"Lighten\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a \"Lighten\" filter.\r\n */\r\nvar LightenFilter = /** @class */ (function (_super) {\r\n __extends(LightenFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LightenFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LightenFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.feColorMatrix = _this.paper.add(\"feColorMatrix\");\r\n _this.feColorMatrix.attr({ \"type\": \"matrix\" });\r\n _this.filterPrimitives.push(_this.feColorMatrix);\r\n // Set default properties\r\n _this.lightness = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(LightenFilter.prototype, \"lightness\", {\r\n /**\r\n * @return Lightness\r\n */\r\n get: function () {\r\n return this.properties[\"lightness\"];\r\n },\r\n /**\r\n * Lightness of the target colors.\r\n *\r\n * If `lightness` is a positive number, the filter will make all colors\r\n * lighter.\r\n *\r\n * If `lightness` is negative, colors will be darkened.\r\n *\r\n * @param value Lightness\r\n */\r\n set: function (value) {\r\n this.properties[\"lightness\"] = value;\r\n var v = value + 1;\r\n this.feColorMatrix.attr({ \"values\": v + \" 0 0 0 0 0 \" + v + \" 0 0 0 0 0 \" + v + \" 0 0 0 0 0 1 0\" });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LightenFilter;\r\n}(Filter));\r\nexport { LightenFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LightenFilter\"] = LightenFilter;\r\n//# sourceMappingURL=LightenFilter.js.map","import { StyleRule } from \"../utils/DOM\";\r\nimport { Dictionary } from \"../utils/Dictionary\";\r\nimport { MultiDisposer, CounterDisposer } from \"../utils/Disposer\";\r\nimport { InterfaceColorSet } from \"../utils/InterfaceColorSet\";\r\nvar rules = new Dictionary();\r\n/**\r\n * Default CSS for Popup.\r\n *\r\n * @ignore Exclude from docs\r\n * @param prefix Prefix for CSS classes\r\n * @return Disposer for the CSS definition\r\n */\r\nexport default function (element, prefix) {\r\n if (!prefix) {\r\n prefix = \"ampopup\";\r\n }\r\n var cs = new InterfaceColorSet();\r\n var fg = cs.getFor(\"text\");\r\n var bg = cs.getFor(\"background\");\r\n bg.alpha = 0.8;\r\n var abg = cs.getFor(\"alternativeBackground\");\r\n abg.alpha = 0.05;\r\n var counter = rules.insertKeyIfEmpty(prefix, function () {\r\n var disposer = new MultiDisposer([\r\n new StyleRule(element, \".\" + prefix, {\r\n //\"width\": \"100%\",\r\n //\"height\": \"100%\",\r\n \"overflow\": \"visible\",\r\n \"position\": \"absolute\",\r\n \"top\": \"0\",\r\n \"left\": \"0\",\r\n \"z-index\": \"2000\"\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-curtain\", {\r\n \"width\": \"100%\",\r\n \"height\": \"100%\",\r\n \"position\": \"absolute\",\r\n \"top\": \"0\",\r\n \"left\": \"0\",\r\n \"z-index\": \"2001\",\r\n \"background-color\": bg.hex,\r\n \"opacity\": \"0.5\"\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-header\", {\r\n \"display\": \"block\",\r\n \"width\": \"100%\",\r\n \"min-height\": \"1.8em\",\r\n \"background\": abg.rgba\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-title\", {\r\n \"font-weight\": \"bold\",\r\n \"font-size\": \"110%\",\r\n \"padding\": \"0.5em 1.2em 0.5em 1em\"\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-content\", {\r\n /*\"width\": \"100%\",\r\n \"height\": \"100%\",*/\r\n // \"padding\": \"2em 1em 1em 1em\",\r\n \"background\": bg.hex,\r\n \"background-color\": bg.rgba,\r\n \"color\": fg.hex,\r\n \"display\": \"inline-block\",\r\n \"position\": \"absolute\",\r\n \"top\": \"0\",\r\n \"left\": \"0\",\r\n \"max-width\": \"90%\",\r\n \"max-height\": \"90%\",\r\n \"overflow\": \"auto\",\r\n \"z-index\": \"2002\"\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-inside\", {\r\n \"padding\": \"1em\"\r\n }),\r\n new StyleRule(element, \".\" + prefix + \"-close\", {\r\n \"display\": \"block\",\r\n \"position\": \"absolute\",\r\n \"top\": \"0.3em\",\r\n \"right\": \"0.3em\",\r\n \"background-color\": \"rgb(100, 100, 100)\",\r\n \"background\": \"rgba(100, 100, 100, 0.1) url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ0NS4yIDEwOS4ybC00Mi40LTQyLjRMMjU2IDIxMy42IDEwOS4yIDY2LjhsLTQyLjQgNDIuNEwyMTMuNiAyNTYgNjYuOCA0MDIuOGw0Mi40IDQyLjRMMjU2IDI5OC40bDE0Ni44IDE0Ni44IDQyLjQtNDIuNEwyOTguNCAyNTYiLz48L3N2Zz4=) no-repeat center\",\r\n \"background-size\": \"80%\",\r\n \"width\": \"1.2em\",\r\n \"height\": \"1.2em\",\r\n \"cursor\": \"pointer\"\r\n }),\r\n ]);\r\n return new CounterDisposer(function () {\r\n rules.removeKey(prefix);\r\n disposer.dispose();\r\n });\r\n });\r\n return counter.increment();\r\n}\r\n//# sourceMappingURL=PopupCSS.js.map","/**\r\n * Popup class is used to display information over chart area.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport popupCSS from \"./PopupCSS\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { getInteraction } from \"../interaction/Interaction\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport { MultiDisposer } from \"../utils/Disposer\";\r\nimport { getShadowRoot } from \"../utils/DOM\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n/**\r\n * Shows an HTML popup which covers window or a chart area.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/popups-and-modals/} For examples and docs on Popups and Modals.\r\n * @todo Positioning over whole window\r\n */\r\nvar Popup = /** @class */ (function (_super) {\r\n __extends(Popup, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Popup() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * Holds references to various HTML elements, Popup consists of.\r\n */\r\n _this._elements = {};\r\n /**\r\n * Holdes Interaction objects for various Popup's elements.\r\n */\r\n _this._IOs = {};\r\n /**\r\n * Contents of popup window.\r\n */\r\n _this._content = \"\";\r\n /**\r\n * Title of the popup window.\r\n */\r\n _this._title = \"\";\r\n /**\r\n * Prefix to apply to class names for popup elements.\r\n */\r\n _this._classPrefix = \"ampopup\";\r\n /**\r\n * If set to `true` [[Popup]] will use default styles.\r\n */\r\n _this._defaultStyles = true;\r\n /**\r\n * If set to `true` [[Popup]] will dim out all chart content behind it by\r\n * showing a semi-transparent fill. (curtain)\r\n */\r\n _this._showCurtain = false;\r\n /**\r\n * Indicates whether popup can be dragged.\r\n */\r\n _this._draggable = true;\r\n /**\r\n * Horizontal position of the content window.\r\n */\r\n _this._align = \"center\";\r\n /**\r\n * Resize popup as images are being loaded.\r\n */\r\n _this._dynamicResize = true;\r\n /**\r\n * Vertical position of the content window.\r\n */\r\n _this._verticalAlign = \"middle\";\r\n /**\r\n * Shift in position of the element. (used for dragging)\r\n */\r\n _this._shift = {\r\n x: 0,\r\n y: 0\r\n };\r\n /**\r\n * Temporary shift in position of the element. (used for dragging)\r\n */\r\n _this._tempShift = {\r\n x: 0,\r\n y: 0\r\n };\r\n /**\r\n * A title for screen readers. It is very highly recommended to set that title\r\n * so that people using screen reader tools can get an immediate summary of\r\n * the information in the popup.\r\n */\r\n _this._readerTitle = \"\";\r\n /**\r\n * Is popup closable?\r\n */\r\n _this._closable = true;\r\n /**\r\n * Was CSS already loaded?\r\n */\r\n _this._cssLoaded = false;\r\n /**\r\n * If set to other than \"none\" will try to re-adjust the position of the\r\n * popop to fit within chart container or browser window.\r\n *\r\n * @ignore Feature not yet implemented\r\n * @todo Implement\r\n */\r\n _this._fitTo = \"window\";\r\n /**\r\n * Identifies if this object is a \"template\" and should not be treated as\r\n * real object that is drawn or actually used in the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.isTemplate = false;\r\n /**\r\n * Indicates if the element was already sized and should not be measured for\r\n * size again, saving some precious resources.\r\n */\r\n _this._sized = false;\r\n _this.className = \"Popup\";\r\n return _this;\r\n }\r\n /**\r\n * Shows popup window.\r\n */\r\n Popup.prototype.open = function () {\r\n if (this.container) {\r\n if (this._elements.wrapper) {\r\n this.container.appendChild(this._elements.wrapper);\r\n }\r\n if (this._elements.curtain) {\r\n this.container.appendChild(this._elements.curtain);\r\n this.showCurtain = this.showCurtain;\r\n }\r\n this.positionElement();\r\n this.dispatchImmediately(\"opened\");\r\n }\r\n };\r\n /**\r\n * Hides popup window.\r\n */\r\n Popup.prototype.close = function () {\r\n if (this._elements.wrapper) {\r\n if (this._elements.wrapper.parentElement) {\r\n this._elements.wrapper.parentElement.removeChild(this._elements.wrapper);\r\n }\r\n }\r\n if (this._elements.curtain) {\r\n if (this._elements.curtain.parentElement) {\r\n this._elements.curtain.parentElement.removeChild(this._elements.curtain);\r\n }\r\n }\r\n this.dispatchImmediately(\"closed\");\r\n this.releasePointers();\r\n };\r\n /**\r\n * Destroy (dispose) popup.\r\n */\r\n Popup.prototype.dispose = function () {\r\n this.close();\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * Positions content element in the center of popup based on its actual size.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Popup.prototype.positionElement = function (forceResize) {\r\n var _this = this;\r\n if (forceResize === void 0) { forceResize = true; }\r\n if (!this._elements.wrapper) {\r\n return;\r\n }\r\n setTimeout(function () {\r\n if (!_this._elements.wrapper) {\r\n return;\r\n }\r\n if (forceResize || !_this._sized) {\r\n _this._elements.wrapper.style.opacity = \"0.01\";\r\n _this._elements.wrapper.style.left = \"0\";\r\n _this._elements.wrapper.style.top = \"0\";\r\n _this._elements.wrapper.style.margin = \"0 0 0 0\";\r\n _this._elements.wrapper.style.width = \"\";\r\n _this._elements.wrapper.style.height = \"\";\r\n var bbox = _this._elements.wrapper.getBoundingClientRect();\r\n _this._elements.wrapper.style.width = bbox.width + \"px\";\r\n _this._elements.wrapper.style.height = bbox.height + \"px\";\r\n _this._sized = true;\r\n }\r\n // Check for any images that are not yet loaded\r\n if (_this.dynamicResize) {\r\n var images = _this._elements.wrapper.getElementsByTagName(\"img\");\r\n for (var i = 0; i < images.length; i++) {\r\n var image = images[i];\r\n if (!image.complete) {\r\n // Resize popup once again when image is loaded\r\n image.addEventListener(\"load\", function () {\r\n _this.positionElement(true);\r\n });\r\n // Do this for one image only as it will be checked again next time\r\n // anyway\r\n break;\r\n }\r\n }\r\n }\r\n setTimeout(function () {\r\n if (!_this._elements.wrapper) {\r\n return;\r\n }\r\n var bbox;\r\n if ((forceResize || !_this._sized) && _this._bbox) {\r\n bbox = _this._bbox;\r\n }\r\n else {\r\n bbox = _this._elements.wrapper.getBoundingClientRect();\r\n _this._elements.wrapper.style.opacity = \"\";\r\n }\r\n // Set horizontal positioning\r\n switch (_this.align) {\r\n case \"left\":\r\n _this._elements.wrapper.style.left = \"0\";\r\n _this._elements.wrapper.style.right = \"auto\";\r\n _this._elements.wrapper.style.marginLeft = _this.toStyle(_this._shift.x + _this._tempShift.x);\r\n break;\r\n case \"center\":\r\n _this._elements.wrapper.style.left = \"50%\";\r\n _this._elements.wrapper.style.right = \"auto\";\r\n _this._elements.wrapper.style.marginLeft = _this.toStyle(Math.round(-bbox.width / 2) + (_this._shift.x + _this._tempShift.x));\r\n break;\r\n case \"right\":\r\n _this._elements.wrapper.style.left = \"auto\";\r\n _this._elements.wrapper.style.right = \"0\";\r\n _this._elements.wrapper.style.marginLeft = _this.toStyle(_this._shift.x + _this._tempShift.x);\r\n break;\r\n default:\r\n _this._elements.wrapper.style.left = _this.toStyle(_this.left) || \"auto\";\r\n _this._elements.wrapper.style.right = _this.toStyle(_this.right) || \"auto\";\r\n _this._elements.wrapper.style.marginLeft = _this.toStyle(_this._shift.x + _this._tempShift.x);\r\n break;\r\n }\r\n // Set vertical positioning\r\n switch (_this.verticalAlign) {\r\n case \"top\":\r\n _this._elements.wrapper.style.top = \"0\";\r\n _this._elements.wrapper.style.bottom = \"auto\";\r\n _this._elements.wrapper.style.marginTop = _this.toStyle(_this._shift.y + _this._tempShift.y);\r\n break;\r\n case \"middle\":\r\n _this._elements.wrapper.style.top = \"50%\";\r\n _this._elements.wrapper.style.bottom = \"auto\";\r\n _this._elements.wrapper.style.marginTop = _this.toStyle(Math.round(-bbox.height / 2) + (_this._shift.y + _this._tempShift.y));\r\n break;\r\n case \"bottom\":\r\n _this._elements.wrapper.style.top = \"auto\";\r\n _this._elements.wrapper.style.bottom = \"0\";\r\n _this._elements.wrapper.style.marginTop = _this.toStyle(_this._shift.y + _this._tempShift.y);\r\n break;\r\n default:\r\n _this._elements.wrapper.style.top = _this.toStyle(_this.top) || \"auto\";\r\n _this._elements.wrapper.style.bottom = _this.toStyle(_this.bottom) || \"auto\";\r\n _this._elements.wrapper.style.marginTop = _this.toStyle(_this._shift.y + _this._tempShift.y);\r\n break;\r\n }\r\n }, 1);\r\n }, 1);\r\n };\r\n Popup.prototype.setupDragging = function () {\r\n var _this = this;\r\n if (this.draggable) {\r\n if (!this._IOs.header.events.has(\"drag\")) {\r\n this._IOs.header.events.on(\"drag\", function (ev) {\r\n _this._tempShift.x = ev.shift.x;\r\n _this._tempShift.y = ev.shift.y;\r\n _this.positionElement(false);\r\n });\r\n }\r\n if (!this._IOs.header.events.has(\"dragstop\")) {\r\n this._IOs.header.events.on(\"dragstop\", function (ev) {\r\n _this._shift.x += _this._tempShift.x;\r\n _this._shift.y += _this._tempShift.y;\r\n _this._tempShift.x = 0;\r\n _this._tempShift.y = 0;\r\n _this.positionElement(false);\r\n });\r\n }\r\n }\r\n else {\r\n if (this._IOs.header) {\r\n getInteraction().unprepElement(this._IOs.header);\r\n if (this._IOs.header.events.has(\"drag\")) {\r\n this._IOs.header.events.off(\"drag\");\r\n }\r\n if (this._IOs.header.events.has(\"dragstop\")) {\r\n this._IOs.header.events.off(\"dragstop\");\r\n }\r\n }\r\n }\r\n };\r\n Popup.prototype.toStyle = function (value) {\r\n if (!$type.hasValue(value)) {\r\n return null;\r\n }\r\n else if ($type.isNumber(value)) {\r\n return \"\" + value + \"px\";\r\n }\r\n else {\r\n return value.toString();\r\n }\r\n };\r\n Object.defineProperty(Popup.prototype, \"classPrefix\", {\r\n /**\r\n * A prefix that is applied to class names of various popup elements.\r\n *\r\n * @return Class name prefix\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"classPrefix\", this._classPrefix);\r\n },\r\n /**\r\n * @param value Class name prefix\r\n */\r\n set: function (value) {\r\n this._classPrefix = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"classPrefixRaw\", {\r\n /**\r\n * Returns raw prefix (without adapters applied).\r\n *\r\n * @ignore Exclude from docs\r\n * @return Class name prefix\r\n */\r\n get: function () {\r\n return this._classPrefix;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"content\", {\r\n /**\r\n * @return Popup content\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"content\", this._content);\r\n },\r\n /**\r\n * Popup content.\r\n *\r\n * Popup content can be any valid HTML, including CSS.\r\n *\r\n * @param value Popup content\r\n */\r\n set: function (value) {\r\n if (this._content != value) {\r\n this._content = value;\r\n if (!this._elements.content) {\r\n this.createContentElement();\r\n }\r\n this._elements.content.innerHTML = value;\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Popup.prototype.getClassNames = function () {\r\n return this.adapter.apply(\"classNames\", {\r\n wrapperClass: this.classPrefix + \"\",\r\n headerClass: this.classPrefix + \"-header\",\r\n titleClass: this.classPrefix + \"-title\",\r\n contentClass: this.classPrefix + \"-content\",\r\n insideClass: this.classPrefix + \"-inside\",\r\n curtainClass: this.classPrefix + \"-curtain\",\r\n closeClass: this.classPrefix + \"-close\"\r\n });\r\n };\r\n /**\r\n * Creates content element.\r\n */\r\n Popup.prototype.createContentElement = function () {\r\n // Check if it's created already\r\n if (this._elements.wrapper) {\r\n return;\r\n }\r\n // Get class names for popup elements\r\n var classNames = this.getClassNames();\r\n // Create content element\r\n var wrapper = document.createElement(\"div\");\r\n wrapper.className = classNames.contentClass;\r\n wrapper.style.opacity = \"0.01\";\r\n // Create close button\r\n var close = document.createElement(\"a\");\r\n close.className = classNames.closeClass;\r\n // header title\r\n var header = document.createElement(\"div\");\r\n header.className = classNames.headerClass;\r\n // Content title\r\n var title = document.createElement(\"div\");\r\n title.innerHTML = this.title;\r\n title.className = classNames.titleClass;\r\n if (!this.title) {\r\n title.style.display = \"none\";\r\n }\r\n // Content div\r\n var content = document.createElement(\"div\");\r\n content.className = classNames.insideClass;\r\n content.innerHTML = this.content;\r\n // Set up events for content\r\n this._IOs.wrapper = getInteraction().getInteraction(wrapper);\r\n this._IOs.header = getInteraction().getInteraction(header);\r\n this._disposers.push(this._IOs.wrapper);\r\n // Set hover/out events\r\n this._IOs.wrapper.events.on(\"over\", this.disablePointers, this);\r\n this._IOs.wrapper.events.on(\"out\", this.releasePointers, this);\r\n // Create an InteractionObject for close\r\n this._IOs.close = getInteraction().getInteraction(close);\r\n this._disposers.push(this._IOs.close);\r\n // Hide close for now\r\n close.style.visibility = \"hidden\";\r\n // Add accessible stuff\r\n wrapper.setAttribute(\"role\", \"dialog\");\r\n // Add to wrapper\r\n header.appendChild(close);\r\n header.appendChild(title);\r\n wrapper.appendChild(header);\r\n wrapper.appendChild(content);\r\n this.container.appendChild(wrapper);\r\n // Save for later access\r\n this._elements.wrapper = wrapper;\r\n this._elements.header = header;\r\n this._elements.content = content;\r\n this._elements.title = title;\r\n this._elements.close = close;\r\n // Load CSS\r\n if (this.defaultStyles) {\r\n this.loadDefaultCSS();\r\n }\r\n // Create curtain as well\r\n this.createCurtainElement();\r\n // Apply events\r\n this.applyEvents();\r\n this.applyReaderSettings();\r\n // Draggable?\r\n this.setupDragging();\r\n };\r\n Object.defineProperty(Popup.prototype, \"title\", {\r\n /**\r\n * @return Popup title\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"title\", this._title);\r\n },\r\n /**\r\n * Popup title.\r\n *\r\n * Popup title can be any valid HTML, including CSS.\r\n *\r\n * @param value Popup title\r\n */\r\n set: function (value) {\r\n if (this._title != value) {\r\n this._title = value;\r\n if (!this._elements.content) {\r\n this.createContentElement();\r\n }\r\n this._elements.title.innerHTML = value;\r\n this.positionElement();\r\n this.applyReaderSettings();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"readerTitle\", {\r\n /**\r\n * @return Popup content\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"readerTitle\", this._readerTitle != \"\" ? this._readerTitle : this.title);\r\n },\r\n /**\r\n * A title for screen readers. It is very highly recommended to set that title\r\n * so that people using screen reader tools can get an immediate summary of\r\n * the information in the popup.\r\n *\r\n * @param value Reader title\r\n */\r\n set: function (value) {\r\n if (this._readerTitle != value) {\r\n this._readerTitle = value;\r\n this.applyReaderSettings();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"closable\", {\r\n /**\r\n * @return Closable?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"closable\", this._closable);\r\n },\r\n /**\r\n * Is popup closable?\r\n *\r\n * If it is, it can be closed in a number of ways, e.g. by hitting ESC key,\r\n * clicking curtain, or clicking the close button.\r\n *\r\n * If it is not closable, the only way to close it is via `close()` call.\r\n *\r\n * @param value Closable?\r\n */\r\n set: function (value) {\r\n if (value !== this._closable) {\r\n this._closable = value;\r\n this.applyEvents();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"fitTo\", {\r\n /**\r\n * @ignore\r\n * @todo Implement\r\n * @return Fit option\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"fitTo\", this._fitTo);\r\n },\r\n /**\r\n * If set to other than \"none\" will try to re-adjust the position of the\r\n * popop to fit within chart container or browser window.\r\n *\r\n * @ignore\r\n * @todo Implement\r\n * @default \"window\"\r\n * @param value Fit option\r\n */\r\n set: function (value) {\r\n if (value != this._fitTo) {\r\n this._fitTo = value;\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"defaultStyles\", {\r\n /**\r\n * @return Use default CSS?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"defaultStyles\", this._defaultStyles);\r\n },\r\n /**\r\n * Should popup use default CSS?\r\n *\r\n * If default CSS is disabled, an external CSS should handle the look of the\r\n * popup, since it will look quite out of place otherwise.\r\n *\r\n * @default true\r\n * @param Use default CSS?\r\n */\r\n set: function (value) {\r\n if (this._defaultStyles != value) {\r\n this._defaultStyles = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"showCurtain\", {\r\n /**\r\n * @return Show curtain?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"showCurtain\", this._showCurtain);\r\n },\r\n /**\r\n * Should popup use dim out all content behind it?\r\n *\r\n * @default false\r\n * @param Show curtain?\r\n */\r\n set: function (value) {\r\n if (this._showCurtain != value) {\r\n this._showCurtain = value;\r\n if (this._elements.curtain) {\r\n this._elements.curtain.style.display = value ? \"block\" : \"none\";\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates curtain element.\r\n */\r\n Popup.prototype.createCurtainElement = function () {\r\n // Get class names for popup elements\r\n var classNames = this.getClassNames();\r\n // Create the curtain\r\n var curtain = document.createElement(\"div\");\r\n curtain.className = classNames.curtainClass;\r\n // Append curtain to wrapper\r\n this.container.appendChild(curtain);\r\n // Create an InteractionObject for curtain because we might need to\r\n // set interactions on it\r\n this._IOs.curtain = getInteraction().getInteraction(curtain);\r\n // Add Curtain IO to disposers\r\n this._disposers.push(this._IOs.curtain);\r\n // Set events to disable underlying interactivity\r\n this._IOs.curtain.events.on(\"over\", this.disablePointers, this);\r\n this._IOs.curtain.events.on(\"out\", this.releasePointers, this);\r\n // Hide it?\r\n curtain.style.display = this.showCurtain ? \"block\" : \"none\";\r\n // Save for later\r\n this._elements.curtain = curtain;\r\n };\r\n Object.defineProperty(Popup.prototype, \"draggable\", {\r\n /**\r\n * @return Show curtain?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"draggable\", this._draggable);\r\n },\r\n /**\r\n * Can the popup be dragged with a pointer?\r\n *\r\n * @default false\r\n * @param Show curtain?\r\n */\r\n set: function (value) {\r\n if (this._draggable != value) {\r\n this._draggable = value;\r\n this.setupDragging();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"dynamicResize\", {\r\n /**\r\n * @return Resize dynamically?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"dynamicResize\", this._dynamicResize);\r\n },\r\n /**\r\n * Resize popup as images are being loaded.\r\n *\r\n * @default true\r\n * @since 4.9.17\r\n * @param Resize dynamically?\r\n */\r\n set: function (value) {\r\n if (this._dynamicResize != value) {\r\n this._dynamicResize = value;\r\n this.positionElement(true);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"align\", {\r\n /**\r\n * @return Horizontal position\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"align\", this._align);\r\n },\r\n /**\r\n * Horizontal positioning of the content window.\r\n *\r\n * Available options: \"left\", \"center\" (default), \"right\", and \"none\".\r\n *\r\n * @default \"center\"\r\n * @param Horizontal position\r\n */\r\n set: function (value) {\r\n if (this._align != value) {\r\n this._align = value;\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"verticalAlign\", {\r\n /**\r\n * @return Vertical position\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"verticalAlign\", this._verticalAlign);\r\n },\r\n /**\r\n * Vertical positioning of the content window.\r\n *\r\n * Available options: \"top\", \"middle\" (default), \"bottom\", and \"none\".\r\n *\r\n * @default \"middle\"\r\n * @param Vertical position\r\n */\r\n set: function (value) {\r\n if (this._verticalAlign != value) {\r\n this._verticalAlign = value;\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"left\", {\r\n /**\r\n * @return Left\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"left\", this._left);\r\n },\r\n /**\r\n * \"left\" coordinate of a non-aligned (`align = \"none\"`) popup.\r\n *\r\n * Can be either absolute pixel value, or relative (`Percent`).\r\n *\r\n * Setting this property will automatically set `align` to \"none\".\r\n *\r\n * NOTE: The position is relative to the chart container.\r\n *\r\n * @param Left\r\n */\r\n set: function (value) {\r\n if (this.left != value) {\r\n this._left = value;\r\n this._align = \"none\";\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"right\", {\r\n /**\r\n * @return Right\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"right\", this._right);\r\n },\r\n /**\r\n * \"right\" coordinate of a non-aligned (`align = \"none\"`) popup.\r\n *\r\n * Can be either absolute pixel value, or relative (`Percent`).\r\n *\r\n * Setting this property will automatically set `align` to \"none\".\r\n *\r\n * NOTE: The position is relative to the chart container.\r\n *\r\n * @param Right\r\n */\r\n set: function (value) {\r\n if (this.right != value) {\r\n this._right = value;\r\n this._align = \"none\";\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"top\", {\r\n /**\r\n * @return Top\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"top\", this._top);\r\n },\r\n /**\r\n * \"top\" coordinate of a non-aligned (`verticalAlign = \"none\"`) popup.\r\n *\r\n * Can be either absolute pixel value, or relative (`Percent`).\r\n *\r\n * Setting this property will automatically set `verticalAlign` to \"none\".\r\n *\r\n * NOTE: The position is relative to the chart container.\r\n *\r\n * @param Top\r\n */\r\n set: function (value) {\r\n if (this.top != value) {\r\n this._top = value;\r\n this._verticalAlign = \"none\";\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"bottom\", {\r\n /**\r\n * @return Bottom\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"bottom\", this._bottom);\r\n },\r\n /**\r\n * \"bottom\" coordinate of a non-aligned (`verticalAlign = \"none\"`) popup.\r\n *\r\n * Can be either absolute pixel value, or relative (`Percent`).\r\n *\r\n * Setting this property will automatically set `verticalAlign` to \"none\".\r\n *\r\n * NOTE: The position is relative to the chart container.\r\n *\r\n * @param Bottom\r\n */\r\n set: function (value) {\r\n if (this.bottom != value) {\r\n this._bottom = value;\r\n this._verticalAlign = \"none\";\r\n this.positionElement();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Popup.prototype, \"elements\", {\r\n /**\r\n * Returns an object with references to various elements of the Popup.\r\n *\r\n * * `wrapper`\r\n * * `title`\r\n * * `content`\r\n * * `close`\r\n * * `curtain`\r\n */\r\n get: function () {\r\n return this._elements;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Loads popup CSS.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Popup.prototype.loadDefaultCSS = function () {\r\n if (!this._cssLoaded) {\r\n this._disposers.push(popupCSS(getShadowRoot(this.container), this.classPrefix));\r\n $object.each(this._elements, function (key, el) {\r\n el.style.display = \"\";\r\n });\r\n this._cssLoaded = true;\r\n }\r\n };\r\n /**\r\n * If popup is closable, this method adds various events to popup elements.\r\n */\r\n Popup.prototype.applyEvents = function () {\r\n var _this = this;\r\n if (this._IOs.close) {\r\n if (this.closable) {\r\n this._IOs.close.element.style.visibility = \"visible\";\r\n var disposers = [\r\n getInteraction().body.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"esc\") && _this.closable) {\r\n _this.close();\r\n }\r\n }),\r\n this._IOs.close.events.on(\"hit\", function (ev) {\r\n _this.close();\r\n })\r\n ];\r\n disposers.push(this._IOs.curtain.events.on(\"hit\", function (ev) {\r\n if (_this.showCurtain && _this.closable) {\r\n _this.close();\r\n }\r\n }));\r\n this._disposers.push(new MultiDisposer(disposers));\r\n }\r\n else {\r\n this._IOs.close.element.style.visibility = \"hidden\";\r\n }\r\n }\r\n };\r\n /**\r\n * Disables interactivity on parent chart.\r\n */\r\n Popup.prototype.disablePointers = function () {\r\n if (this.sprite) {\r\n this._spriteInteractionsEnabled = this.sprite.interactionsEnabled;\r\n this.sprite.interactionsEnabled = false;\r\n }\r\n };\r\n /**\r\n * Releases temporarily disabled pointers on parent chart.\r\n */\r\n Popup.prototype.releasePointers = function () {\r\n if ($type.hasValue(this._spriteInteractionsEnabled)) {\r\n this.sprite.interactionsEnabled = this._spriteInteractionsEnabled;\r\n this._spriteInteractionsEnabled = undefined;\r\n }\r\n };\r\n /**\r\n * Sets screen reader related settings.\r\n */\r\n Popup.prototype.applyReaderSettings = function () {\r\n this.elements.wrapper.setAttribute(\"aria-label\", this.readerTitle);\r\n };\r\n /**\r\n * Copies all properties and related data from different element.\r\n *\r\n * @param object Source element\r\n */\r\n Popup.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.container = source.container;\r\n this.sprite = source.sprite;\r\n this.classPrefix = source.classPrefixRaw;\r\n this.content = source.content;\r\n this.title = source.title;\r\n this.readerTitle = source.readerTitle;\r\n this.defaultStyles = source.defaultStyles;\r\n this.showCurtain = source.showCurtain;\r\n this.align = source.align;\r\n this.verticalAlign = source.verticalAlign;\r\n this.left = source.left;\r\n this.right = source.right;\r\n this.top = source.top;\r\n this.bottom = source.bottom;\r\n this.adapter.copyFrom(source.adapter);\r\n };\r\n return Popup;\r\n}(BaseObjectEvents));\r\nexport { Popup };\r\n//# sourceMappingURL=Popup.js.map","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n var args = [].slice.call(arguments, 0);\n\n if (args.length === 1) {\n return args[0];\n }\n\n return function chainedFunction() {\n for (var i = 0; i < args.length; i++) {\n if (args[i] && args[i].apply) {\n args[i].apply(this, arguments);\n }\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _grid = require(\"../grid\");\n\nvar _default = _grid.Row;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _rcAnimate = _interopRequireDefault(require(\"rc-animate\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ScrollNumber = _interopRequireDefault(require(\"./ScrollNumber\"));\n\nvar _colors = require(\"../_util/colors\");\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nfunction isPresetColor(color) {\n return _colors.PresetColorTypes.indexOf(color) !== -1;\n}\n\nvar Badge = /*#__PURE__*/function (_React$Component) {\n _inherits(Badge, _React$Component);\n\n var _super = _createSuper(Badge);\n\n function Badge() {\n var _this;\n\n _classCallCheck(this, Badge);\n\n _this = _super.apply(this, arguments);\n\n _this.renderBadge = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n customizeScrollNumberPrefixCls = _a.scrollNumberPrefixCls,\n children = _a.children,\n status = _a.status,\n text = _a.text,\n color = _a.color,\n restProps = __rest(_a, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\"]);\n\n var omitArr = ['count', 'showZero', 'overflowCount', 'className', 'style', 'dot', 'offset', 'title'];\n var prefixCls = getPrefixCls('badge', customizePrefixCls);\n var scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n\n var scrollNumber = _this.renderBadgeNumber(prefixCls, scrollNumberPrefixCls);\n\n var statusText = _this.renderStatusText(prefixCls);\n\n var statusCls = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-dot\"), _this.hasStatus()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(status), !!status), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)), _classNames));\n var statusStyle = {};\n\n if (color && !isPresetColor(color)) {\n statusStyle.background = color;\n } // <Badge status=\"success\" />\n\n\n if (!children && _this.hasStatus()) {\n var styleWithOffset = _this.getStyleWithOffset();\n\n var statusTextColor = styleWithOffset && styleWithOffset.color;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, (0, _omit[\"default\"])(restProps, omitArr), {\n className: _this.getBadgeClassName(prefixCls),\n style: styleWithOffset\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: statusStyle\n }), /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text));\n }\n\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, (0, _omit[\"default\"])(restProps, omitArr), {\n className: _this.getBadgeClassName(prefixCls)\n }), children, /*#__PURE__*/React.createElement(_rcAnimate[\"default\"], {\n component: \"\",\n showProp: \"data-show\",\n transitionName: children ? \"\".concat(prefixCls, \"-zoom\") : '',\n transitionAppear: true\n }, scrollNumber), statusText);\n };\n\n return _this;\n }\n\n _createClass(Badge, [{\n key: \"getNumberedDispayCount\",\n value: function getNumberedDispayCount() {\n var _this$props = this.props,\n count = _this$props.count,\n overflowCount = _this$props.overflowCount;\n var displayCount = count > overflowCount ? \"\".concat(overflowCount, \"+\") : count;\n return displayCount;\n }\n }, {\n key: \"getDispayCount\",\n value: function getDispayCount() {\n var isDot = this.isDot(); // dot mode don't need count\n\n if (isDot) {\n return '';\n }\n\n return this.getNumberedDispayCount();\n }\n }, {\n key: \"getScrollNumberTitle\",\n value: function getScrollNumberTitle() {\n var _this$props2 = this.props,\n title = _this$props2.title,\n count = _this$props2.count;\n\n if (title) {\n return title;\n }\n\n return typeof count === 'string' || typeof count === 'number' ? count : undefined;\n }\n }, {\n key: \"getStyleWithOffset\",\n value: function getStyleWithOffset() {\n var _this$props3 = this.props,\n offset = _this$props3.offset,\n style = _this$props3.style;\n return offset ? _extends({\n right: -parseInt(offset[0], 10),\n marginTop: offset[1]\n }, style) : style;\n }\n }, {\n key: \"getBadgeClassName\",\n value: function getBadgeClassName(prefixCls) {\n var _classNames2;\n\n var _this$props4 = this.props,\n className = _this$props4.className,\n children = _this$props4.children;\n return (0, _classnames[\"default\"])(className, prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-status\"), this.hasStatus()), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-not-a-wrapper\"), !children), _classNames2));\n }\n }, {\n key: \"hasStatus\",\n value: function hasStatus() {\n var _this$props5 = this.props,\n status = _this$props5.status,\n color = _this$props5.color;\n return !!status || !!color;\n }\n }, {\n key: \"isZero\",\n value: function isZero() {\n var numberedDispayCount = this.getNumberedDispayCount();\n return numberedDispayCount === '0' || numberedDispayCount === 0;\n }\n }, {\n key: \"isDot\",\n value: function isDot() {\n var dot = this.props.dot;\n var isZero = this.isZero();\n return dot && !isZero || this.hasStatus();\n }\n }, {\n key: \"isHidden\",\n value: function isHidden() {\n var showZero = this.props.showZero;\n var displayCount = this.getDispayCount();\n var isZero = this.isZero();\n var isDot = this.isDot();\n var isEmpty = displayCount === null || displayCount === undefined || displayCount === '';\n return (isEmpty || isZero && !showZero) && !isDot;\n }\n }, {\n key: \"renderStatusText\",\n value: function renderStatusText(prefixCls) {\n var text = this.props.text;\n var hidden = this.isHidden();\n return hidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text);\n }\n }, {\n key: \"renderDispayComponent\",\n value: function renderDispayComponent() {\n var count = this.props.count;\n var customNode = count;\n\n if (!customNode || _typeof(customNode) !== 'object') {\n return undefined;\n }\n\n return /*#__PURE__*/React.cloneElement(customNode, {\n style: _extends(_extends({}, this.getStyleWithOffset()), customNode.props && customNode.props.style)\n });\n }\n }, {\n key: \"renderBadgeNumber\",\n value: function renderBadgeNumber(prefixCls, scrollNumberPrefixCls) {\n var _classNames3;\n\n var _this$props6 = this.props,\n status = _this$props6.status,\n count = _this$props6.count,\n color = _this$props6.color;\n var displayCount = this.getDispayCount();\n var isDot = this.isDot();\n var hidden = this.isHidden();\n var scrollNumberCls = (0, _classnames[\"default\"])((_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-dot\"), isDot), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-count\"), !isDot), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-multiple-words\"), !isDot && count && count.toString && count.toString().length > 1), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-status-\").concat(status), !!status), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)), _classNames3));\n var statusStyle = this.getStyleWithOffset();\n\n if (color && !isPresetColor(color)) {\n statusStyle = statusStyle || {};\n statusStyle.background = color;\n }\n\n return hidden ? null : /*#__PURE__*/React.createElement(_ScrollNumber[\"default\"], {\n prefixCls: scrollNumberPrefixCls,\n \"data-show\": !hidden,\n className: scrollNumberCls,\n count: displayCount,\n displayComponent: this.renderDispayComponent() // <Badge status=\"success\" count={<Icon type=\"xxx\" />}></Badge>\n ,\n title: this.getScrollNumberTitle(),\n style: statusStyle,\n key: \"scrollNumber\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderBadge);\n }\n }]);\n\n return Badge;\n}(React.Component);\n\nexports[\"default\"] = Badge;\nBadge.defaultProps = {\n count: null,\n showZero: false,\n dot: false,\n overflowCount: 99\n};\nBadge.propTypes = {\n count: PropTypes.node,\n showZero: PropTypes.bool,\n dot: PropTypes.bool,\n overflowCount: PropTypes.number\n};","/**\r\n * Functionality for drawing waved circles.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Circle } from \"./Circle\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a waved circle.\r\n *\r\n * @see {@link IWavedCircleEvents} for a list of available events\r\n * @see {@link IWavedCircleAdapters} for a list of available Adapters\r\n */\r\nvar WavedCircle = /** @class */ (function (_super) {\r\n __extends(WavedCircle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function WavedCircle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"WavedCircle\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.waveLength = 16;\r\n _this.waveHeight = 4;\r\n _this.fill = undefined;\r\n _this.fillOpacity = 0;\r\n _this.tension = 0.8;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the waved line.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n WavedCircle.prototype.draw = function () {\r\n var path = \"\";\r\n var radius = this.pixelRadius;\r\n if (radius > 0) {\r\n var points = this.getPoints(radius);\r\n path = $path.moveTo(points[0]) + new $smoothing.Tension(this.tension, this.tension).smooth(points);\r\n }\r\n var innerRadius = this.pixelInnerRadius;\r\n if (innerRadius > 0) {\r\n var points = this.getPoints(innerRadius);\r\n points.reverse();\r\n path += $path.moveTo(points[0]) + new $smoothing.Tension(this.tension, this.tension).smooth(points);\r\n }\r\n this.path = path;\r\n };\r\n /**\r\n * Returns points that circle consists of.\r\n *\r\n * @param radius Radius (px)\r\n * @return Points\r\n */\r\n WavedCircle.prototype.getPoints = function (radius) {\r\n var circleLength = radius * Math.PI * 2;\r\n var halfWaveHeight = this.waveHeight / 2;\r\n var waveLength = circleLength / Math.round(circleLength / this.waveLength);\r\n var halfWaveLength = waveLength / 2;\r\n var points = [];\r\n var count = circleLength / waveLength;\r\n for (var i = 0; i <= count; i++) {\r\n var angle1 = (i * waveLength) / circleLength * 360;\r\n var angle2 = (i * waveLength + halfWaveLength) / circleLength * 360;\r\n points.push({ x: (radius - halfWaveHeight) * $math.cos(angle1), y: (radius - halfWaveHeight) * $math.sin(angle1) });\r\n points.push({ x: (radius + halfWaveHeight) * $math.cos(angle2), y: (radius + halfWaveHeight) * $math.sin(angle2) });\r\n }\r\n points.pop();\r\n return points;\r\n };\r\n Object.defineProperty(WavedCircle.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the circle in pixels (absolute) or [[Percent]] (relative).\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedCircle.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * Calculated inner radius of the circle in pixels.\r\n *\r\n * @readonly\r\n * @return Inner radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeToValue(this.innerRadius, $math.min(this.innerWidth / 2, this.innerHeight / 2));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedCircle.prototype, \"waveLength\", {\r\n /**\r\n * @return Wave length (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveLength\");\r\n },\r\n /**\r\n * Wave length in pixels.\r\n *\r\n * @default 16\r\n * @param value Wave length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveLength\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedCircle.prototype, \"waveHeight\", {\r\n /**\r\n * @return Wave height (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"waveHeight\");\r\n },\r\n /**\r\n * Wave height in pixels.\r\n *\r\n * @default 4\r\n * @param value Wave height (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"waveHeight\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WavedCircle.prototype, \"tension\", {\r\n /**\r\n * @return Tension\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Tension of the wave.\r\n *\r\n * @default 0.8\r\n * @param value Tension\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value);\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WavedCircle;\r\n}(Circle));\r\nexport { WavedCircle };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"WavedCircle\"] = WavedCircle;\r\n//# sourceMappingURL=WavedCircle.js.map","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/core';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var identifierName;\n var shouldForwardProp;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, context, ref) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = theme;\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(context.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n className += context.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref || props.innerRef;\n\n if (process.env.NODE_ENV !== 'production' && props.innerRef) {\n console.error('`innerRef` is deprecated and will be removed in a future major version of Emotion, please use the `ref` prop instead' + (identifierName === undefined ? '' : \" in the usage of `\" + identifierName + \"`\"));\n }\n\n var ele = /*#__PURE__*/createElement(finalTag, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, nextOptions !== undefined ? _objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import styled from '@emotion/styled-base';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = styled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\n\nvar ALL_INITIALIZERS = [];\nvar READY_INITIALIZERS = [];\n\nfunction isWebpackReady(getModuleIds) {\n if ((typeof __webpack_modules__ === \"undefined\" ? \"undefined\" : _typeof(__webpack_modules__)) !== \"object\") {\n return false;\n }\n\n return getModuleIds().every(function (moduleId) {\n return typeof moduleId !== \"undefined\" && typeof __webpack_modules__[moduleId] !== \"undefined\";\n });\n}\n\nfunction load(loader) {\n var promise = loader();\n\n var state = {\n loading: true,\n loaded: null,\n error: null\n };\n\n state.promise = promise.then(function (loaded) {\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch(function (err) {\n state.loading = false;\n state.error = err;\n throw err;\n });\n\n return state;\n}\n\nfunction loadMap(obj) {\n var state = {\n loading: false,\n loaded: {},\n error: null\n };\n\n var promises = [];\n\n try {\n Object.keys(obj).forEach(function (key) {\n var result = load(obj[key]);\n\n if (!result.loading) {\n state.loaded[key] = result.loaded;\n state.error = result.error;\n } else {\n state.loading = true;\n }\n\n promises.push(result.promise);\n\n result.promise.then(function (res) {\n state.loaded[key] = res;\n }).catch(function (err) {\n state.error = err;\n });\n });\n } catch (err) {\n state.error = err;\n }\n\n state.promise = Promise.all(promises).then(function (res) {\n state.loading = false;\n return res;\n }).catch(function (err) {\n state.loading = false;\n throw err;\n });\n\n return state;\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj;\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props);\n}\n\nfunction createLoadableComponent(loadFn, options) {\n var _class, _temp;\n\n if (!options.loading) {\n throw new Error(\"react-loadable requires a `loading` component\");\n }\n\n var opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null\n }, options);\n\n var res = null;\n\n function init() {\n if (!res) {\n res = loadFn(opts.loader);\n }\n return res.promise;\n }\n\n ALL_INITIALIZERS.push(init);\n\n if (typeof opts.webpack === \"function\") {\n READY_INITIALIZERS.push(function () {\n if (isWebpackReady(opts.webpack)) {\n return init();\n }\n });\n }\n\n return _temp = _class = function (_React$Component) {\n _inherits(LoadableComponent, _React$Component);\n\n function LoadableComponent(props) {\n _classCallCheck(this, LoadableComponent);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.retry = function () {\n _this.setState({ error: null, loading: true, timedOut: false });\n res = loadFn(opts.loader);\n _this._loadModule();\n };\n\n init();\n\n _this.state = {\n error: res.error,\n pastDelay: false,\n timedOut: false,\n loading: res.loading,\n loaded: res.loaded\n };\n return _this;\n }\n\n LoadableComponent.preload = function preload() {\n return init();\n };\n\n LoadableComponent.prototype.componentWillMount = function componentWillMount() {\n this._mounted = true;\n this._loadModule();\n };\n\n LoadableComponent.prototype._loadModule = function _loadModule() {\n var _this2 = this;\n\n if (this.context.loadable && Array.isArray(opts.modules)) {\n opts.modules.forEach(function (moduleName) {\n _this2.context.loadable.report(moduleName);\n });\n }\n\n if (!res.loading) {\n return;\n }\n\n if (typeof opts.delay === \"number\") {\n if (opts.delay === 0) {\n this.setState({ pastDelay: true });\n } else {\n this._delay = setTimeout(function () {\n _this2.setState({ pastDelay: true });\n }, opts.delay);\n }\n }\n\n if (typeof opts.timeout === \"number\") {\n this._timeout = setTimeout(function () {\n _this2.setState({ timedOut: true });\n }, opts.timeout);\n }\n\n var update = function update() {\n if (!_this2._mounted) {\n return;\n }\n\n _this2.setState({\n error: res.error,\n loaded: res.loaded,\n loading: res.loading\n });\n\n _this2._clearTimeouts();\n };\n\n res.promise.then(function () {\n update();\n }).catch(function (err) {\n update();\n });\n };\n\n LoadableComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n this._mounted = false;\n this._clearTimeouts();\n };\n\n LoadableComponent.prototype._clearTimeouts = function _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n };\n\n LoadableComponent.prototype.render = function render() {\n if (this.state.loading || this.state.error) {\n return React.createElement(opts.loading, {\n isLoading: this.state.loading,\n pastDelay: this.state.pastDelay,\n timedOut: this.state.timedOut,\n error: this.state.error,\n retry: this.retry\n });\n } else if (this.state.loaded) {\n return opts.render(this.state.loaded, this.props);\n } else {\n return null;\n }\n };\n\n return LoadableComponent;\n }(React.Component), _class.contextTypes = {\n loadable: PropTypes.shape({\n report: PropTypes.func.isRequired\n })\n }, _temp;\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== \"function\") {\n throw new Error(\"LoadableMap requires a `render(loaded, props)` function\");\n }\n\n return createLoadableComponent(loadMap, opts);\n}\n\nLoadable.Map = LoadableMap;\n\nvar Capture = function (_React$Component2) {\n _inherits(Capture, _React$Component2);\n\n function Capture() {\n _classCallCheck(this, Capture);\n\n return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));\n }\n\n Capture.prototype.getChildContext = function getChildContext() {\n return {\n loadable: {\n report: this.props.report\n }\n };\n };\n\n Capture.prototype.render = function render() {\n return React.Children.only(this.props.children);\n };\n\n return Capture;\n}(React.Component);\n\nCapture.propTypes = {\n report: PropTypes.func.isRequired\n};\nCapture.childContextTypes = {\n loadable: PropTypes.shape({\n report: PropTypes.func.isRequired\n }).isRequired\n};\n\n\nLoadable.Capture = Capture;\n\nfunction flushInitializers(initializers) {\n var promises = [];\n\n while (initializers.length) {\n var init = initializers.pop();\n promises.push(init());\n }\n\n return Promise.all(promises).then(function () {\n if (initializers.length) {\n return flushInitializers(initializers);\n }\n });\n}\n\nLoadable.preloadAll = function () {\n return new Promise(function (resolve, reject) {\n flushInitializers(ALL_INITIALIZERS).then(resolve, reject);\n });\n};\n\nLoadable.preloadReady = function () {\n return new Promise(function (resolve, reject) {\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS).then(resolve, resolve);\n });\n};\n\nmodule.exports = Loadable;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PickerMixin = _interopRequireDefault(require(\"./PickerMixin\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\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\nfunction _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n;\n\nvar Picker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Picker, _React$Component);\n\n function Picker(props) {\n var _this;\n\n _classCallCheck(this, Picker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Picker).call(this, props));\n\n _this.scrollHanders = function () {\n var scrollY = -1;\n var lastY = 0;\n var startY = 0;\n var scrollDisabled = false;\n var isMoving = false;\n\n var setTransform = function setTransform(nodeStyle, value) {\n nodeStyle.transform = value;\n nodeStyle.webkitTransform = value;\n };\n\n var setTransition = function setTransition(nodeStyle, value) {\n nodeStyle.transition = value;\n nodeStyle.webkitTransition = value;\n };\n\n var scrollTo = function scrollTo(_x, y) {\n var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : .3;\n\n if (scrollY !== y) {\n scrollY = y;\n\n if (time && !_this.props.noAnimate) {\n setTransition(_this.contentRef.style, \"cubic-bezier(0,0,0.2,1.15) \".concat(time, \"s\"));\n }\n\n setTransform(_this.contentRef.style, \"translate3d(0,\".concat(-y, \"px,0)\"));\n setTimeout(function () {\n _this.scrollingComplete();\n\n if (_this.contentRef) {\n setTransition(_this.contentRef.style, '');\n }\n }, +time * 1000);\n }\n };\n\n var Velocity = function () {\n var minInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;\n var maxInterval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var _time = 0;\n var _y = 0;\n var _velocity = 0;\n var recorder = {\n record: function record(y) {\n var now = +new Date();\n _velocity = (y - _y) / (now - _time);\n\n if (now - _time >= minInterval) {\n _velocity = now - _time <= maxInterval ? _velocity : 0;\n _y = y;\n _time = now;\n }\n },\n getVelocity: function getVelocity(y) {\n if (y !== _y) {\n recorder.record(y);\n }\n\n return _velocity;\n }\n };\n return recorder;\n }();\n\n var onFinish = function onFinish() {\n isMoving = false;\n var targetY = scrollY;\n var height = (_this.props.children.length - 1) * _this.itemHeight;\n var time = .3;\n var velocity = Velocity.getVelocity(targetY) * 4;\n\n if (velocity) {\n targetY = velocity * 40 + targetY;\n time = Math.abs(velocity) * .1;\n }\n\n if (targetY % _this.itemHeight !== 0) {\n targetY = Math.round(targetY / _this.itemHeight) * _this.itemHeight;\n }\n\n if (targetY < 0) {\n targetY = 0;\n } else if (targetY > height) {\n targetY = height;\n }\n\n scrollTo(0, targetY, time < .3 ? .3 : time);\n\n _this.onScrollChange();\n };\n\n var onStart = function onStart(y) {\n if (scrollDisabled) {\n return;\n }\n\n isMoving = true;\n startY = y;\n lastY = scrollY;\n };\n\n var onMove = function onMove(y) {\n if (scrollDisabled || !isMoving) {\n return;\n }\n\n scrollY = lastY - y + startY;\n Velocity.record(scrollY);\n\n _this.onScrollChange();\n\n setTransform(_this.contentRef.style, \"translate3d(0,\".concat(-scrollY, \"px,0)\"));\n };\n\n return {\n touchstart: function touchstart(evt) {\n return onStart(evt.touches[0].pageY);\n },\n mousedown: function mousedown(evt) {\n return onStart(evt.pageY);\n },\n touchmove: function touchmove(evt) {\n evt.preventDefault();\n onMove(evt.touches[0].pageY);\n },\n mousemove: function mousemove(evt) {\n evt.preventDefault();\n onMove(evt.pageY);\n },\n touchend: function touchend() {\n return onFinish();\n },\n touchcancel: function touchcancel() {\n return onFinish();\n },\n mouseup: function mouseup() {\n return onFinish();\n },\n getValue: function getValue() {\n return scrollY;\n },\n scrollTo: scrollTo,\n setDisabled: function setDisabled() {\n var disabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n scrollDisabled = disabled;\n }\n };\n }();\n\n _this.scrollTo = function (top) {\n _this.scrollHanders.scrollTo(0, top);\n };\n\n _this.scrollToWithoutAnimation = function (top) {\n _this.scrollHanders.scrollTo(0, top, 0);\n };\n\n _this.fireValueChange = function (selectedValue) {\n if (selectedValue !== _this.state.selectedValue) {\n if (!('selectedValue' in _this.props)) {\n _this.setState({\n selectedValue: selectedValue\n });\n }\n\n if (_this.props.onValueChange) {\n _this.props.onValueChange(selectedValue);\n }\n }\n };\n\n _this.onScrollChange = function () {\n var top = _this.scrollHanders.getValue();\n\n if (top >= 0) {\n var children = React.Children.toArray(_this.props.children);\n\n var index = _this.props.computeChildIndex(top, _this.itemHeight, children.length);\n\n if (_this.scrollValue !== index) {\n _this.scrollValue = index;\n var child = children[index];\n\n if (child && _this.props.onScrollChange) {\n _this.props.onScrollChange(child.props.value);\n } else if (!child && console.warn) {\n console.warn('child not found', children, index);\n }\n }\n }\n };\n\n _this.scrollingComplete = function () {\n var top = _this.scrollHanders.getValue();\n\n if (top >= 0) {\n _this.props.doScrollingComplete(top, _this.itemHeight, _this.fireValueChange);\n }\n };\n\n var selectedValueState;\n var _this$props = _this.props,\n selectedValue = _this$props.selectedValue,\n defaultSelectedValue = _this$props.defaultSelectedValue;\n\n if (selectedValue !== undefined) {\n selectedValueState = selectedValue;\n } else if (defaultSelectedValue !== undefined) {\n selectedValueState = defaultSelectedValue;\n } else {\n var children = React.Children.toArray(_this.props.children);\n selectedValueState = children && children[0] && children[0].props.value;\n }\n\n _this.state = {\n selectedValue: selectedValueState\n };\n return _this;\n }\n\n _createClass(Picker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var contentRef = this.contentRef,\n indicatorRef = this.indicatorRef,\n maskRef = this.maskRef,\n rootRef = this.rootRef;\n var rootHeight = rootRef.getBoundingClientRect().height; // https://github.com/react-component/m-picker/issues/18\n\n var itemHeight = this.itemHeight = indicatorRef.getBoundingClientRect().height;\n var num = Math.floor(rootHeight / itemHeight);\n\n if (num % 2 === 0) {\n num--;\n }\n\n num--;\n num /= 2;\n contentRef.style.padding = \"\".concat(itemHeight * num, \"px 0\");\n indicatorRef.style.top = \"\".concat(itemHeight * num, \"px\");\n maskRef.style.backgroundSize = \"100% \".concat(itemHeight * num, \"px\");\n this.scrollHanders.setDisabled(this.props.disabled);\n this.props.select(this.state.selectedValue, this.itemHeight, this.scrollTo);\n var passiveSupported = this.passiveSupported();\n var willPreventDefault = passiveSupported ? {\n passive: false\n } : false;\n var willNotPreventDefault = passiveSupported ? {\n passive: true\n } : false;\n Object.keys(this.scrollHanders).forEach(function (key) {\n if (key.indexOf('touch') === 0 || key.indexOf('mouse') === 0) {\n var pd = key.indexOf('move') >= 0 ? willPreventDefault : willNotPreventDefault;\n rootRef.addEventListener(key, _this2.scrollHanders[key], pd);\n }\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n Object.keys(this.scrollHanders).forEach(function (key) {\n if (key.indexOf('touch') === 0 || key.indexOf('mouse') === 0) {\n _this3.rootRef.removeEventListener(key, _this3.scrollHanders[key]);\n }\n });\n }\n }, {\n key: \"passiveSupported\",\n value: function passiveSupported() {\n var passiveSupported = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', null, options);\n } catch (err) {}\n\n return passiveSupported;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this4 = this;\n\n if ('selectedValue' in nextProps) {\n if (this.state.selectedValue !== nextProps.selectedValue) {\n this.setState({\n selectedValue: nextProps.selectedValue\n }, function () {\n _this4.props.select(nextProps.selectedValue, _this4.itemHeight, nextProps.noAnimate ? _this4.scrollToWithoutAnimation : _this4.scrollTo);\n });\n }\n }\n\n this.scrollHanders.setDisabled(nextProps.disabled);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return this.state.selectedValue !== nextState.selectedValue || this.props.children !== nextProps.children;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.props.select(this.state.selectedValue, this.itemHeight, this.scrollToWithoutAnimation);\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n if ('selectedValue' in this.props) {\n return this.props.selectedValue;\n }\n\n var children = React.Children.toArray(this.props.children);\n return children && children[0] && children[0].props.value;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _pickerCls,\n _this5 = this;\n\n var props = this.props;\n var prefixCls = props.prefixCls,\n itemStyle = props.itemStyle,\n indicatorStyle = props.indicatorStyle,\n _props$indicatorClass = props.indicatorClassName,\n indicatorClassName = _props$indicatorClass === void 0 ? '' : _props$indicatorClass,\n children = props.children;\n var selectedValue = this.state.selectedValue;\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var selectedItemClassName = \"\".concat(itemClassName, \" \").concat(prefixCls, \"-item-selected\");\n\n var map = function map(item) {\n var _item$props = item.props,\n _item$props$className = _item$props.className,\n className = _item$props$className === void 0 ? '' : _item$props$className,\n style = _item$props.style,\n value = _item$props.value;\n return React.createElement(\"div\", {\n style: _extends({}, itemStyle, style),\n className: \"\".concat(selectedValue === value ? selectedItemClassName : itemClassName, \" \").concat(className),\n key: value\n }, item.children || item.props.children);\n }; // compatibility for preact\n\n\n var items = React.Children ? React.Children.map(children, map) : [].concat(children).map(map);\n var pickerCls = (_pickerCls = {}, _defineProperty(_pickerCls, props.className, !!props.className), _defineProperty(_pickerCls, prefixCls, true), _pickerCls);\n return React.createElement(\"div\", {\n className: (0, _classnames[\"default\"])(pickerCls),\n ref: function ref(el) {\n return _this5.rootRef = el;\n },\n style: this.props.style\n }, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-mask\"),\n ref: function ref(el) {\n return _this5.maskRef = el;\n }\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indicator \").concat(indicatorClassName),\n ref: function ref(el) {\n return _this5.indicatorRef = el;\n },\n style: indicatorStyle\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\"),\n ref: function ref(el) {\n return _this5.contentRef = el;\n }\n }, items));\n }\n }]);\n\n return Picker;\n}(React.Component);\n\nPicker.defaultProps = {\n prefixCls: 'rmc-picker'\n};\n\nvar _default = (0, _PickerMixin[\"default\"])(Picker);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n if (desc === undefined) {\n var parent = (0, _getPrototypeOf2.default)(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _layout = _interopRequireDefault(require(\"./layout\"));\n\nvar _Sider = _interopRequireDefault(require(\"./Sider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_layout[\"default\"].Sider = _Sider[\"default\"];\nvar _default = _layout[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _default = _interopRequireDefault(require(\"./default\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar LocaleReceiver = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleReceiver, _React$Component);\n\n var _super = _createSuper(LocaleReceiver);\n\n function LocaleReceiver() {\n _classCallCheck(this, LocaleReceiver);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LocaleReceiver, [{\n key: \"getLocale\",\n value: function getLocale() {\n var _this$props = this.props,\n componentName = _this$props.componentName,\n defaultLocale = _this$props.defaultLocale;\n var locale = defaultLocale || _default[\"default\"][componentName || 'global'];\n var antLocale = this.context.antLocale;\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }\n }, {\n key: \"getLocaleCode\",\n value: function getLocaleCode() {\n var antLocale = this.context.antLocale;\n var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n if (antLocale && antLocale.exist && !localeCode) {\n return _default[\"default\"].locale;\n }\n\n return localeCode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children(this.getLocale(), this.getLocaleCode(), this.context.antLocale);\n }\n }]);\n\n return LocaleReceiver;\n}(React.Component);\n\nexports[\"default\"] = LocaleReceiver;\nLocaleReceiver.defaultProps = {\n componentName: 'global'\n};\nLocaleReceiver.contextTypes = {\n antLocale: PropTypes.object\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = {};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = {};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = {};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fixControlledValue = fixControlledValue;\nexports.resolveOnChange = resolveOnChange;\nexports.getInputClassName = getInputClassName;\nexports[\"default\"] = exports.InputSizes = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _type = require(\"../_util/type\");\n\nvar _ClearableLabeledInput = _interopRequireWildcard(require(\"./ClearableLabeledInput\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nvar InputSizes = (0, _type.tuple)('small', 'default', 'large');\nexports.InputSizes = InputSizes;\n\nfunction fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n\n return value;\n}\n\nfunction resolveOnChange(target, e, onChange) {\n if (onChange) {\n var event = e;\n\n if (e.type === 'click') {\n // click clear icon\n event = Object.create(e);\n event.target = target;\n event.currentTarget = target;\n var originalInputValue = target.value; // change target ref value cause e.target.value should be '' when clear input\n\n target.value = '';\n onChange(event); // reset target ref value\n\n target.value = originalInputValue;\n return;\n }\n\n onChange(event);\n }\n}\n\nfunction getInputClassName(prefixCls, size, disabled) {\n var _classNames;\n\n return (0, _classnames[\"default\"])(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n}\n\nvar Input = /*#__PURE__*/function (_React$Component) {\n _inherits(Input, _React$Component);\n\n var _super = _createSuper(Input);\n\n function Input(props) {\n var _this;\n\n _classCallCheck(this, Input);\n\n _this = _super.call(this, props);\n\n _this.saveClearableInput = function (input) {\n _this.clearableInput = input;\n };\n\n _this.saveInput = function (input) {\n _this.input = input;\n };\n\n _this.handleReset = function (e) {\n _this.setValue('', function () {\n _this.focus();\n });\n\n resolveOnChange(_this.input, e, _this.props.onChange);\n };\n\n _this.renderInput = function (prefixCls) {\n var _this$props = _this.props,\n className = _this$props.className,\n addonBefore = _this$props.addonBefore,\n addonAfter = _this$props.addonAfter,\n size = _this$props.size,\n disabled = _this$props.disabled; // Fix https://fb.me/react-unknown-prop\n\n var otherProps = (0, _omit[\"default\"])(_this.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', 'size', 'inputType']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({}, otherProps, {\n onChange: _this.handleChange,\n onKeyDown: _this.handleKeyDown,\n className: (0, _classnames[\"default\"])(getInputClassName(prefixCls, size, disabled), _defineProperty({}, className, className && !addonBefore && !addonAfter)),\n ref: _this.saveInput\n }));\n };\n\n _this.clearPasswordValueAttribute = function () {\n // https://github.com/ant-design/ant-design/issues/20541\n _this.removePasswordTimeout = setTimeout(function () {\n if (_this.input && _this.input.getAttribute('type') === 'password' && _this.input.hasAttribute('value')) {\n _this.input.removeAttribute('value');\n }\n });\n };\n\n _this.handleChange = function (e) {\n _this.setValue(e.target.value, _this.clearPasswordValueAttribute);\n\n resolveOnChange(_this.input, e, _this.props.onChange);\n };\n\n _this.handleKeyDown = function (e) {\n var _this$props2 = _this.props,\n onPressEnter = _this$props2.onPressEnter,\n onKeyDown = _this$props2.onKeyDown;\n\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n\n _this.renderComponent = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var value = _this.state.value;\n var customizePrefixCls = _this.props.prefixCls;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n return /*#__PURE__*/React.createElement(_ClearableLabeledInput[\"default\"], _extends({}, _this.props, {\n prefixCls: prefixCls,\n inputType: \"input\",\n value: fixControlledValue(value),\n element: _this.renderInput(prefixCls),\n handleReset: _this.handleReset,\n ref: _this.saveClearableInput\n }));\n };\n\n var value = typeof props.value === 'undefined' ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\n\n _createClass(Input, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.clearPasswordValueAttribute();\n } // Since polyfill `getSnapshotBeforeUpdate` need work with `componentDidUpdate`.\n // We keep an empty function here.\n\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {}\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n if ((0, _ClearableLabeledInput.hasPrefixSuffix)(prevProps) !== (0, _ClearableLabeledInput.hasPrefixSuffix)(this.props)) {\n (0, _warning[\"default\"])(this.input !== document.activeElement, '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\");\n }\n\n return null;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.removePasswordTimeout) {\n clearTimeout(this.removePasswordTimeout);\n }\n }\n }, {\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: \"select\",\n value: function select() {\n this.input.select();\n }\n }, {\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: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderComponent);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n\n return null;\n }\n }]);\n\n return Input;\n}(React.Component);\n\nInput.defaultProps = {\n type: 'text'\n};\nInput.propTypes = {\n type: PropTypes.string,\n id: PropTypes.string,\n size: PropTypes.oneOf(InputSizes),\n maxLength: PropTypes.number,\n disabled: PropTypes.bool,\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n className: PropTypes.string,\n addonBefore: PropTypes.node,\n addonAfter: PropTypes.node,\n prefixCls: PropTypes.string,\n onPressEnter: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n prefix: PropTypes.node,\n suffix: PropTypes.node,\n allowClear: PropTypes.bool\n};\n(0, _reactLifecyclesCompat.polyfill)(Input);\nvar _default = Input;\nexports[\"default\"] = _default;","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","import { __extends } from \"tslib\";\r\nimport { Dictionary } from \"./utils/Dictionary\";\r\nimport { TargetedEventDispatcher } from \"./utils/EventDispatcher\";\r\nimport { MultiDisposer, CounterDisposer } from \"./utils/Disposer\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $object from \"./utils/Object\";\r\n/**\r\n * An [[EventDispatcher]] for [[Sprite]].\r\n *\r\n * @important\r\n */\r\nvar SpriteEventDispatcher = /** @class */ (function (_super) {\r\n __extends(SpriteEventDispatcher, _super);\r\n function SpriteEventDispatcher() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * [_interactionEvents description]\r\n *\r\n * @todo Description\r\n */\r\n _this._interactionEvents = new Dictionary();\r\n return _this;\r\n }\r\n /**\r\n * [_dispatchSpriteEvent description]\r\n *\r\n * @todo Description\r\n */\r\n SpriteEventDispatcher.prototype._dispatchSpriteEvent = function (ev) {\r\n if (this.target.disabled || this.target.isTemplate) {\r\n return;\r\n }\r\n // TODO remove this <any> later\r\n if (this.target.events.isEnabled(ev.type)) {\r\n var imev = $object.merge(ev, {\r\n target: this.target\r\n });\r\n this.target.events.dispatchImmediately(imev.type, imev);\r\n }\r\n };\r\n /**\r\n * [_dispatchSpritePointEvent description]\r\n *\r\n * @todo Description\r\n */\r\n SpriteEventDispatcher.prototype._dispatchSpritePointEvent = function (ev) {\r\n if (this.target.disabled || this.target.isTemplate) {\r\n return;\r\n }\r\n // TODO remove this <any> later\r\n if (this.target.events.isEnabled(ev.type)) {\r\n var imev = $object.merge(ev, {\r\n target: this.target,\r\n spritePoint: ev.point ? $utils.documentPointToSprite(ev.point, this.target) : undefined,\r\n svgPoint: this.target.getSvgPoint(ev.point)\r\n });\r\n this.target.events.dispatchImmediately(imev.type, imev);\r\n }\r\n };\r\n /**\r\n * [_addInteractionObjectEvent description]\r\n *\r\n * @todo Description\r\n */\r\n SpriteEventDispatcher.prototype._addInteractionObjectEvent = function (type, callback, context, shouldClone) {\r\n var _this = this;\r\n var key = shouldClone + \"-\" + type;\r\n var counter = this._interactionEvents.insertKeyIfEmpty(key, function () {\r\n var disposer = _this.target.interactions.events.on(type, callback, context, shouldClone);\r\n return new CounterDisposer(function () {\r\n _this._interactionEvents.removeKey(key);\r\n disposer.dispose();\r\n });\r\n });\r\n return counter.increment();\r\n };\r\n /**\r\n * [_on description]\r\n *\r\n * @todo Description\r\n */\r\n SpriteEventDispatcher.prototype._on = function (once, type, callback, context, shouldClone, dispatch) {\r\n var info = _super.prototype._on.call(this, once, type, callback, context, shouldClone, dispatch);\r\n var disposers = [info.disposer];\r\n /**\r\n * Catching Sprite-related events, converting them to [[SpriteEvent]] and\r\n * triggering them on sprite\r\n */\r\n switch (type) {\r\n case \"hit\":\r\n case \"track\":\r\n case \"doublehit\":\r\n case \"wheel\":\r\n case \"wheelup\":\r\n case \"wheeldown\":\r\n case \"wheelleft\":\r\n case \"wheelright\":\r\n disposers.push(this._addInteractionObjectEvent(type, this._dispatchSpritePointEvent, this, shouldClone));\r\n break;\r\n case \"rightclick\":\r\n case \"down\":\r\n //case \"hold\":\r\n case \"up\":\r\n case \"drag\":\r\n case \"dragged\":\r\n case \"dragstart\":\r\n case \"dragstop\":\r\n case \"over\":\r\n case \"out\":\r\n case \"swipe\":\r\n case \"swipeleft\":\r\n case \"swiperight\":\r\n case \"resize\":\r\n //case \"rotate\":\r\n case \"focus\":\r\n case \"blur\":\r\n case \"toggled\":\r\n disposers.push(this._addInteractionObjectEvent(type, this._dispatchSpriteEvent, this, shouldClone));\r\n break;\r\n }\r\n /**\r\n * Set functional properties based on events. For example if we add a\r\n * \"drag\" event handler, we want to make the Sprite draggable, even if we\r\n * don't explicitly set \"draggable\"\r\n */\r\n switch (type) {\r\n case \"hit\":\r\n case \"doublehit\":\r\n case \"rightclick\":\r\n case \"down\":\r\n case \"up\":\r\n this.target.clickable = true;\r\n break;\r\n case \"toggled\":\r\n this.target.togglable = true;\r\n break;\r\n case \"drag\":\r\n case \"dragstart\":\r\n case \"dragstop\":\r\n this.target.draggable = true;\r\n break;\r\n case \"track\":\r\n this.target.trackable = true;\r\n break;\r\n case \"resize\":\r\n this.target.resizable = true;\r\n break;\r\n case \"swipe\":\r\n case \"swipeleft\":\r\n case \"swiperight\":\r\n this.target.swipeable = true;\r\n break;\r\n case \"wheel\":\r\n case \"wheelup\":\r\n case \"wheeldown\":\r\n case \"wheelleft\":\r\n case \"wheelright\":\r\n this.target.wheelable = true;\r\n break;\r\n case \"over\":\r\n this.target.hoverable = true;\r\n case \"out\":\r\n this.target.hoverable = true;\r\n break;\r\n case \"focus\":\r\n case \"blur\":\r\n this.target.focusable = true;\r\n break;\r\n }\r\n info.disposer = new MultiDisposer(disposers);\r\n return info;\r\n };\r\n return SpriteEventDispatcher;\r\n}(TargetedEventDispatcher));\r\nexport { SpriteEventDispatcher };\r\n//# sourceMappingURL=SpriteEvents.js.map","import { __extends } from \"tslib\";\r\nimport { TargetedEventDispatcher } from \"../utils/EventDispatcher\";\r\nimport { MultiDisposer, CounterDisposer } from \"../utils/Disposer\";\r\n/**\r\n * Represents an Event Dispatcher for [[InteractionObject]].\r\n *\r\n * Besides regular [[EventDispatcher]] functionality it adds new events with\r\n * direct application to DOM nodes. Primarily used to handle keyboard events,\r\n * but can turn into something else moving forward.\r\n */\r\nvar InteractionObjectEventDispatcher = /** @class */ (function (_super) {\r\n __extends(InteractionObjectEventDispatcher, _super);\r\n function InteractionObjectEventDispatcher() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * Holds a list of Disposers for DOM events added.\r\n */\r\n _this._domEvents = {};\r\n return _this;\r\n }\r\n /**\r\n * Adds a DOM event and returns Disposer.\r\n *\r\n * @return Disposer\r\n */\r\n InteractionObjectEventDispatcher.prototype._addDOMEvent = function (type, key, listener, context) {\r\n var _this = this;\r\n if (!this._domEvents[type]) {\r\n var callback_1 = function (e) {\r\n listener.call(context, key, e);\r\n };\r\n this.target.element.addEventListener(type, callback_1, false);\r\n this._domEvents[type] = new CounterDisposer(function () {\r\n delete _this._domEvents[type];\r\n _this.target.element.removeEventListener(type, callback_1, false);\r\n });\r\n }\r\n return this._domEvents[type].increment();\r\n };\r\n InteractionObjectEventDispatcher.prototype._dispatchKeyboardEvent = function (key, ev) {\r\n // TODO use this.dispatchImmediately ?\r\n if (this.target.events.isEnabled(key)) {\r\n this.target.events.dispatchImmediately(key, {\r\n type: key,\r\n target: this.target,\r\n event: ev\r\n });\r\n }\r\n };\r\n InteractionObjectEventDispatcher.prototype._on = function (once, type, callback, context, shouldClone, dispatch) {\r\n var info = _super.prototype._on.call(this, once, type, callback, context, shouldClone, dispatch);\r\n var disposers = [info.disposer];\r\n switch (type) {\r\n case \"hit\":\r\n case \"doublehit\":\r\n case \"rightclick\":\r\n case \"down\":\r\n case \"up\":\r\n this.target.clickable = true;\r\n break;\r\n case \"drag\":\r\n case \"dragstart\":\r\n case \"dragstop\":\r\n this.target.draggable = true;\r\n break;\r\n case \"track\":\r\n this.target.trackable = true;\r\n break;\r\n case \"resize\":\r\n this.target.resizable = true;\r\n break;\r\n case \"swipe\":\r\n case \"swipeleft\":\r\n case \"swiperight\":\r\n this.target.swipeable = true;\r\n break;\r\n case \"wheel\":\r\n case \"wheelup\":\r\n case \"wheeldown\":\r\n case \"wheelleft\":\r\n case \"wheelright\":\r\n this.target.wheelable = true;\r\n break;\r\n case \"over\":\r\n case \"out\":\r\n this.target.hoverable = true;\r\n break;\r\n case \"focus\":\r\n case \"blur\":\r\n case \"focusin\":\r\n case \"focusout\":\r\n this.target.focusable = true;\r\n break;\r\n case \"keydown\":\r\n disposers.push(this._addDOMEvent(type, type, this._dispatchKeyboardEvent, this));\r\n break;\r\n case \"keyup\":\r\n disposers.push(this._addDOMEvent(type, type, this._dispatchKeyboardEvent, this));\r\n break;\r\n case \"keypress\":\r\n disposers.push(this._addDOMEvent(type, type, this._dispatchKeyboardEvent, this));\r\n break;\r\n case \"input\":\r\n disposers.push(this._addDOMEvent(type, type, this._dispatchKeyboardEvent, this));\r\n break;\r\n }\r\n info.disposer = new MultiDisposer(disposers);\r\n return info;\r\n };\r\n return InteractionObjectEventDispatcher;\r\n}(TargetedEventDispatcher));\r\nexport { InteractionObjectEventDispatcher };\r\n//# sourceMappingURL=InteractionObjectEvents.js.map","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n","'use strict';\n\nmodule.exports = require('./dom-scroll-into-view');","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\r\n * Ellipse module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Circle } from \"./Circle\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an ellipse\r\n * @see {@link IEllipseEvents} for a list of available events\r\n * @see {@link IEllipseAdapters} for a list of available Adapters\r\n */\r\nvar Ellipse = /** @class */ (function (_super) {\r\n __extends(Ellipse, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Ellipse() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Ellipse\";\r\n _this.element = _this.paper.add(\"ellipse\");\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the ellipsis.\r\n */\r\n Ellipse.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n this.element.attr({ \"rx\": this.radius });\r\n this.element.attr({ \"ry\": this.radiusY });\r\n };\r\n Object.defineProperty(Ellipse.prototype, \"radiusY\", {\r\n /**\r\n * @return Vertical radius\r\n */\r\n get: function () {\r\n return this.innerHeight / 2;\r\n },\r\n /**\r\n * Vertical radius.\r\n *\r\n * It's a relative size to the `radius`.\r\n *\r\n * E.g. 0.8 will mean the height of the ellipsis will be 80% of it's\r\n * horizontal radius.\r\n *\r\n * @param value Vertical radius\r\n */\r\n set: function (value) {\r\n this.height = value * 2;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Ellipse.prototype, \"radius\", {\r\n /**\r\n * @return Horizontal radius\r\n */\r\n get: function () {\r\n return this.innerWidth / 2;\r\n },\r\n /**\r\n * Horizontal radius.\r\n *\r\n * @param value Horizontal radius\r\n */\r\n set: function (value) {\r\n this.width = value * 2;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Ellipse;\r\n}(Circle));\r\nexport { Ellipse };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Ellipse\"] = Ellipse;\r\n//# sourceMappingURL=Ellipse.js.map","/**\r\n * Resize button module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a draggable resize/grip button.\r\n *\r\n * @see {@link IResizeButtonEvents} for a list of available events\r\n * @see {@link IResizeButtonAdapters} for a list of available Adapters\r\n */\r\nvar ResizeButton = /** @class */ (function (_super) {\r\n __extends(ResizeButton, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ResizeButton() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"ResizeButton\";\r\n // Set defaults\r\n _this.orientation = \"horizontal\";\r\n _this.layout = \"absolute\";\r\n _this.horizontalCenter = \"middle\";\r\n _this.verticalCenter = \"middle\";\r\n _this.draggable = true;\r\n _this.padding(8, 8, 8, 8);\r\n _this.background.cornerRadius(20, 20, 20, 20);\r\n // Create an icon\r\n var icon = new Sprite();\r\n icon.element = _this.paper.add(\"path\");\r\n var path = $path.moveTo({ x: -2, y: -6 });\r\n path += $path.lineTo({ x: -2, y: 6 });\r\n path += $path.moveTo({ x: 2, y: -6 });\r\n path += $path.lineTo({ x: 2, y: 6 });\r\n icon.path = path;\r\n icon.pixelPerfect = true;\r\n icon.padding(0, 4, 0, 4);\r\n icon.stroke = new InterfaceColorSet().getFor(\"alternativeText\");\r\n icon.strokeOpacity = 0.7;\r\n //icon.align = \"center\";\r\n //icon.valign = \"middle\";\r\n _this.icon = icon;\r\n _this.label.dispose();\r\n _this.label = undefined;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ResizeButton.prototype, \"orientation\", {\r\n /**\r\n * Use for setting of direction (orientation) of the resize button.\r\n *\r\n * Available options: \"horizontal\", \"vertical\".\r\n *\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n var icon = this.icon;\r\n if (icon) {\r\n if (value == \"horizontal\") {\r\n icon.rotation = 0;\r\n }\r\n else {\r\n icon.rotation = -90;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ResizeButton;\r\n}(Button));\r\nexport { ResizeButton };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ResizeButton\"] = ResizeButton;\r\n//# sourceMappingURL=ResizeButton.js.map","/**\r\n * A module that defines Text element used to indicate links.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { registry } from \"../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a text element with a link.\r\n *\r\n * @see {@link ITextLinkEvents} for a list of available events\r\n * @see {@link ITextLinkAdapters} for a list of available Adapters\r\n */\r\nvar TextLink = /** @class */ (function (_super) {\r\n __extends(TextLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TextLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"TextLink\";\r\n _this.selectable = true;\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fill = interfaceColors.getFor(\"primaryButton\").brighten(0.3);\r\n var hoverState = _this.states.create(\"hover\");\r\n hoverState.properties.fill = interfaceColors.getFor(\"primaryButtonHover\").brighten(0.3);\r\n var downState = _this.states.create(\"down\");\r\n downState.properties.fill = interfaceColors.getFor(\"primaryButtonDown\").brighten(0.3);\r\n _this.cursorOverStyle = MouseCursorStyle.pointer;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return TextLink;\r\n}(Label));\r\nexport { TextLink };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TextLink\"] = TextLink;\r\n//# sourceMappingURL=TextLink.js.map","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.arrayTreeFilter = factory());\n}(this, (function () { 'use strict';\n\nfunction arrayTreeFilter(data, filterFn, options) {\n options = options || {};\n options.childrenKeyName = options.childrenKeyName || \"children\";\n var children = data || [];\n var result = [];\n var level = 0;\n do {\n var foundItem = children.filter(function (item) {\n return filterFn(item, level);\n })[0];\n if (!foundItem) {\n break;\n }\n result.push(foundItem);\n children = foundItem[options.childrenKeyName] || [];\n level += 1;\n } while (children.length > 0);\n return result;\n}\n\nreturn arrayTreeFilter;\n\n})));\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\nfunction setTransform(node, value) {\n var name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\nfunction css(el, name, v) {\n var value = v;\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n return val;\n}\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n }\n // force relayout\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n var ret = {};\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n var _off = offset[_key] - originalOffset[_key];\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n css(elem, ret);\n}\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n var extra = ex;\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var val;\n var elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n domUtils[name] = function (elem, v) {\n var val = v;\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nvar getParent = utils.getParent;\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n for (parent = getParent$1(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n var originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n var bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\nfunction convertOffset(str, offsetLen) {\n var n;\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n var elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n // 当前节点将要所处的区域\n var newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n // 偏移量也反下\n var _newOffset = flipOffset(offset, 1);\n var _newTargetOffset = flipOffset(targetOffset, 1);\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;\n\n // Provide default target point\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcAnimate = _interopRequireDefault(require(\"rc-animate\"));\n\nvar _addEventListener = _interopRequireDefault(require(\"rc-util/lib/Dom/addEventListener\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _getScroll = _interopRequireDefault(require(\"../_util/getScroll\"));\n\nvar _scrollTo = _interopRequireDefault(require(\"../_util/scrollTo\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction getDefaultTarget() {\n return window;\n}\n\nvar BackTop = /*#__PURE__*/function (_React$Component) {\n _inherits(BackTop, _React$Component);\n\n var _super = _createSuper(BackTop);\n\n function BackTop(props) {\n var _this;\n\n _classCallCheck(this, BackTop);\n\n _this = _super.call(this, props);\n\n _this.scrollToTop = function (e) {\n var _this$props = _this.props,\n _this$props$target = _this$props.target,\n target = _this$props$target === void 0 ? getDefaultTarget : _this$props$target,\n onClick = _this$props.onClick;\n (0, _scrollTo[\"default\"])(0, {\n getContainer: target\n });\n\n if (typeof onClick === 'function') {\n onClick(e);\n }\n };\n\n _this.handleScroll = function () {\n var _this$props2 = _this.props,\n visibilityHeight = _this$props2.visibilityHeight,\n _this$props2$target = _this$props2.target,\n target = _this$props2$target === void 0 ? getDefaultTarget : _this$props2$target;\n var scrollTop = (0, _getScroll[\"default\"])(target(), true);\n\n _this.setState({\n visible: scrollTop > visibilityHeight\n });\n };\n\n _this.renderBackTop = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var _this$props3 = _this.props,\n customizePrefixCls = _this$props3.prefixCls,\n _this$props3$classNam = _this$props3.className,\n className = _this$props3$classNam === void 0 ? '' : _this$props3$classNam,\n children = _this$props3.children;\n var prefixCls = getPrefixCls('back-top', customizePrefixCls);\n var classString = (0, _classnames[\"default\"])(prefixCls, className);\n var defaultElement = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-icon\")\n })); // fix https://fb.me/react-unknown-prop\n\n var divProps = (0, _omit[\"default\"])(_this.props, ['prefixCls', 'className', 'children', 'visibilityHeight', 'target', 'visible']);\n var visible = 'visible' in _this.props ? _this.props.visible : _this.state.visible;\n var backTopBtn = visible ? /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString,\n onClick: _this.scrollToTop\n }), children || defaultElement) : null;\n return /*#__PURE__*/React.createElement(_rcAnimate[\"default\"], {\n component: \"\",\n transitionName: \"fade\"\n }, backTopBtn);\n };\n\n _this.state = {\n visible: false\n };\n return _this;\n }\n\n _createClass(BackTop, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var getTarget = this.props.target || getDefaultTarget;\n this.scrollEvent = (0, _addEventListener[\"default\"])(getTarget(), 'scroll', this.handleScroll);\n this.handleScroll();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.scrollEvent) {\n this.scrollEvent.remove();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderBackTop);\n }\n }]);\n\n return BackTop;\n}(React.Component);\n\nexports[\"default\"] = BackTop;\nBackTop.defaultProps = {\n visibilityHeight: 400\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addEventListenerWrap;\n\nvar _addDomEventListener = _interopRequireDefault(require(\"add-dom-event-listener\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = _reactDom.default.unstable_batchedUpdates ? function run(e) {\n _reactDom.default.unstable_batchedUpdates(cb, e);\n } : cb;\n return (0, _addDomEventListener.default)(target, eventType, callback, option);\n}","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../empty/style\");\n\nrequire(\"../../spin/style\");\n\nrequire(\"../../pagination/style\");\n\nrequire(\"../../grid/style\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Row\", {\n enumerable: true,\n get: function get() {\n return _row[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Col\", {\n enumerable: true,\n get: function get() {\n return _col[\"default\"];\n }\n});\n\nvar _row = _interopRequireDefault(require(\"./row\"));\n\nvar _col = _interopRequireDefault(require(\"./col\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","/**\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { color } from \"../utils/Color\";\r\n/**\r\n * Defines a class that holds default properties for new SVG elements\r\n */\r\nvar SVGDefaults = /** @class */ (function () {\r\n function SVGDefaults() {\r\n }\r\n SVGDefaults.opacity = 1;\r\n SVGDefaults.strokeOpacity = 1;\r\n SVGDefaults.strokeWidth = 1;\r\n SVGDefaults.fillOpacity = 1;\r\n SVGDefaults.fill = color(\"#000000\");\r\n SVGDefaults.stroke = color(\"#000000\");\r\n SVGDefaults.focusable = undefined;\r\n SVGDefaults.tabindex = 0;\r\n return SVGDefaults;\r\n}());\r\nexport { SVGDefaults };\r\n//# sourceMappingURL=SVGDefaults.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AMElement } from \"./AMElement\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates an SVG `<g>` element.\r\n *\r\n * SVG groups are used for elements that need more elements just one.\r\n *\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g} About `<g>` element\r\n */\r\nvar Group = /** @class */ (function (_super) {\r\n __extends(Group, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param elementName Element type (should be \"g\")\r\n */\r\n function Group(elementName) {\r\n return _super.call(this, elementName) || this;\r\n }\r\n /**\r\n * Adds an element to group.\r\n *\r\n * This will manipulate DOM. `element` will be physically moved into group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.add = function (element) {\r\n if (element) {\r\n this.node.appendChild(element.node);\r\n }\r\n };\r\n /**\r\n * Adds an element to group.\r\n *\r\n * This will manipulate DOM. `element` will be physically moved into group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.addToBack = function (element) {\r\n if (element) {\r\n var first = this.node.childNodes[0];\r\n if (first) {\r\n if (first != element.node) {\r\n this.node.insertBefore(element.node, first);\r\n }\r\n }\r\n else {\r\n this.node.appendChild(element.node);\r\n }\r\n }\r\n };\r\n /**\r\n * Removes the `element` from group.\r\n *\r\n * Please note that this will not dispose the element itself, it will just\r\n * remove it from the group.\r\n *\r\n * @param element Element\r\n */\r\n Group.prototype.removeElement = function (element) {\r\n // todo: not sure about the speed, need to investigate, maybe it's faster to check if node is a child\r\n if (element) {\r\n try {\r\n if (element.node && element.node.parentNode == this.node) {\r\n this.node.removeChild(element.node);\r\n }\r\n }\r\n catch (err) {\r\n }\r\n }\r\n };\r\n /**\r\n * Checks if this group already has the child element added\r\n *\r\n * @param element\r\n * @return {boolean}\r\n */\r\n Group.prototype.hasChild = function (element) {\r\n for (var i = 0; i < this.node.childNodes.length; i++) {\r\n if (this.node.childNodes[i] == element.node) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(Group.prototype, \"content\", {\r\n /**\r\n * @return SVG markup\r\n */\r\n get: function () {\r\n return this.node.innerHTML;\r\n },\r\n /**\r\n * Content of the group element.\r\n *\r\n * Can be used to add a lot of proprietary SVG markup into group.\r\n *\r\n * @param value SVG markup\r\n */\r\n set: function (value) {\r\n this.node.innerHTML = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes all children from the group.\r\n */\r\n Group.prototype.removeChildren = function () {\r\n if (this.node.childNodes) {\r\n while (this.node.childNodes.length > 0) {\r\n var childNode = this.node.firstChild;\r\n if (childNode && childNode.parentNode) {\r\n childNode.parentNode.removeChild(childNode);\r\n }\r\n }\r\n }\r\n };\r\n Group.prototype.removeChildrenByTag = function (tag) {\r\n if (this.node.childNodes) {\r\n var remove = this.node.getElementsByTagName(tag);\r\n for (var i = 0; i < remove.length; i++) {\r\n this.node.removeChild(remove[i]);\r\n }\r\n }\r\n };\r\n return Group;\r\n}(AMElement));\r\nexport { Group };\r\n//# sourceMappingURL=Group.js.map","/**\r\n * Interaction Object module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { InteractionObjectEventDispatcher } from \"./InteractionObjectEvents\";\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { List } from \"../utils/List\";\r\nimport { Dictionary, DictionaryDisposer } from \"../utils/Dictionary\";\r\nimport { getInteraction } from \"./Interaction\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * Re-exports\r\n */\r\nexport { InteractionObjectEventDispatcher };\r\n/**\r\n * Interaction object represents an object that is subject for any kind of\r\n * interaction with it with any input devices: mouse, touch or keyboard.\r\n *\r\n * Any DOM element can be wrapped into an Internaction object which in turn\r\n * enables attaching various interaction events to it, such as: hit, drag,\r\n * swipe, etc.\r\n *\r\n * To create an [[InteractionObject]] out of a [[Sprite]], use:\r\n * `interaction.getInteractionFromSprite(sprite: Sprite)`\r\n *\r\n * To create an [[InteractionObject]] out of a a regular element:\r\n * `interaction.getInteraction(element: HTMLElement)`\r\n */\r\nvar InteractionObject = /** @class */ (function (_super) {\r\n __extends(InteractionObject, _super);\r\n /**\r\n * Constructor\r\n */\r\n function InteractionObject(element) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * @ignore\r\n * An [[EventDispatcher]] instance which holds events for this object\r\n */\r\n _this._eventDispatcher = new InteractionObjectEventDispatcher(_this);\r\n /**\r\n * Collection of Disposers for various events. (so that those get disposed\r\n * when the whole InteractionObject is disposed)\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.eventDisposers = new Dictionary();\r\n /**\r\n * A [[Dictionary]] that holds temporarily replaced original style values for\r\n * HTML element, so that they can be restored when the functionality that\r\n * replaced them is done.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.replacedStyles = new Dictionary();\r\n _this._clickable = false;\r\n _this._contextMenuDisabled = false;\r\n _this._hoverable = false;\r\n _this._trackable = false;\r\n _this._draggable = false;\r\n _this._swipeable = false;\r\n _this._resizable = false;\r\n _this._wheelable = false;\r\n _this._inert = false;\r\n /**\r\n * Is element currently hovered?\r\n */\r\n _this._isHover = false;\r\n /**\r\n * Was this element hovered via pointer or is it just \"pretenting\" to be\r\n * hovered.\r\n *\r\n * @ignore\r\n */\r\n _this.isRealHover = false;\r\n /**\r\n * Is the element hovered by touch pointer?\r\n */\r\n _this._isHoverByTouch = false;\r\n /**\r\n * Has element got any pointers currently pressing down on it?\r\n */\r\n _this._isDown = false;\r\n /**\r\n * Does element have focus?\r\n */\r\n _this._isFocused = false;\r\n /**\r\n * Is element currently protected from touch interactions?\r\n */\r\n _this._isTouchProtected = false;\r\n /**\r\n * Options used for inertia functionality.\r\n */\r\n _this._inertiaOptions = new Dictionary();\r\n /**\r\n * A collection of different inertia types, currently playing out.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.inertias = new Dictionary();\r\n /**\r\n * Click/tap options.\r\n */\r\n _this._hitOptions = {};\r\n /**\r\n * Hover options.\r\n */\r\n _this._hoverOptions = {};\r\n /**\r\n * Swipe gesture options.\r\n */\r\n _this._swipeOptions = {};\r\n /**\r\n * Keyboard options.\r\n */\r\n _this._keyboardOptions = {};\r\n /**\r\n * Mouse options.\r\n */\r\n _this._mouseOptions = {};\r\n /**\r\n * Cursor options.\r\n */\r\n _this._cursorOptions = {\r\n \"defaultStyle\": [{\r\n \"property\": \"cursor\",\r\n \"value\": \"default\"\r\n }]\r\n };\r\n _this._disposers.push(_this._eventDispatcher);\r\n _this._element = element;\r\n _this.className = \"InteractionObject\";\r\n _this._disposers.push(new DictionaryDisposer(_this.inertias));\r\n _this._disposers.push(new DictionaryDisposer(_this.eventDisposers));\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n ;\r\n Object.defineProperty(InteractionObject.prototype, \"events\", {\r\n /**\r\n * An [[EventDispatcher]] instance which holds events for this object\r\n */\r\n get: function () {\r\n return this._eventDispatcher;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"isHover\", {\r\n /**\r\n * @return Hovered?\r\n */\r\n get: function () {\r\n return this._isHover;\r\n },\r\n /**\r\n * Indicates if this element is currently hovered.\r\n *\r\n * @param value Hovered?\r\n */\r\n set: function (value) {\r\n if (this.isHover != value) {\r\n this._isHover = value;\r\n if (value) {\r\n getInteraction().overObjects.moveValue(this);\r\n }\r\n else {\r\n this.isRealHover = false;\r\n getInteraction().overObjects.removeValue(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"isHoverByTouch\", {\r\n /**\r\n * @return Hovered?\r\n */\r\n get: function () {\r\n return this._isHoverByTouch;\r\n },\r\n /**\r\n * Indicates if this element is currently hovered.\r\n *\r\n * @param value Hovered?\r\n */\r\n set: function (value) {\r\n if (this.isHoverByTouch != value) {\r\n this._isHoverByTouch = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"overPointers\", {\r\n /**\r\n * A list of pointers currently over the element.\r\n *\r\n * @see {@link Pointer}\r\n * @return List if pointers currently hovering the element\r\n */\r\n get: function () {\r\n if (!this._overPointers) {\r\n this._overPointers = new List();\r\n }\r\n return this._overPointers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"isDown\", {\r\n /**\r\n * @return Has down pointers?\r\n */\r\n get: function () {\r\n return this._isDown;\r\n },\r\n /**\r\n * Indicates if this element has currently any pointers pressing on it.\r\n *\r\n * @param value Has down pointers?\r\n */\r\n set: function (value) {\r\n if (this.isDown != value) {\r\n this._isDown = value;\r\n if (value) {\r\n getInteraction().downObjects.moveValue(this);\r\n }\r\n else {\r\n getInteraction().downObjects.removeValue(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"downPointers\", {\r\n /**\r\n * A list of pointers currently pressing down on this element.\r\n *\r\n * @see {@link Pointer}\r\n * @return List of down pointers\r\n */\r\n get: function () {\r\n if (!this._downPointers) {\r\n this._downPointers = new List();\r\n }\r\n return this._downPointers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"isFocused\", {\r\n /**\r\n * @return Focused?\r\n */\r\n get: function () {\r\n return this._isFocused;\r\n },\r\n /**\r\n * Indicates if this element is currently focused.\r\n *\r\n * @param value Focused?\r\n */\r\n set: function (value) {\r\n if (this.isFocused != value) {\r\n this._isFocused = value;\r\n if (value) {\r\n getInteraction().focusedObject = this;\r\n }\r\n else {\r\n getInteraction().focusedObject = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"isTouchProtected\", {\r\n /**\r\n * @ignore\r\n * @return Touch protected?\r\n */\r\n get: function () {\r\n return this._isTouchProtected;\r\n },\r\n /**\r\n * Indicates if this element is currently being protected from touch actions.\r\n *\r\n * @ignore\r\n * @param value Touch protected?\r\n */\r\n set: function (value) {\r\n if (this._isTouchProtected != value) {\r\n this._isTouchProtected = value;\r\n if (value) {\r\n getInteraction().unprepElement(this);\r\n }\r\n else if (this.draggable || this.swipeable || this.trackable || this.resizable) {\r\n getInteraction().prepElement(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"clickable\", {\r\n /**\r\n * @return Clickable?\r\n */\r\n get: function () {\r\n return this._clickable;\r\n },\r\n /**\r\n * Is element clickable? Clickable elements will generate \"hit\" events when\r\n * clicked or tapped.\r\n *\r\n * @param value Clickable?\r\n */\r\n set: function (value) {\r\n if (this._clickable !== value) {\r\n this._clickable = value;\r\n getInteraction().processClickable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"contextMenuDisabled\", {\r\n /**\r\n * @return Context menu disabled?\r\n */\r\n get: function () {\r\n return this._contextMenuDisabled;\r\n },\r\n /**\r\n * Should element prevent context menu to be displayed, e.g. when\r\n * right-clicked?\r\n *\r\n * @default false\r\n * @param value Context menu disabled?\r\n */\r\n set: function (value) {\r\n if (this._contextMenuDisabled !== value) {\r\n this._contextMenuDisabled = value;\r\n getInteraction().processContextMenu(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"hoverable\", {\r\n /**\r\n * @return Hoverable?\r\n */\r\n get: function () {\r\n return this._hoverable;\r\n },\r\n /**\r\n * Indicates if element should generate hover events.\r\n *\r\n * @param value Hoverable?\r\n */\r\n set: function (value) {\r\n if (this._hoverable !== value) {\r\n this._hoverable = value;\r\n getInteraction().processHoverable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"trackable\", {\r\n /**\r\n * @return Track pointer?\r\n */\r\n get: function () {\r\n return this._trackable;\r\n },\r\n /**\r\n * Indicates if pointer movement over element should be tracked.\r\n *\r\n * @param value Track pointer?\r\n */\r\n set: function (value) {\r\n if (this._trackable !== value) {\r\n this._trackable = value;\r\n getInteraction().processTrackable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"draggable\", {\r\n /**\r\n * @return Draggable?\r\n */\r\n get: function () {\r\n return this._draggable;\r\n },\r\n /**\r\n * Indicates if element can be dragged. (moved)\r\n *\r\n * @param value Draggable?\r\n */\r\n set: function (value) {\r\n if (this._draggable !== value) {\r\n this._draggable = value;\r\n getInteraction().processDraggable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"swipeable\", {\r\n /**\r\n * @return Track swipe?\r\n */\r\n get: function () {\r\n return this._swipeable;\r\n },\r\n /**\r\n * Indicates whether element should react to swipe gesture.\r\n *\r\n * @param value Track swipe?\r\n */\r\n set: function (value) {\r\n if (this._swipeable !== value) {\r\n this._swipeable = value;\r\n getInteraction().processSwipeable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"resizable\", {\r\n /**\r\n * @return Resizeble?\r\n */\r\n get: function () {\r\n return this._resizable;\r\n },\r\n /**\r\n * Indicates if element can be resized.\r\n *\r\n * @param value Resizeable?\r\n */\r\n set: function (value) {\r\n if (this._resizable !== value) {\r\n this._resizable = value;\r\n getInteraction().processResizable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"wheelable\", {\r\n /**\r\n * @return Track wheel?\r\n */\r\n get: function () {\r\n return this._wheelable;\r\n },\r\n /**\r\n * Indicates whether track moouse wheel rotation over element.\r\n *\r\n * @param value Track wheel?\r\n */\r\n set: function (value) {\r\n if (this._wheelable !== value) {\r\n this._wheelable = value;\r\n getInteraction().processWheelable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"inert\", {\r\n /**\r\n * @return Inert?\r\n */\r\n get: function () {\r\n return this._inert;\r\n },\r\n /**\r\n * Indicates if element is inert, i.e. if it should carry movement momentum\r\n * after it is dragged and released.\r\n *\r\n * @param value Inert?\r\n */\r\n set: function (value) {\r\n if (this._inert !== value) {\r\n this._inert = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"focusable\", {\r\n /**\r\n * @return Focusable?\r\n */\r\n get: function () {\r\n return this._focusable;\r\n },\r\n /**\r\n * Indicates if element can gain focus.\r\n *\r\n * @param value Focusable?\r\n */\r\n set: function (value) {\r\n if (this._focusable !== value) {\r\n this._focusable = value;\r\n if (this._focusable && this.tabindex == -1) {\r\n this._tabindex = 1;\r\n }\r\n getInteraction().processFocusable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"tabindex\", {\r\n /**\r\n * @return Tab index\r\n */\r\n get: function () {\r\n return $type.getValueDefault(this._tabindex, -1);\r\n },\r\n /**\r\n * Element's tab index.\r\n *\r\n * @param value Tab index\r\n */\r\n set: function (value) {\r\n if (this._tabindex !== value) {\r\n this._tabindex = value;\r\n if (value > -1) {\r\n this.focusable = true;\r\n }\r\n getInteraction().processFocusable(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"element\", {\r\n /**\r\n * @return Element\r\n */\r\n get: function () {\r\n return this._element;\r\n },\r\n /**\r\n * A DOM element associated with this element.\r\n *\r\n * @param element Element\r\n */\r\n set: function (element) {\r\n this._element = element;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"originalPosition\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Position.\r\n */\r\n get: function () {\r\n return this._originalPosition || { x: 0, y: 0 };\r\n },\r\n /**\r\n * Element's original position.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n this._originalPosition = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"originalScale\", {\r\n /**\r\n * @return Scale\r\n */\r\n get: function () {\r\n return $type.getValueDefault(this._originalScale, 1);\r\n },\r\n /**\r\n * Element's original scale.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Scale\r\n */\r\n set: function (value) {\r\n if (this._originalScale !== value) {\r\n this._originalScale = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"originalAngle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n return $type.getValueDefault(this._originalAngle, 0);\r\n },\r\n /**\r\n * Element's original angle.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n if (this._originalAngle !== value) {\r\n this._originalAngle = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"inertiaOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"inertiaOptions\", this._inertiaOptions);\r\n }\r\n else {\r\n return this._inertiaOptions;\r\n }\r\n },\r\n /**\r\n * Inertia options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._inertiaOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"hitOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"hitOptions\", this._hitOptions);\r\n }\r\n else {\r\n return this._hitOptions;\r\n }\r\n },\r\n /**\r\n * Hit options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._hitOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"hoverOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"hoverOptions\", this._hoverOptions);\r\n }\r\n else {\r\n return this._hoverOptions;\r\n }\r\n },\r\n /**\r\n * Hover options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._hoverOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"swipeOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"swipeOptions\", this._swipeOptions);\r\n }\r\n else {\r\n return this._swipeOptions;\r\n }\r\n },\r\n /**\r\n * Swipe options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._swipeOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"keyboardOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"keyboardOptions\", this._keyboardOptions);\r\n }\r\n else {\r\n return this._keyboardOptions;\r\n }\r\n },\r\n /**\r\n * Keyboard options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._keyboardOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"mouseOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"mouseOptions\", this._mouseOptions);\r\n }\r\n else {\r\n return this._mouseOptions;\r\n }\r\n },\r\n /**\r\n * Mouse options.\r\n *\r\n * Enables controlling options related to the mouse, for example sensitivity\r\n * of its mouse wheel.\r\n *\r\n * E.g. the below will reduce chart's wheel-zoom speed to half its default\r\n * speed:\r\n *\r\n * ```TypeScript\r\n * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n * ```\r\n * ```JavaScript\r\n * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"plotContainer\": {\r\n * \"mouseOptions\": {\r\n * \"sensitivity\": 0.5\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @since 4.5.14\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._mouseOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(InteractionObject.prototype, \"cursorOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n if (this.sprite && this.sprite._adapterO) {\r\n return this.sprite._adapterO.apply(\"cursorOptions\", this._cursorOptions);\r\n }\r\n else {\r\n return this._cursorOptions;\r\n }\r\n },\r\n /**\r\n * Cursor options.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._cursorOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all properties and related assets from another object of the same\r\n * type.\r\n *\r\n * @param source Source object\r\n */\r\n InteractionObject.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.inertiaOptions = source.inertiaOptions;\r\n this.hitOptions = source.hitOptions;\r\n this.hoverOptions = source.hoverOptions;\r\n this.swipeOptions = source.swipeOptions;\r\n this.keyboardOptions = source.keyboardOptions;\r\n this.cursorOptions = source.cursorOptions;\r\n this.contextMenuDisabled = source.contextMenuDisabled;\r\n getInteraction().applyCursorOverStyle(this);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n InteractionObject.prototype.setEventDisposer = function (key, value, f) {\r\n var disposer = this.eventDisposers.getKey(key);\r\n if (value) {\r\n if (disposer == null) {\r\n this.eventDisposers.setKey(key, f());\r\n }\r\n }\r\n else {\r\n if (disposer != null) {\r\n disposer.dispose();\r\n this.eventDisposers.removeKey(key);\r\n }\r\n }\r\n };\r\n /**\r\n * Disposes object.\r\n */\r\n InteractionObject.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n // Remove from all interaction registries\r\n var interaction = getInteraction();\r\n interaction.overObjects.removeValue(this);\r\n interaction.downObjects.removeValue(this);\r\n interaction.trackedObjects.removeValue(this);\r\n interaction.transformedObjects.removeValue(this);\r\n // Unlock document wheel\r\n if (this.isHover && this.wheelable) {\r\n interaction.unlockWheel();\r\n }\r\n if (interaction.focusedObject === this) {\r\n interaction.focusedObject = undefined;\r\n }\r\n };\r\n return InteractionObject;\r\n}(BaseObjectEvents));\r\nexport { InteractionObject };\r\n//# sourceMappingURL=InteractionObject.js.map","/**\r\n * Functionality related simulating of dragging of elements using keyboard.\r\n */\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { getInteraction } from \"./Interaction\";\r\nimport { system } from \"../System\";\r\nimport * as $array from \"../utils/Array\";\r\n/**\r\n * [[InteractionKeyboardObject]] is used to simulate dragging of the `draggable`\r\n * element using keyboard arrows.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar InteractionKeyboardObject = /** @class */ (function () {\r\n /**\r\n * Constructor.\r\n *\r\n * @param io An InteractionObject\r\n */\r\n function InteractionKeyboardObject(io, ev) {\r\n /**\r\n * Indicates if this object has already been deleted. Any\r\n * destruction/disposal code should take this into account when deciding\r\n * wheter to run potentially costly disposal operations if they already have\r\n * been run.\r\n */\r\n this._disposed = false;\r\n /**\r\n * Indicates direction of current horizontal movement.\r\n *\r\n * 0 - not moving horizontally\r\n * 1 - moving right\r\n * -1 - moving left\r\n */\r\n this.directionX = 0;\r\n /**\r\n * Indicates direction of current vertical movement.\r\n *\r\n * 0 - not moving vertically\r\n * 1 - moving down\r\n * -1 - moving up\r\n */\r\n this.directionY = 0;\r\n this.interaction = io;\r\n this.keyboardEvent = ev;\r\n this._startedOn = new Date().getTime();\r\n getInteraction().processDragStart(io);\r\n system.animations.push(this);\r\n this.update();\r\n }\r\n /**\r\n * It's an update method which is called by the system if\r\n * [[InteractionObject]] is used as animation.\r\n *\r\n * This will update coordinates of the element based on the movement\r\n * directions.\r\n */\r\n InteractionKeyboardObject.prototype.update = function () {\r\n // Init and get settings\r\n var io = this.interaction;\r\n var speed = getInteraction().getKeyboardOption(io, \"speed\"), accelleration = getInteraction().getKeyboardOption(io, \"accelleration\"), accellerationDelay = getInteraction().getKeyboardOption(io, \"accellerationDelay\"), shift = {\r\n x: 0,\r\n y: 0\r\n };\r\n // If SHIFT key is pressed we slash speed by half and disable accelleration\r\n if (this.keyboardEvent.shiftKey) {\r\n speed *= 0.5;\r\n accelleration = 1;\r\n }\r\n // If CTRL is pressed we increase speed by x2\r\n else if (this.keyboardEvent.ctrlKey) {\r\n speed *= 2;\r\n }\r\n // Get elapsed time\r\n var ms = new Date().getTime() - this._startedOn;\r\n var accelleratedMs = ms - accellerationDelay;\r\n // Add accellerated movement\r\n if ((accelleration > 0) && (accelleratedMs > 0)) {\r\n var accellerationFactor = ms / accellerationDelay;\r\n ms = accellerationDelay;\r\n shift.x += this.directionX * (speed * accelleration * accellerationFactor * accelleratedMs);\r\n shift.y += this.directionY * (speed * accelleration * accellerationFactor * accelleratedMs);\r\n }\r\n // Calculate position\r\n shift.x += this.directionX * (speed * ms);\r\n shift.y += this.directionY * (speed * ms);\r\n // Simulate move on Interaction\r\n getInteraction().handleTransformMove(io, shift, { x: 0, y: 0 }, this.keyboardEvent, true, false);\r\n };\r\n /**\r\n * Returns if this object has been already been disposed.\r\n *\r\n * @return Is disposed?\r\n */\r\n InteractionKeyboardObject.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n /**\r\n * Disposes this object. Removes from system animations.\r\n */\r\n InteractionKeyboardObject.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n getInteraction().processDragStop(this.interaction);\r\n $array.remove(system.animations, this);\r\n }\r\n };\r\n return InteractionKeyboardObject;\r\n}());\r\nexport { InteractionKeyboardObject };\r\n//# sourceMappingURL=InteractionKeyboardObject.js.map","/**\r\n * Functionality related to inertia\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { getInteraction } from \"./Interaction\";\r\nimport { AnimationDisposer } from \"../utils/Animation\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * A point of inertia is to simulate gradually drecreasing motion even after\r\n * actual interaction by user, that caused it, has already ended.\r\n *\r\n * [[Inertia]] object will continue triggering the same [[Sprite]] handlers\r\n * as if the interaction was still happening, gradually reducing\r\n * shift/angle/scale values until full stop.\r\n *\r\n * Basically, from the target element's point of view, while inertia is\r\n * playing, it is still being interacted with by user, albeit with a\r\n * decreasing speed.\r\n */\r\nvar Inertia = /** @class */ (function (_super) {\r\n __extends(Inertia, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Inertia(interaction, type, point, startPoint) {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * List of animations currently playing.\r\n */\r\n _this.animations = [];\r\n _this.className = \"Inertia\";\r\n _this.interaction = interaction;\r\n _this.type = type;\r\n _this.point = point;\r\n _this.startPoint = startPoint;\r\n // Make animations disposable\r\n _this._disposers.push(new AnimationDisposer(_this.animations));\r\n return _this;\r\n }\r\n Object.defineProperty(Inertia.prototype, \"x\", {\r\n /**\r\n * Returns current X coordinate.\r\n *\r\n * @return X\r\n */\r\n get: function () {\r\n return this.point.x;\r\n },\r\n /**\r\n * Sets current X coordinate.\r\n *\r\n * Will trigger \"drag\" event for the target element.\r\n *\r\n * @param value X\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n this.point.x = value;\r\n this.handleMove();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Inertia.prototype, \"y\", {\r\n /**\r\n * Returns current Y coordinate.\r\n *\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.point.y;\r\n },\r\n /**\r\n * Sets current Y coordinate.\r\n *\r\n * Will trigger \"drag\" event for the target element.\r\n *\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n if ($type.isNumber(value)) {\r\n this.point.y = value;\r\n this.handleMove();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Simulates dragging of element.\r\n */\r\n Inertia.prototype.handleMove = function () {\r\n // Prepare {InteractionEvent} object\r\n if (this.interaction.events.isEnabled(\"drag\")) {\r\n var imev = {\r\n type: \"drag\",\r\n target: this.interaction,\r\n shift: {\r\n x: this.x - this.startPoint.x,\r\n y: this.y - this.startPoint.y\r\n },\r\n startPoint: this.startPoint,\r\n point: {\r\n x: this.x,\r\n y: this.y\r\n },\r\n touch: false\r\n };\r\n // Call handler\r\n this.interaction.events.dispatchImmediately(\"drag\", imev);\r\n }\r\n };\r\n /**\r\n * Finishes up the inertia animation. (removes reference to this animation\r\n * object)\r\n */\r\n Inertia.prototype.done = function () {\r\n // Remove inertia animation from the object\r\n this.interaction.inertias.removeKey(this.type);\r\n // Move ended\r\n if (this.type === \"move\") {\r\n getInteraction().processDragStop(this.interaction);\r\n }\r\n // Destroy\r\n this.dispose();\r\n };\r\n return Inertia;\r\n}(BaseObject));\r\nexport { Inertia };\r\n//# sourceMappingURL=Inertia.js.map","/**\r\n * Export module.\r\n *\r\n * Parts of Export functionality rely on the following third party libraries:\r\n *\r\n * [canvg.js](https://github.com/canvg/canvg)\r\n * Copyright (c) Gabe Lerner\r\n * Licensed under [MIT](https://github.com/canvg/canvg/blob/master/LICENSE)\r\n *\r\n * [pdfmake](http://pdfmake.org/)\r\n * Copyright (c) 2014 bpampuch\r\n * Licensed under [MIT](https://github.com/bpampuch/pdfmake/blob/master/LICENSE)\r\n *\r\n * [SheetJS Community Edition](https://github.com/sheetjs/js-xlsx)\r\n * Licensed under [Apache License 2.0](https://github.com/SheetJS/js-xlsx/blob/master/LICENSE)\r\n *\r\n * [JSZip](http://stuartk.com/jszip)\r\n * Copyright (c) Stuart Knightley\r\n * Dual licenced under the [MIT license or GPLv3](https://raw.githubusercontent.com/Stuk/jszip/master/LICENSE.markdown).\r\n */\r\nimport { __awaiter, __extends, __generator } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ExportMenu } from \"./ExportMenu\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Modal } from \"../elements/Modal\";\r\nimport { List } from \"../utils/List\";\r\nimport { Dictionary } from \"../utils/Dictionary\";\r\nimport { DateFormatter } from \"../formatters/DateFormatter\";\r\nimport { DurationFormatter } from \"../formatters/DurationFormatter\";\r\nimport { NumberFormatter } from \"../formatters/NumberFormatter\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { Validatable } from \"../utils/Validatable\";\r\nimport { color } from \"../utils/Color\";\r\nimport { registry } from \"../Registry\";\r\nimport { options } from \"../Options\";\r\nimport { StyleRule, getComputedStyle } from \"../utils/DOM\";\r\nimport * as $browser from \"../utils/Browser\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $net from \"../utils/Net\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $log from \"../utils/Log\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $strings from \"../utils/Strings\";\r\n// This is used to cache the pdfmake loading\r\nvar pdfmakePromise;\r\n/**\r\n * Loads pdfmake dynamic module\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of pdfmake\r\n * @async\r\n */\r\nfunction _pdfmake() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var a, pdfmake, vfs_fonts, global;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n import(/* webpackChunkName: \"pdfmake\" */ \"pdfmake/build/pdfmake.js\"),\r\n import(/* webpackChunkName: \"pdfmake\" */ \"../../pdfmake/vfs_fonts\")\r\n ])];\r\n case 1:\r\n a = _a.sent();\r\n pdfmake = a[0].default || a[0];\r\n vfs_fonts = a[1].default || a[1];\r\n global = window;\r\n global.pdfMake = global.pdfMake || {};\r\n global.pdfMake.vfs = vfs_fonts;\r\n pdfmake.vfs = vfs_fonts;\r\n return [2 /*return*/, pdfmake];\r\n }\r\n });\r\n });\r\n}\r\n// TODO better parsing\r\nvar fontFamilySrcRegexp = /src: ([^;]+);/;\r\n// TODO better checks\r\nfunction supportsBlobUri() {\r\n return window.navigator.msSaveOrOpenBlob != null;\r\n}\r\n// TODO move into utils or something ?\r\nfunction blobToDataUri(blob) {\r\n return new Promise(function (resolve, reject) {\r\n // TODO handle abort ?\r\n var f = new FileReader();\r\n f.onload = function (e) { resolve(f.result); };\r\n f.onerror = function (e) { reject(e); };\r\n f.readAsDataURL(blob);\r\n });\r\n}\r\nfunction getCssRules(s) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var sheet, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n sheet = s.sheet;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 2, , 4]);\r\n return [2 /*return*/, sheet.cssRules];\r\n case 2:\r\n e_1 = _a.sent();\r\n return [4 /*yield*/, new Promise(function (success, error) {\r\n s.addEventListener(\"load\", function () {\r\n success(sheet.cssRules);\r\n }, true);\r\n s.addEventListener(\"error\", function (e) {\r\n error(e);\r\n }, true);\r\n setTimeout(function () {\r\n error(new Error(\"Timeout while waiting for <style> to load\"));\r\n }, 10000);\r\n })];\r\n case 3: \r\n // Needed because of https://bugzilla.mozilla.org/show_bug.cgi?id=625013\r\n return [2 /*return*/, _a.sent()];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n// This loads a stylesheet by URL and then calls the function with it\r\n// TODO this should be moved into utils or something\r\nfunction loadStylesheet(doc, url, f) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_2, s, rules;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, $net.load(url)];\r\n case 1:\r\n response = _a.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_2 = _a.sent();\r\n console.error(\"Failed to load stylesheet\", url, e_2);\r\n return [2 /*return*/];\r\n case 3:\r\n s = doc.createElement(\"style\");\r\n s.textContent = response.response;\r\n if (options.nonce != \"\") {\r\n s.setAttribute(\"nonce\", options.nonce);\r\n }\r\n doc.head.appendChild(s);\r\n _a.label = 4;\r\n case 4:\r\n _a.trys.push([4, , 7, 8]);\r\n return [4 /*yield*/, getCssRules(s)];\r\n case 5:\r\n rules = _a.sent();\r\n return [4 /*yield*/, eachStylesheet(doc, url, rules, f)];\r\n case 6:\r\n _a.sent();\r\n return [3 /*break*/, 8];\r\n case 7:\r\n doc.head.removeChild(s);\r\n return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n// This calls a function for each CSSRule inside of a CSSStyleSheet.\r\n// If the CSSStyleSheet has any @import, then it will recursively call the function for those CSSRules too.\r\n// TODO this should be moved into utils or something\r\nfunction eachStylesheet(doc, topUrl, rules, f) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var promises, length, i, rule, url;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n promises = [];\r\n length = rules.length;\r\n for (i = 0; i < length; i++) {\r\n rule = rules[i];\r\n if (rule.type === CSSRule.IMPORT_RULE) {\r\n url = rule.href;\r\n if (url) {\r\n url = $utils.joinUrl(topUrl, url);\r\n promises.push(loadStylesheet(doc, url, f));\r\n }\r\n }\r\n else {\r\n f(topUrl, rule);\r\n }\r\n }\r\n if (!promises.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, Promise.all(promises)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n// This calls a function for each CSSRule for all of the stylesheets in the page.\r\n// If the CSSStyleSheet has any @import, then it will recursively call the function for those CSSRules too.\r\n// TODO this should be moved into utils or something\r\nfunction eachStylesheets(f) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var iframe, doc_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n iframe = document.createElement(\"iframe\");\r\n // This causes it to use the same origin policy as the parent page\r\n iframe.src = \"about:blank\";\r\n // This tries to make it more accessible for screen readers\r\n iframe.setAttribute(\"title\", \"\");\r\n document.head.appendChild(iframe);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 3, 4]);\r\n doc_1 = iframe.contentDocument;\r\n // TODO use $dom.getRoot instead of document ?\r\n return [4 /*yield*/, Promise.all($array.map(document.styleSheets, function (sheet) {\r\n var url = sheet.href;\r\n if (url == null) {\r\n return eachStylesheet(doc_1, location.href, sheet.cssRules, f);\r\n }\r\n else {\r\n url = $utils.joinUrl(location.href, url);\r\n return loadStylesheet(doc_1, url, f);\r\n }\r\n }))];\r\n case 2:\r\n // TODO use $dom.getRoot instead of document ?\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n document.head.removeChild(iframe);\r\n return [7 /*endfinally*/];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * [[Export]] allows downloading of current snapshot of the chart as an\r\n * image, PDF, or its data in various formats.\r\n *\r\n * The export functionality is enabled by default in charts and is accessible\r\n * via API or optional export menu.\r\n *\r\n * To enable menu, simply access export's `menu` property. E.g.:\r\n *\r\n * ```TypeScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"exporting\": {\r\n * \"menu\": {}\r\n * }\r\n * }\r\n * ```\r\n *\r\n * To export via API, use `export()` method:\r\n *\r\n * ```TypeScript\r\n * chart.exporting.export(type, [options]);\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.export(type, [options]);\r\n * ```\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * chart.exporting.export(\"png\");\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.export(\"png\");\r\n * ```\r\n *\r\n * @todo Better loading indicator?\r\n * @todo Implement multiplier option\r\n * @todo Handling of hanged exports\r\n * @important\r\n */\r\nvar Export = /** @class */ (function (_super) {\r\n __extends(Export, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Export(container) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * Holds options for each format.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._formatOptions = new Dictionary();\r\n /**\r\n * Extra [[Sprite]] elements to include in exports.\r\n */\r\n _this._extraSprites = [];\r\n /**\r\n * A list of [[Sprite]] elements that need to be valid before export\r\n * commences.\r\n */\r\n _this._validateSprites = [];\r\n /**\r\n * Holds an array of data field names. If set, exported data fields will try\r\n * to maintain this order.\r\n *\r\n * If not set (default), the export will try to maintain the same order as\r\n * in source data, or as in `dataFields` (if set).\r\n *\r\n * @since 4.9.7\r\n */\r\n _this.dataFieldsOrder = [];\r\n /**\r\n * Indicates whether data fields were generated dynamically (`true`) or\r\n * if they were pre-set by the user (`false`).\r\n */\r\n _this._dynamicDataFields = true;\r\n /**\r\n * Holds a list of objects that were temporarily removed from the DOM while\r\n * exporting. Those most probably are tainted images, or foreign objects that\r\n * would otherwise prevent SVG to be converted to canvas.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._removedObjects = new List();\r\n /**\r\n * Holds references to the objects that were temporarily hidden when export\r\n * started, so that we can reveal them back when export ends.\r\n */\r\n _this._hiddenObjects = [];\r\n /**\r\n * Indicates if non-exportable objects are now hidden;\r\n */\r\n _this._objectsAlreadyHidden = false;\r\n /**\r\n * Exported files will be prefixed with whatever it is set here.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this._filePrefix = \"amCharts\";\r\n /**\r\n * If you are using web fonts (such as Google Fonts), your chart might be\r\n * using them as well.\r\n *\r\n * Normally, exporting to image will require to download these fonts so the\r\n * are carried over to exported image.\r\n *\r\n * This setting can be used to disable or enable this functionality.\r\n *\r\n * @default true\r\n */\r\n _this.useWebFonts = true;\r\n /**\r\n * Many modern displays have use more actual pixels per displayed pixel. This\r\n * results in sharper images on screen. Unfortunately, when exported to a\r\n * bitmap image of the sam width/height size it will lose those extra pixels,\r\n * resulting in somewhat blurry image.\r\n *\r\n * This is why we are going to export images larger than they are, so that we\r\n * don't lose any details.\r\n *\r\n * If you'd rather export images without change in size, set this to `false`.\r\n *\r\n * @default true\r\n */\r\n _this.useRetina = true;\r\n /**\r\n * By default Export will try to use built-in method for transforming chart\r\n * into an image for download, then fallback to external library (canvg) for\r\n * conversion if failed.\r\n *\r\n * Setting this to `false` will force use of external library for all export\r\n * operations.\r\n *\r\n * It might be useful to turn off simplified export if you are using strict\r\n * content security policies, that disallow images with blobs as their\r\n * source.\r\n *\r\n * @default true\r\n * @since 4.2.5\r\n */\r\n _this.useSimplifiedExport = true;\r\n /**\r\n * If export operation takes longer than milliseconds in this second, we will\r\n * show a modal saying export operation took longer than expected.\r\n */\r\n _this.timeoutDelay = 2000;\r\n _this._exportRunning = false;\r\n /**\r\n * Indicator used by [[Component]].\r\n *\r\n * @ignore\r\n */\r\n _this._prevHasData = false;\r\n _this._container = container;\r\n _this.className = \"Export\";\r\n // Set default options\r\n _this._formatOptions.setKey(\"png\", {});\r\n _this._formatOptions.setKey(\"jpg\", {\r\n quality: 0.8\r\n });\r\n _this._formatOptions.setKey(\"gif\", {});\r\n _this._formatOptions.setKey(\"svg\", {});\r\n _this._formatOptions.setKey(\"pdf\", {\r\n fontSize: 14,\r\n imageFormat: \"png\",\r\n align: \"left\",\r\n addURL: true,\r\n addColumnNames: true\r\n });\r\n _this._formatOptions.setKey(\"json\", {\r\n indent: 2,\r\n useLocale: true\r\n });\r\n _this._formatOptions.setKey(\"csv\", {\r\n addColumnNames: true,\r\n emptyAs: \"\",\r\n addBOM: true\r\n });\r\n _this._formatOptions.setKey(\"xlsx\", {\r\n addColumnNames: true,\r\n useLocale: true,\r\n emptyAs: \"\"\r\n });\r\n _this._formatOptions.setKey(\"html\", {\r\n addColumnNames: true,\r\n emptyAs: \"\"\r\n });\r\n _this._formatOptions.setKey(\"pdfdata\", {\r\n fontSize: 14,\r\n imageFormat: \"png\",\r\n addURL: true,\r\n addColumnNames: true,\r\n emptyAs: \"\"\r\n });\r\n _this._formatOptions.setKey(\"print\", {\r\n delay: 500,\r\n printMethod: \"iframe\"\r\n });\r\n // Add options adapter\r\n _this.adapter.add(\"options\", function (arg) {\r\n var formatOptions = _this._formatOptions.getKey(arg.type);\r\n if (arg.options) {\r\n arg.options = $object.merge(formatOptions, arg.options);\r\n }\r\n else {\r\n arg.options = formatOptions;\r\n }\r\n return arg;\r\n });\r\n _this.applyTheme();\r\n _this.dispatchImmediately(\"inited\");\r\n return _this;\r\n }\r\n Object.defineProperty(Export.prototype, \"menu\", {\r\n /**\r\n * @return ExportMenu instance\r\n */\r\n get: function () {\r\n return this._menu;\r\n },\r\n /**\r\n * An instance of [[ExportMenu]].\r\n *\r\n * To add an export menu to a chart, set this to a new instance of\r\n * [[ExportMenu]].\r\n *\r\n * ```TypeScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"exporting\": {\r\n * \"menu\": {}\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @param menu ExportMenu instance\r\n */\r\n set: function (menu) {\r\n var _this = this;\r\n if (this._menu) {\r\n this.removeDispose(this._menu);\r\n }\r\n this._menu = menu;\r\n // Set container and language\r\n this._menu.container = this.container;\r\n this._menu.language = this._language;\r\n // Add adapter to check for browser support\r\n this._menu.adapter.add(\"branch\", function (arg) {\r\n arg.branch.unsupported = !_this.typeSupported(arg.branch.type);\r\n return arg;\r\n });\r\n // Add click events\r\n this._menu.events.on(\"hit\", function (ev) {\r\n _this.export(ev.branch.type, ev.branch.options);\r\n _this.menu.close();\r\n });\r\n this._menu.events.on(\"enter\", function (ev) {\r\n _this.export(ev.branch.type, ev.branch.options);\r\n _this.menu.close();\r\n });\r\n this._menu.events.on(\"over\", function (ev) {\r\n _this._disablePointers();\r\n });\r\n this._menu.events.on(\"out\", function (ev) {\r\n setTimeout(function () { _this._releasePointers(); }, 10);\r\n });\r\n // Dispatch event\r\n this.dispatchImmediately(\"menucreated\");\r\n // Prefix with Sprite's class name\r\n this._menu.adapter.add(\"classPrefix\", function (obj) {\r\n obj.classPrefix = options.classNamePrefix + obj.classPrefix;\r\n return obj;\r\n });\r\n // Add menu to disposers so that it's destroyed when Export is disposed\r\n this._disposers.push(this._menu);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if this specific menu item type is supported by current system.\r\n *\r\n * @param type Menu item type\r\n * @return `false` if not supported\r\n */\r\n Export.prototype.typeSupported = function (type) {\r\n var supported = true;\r\n var options = this.getFormatOptions(type);\r\n if ($type.hasValue(options) && options.disabled) {\r\n supported = false;\r\n }\r\n else if (type === \"pdf\") {\r\n //supported = this.downloadSupport();\r\n }\r\n else if (type === \"xlsx\") {\r\n //supported = (this.downloadSupport() && this._hasData()) ? true : false;\r\n supported = this._hasData() ? true : false;\r\n }\r\n else if (type == \"print\" && !window.print) {\r\n supported = false;\r\n }\r\n else if ([\"json\", \"csv\", \"html\", \"pdfdata\"].indexOf(type) !== -1 && !this._hasData()) {\r\n supported = false;\r\n }\r\n return this.adapter.apply(\"supported\", {\r\n supported: supported,\r\n type: type\r\n }).supported;\r\n };\r\n /**\r\n * Checks if data is available.\r\n *\r\n * @return Has data?\r\n */\r\n Export.prototype._hasData = function () {\r\n return this.data && this.data.length;\r\n };\r\n /**\r\n * Get function to handle export for particular format.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype._getFunction = function (type) {\r\n switch (type) {\r\n case \"png\":\r\n case \"gif\":\r\n case \"jpg\":\r\n return this.getImage;\r\n case \"svg\":\r\n return this.getSVG;\r\n case \"pdf\":\r\n case \"pdfdata\":\r\n return this.getPDF;\r\n case \"xlsx\":\r\n return this.getExcel;\r\n case \"csv\":\r\n return this.getCSV;\r\n case \"json\":\r\n return this.getJSON;\r\n case \"html\":\r\n return this.getHTML;\r\n case \"print\":\r\n return this.getPrint;\r\n default:\r\n return this.unsupported;\r\n }\r\n };\r\n /**\r\n * Initiates export procedure.\r\n *\r\n * @param type Export type\r\n * @param options Options\r\n * @return `true` if export was successful\r\n * @async\r\n */\r\n Export.prototype.export = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var event_1, func, data, event_2, event_3;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Check if it's a custom item, and do nothing or execute custom callback\r\n if (type == \"custom\") {\r\n this.handleCustom(options);\r\n return [2 /*return*/, true];\r\n }\r\n // Set export running flag\r\n this._exportRunning = true;\r\n // Dispatch event\r\n if (this.events.isEnabled(\"exportstarted\")) {\r\n event_1 = {\r\n \"type\": \"exportstarted\",\r\n \"target\": this,\r\n \"format\": type,\r\n \"options\": options\r\n };\r\n this.events.dispatchImmediately(\"exportstarted\", event_1);\r\n }\r\n // Schedule a preloader\r\n this.showPreloader();\r\n // Schedule a timeout\r\n if (this.timeoutDelay) {\r\n this.hideTimeout();\r\n this._timeoutTimeout = this.setTimeout(function () {\r\n // Dispatch event\r\n if (_this.events.isEnabled(\"exporttimedout\")) {\r\n var event_4 = {\r\n \"type\": \"exporttimedout\",\r\n \"target\": _this,\r\n \"format\": type,\r\n \"options\": options\r\n };\r\n _this.events.dispatchImmediately(\"exporttimedout\", event_4);\r\n }\r\n // Show modal\r\n _this.showTimeout();\r\n }, this.timeoutDelay);\r\n }\r\n // Hide items that should not be exported\r\n this.hideNonExportableSprites();\r\n func = this._getFunction(type);\r\n // Give chance for plugins to override both function and options\r\n options = this.adapter.apply(\"options\", {\r\n options: options,\r\n type: type\r\n }).options;\r\n func = this.adapter.apply(\"exportFunction\", {\r\n func: func,\r\n type: type,\r\n options: options\r\n }).func;\r\n return [4 /*yield*/, func.call(this, type, options)];\r\n case 1:\r\n data = _a.sent();\r\n // Release pointers\r\n this._exportRunning = false;\r\n this._releasePointers();\r\n // Restore temporarily hidden elements\r\n this.restoreNonExportableSprites();\r\n if (data) {\r\n // Dispatch event\r\n if (this.events.isEnabled(\"exportfinished\")) {\r\n event_2 = {\r\n \"type\": \"exportfinished\",\r\n \"target\": this,\r\n \"format\": type,\r\n \"options\": options\r\n };\r\n this.events.dispatchImmediately(\"exportfinished\", event_2);\r\n }\r\n // Hide preloader and timeout modals\r\n this.hidePreloader();\r\n this.hideTimeout();\r\n if (this.menu) {\r\n this.menu.close();\r\n }\r\n // Download or print\r\n if (type === \"print\") {\r\n return [2 /*return*/, this.print(data, options, this.adapter.apply(\"title\", {\r\n title: this.title,\r\n options: options\r\n }).title)];\r\n }\r\n else {\r\n if (type == \"pdfdata\") {\r\n return [2 /*return*/, this.download(data, this.filePrefix + \".pdf\")];\r\n }\r\n return [2 /*return*/, this.download(data, this.filePrefix + \".\" + type, (options && options.addBOM))];\r\n }\r\n }\r\n else {\r\n // Throw exception?\r\n // @todo\r\n // Dispatch event\r\n if (this.events.isEnabled(\"error\")) {\r\n event_3 = {\r\n \"type\": \"error\",\r\n \"target\": this,\r\n \"format\": type,\r\n \"options\": options\r\n };\r\n this.events.dispatchImmediately(\"error\", event_3);\r\n }\r\n return [2 /*return*/, false];\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * A function that should handle unsupported export types.\r\n *\r\n * @ignore Exclude from docs\r\n * @param type Export type\r\n * @param options Options\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.unsupported = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // TODO should this return `undefined`?\r\n return [2 /*return*/, \"\"];\r\n });\r\n });\r\n };\r\n /**\r\n * Handles click on a \"custom\" menu item.\r\n *\r\n * Basically, if it has \"callback\" enabled, it will be called. Nothing else.\r\n *\r\n * @ignore Exclude from docs\r\n * @param options Options\r\n */\r\n Export.prototype.handleCustom = function (options) {\r\n if ($type.hasValue(options) && $type.hasValue(options.callback)) {\r\n options.callback.call(options.callbackTarget || this, options);\r\n }\r\n };\r\n /**\r\n * Requests a Print of the chart.\r\n *\r\n * @param type Export type\r\n * @param options Options\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.getPrint = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.getImage(\"png\", options)];\r\n });\r\n });\r\n };\r\n /**\r\n * A function that returns data: URI encoded @font-family, so that way it can be embedded into SVG.\r\n *\r\n * @ignore Exclude from docs\r\n * @return String which can be embedded directly into a <style> element.\r\n * @async\r\n */\r\n Export.prototype.getFontFamilies = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var DOMURL, blobs, promises, a;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n DOMURL = this.getDOMURL();\r\n blobs = [];\r\n promises = [];\r\n return [4 /*yield*/, eachStylesheets(function (topUrl, rule) {\r\n if (rule.type === CSSRule.FONT_FACE_RULE) {\r\n var cssText_1 = rule.cssText;\r\n // TODO this is necessary because Edge doesn't let you access the src using getPropertyValue\r\n var src = fontFamilySrcRegexp.exec(cssText_1);\r\n if (src !== null) {\r\n // TODO make this faster (don't create Promises for non-url stuff)\r\n var urls = src[1].split(/ *, */).map(function (url) { return __awaiter(_this, void 0, void 0, function () {\r\n var a, after, fullUrl, response, url_1, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n a = /^url\\([\"']?([^\"'\\)]+)[\"']?\\)([^,]*)$/.exec(url);\r\n if (!(a === null)) return [3 /*break*/, 1];\r\n return [2 /*return*/, url];\r\n case 1:\r\n after = a[2];\r\n fullUrl = $utils.joinUrl(topUrl, a[1]);\r\n if (this.webFontFilter && !fullUrl.match(this.webFontFilter)) {\r\n return [2 /*return*/, null];\r\n }\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n return [4 /*yield*/, $net.load(fullUrl, undefined, { responseType: \"blob\" })];\r\n case 3:\r\n response = _a.sent();\r\n if (!supportsBlobUri()) return [3 /*break*/, 4];\r\n url_1 = DOMURL.createObjectURL(response.blob);\r\n blobs.push(url_1);\r\n return [3 /*break*/, 6];\r\n case 4: return [4 /*yield*/, blobToDataUri(response.blob)];\r\n case 5:\r\n url_1 = _a.sent();\r\n _a.label = 6;\r\n case 6: \r\n // TODO should it should escape the URI ?\r\n return [2 /*return*/, \"url(\\\"\" + url_1 + \"\\\")\" + after];\r\n case 7:\r\n e_3 = _a.sent();\r\n console.error(\"Failed to load font\", fullUrl, e_3);\r\n return [2 /*return*/, null];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n promises.push(Promise.all(urls).then(function (a) {\r\n a = a.filter(function (x) { return x != null; });\r\n if (a.length === 0) {\r\n return \"\";\r\n }\r\n else {\r\n return cssText_1.replace(fontFamilySrcRegexp, \"src: \" + a.join(\", \") + \";\");\r\n }\r\n }));\r\n }\r\n }\r\n })];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, Promise.all(promises)];\r\n case 2:\r\n a = _a.sent();\r\n return [2 /*return*/, {\r\n blobs: blobs,\r\n cssText: a.filter(function (x) { return !!x; }).join(\"\\n\")\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Produces image output from the element.\r\n *\r\n * Converts to a `Canvas` first, then produces an image to download.\r\n *\r\n * This is an asynchronous function. Rather than returning a result, it\r\n * returns a Promise.\r\n *\r\n * You can use `await` notion from other async functions, or `then()`\r\n * anywhere else.\r\n *\r\n * ```TypeScript\r\n * let img;\r\n *\r\n * // Async\r\n * img = await chart.exporting.getImage( \"png\" );\r\n *\r\n * // Sync\r\n * chart.exporting.getImage( \"png\" ).then( ( data ) => {\r\n * img = data;\r\n * } );\r\n * ```\r\n * ```JavaScript\r\n * var img;\r\n * chart.exporting.getImage( \"png\" ).then( ( data ) => {\r\n * img = data;\r\n * } );\r\n * ```\r\n *\r\n * @param type Image format\r\n * @param options Options\r\n * @param includeExtras Should extra sprites be included if set?\r\n * @return Promise\r\n */\r\n Export.prototype.getImage = function (type, options, includeExtras) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var prehidden, canvas, newCanvas, uri, e_4, data, data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n prehidden = this._objectsAlreadyHidden;\r\n if (!prehidden) {\r\n this.hideNonExportableSprites();\r\n }\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(type);\r\n }\r\n // Wait for required elements to be ready before proceeding\r\n return [4 /*yield*/, this.awaitValidSprites()];\r\n case 1:\r\n // Wait for required elements to be ready before proceeding\r\n _a.sent();\r\n return [4 /*yield*/, this.simplifiedImageExport()];\r\n case 2:\r\n if (!_a.sent()) return [3 /*break*/, 10];\r\n canvas = void 0;\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 7, , 9]);\r\n return [4 /*yield*/, this.getCanvas(options)];\r\n case 4:\r\n canvas = _a.sent();\r\n if (!(includeExtras !== false)) return [3 /*break*/, 6];\r\n return [4 /*yield*/, this.addExtras(canvas, options)];\r\n case 5:\r\n newCanvas = _a.sent();\r\n this.disposeCanvas(canvas);\r\n canvas = newCanvas;\r\n _a.label = 6;\r\n case 6:\r\n uri = canvas.toDataURL(this.getContentType(type), options.quality);\r\n // Get rid of the canvas\r\n this.disposeCanvas(canvas);\r\n if (!prehidden) {\r\n this.restoreNonExportableSprites();\r\n }\r\n return [2 /*return*/, uri];\r\n case 7:\r\n e_4 = _a.sent();\r\n console.error(e_4.message + \"\\n\" + e_4.stack);\r\n $log.warn(\"Simple export failed, falling back to advanced export\");\r\n if (canvas) {\r\n this.disposeCanvas(canvas);\r\n }\r\n return [4 /*yield*/, this.getImageAdvanced(type, options, includeExtras)];\r\n case 8:\r\n data = _a.sent();\r\n if (!prehidden) {\r\n this.restoreNonExportableSprites();\r\n }\r\n return [2 /*return*/, data];\r\n case 9: return [3 /*break*/, 12];\r\n case 10: return [4 /*yield*/, this.getImageAdvanced(type, options, includeExtras)];\r\n case 11:\r\n data = _a.sent();\r\n if (!prehidden) {\r\n this.restoreNonExportableSprites();\r\n }\r\n return [2 /*return*/, data];\r\n case 12: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds extra elements to the canvas.\r\n *\r\n * @param canvas Original canvas\r\n * @param options Options\r\n */\r\n Export.prototype.addExtras = function (canvas, options, advanced) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var middleLeft_1, middleTop_1, middleWidth_1, middleHeight_1, extraRight_1, extraBottom_1, extras, newCanvas, ctx_1, background, left_1, top_1, right_1, bottom_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.extraSprites.length) return [3 /*break*/, 2];\r\n middleLeft_1 = 0;\r\n middleTop_1 = 0;\r\n middleWidth_1 = canvas.width;\r\n middleHeight_1 = canvas.height;\r\n extraRight_1 = 0;\r\n extraBottom_1 = 0;\r\n return [4 /*yield*/, Promise.all($array.map(this.extraSprites, function (extraSprite) { return __awaiter(_this, void 0, void 0, function () {\r\n var extra, extraCanvas, extraWidth, extraHeight;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (extraSprite instanceof Sprite) {\r\n extra = {\r\n sprite: extraSprite,\r\n position: \"bottom\"\r\n };\r\n }\r\n else {\r\n extra = extraSprite;\r\n }\r\n // Set defaults\r\n extra.position = extra.position || \"bottom\";\r\n extra.marginTop = extra.marginTop || 0;\r\n extra.marginRight = extra.marginRight || 0;\r\n extra.marginBottom = extra.marginBottom || 0;\r\n extra.marginLeft = extra.marginLeft || 0;\r\n if (!advanced) return [3 /*break*/, 2];\r\n return [4 /*yield*/, extra.sprite.exporting.getCanvasAdvanced(options)];\r\n case 1:\r\n extraCanvas = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, extra.sprite.exporting.getCanvas(options)];\r\n case 3:\r\n extraCanvas = _a.sent();\r\n _a.label = 4;\r\n case 4:\r\n extraWidth = extraCanvas.width + extra.marginLeft + extra.marginRight;\r\n extraHeight = extraCanvas.height + extra.marginTop + extra.marginBottom;\r\n if (extra.position == \"top\") {\r\n middleWidth_1 = extra.crop ? middleHeight_1 : $math.max(middleWidth_1, extraWidth);\r\n middleTop_1 += extraHeight;\r\n }\r\n else if (extra.position == \"right\") {\r\n middleHeight_1 = extra.crop ? middleHeight_1 : $math.max(middleHeight_1, extraHeight);\r\n extraRight_1 += extraWidth;\r\n }\r\n else if (extra.position == \"left\") {\r\n middleHeight_1 = extra.crop ? middleHeight_1 : $math.max(middleHeight_1, extraHeight);\r\n middleLeft_1 += extraWidth;\r\n }\r\n else if (extra.position === \"bottom\") {\r\n middleWidth_1 = extra.crop ? middleHeight_1 : $math.max(middleWidth_1, extraWidth);\r\n extraBottom_1 += extraHeight;\r\n }\r\n return [2 /*return*/, {\r\n canvas: extraCanvas,\r\n position: extra.position,\r\n left: extra.marginLeft,\r\n top: extra.marginTop,\r\n width: extraWidth,\r\n height: extraHeight\r\n }];\r\n }\r\n });\r\n }); }))];\r\n case 1:\r\n extras = _a.sent();\r\n newCanvas = this.getDisposableCanvas();\r\n newCanvas.width = middleLeft_1 + middleWidth_1 + extraRight_1;\r\n newCanvas.height = middleTop_1 + middleHeight_1 + extraBottom_1;\r\n ctx_1 = newCanvas.getContext(\"2d\");\r\n background = this.backgroundColor || this.findBackgroundColor(this.sprite.dom);\r\n if (background) {\r\n ctx_1.fillStyle = background.toString();\r\n ctx_1.fillRect(0, 0, newCanvas.width, newCanvas.height);\r\n }\r\n left_1 = middleLeft_1;\r\n top_1 = middleTop_1;\r\n right_1 = left_1 + middleWidth_1;\r\n bottom_1 = top_1 + middleHeight_1;\r\n // Radiates outwards from center\r\n $array.each(extras, function (extra) {\r\n if (extra.position == \"top\") {\r\n top_1 -= extra.height;\r\n ctx_1.drawImage(extra.canvas, middleLeft_1 + extra.left, top_1 + extra.top);\r\n }\r\n else if (extra.position == \"right\") {\r\n ctx_1.drawImage(extra.canvas, right_1 + extra.left, middleTop_1 + extra.top);\r\n right_1 += extra.width;\r\n }\r\n else if (extra.position == \"left\") {\r\n left_1 -= extra.width;\r\n ctx_1.drawImage(extra.canvas, left_1 + extra.left, middleTop_1 + extra.top);\r\n }\r\n else if (extra.position === \"bottom\") {\r\n ctx_1.drawImage(extra.canvas, middleLeft_1 + extra.left, bottom_1 + extra.top);\r\n bottom_1 += extra.height;\r\n }\r\n _this.disposeCanvas(extra.canvas);\r\n });\r\n ctx_1.drawImage(canvas, middleLeft_1, middleTop_1);\r\n return [2 /*return*/, newCanvas];\r\n case 2: return [2 /*return*/, canvas];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns canvas representation of the [[Sprite]].\r\n *\r\n * @param options Options\r\n * @return Canvas\r\n */\r\n Export.prototype.getCanvas = function (options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var background, DOMURL, url, blobs, canvas, width, height, font, fontSize, scale, pixelRatio, ctx, promises, a, data, svg, img;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Options are set?\r\n if (!$type.hasValue(options)) {\r\n options = {};\r\n }\r\n background = this.backgroundColor || this.findBackgroundColor(this.sprite.dom);\r\n DOMURL = this.getDOMURL();\r\n url = null;\r\n blobs = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 4, 5]);\r\n width = this.sprite.pixelWidth;\r\n height = this.sprite.pixelHeight;\r\n font = $dom.findFont(this.sprite.dom);\r\n fontSize = $dom.findFontSize(this.sprite.dom);\r\n scale = options.scale || 1;\r\n pixelRatio = this.getPixelRatio(options);\r\n // Check if scale needs to be updated as per min/max dimensions\r\n scale = this.getAdjustedScale(width * pixelRatio, height * pixelRatio, scale, options);\r\n // Create canvas and its 2D context\r\n canvas = this.getDisposableCanvas();\r\n // Set canvas width/height\r\n canvas.style.width = width * scale + 'px';\r\n canvas.style.height = height * scale + 'px';\r\n canvas.width = width * scale;\r\n canvas.height = height * scale;\r\n ctx = canvas.getContext(\"2d\");\r\n // if (pixelRatio != 1) {\r\n // \tctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\r\n // }\r\n // Add background if necessary\r\n if (background) {\r\n ctx.fillStyle = background.toString();\r\n ctx.fillRect(0, 0, width * scale, height * scale);\r\n }\r\n promises = [];\r\n if (this.useWebFonts) {\r\n // TODO what if one of the other things errors before it's been able to set `blobs` ?\r\n promises.push(this.getFontFamilies().then(function (fonts) {\r\n blobs = fonts.blobs;\r\n return fonts.cssText;\r\n }));\r\n }\r\n promises.push(this.imagesToDataURI(this.sprite.dom, options));\r\n promises.push(this.prepForeignObjects(this.sprite.dom, options));\r\n return [4 /*yield*/, Promise.all(promises)];\r\n case 2:\r\n a = _a.sent();\r\n data = this.normalizeSVG(\"<style>\" + a[0] + \"</style>\" + this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), options, width, height, scale, font, fontSize);\r\n svg = new Blob([data], { type: \"image/svg+xml\" });\r\n url = DOMURL.createObjectURL(svg);\r\n return [4 /*yield*/, this.loadNewImage(url, width * scale * pixelRatio, height * scale * pixelRatio, \"anonymous\")];\r\n case 3:\r\n img = _a.sent();\r\n // Draw image on canvas\r\n ctx.drawImage(img, 0, 0);\r\n return [3 /*break*/, 5];\r\n case 4:\r\n if (url !== null) {\r\n DOMURL.revokeObjectURL(url);\r\n }\r\n if (blobs !== null) {\r\n $array.each(blobs, function (url) {\r\n DOMURL.revokeObjectURL(url);\r\n });\r\n }\r\n // Restore replaced tainted images in DOM\r\n this.restoreRemovedObjects();\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, canvas];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns canvas representation of the [[Sprite]] using canvg.\r\n *\r\n * @param options Options\r\n * @return Canvas\r\n */\r\n Export.prototype.getCanvasAdvanced = function (options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var background, canvg, width, height, font, fontSize, scale, pixelRatio, data, canvas, config;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Options are set?\r\n if (!$type.hasValue(options)) {\r\n options = {};\r\n }\r\n // Convert external images to data uris\r\n return [4 /*yield*/, this.imagesToDataURI(this.sprite.dom, options)];\r\n case 1:\r\n // Convert external images to data uris\r\n _a.sent();\r\n background = this.backgroundColor || this.findBackgroundColor(this.sprite.dom);\r\n return [4 /*yield*/, this.canvg];\r\n case 2:\r\n canvg = _a.sent();\r\n width = this.sprite.pixelWidth;\r\n height = this.sprite.pixelHeight;\r\n font = $dom.findFont(this.sprite.dom);\r\n fontSize = $dom.findFontSize(this.sprite.dom);\r\n scale = options.scale || 1;\r\n pixelRatio = this.getPixelRatio(options);\r\n // Check if scale needs to be updated as per min/max dimensions\r\n scale = this.getAdjustedScale(width * pixelRatio, height * pixelRatio, scale, options);\r\n data = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), options, width, height, scale, font, fontSize, background);\r\n canvas = this.getDisposableCanvas();\r\n // Set canvas width/height\r\n canvas.style.width = (width * pixelRatio * scale) + 'px';\r\n canvas.style.height = (height * pixelRatio * scale) + 'px';\r\n canvas.width = width * pixelRatio * scale;\r\n canvas.height = height * pixelRatio * scale;\r\n config = {\r\n //ignoreDimensions: true,\r\n useCORS: true\r\n };\r\n if (pixelRatio != 1) {\r\n config.ignoreDimensions = true;\r\n config.scaleWidth = width * pixelRatio * scale;\r\n config.scaleHeight = height * pixelRatio * scale;\r\n }\r\n return [4 /*yield*/, canvg.fromString(canvas.getContext(\"2d\"), data, config).render()];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, canvas];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Tries to dynamically load [canvg.js](https://github.com/canvg/canvg) and\r\n * export an image using its functions.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Image format\r\n * @param options Options\r\n * @return Data uri\r\n */\r\n Export.prototype.getImageAdvanced = function (type, options, includeExtras) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var prehidden, canvas, uri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n prehidden = this._objectsAlreadyHidden;\r\n if (!prehidden) {\r\n this.hideNonExportableSprites();\r\n }\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(type);\r\n }\r\n return [4 /*yield*/, this.getCanvasAdvanced(options)];\r\n case 1:\r\n canvas = _a.sent();\r\n if (!(includeExtras !== false)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.addExtras(canvas, options, true)];\r\n case 2:\r\n canvas = _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n uri = canvas.toDataURL(this.getContentType(type), options.quality);\r\n // Get rid of the canvas\r\n this.disposeCanvas(canvas);\r\n if (!prehidden) {\r\n this.restoreNonExportableSprites();\r\n }\r\n return [2 /*return*/, uri];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a `<canvas>` element and returns it.\r\n *\r\n * @return Canvas element\r\n */\r\n Export.prototype.getDisposableCanvas = function () {\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.style.position = \"fixed\";\r\n canvas.style.top = \"-10000px\";\r\n document.body.appendChild(canvas);\r\n return canvas;\r\n };\r\n /**\r\n * Removes canvas.\r\n *\r\n * @param canvas Canvas element\r\n */\r\n Export.prototype.disposeCanvas = function (canvas) {\r\n if (document.body.contains(canvas)) {\r\n document.body.removeChild(canvas);\r\n }\r\n };\r\n /**\r\n * Returns pixel ratio for retina displays.\r\n *\r\n * @return Pixel ratio\r\n */\r\n Export.prototype.getPixelRatio = function (options) {\r\n // const scale = options && options.scale ? options.scale : 1;\r\n // return (this.useRetina ? $utils.getPixelRatio() : 1) * scale;\r\n return this.useRetina ? $utils.getPixelRatio() : 1;\r\n };\r\n /**\r\n * Calculates adjusted scale if image does not fit or is larger than min/max\r\n * settings.\r\n *\r\n * @param width Width of the source image\r\n * @param height Height of the source image\r\n * @param scale Current scale\r\n * @param options Options\r\n * @return Adjusted scale\r\n */\r\n Export.prototype.getAdjustedScale = function (width, height, scale, options) {\r\n if (!options) {\r\n return scale;\r\n }\r\n var adjWidth = width * scale;\r\n var adjHeight = width * scale;\r\n // Check max restrictions\r\n var widthScale;\r\n var heightScale;\r\n if (options.maxWidth && (adjWidth > options.maxWidth)) {\r\n widthScale = options.maxWidth / width;\r\n }\r\n if (options.maxHeight && (adjHeight > options.maxHeight)) {\r\n heightScale = options.maxHeight / height;\r\n }\r\n if (widthScale || heightScale) {\r\n return $math.min(widthScale, heightScale);\r\n }\r\n // Check min restrictions\r\n if (options.minWidth && (adjWidth < options.minWidth)) {\r\n widthScale = options.minWidth / width;\r\n }\r\n if (options.minHeight && (adjHeight < options.minHeight)) {\r\n heightScale = options.minHeight / height;\r\n }\r\n if (widthScale || heightScale) {\r\n return $math.max(widthScale, heightScale);\r\n }\r\n return scale;\r\n };\r\n /**\r\n * Converts all `<image>` tags in SVG to use data uris instead of external\r\n * URLs\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el SVG node\r\n * @param options Options\r\n * @return Promise\r\n */\r\n Export.prototype.imagesToDataURI = function (el, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var images, promises, count, i, image, href;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n images = el.querySelectorAll(\"image\");\r\n if (!images.length) return [3 /*break*/, 2];\r\n promises = [];\r\n // There are images, process each of them\r\n for (count = images.length, i = 0; i < count; i++) {\r\n image = images[i];\r\n href = image.getAttributeNS(Export.XLINK, \"href\");\r\n // no href?\r\n if (!href) {\r\n continue;\r\n }\r\n if (href.indexOf(\"data:image\") !== -1) {\r\n // Ignore image if it's already in Data URI format\r\n }\r\n else {\r\n // SVG or bitmap image?\r\n if (href.indexOf(\".svg\") !== -1) {\r\n promises.push(this.svgToDataURI(image, options));\r\n }\r\n else {\r\n promises.push(this.imageToDataURI(image, options));\r\n }\r\n }\r\n }\r\n return [4 /*yield*/, Promise.all(promises)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * `foreignObject` elements cannot be exported. This function hides them\r\n * temprarily. In the future it might try to convert them to SVG to make them\r\n * exportable.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el SVG node\r\n * @param options Options\r\n * @return Promise\r\n */\r\n Export.prototype.prepForeignObjects = function (el, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var objects, count, i;\r\n return __generator(this, function (_a) {\r\n objects = el.querySelectorAll(\"foreignObject\");\r\n if (objects.length) {\r\n // There are foreign objects, process each of them\r\n for (count = objects.length, i = 0; i < count; i++) {\r\n this.temporarilyRemoveObject(objects[i]);\r\n }\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Converts an SVG `<image>` to use its data uri for `href` instead of\r\n * external file.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el SVG element\r\n * @param options Options\r\n */\r\n Export.prototype.imageToDataURI = function (el, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var img, canvas, uri, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.loadNewImage(el.getAttributeNS(Export.XLINK, \"href\"), null, null, \"anonymous\")];\r\n case 1:\r\n // Create image\r\n img = _a.sent();\r\n canvas = document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n // Draw new image on it via `toDataURL`\r\n canvas.getContext(\"2d\").drawImage(img, 0, 0);\r\n // Replace image `href` with data uri\r\n // If we got to this point it means image has loaded, however we might\r\n // still get an error with `toDataURL()`\r\n try {\r\n uri = canvas.toDataURL();\r\n el.setAttribute(\"href\", uri);\r\n return [2 /*return*/, uri];\r\n }\r\n catch (e) {\r\n // Give up and temporarily remove the element href temporarily\r\n if (options.keepTainted !== false) {\r\n /*this._removedObjects.push({\r\n \"element\": el,\r\n \"originalHref\": el.getAttributeNS(Export.XLINK, \"href\")\r\n });\r\n el.setAttributeNS(Export.XLINK, \"href\", \"\");*/\r\n this.temporarilyRemoveObject(el);\r\n }\r\n return [2 /*return*/, undefined];\r\n }\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_5 = _a.sent();\r\n // Give up and temporarily remove the element's href\r\n if (!options || options.keepTainted !== false) {\r\n /*this._removedObjects.push({\r\n \"element\": el,\r\n \"originalHref\": el.getAttributeNS(Export.XLINK, \"href\")\r\n });\r\n el.setAttributeNS(Export.XLINK, \"href\", \"\");*/\r\n this.temporarilyRemoveObject(el);\r\n }\r\n return [2 /*return*/, undefined];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Converts `<image>` with external SVG source to data uri. Loads external SVG\r\n * file, then converts it to data uri and replaces the `xlink:href` parameter.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el An SVG element\r\n * @param options Options\r\n */\r\n Export.prototype.svgToDataURI = function (el, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var href, data, charset, uri, e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n href = el.getAttributeNS(Export.XLINK, \"href\");\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, $net.load(href)];\r\n case 2:\r\n data = _a.sent();\r\n charset = this.adapter.apply(\"charset\", {\r\n charset: \"base64\",\r\n type: \"svg\",\r\n options: options\r\n }).charset;\r\n uri = this.adapter.apply(\"svgToDataURI\", {\r\n data: \"data:\" + this.getContentType(\"svg\") + \";\" + charset + \",\" + btoa(data.response),\r\n options: options\r\n }).data;\r\n el.setAttributeNS(Export.XLINK, \"href\", uri);\r\n return [2 /*return*/, uri];\r\n case 3:\r\n e_6 = _a.sent();\r\n // Disable temporarily\r\n if (!options || options.keepTainted !== false) {\r\n /*this._removedObjects.push({\r\n \"element\": el,\r\n \"originalHref\": href\r\n });\r\n el.setAttributeNS(Export.XLINK, \"href\", \"\");*/\r\n this.temporarilyRemoveObject(el);\r\n }\r\n return [2 /*return*/, undefined];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Temporarily removes element from DOM, and replaces it with a dummy\r\n * placeholder, as well as stores it for later restoration.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el Node\r\n */\r\n Export.prototype.temporarilyRemoveObject = function (el, placeholder) {\r\n // Get parent\r\n var parent = el.parentElement || el.parentNode;\r\n // Create a placeholder group element if it has not been passed in\r\n if (!placeholder) {\r\n placeholder = this.sprite.paper.add(\"g\").node;\r\n }\r\n parent.insertBefore(placeholder, el);\r\n // Check if we have a textContents we can replace with\r\n // @todo Perhaps we should explore alternatives to creating text nodes\r\n // i.e. creating a text version of the HTML-based Text, just for export\r\n // purposes. Converting HTML into SVG is very complicated\r\n if (el.textContent) {\r\n /*let text = this.sprite.paper.add(\"text\").node;\r\n text.textContent = el.textContent;\r\n placeholder.appendChild(text);\r\n\r\n // Copy properties from the removing element to the placeholder\r\n $dom.copyAttributes(el, placeholder);*/\r\n }\r\n // Remove the old element\r\n parent.removeChild(el);\r\n // Log removed item\r\n this._removedObjects.push({\r\n \"element\": el,\r\n \"placeholder\": placeholder\r\n });\r\n };\r\n /**\r\n * Restores all (possibly tainted or unsupported) objects that were\r\n * temporarily removed when exporting.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.restoreRemovedObjects = function () {\r\n var obj;\r\n while (true) {\r\n obj = this._removedObjects.pop();\r\n if (!obj) {\r\n break;\r\n }\r\n //obj.element.setAttribute(\"href\", obj.originalHref);\r\n var parent_1 = obj.placeholder.parentElement || obj.placeholder.parentNode;\r\n parent_1.insertBefore(obj.element, obj.placeholder);\r\n //parent.removeChild(obj.placeholder);\r\n }\r\n };\r\n /**\r\n * Checkes if simplified export can be used using `createObjectURL` and SVG\r\n * document does not contain any external images.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @return `true` if simplified export can be used\r\n */\r\n Export.prototype.simplifiedImageExport = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cache, canvas, ctx, DOMURL, svg, url, img, e_7, e_8;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.useSimplifiedExport === false) {\r\n return [2 /*return*/, false];\r\n }\r\n cache = registry.getCache(\"simplifiedImageExport\");\r\n if (cache === false || cache === true) {\r\n return [2 /*return*/, cache];\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n canvas = document.createElement(\"canvas\");\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n ctx = canvas.getContext(\"2d\");\r\n DOMURL = this.getDOMURL();\r\n svg = new Blob([this.normalizeSVG(\"<g></g>\", {}, 1, 1)], { type: \"image/svg+xml\" });\r\n url = DOMURL.createObjectURL(svg);\r\n img = void 0;\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.loadNewImage(url, 1, 1)];\r\n case 3:\r\n img = _a.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_7 = _a.sent();\r\n return [2 /*return*/, false];\r\n case 5:\r\n ctx.drawImage(img, 0, 0);\r\n DOMURL.revokeObjectURL(url);\r\n try {\r\n //let uri = canvas.toDataURL(\"image/png\");\r\n registry.setCache(\"simplifiedImageExport\", true);\r\n return [2 /*return*/, true];\r\n }\r\n catch (e) {\r\n registry.setCache(\"simplifiedImageExport\", false);\r\n return [2 /*return*/, false];\r\n }\r\n return [3 /*break*/, 7];\r\n case 6:\r\n e_8 = _a.sent();\r\n registry.setCache(\"simplifiedImageExport\", false);\r\n return [2 /*return*/, false];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns a new `<image>` element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param url URL of the image\r\n * @param width Width (px)\r\n * @param height Height (px)\r\n * @param crossOrigin Cross-Origin setting\r\n * @return Promise\r\n */\r\n Export.prototype.loadNewImage = function (url, width, height, crossOrigin) {\r\n return new Promise(function (success, error) {\r\n // New image\r\n var image;\r\n if (width && height) {\r\n image = new Image(width, height);\r\n }\r\n else {\r\n image = new Image();\r\n }\r\n // Set crossorigin\r\n if (crossOrigin) {\r\n image.setAttribute(\"crossOrigin\", crossOrigin);\r\n }\r\n // Report success on load\r\n image.onload = function () {\r\n success(image);\r\n };\r\n function onerror() {\r\n // Error occurred. Just in case it's the crossOrigin issue, let's try\r\n // stripping off this attribute and trying again\r\n if (crossOrigin) {\r\n // Retain old uri\r\n var currentHref = image.src;\r\n // Set up another `onerror` to handle situations where image is not\r\n // loadable at all (i.e. protected by CORS)\r\n image.onerror = function () {\r\n // Nope, no luck\r\n error(new Error(\"Loading image \\\"\" + url + \"\\\" failed\"));\r\n };\r\n // remove the `crossOrigin` attribute\r\n image.removeAttribute(\"crossorigin\");\r\n // retry\r\n image.src = \"\";\r\n image.src = currentHref;\r\n }\r\n else {\r\n error(new Error(\"Loading image \\\"\" + url + \"\\\" failed\"));\r\n }\r\n }\r\n // Set image error handlers\r\n image.onabort = onerror;\r\n image.onerror = onerror;\r\n // Trigger load\r\n image.src = url;\r\n });\r\n };\r\n /**\r\n * Returns current DOM URL.\r\n *\r\n * @ignore Exclude from docs\r\n * @return URL\r\n */\r\n Export.prototype.getDOMURL = function () {\r\n return self.URL || self.webkitURL || self;\r\n };\r\n /**\r\n * Returns an SVG representation of the chart.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Type of the export\r\n * @param options Options\r\n * @param encodeURI If true, will return result will be data URI\r\n * @return Promise\r\n */\r\n Export.prototype.getSVG = function (type, options, encodeURI) {\r\n if (encodeURI === void 0) { encodeURI = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var prehidden, width, height, font, fontSize, scale, pixelRatio, svg, charset, uri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n prehidden = this._objectsAlreadyHidden;\r\n if (!prehidden) {\r\n this.hideNonExportableSprites();\r\n }\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(\"svg\");\r\n }\r\n // Wait for required elements to be ready before proceeding\r\n return [4 /*yield*/, this.awaitValidSprites()];\r\n case 1:\r\n // Wait for required elements to be ready before proceeding\r\n _a.sent();\r\n width = this.sprite.pixelWidth;\r\n height = this.sprite.pixelHeight;\r\n font = $dom.findFont(this.sprite.dom);\r\n fontSize = $dom.findFontSize(this.sprite.dom);\r\n scale = options.scale || 1;\r\n pixelRatio = this.getPixelRatio(options);\r\n // Check if scale needs to be updated as per min/max dimensions\r\n scale = this.getAdjustedScale(width * pixelRatio, height * pixelRatio, scale, options);\r\n svg = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), options, width, height, scale, font, fontSize);\r\n charset = this.adapter.apply(\"charset\", {\r\n charset: \"charset=utf-8\",\r\n type: \"svg\",\r\n options: options\r\n }).charset;\r\n uri = this.adapter.apply(\"getSVG\", {\r\n data: encodeURI ? \"data:\" + this.getContentType(type) + \";\" + charset + \",\" + encodeURIComponent(svg) : svg,\r\n options: options\r\n }).data;\r\n if (!prehidden) {\r\n this.restoreNonExportableSprites();\r\n }\r\n return [2 /*return*/, uri];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if SVG is fully formatted. Encloses in `<svg>...</svg>` if\r\n * necessary.\r\n *\r\n * @ignore Exclude from docs\r\n * @param svg Input SVG\r\n * @param options Options\r\n * @param width Width of the SVG viewport\r\n * @param height Height of the SVG viewport\r\n * @param font Font family to use as a base\r\n * @param fontSize Font size to use as a base\r\n * @return Output SVG\r\n * @todo Add style params to existing <svg>\r\n */\r\n Export.prototype.normalizeSVG = function (svg, options, width, height, scale, font, fontSize, background) {\r\n // Construct width/height params\r\n var dimParams = \"\";\r\n if (width) {\r\n dimParams += \"width=\\\"\" + Math.round(width * (scale || 1)) + \"px\\\" \";\r\n }\r\n if (height) {\r\n dimParams += \"height=\\\"\" + Math.round(height * (scale || 1)) + \"px\\\" \";\r\n }\r\n // Apply font settings\r\n var styleParams = \"\";\r\n if (font) {\r\n styleParams += \"font-family: \" + font.replace(/\"/g, \"\") + \";\";\r\n }\r\n if (fontSize) {\r\n styleParams += \"font-size: \" + fontSize + \";\";\r\n }\r\n // Scale\r\n if (scale) {\r\n dimParams += \"viewBox=\\\"0 0 \" + (width) + \" \" + (height) + \"\\\" \";\r\n }\r\n // Remove foreign objects temporarily\r\n var fos = [];\r\n var ms = svg.match(/<foreignObject[\\s\\S]*<\\/foreignObject>/gi);\r\n if (ms) {\r\n for (var i = 0; i < ms.length; i++) {\r\n svg = svg.replace(ms[i], $strings.PLACEHOLDER);\r\n fos.push(ms[i]);\r\n }\r\n }\r\n // Add missing <svg> enclosure\r\n if (!svg.match(/<svg/)) {\r\n svg = \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?><svg \" + dimParams + \" style=\\\"\" + styleParams + \"\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">\" + svg + \"</svg>\";\r\n }\r\n else {\r\n if (dimParams !== \"\") {\r\n // Clear current params\r\n svg = svg.replace(/(<svg[^>]*)width=\"[^\"]*\"/, \"$1\");\r\n svg = svg.replace(/(<svg[^>]*)height=\"[^\"]*\"/, \"$1\");\r\n // Add new params\r\n svg = svg.replace(/(<svg)/, \"$1\" + dimParams);\r\n }\r\n /*if (styleParams !== \"\") {\r\n // Clear current params\r\n svg = svg.replace(/(<svg[^>]*)stylewidth=\"[^\"]*\"/, \"$1\");\r\n svg = svg.replace(/(<svg[^>]*)height=\"[^\"]*\"/, \"$1\");\r\n\r\n // Add new params\r\n svg = svg.replace(/(<svg)/, \"$1\" + dimParams);\r\n }*/\r\n }\r\n if (background) {\r\n svg = svg.replace(/(<svg[^>]*>)/, \"$1<rect width=\\\"100%\\\" height=\\\"100%\\\" fill=\\\"\" + background.rgba + \"\\\"/>\");\r\n //svg = svg.replace(/<\\/svg>/, \"<rect width=\\\"100%\\\" height=\\\"100%\\\" fill=\\\"\" + background.rgba + \"\\\"/></svg>\");\r\n }\r\n if ($browser.isInternetExplorer()) {\r\n // IE can't handle exporting <feColorMatrix> for some reason\r\n svg = svg.replace(/<feColorMatrix [^\\/>]*\\/>/gi, \"\");\r\n }\r\n // Remove base uri-related stuff\r\n var reg = new RegExp(\"url\\\\(\" + $utils.escapeForRgex($utils.getBaseURI()), \"g\");\r\n svg = svg.replace(reg, \"url(#\");\r\n // Remove escaped quotes in url() parameters\r\n svg = svg.replace(/url\\("([^)]*)"\\)/gm, \"url($1)\");\r\n // Put foreignObjects back in\r\n if (fos.length) {\r\n for (var i = 0; i < fos.length; i++) {\r\n svg = svg.replace($strings.PLACEHOLDER, fos[i]);\r\n }\r\n }\r\n svg = this.adapter.apply(\"normalizeSVG\", {\r\n data: svg,\r\n options: options\r\n }).data;\r\n return svg;\r\n };\r\n /**\r\n * Serializes an element and returns its contents.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element An element to serialize\r\n * @return A serialized XML\r\n */\r\n Export.prototype.serializeElement = function (element) {\r\n return new XMLSerializer().serializeToString(element);\r\n };\r\n /**\r\n * Returns a PDF containing chart image.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Type of the export\r\n * @param options Options\r\n * @return Promise\r\n * @async\r\n * @todo Account for header when calculating vertical fit\r\n */\r\n Export.prototype.getPDF = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n function addFont(font) {\r\n var paths = {};\r\n paths.normal = font.normal.path;\r\n vfs[font.normal.path] = font.normal.bytes;\r\n if (font.bold) {\r\n paths.bold = font.bold.path;\r\n vfs[font.bold.path] = font.bold.bytes;\r\n }\r\n else {\r\n paths.bold = font.normal.path;\r\n }\r\n if (font.italics) {\r\n paths.italics = font.italics.path;\r\n vfs[font.italics.path] = font.italics.bytes;\r\n }\r\n else {\r\n paths.italics = font.normal.path;\r\n }\r\n if (font.bolditalics) {\r\n paths.bolditalics = font.bolditalics.path;\r\n vfs[font.bolditalics.path] = font.bolditalics.bytes;\r\n }\r\n else {\r\n paths.bolditalics = font.normal.path;\r\n }\r\n fonts[font.name] = paths;\r\n }\r\n var image, pdfmake, defaultMargins, doc, title, extraMargin, _a, _b, _c, fonts, vfs;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, this.getImage(options.imageFormat || \"png\", options)];\r\n case 1:\r\n image = _d.sent();\r\n return [4 /*yield*/, this.pdfmake];\r\n case 2:\r\n pdfmake = _d.sent();\r\n defaultMargins = [30, 30, 30, 30];\r\n doc = {\r\n pageSize: options.pageSize || \"A4\",\r\n pageOrientation: options.pageOrientation || \"portrait\",\r\n pageMargins: options.pageMargins || defaultMargins,\r\n defaultStyle: {\r\n font: options.font ? options.font.name : undefined\r\n },\r\n //header: <any>[],\r\n content: []\r\n };\r\n title = this.adapter.apply(\"title\", {\r\n title: this.title,\r\n options: options\r\n }).title;\r\n extraMargin = 0;\r\n if (title) {\r\n doc.content.push({\r\n text: title,\r\n fontSize: options.fontSize || 14,\r\n bold: true,\r\n margin: [0, 0, 0, 15]\r\n });\r\n // Add some leftover margin for title\r\n extraMargin += 50;\r\n }\r\n // Add page URL?\r\n if (options.addURL) {\r\n doc.content.push({\r\n text: this.language.translate(\"Saved from\") + \": \" + document.location.href,\r\n fontSize: options.fontSize,\r\n margin: [0, 0, 0, 15]\r\n });\r\n // Add some leftover margin for URL\r\n extraMargin += 50;\r\n }\r\n // Add image\r\n if (type != \"pdfdata\") {\r\n doc.content.push({\r\n image: image,\r\n alignment: options.align || \"left\",\r\n fit: this.getPageSizeFit(doc.pageSize, doc.pageMargins, extraMargin)\r\n });\r\n }\r\n if (!(type == \"pdfdata\" || options.addData)) return [3 /*break*/, 4];\r\n _b = (_a = doc.content).push;\r\n _c = {};\r\n return [4 /*yield*/, this.getPDFData(\"pdf\", options)];\r\n case 3:\r\n _b.apply(_a, [(_c.table = _d.sent(),\r\n _c.fontSize = options.fontSize || 14,\r\n _c)]);\r\n _d.label = 4;\r\n case 4:\r\n // Apply adapters\r\n doc = this.adapter.apply(\"pdfmakeDocument\", {\r\n doc: doc,\r\n options: options\r\n }).doc;\r\n fonts = null;\r\n vfs = null;\r\n if (options.font) {\r\n fonts = {};\r\n vfs = {};\r\n addFont(options.font);\r\n if (options.extraFonts) {\r\n $array.each(options.extraFonts, addFont);\r\n }\r\n }\r\n return [4 /*yield*/, new Promise(function (success, error) {\r\n pdfmake.createPdf(doc, null, fonts, vfs).getDataUrl(function (uri) {\r\n success(uri);\r\n });\r\n })];\r\n case 5: \r\n // Create PDF\r\n return [2 /*return*/, _d.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns chart's data formatted suitable for PDF export (pdfmake).\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @since 4.7.0\r\n * @param type Type of the export\r\n * @param options Options\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.getPDFData = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var content, dataFields, data, dataFieldsOrder_1, len, i;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n content = {\r\n \"body\": []\r\n };\r\n dataFields = this.adapter.apply(\"formatDataFields\", {\r\n dataFields: this.dataFields,\r\n format: \"pdf\"\r\n }).dataFields;\r\n data = this.data;\r\n // Vertical or horizontal (default) layout\r\n if (options.pivot) {\r\n dataFieldsOrder_1 = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"pdfdata\"\r\n }).dataFieldsOrder;\r\n $object.eachOrdered(dataFields, function (key, val) {\r\n var dataRow = [];\r\n if (options.addColumnNames) {\r\n dataRow.push(val);\r\n }\r\n for (var len = data.length, i = 0; i < len; i++) {\r\n var dataValue = data[i][key];\r\n dataRow.push(_this.convertToSpecialFormat(key, dataValue, options, true));\r\n }\r\n content.body.push(_this.getPDFDataRow(dataRow, options, undefined, true));\r\n }, function (a, b) {\r\n //console.log(a, b)\r\n var ai = dataFieldsOrder_1.indexOf(a);\r\n var bi = dataFieldsOrder_1.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n else {\r\n // Add column names?\r\n if (options.addColumnNames) {\r\n content.body.push(this.getPDFDataRow(dataFields, options, undefined, true));\r\n content.headerRows = 1;\r\n }\r\n for (len = data.length, i = 0; i < len; i++) {\r\n content.body.push(this.getPDFDataRow(data[i], options, dataFields));\r\n }\r\n }\r\n return [2 /*return*/, this.adapter.apply(\"pdfmakeTable\", {\r\n table: content,\r\n options: options\r\n }).table];\r\n });\r\n });\r\n };\r\n /**\r\n * Formats a row of data for use in PDF data table (pdfmake).\r\n *\r\n * @ignore Exclude from docs\r\n * @since 4.7.0\r\n * @param row An object holding data for the row\r\n * @param options Options\r\n * @param dataFields Data fields\r\n * @param asIs Do not try to convert to dates\r\n * @return Formated Data line\r\n */\r\n Export.prototype.getPDFDataRow = function (row, options, dataFields, asIs) {\r\n var _this = this;\r\n if (asIs === void 0) { asIs = false; }\r\n // Init\r\n var items = [];\r\n // Data fields\r\n if (!dataFields) {\r\n dataFields = row;\r\n }\r\n // Data fields order\r\n var dataFieldsOrder = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"pdfdata\"\r\n }).dataFieldsOrder;\r\n // Process each row item\r\n $object.eachOrdered(dataFields, function (key, name) {\r\n // Get value\r\n var value = _this.convertEmptyValue(key, row[key], options);\r\n // Convert dates\r\n var item = asIs ? value : _this.convertToSpecialFormat(key, value, options);\r\n item = \"\" + item;\r\n // Add to item\r\n items.push(item);\r\n }, function (a, b) {\r\n //console.log(a, b)\r\n var ai = dataFieldsOrder.indexOf(a);\r\n var bi = dataFieldsOrder.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n return items;\r\n };\r\n /**\r\n * Returns fit dimensions for available page sizes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pageSize Page size\r\n * @return `[width, height]` in pixels\r\n */\r\n Export.prototype.getPageSizeFit = function (pageSize, margins, extraMargin) {\r\n if (extraMargin === void 0) { extraMargin = 0; }\r\n // Check margins\r\n var newMargins = [0, 0, 0, 0];\r\n if (typeof margins == \"number\") {\r\n newMargins = [margins, margins, margins, margins];\r\n }\r\n else if (margins.length == 2) {\r\n newMargins = [margins[0], margins[1], margins[0], margins[1]];\r\n }\r\n else if (margins.length == 4) {\r\n newMargins = margins;\r\n }\r\n // Define available page sizes\r\n var sizes = {\r\n \"4A0\": [4767.87, 6740.79],\r\n \"2A0\": [3370.39, 4767.87],\r\n A0: [2383.94, 3370.39],\r\n A1: [1683.78, 2383.94],\r\n A2: [1190.55, 1683.78],\r\n A3: [841.89, 1190.55],\r\n A4: [595.28, 841.89],\r\n A5: [419.53, 595.28],\r\n A6: [297.64, 419.53],\r\n A7: [209.76, 297.64],\r\n A8: [147.40, 209.76],\r\n A9: [104.88, 147.40],\r\n A10: [73.70, 104.88],\r\n B0: [2834.65, 4008.19],\r\n B1: [2004.09, 2834.65],\r\n B2: [1417.32, 2004.09],\r\n B3: [1000.63, 1417.32],\r\n B4: [708.66, 1000.63],\r\n B5: [498.90, 708.66],\r\n B6: [354.33, 498.90],\r\n B7: [249.45, 354.33],\r\n B8: [175.75, 249.45],\r\n B9: [124.72, 175.75],\r\n B10: [87.87, 124.72],\r\n C0: [2599.37, 3676.54],\r\n C1: [1836.85, 2599.37],\r\n C2: [1298.27, 1836.85],\r\n C3: [918.43, 1298.27],\r\n C4: [649.13, 918.43],\r\n C5: [459.21, 649.13],\r\n C6: [323.15, 459.21],\r\n C7: [229.61, 323.15],\r\n C8: [161.57, 229.61],\r\n C9: [113.39, 161.57],\r\n C10: [79.37, 113.39],\r\n RA0: [2437.80, 3458.27],\r\n RA1: [1729.13, 2437.80],\r\n RA2: [1218.90, 1729.13],\r\n RA3: [864.57, 1218.90],\r\n RA4: [609.45, 864.57],\r\n SRA0: [2551.18, 3628.35],\r\n SRA1: [1814.17, 2551.18],\r\n SRA2: [1275.59, 1814.17],\r\n SRA3: [907.09, 1275.59],\r\n SRA4: [637.80, 907.09],\r\n EXECUTIVE: [521.86, 756.00],\r\n FOLIO: [612.00, 936.00],\r\n LEGAL: [612.00, 1008.00],\r\n LETTER: [612.00, 792.00],\r\n TABLOID: [792.00, 1224.00]\r\n };\r\n // Calculate size\r\n var fitSize = sizes[pageSize];\r\n fitSize[0] -= newMargins[0] + newMargins[2];\r\n fitSize[1] -= newMargins[1] + newMargins[3] + extraMargin;\r\n return fitSize;\r\n };\r\n /**\r\n * Returns an Excel file of chart's data.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Type of the export\r\n * @param options Options\r\n * @return Promise\r\n * @async\r\n * @todo Handle dates\r\n * @todo Support for multi-sheet\r\n */\r\n Export.prototype.getExcel = function (type, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var XLSX, wbOptions, sheetName, wb, data, dataFields, dataFieldsOrder_2, len, i, uri;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(\"xlsx\");\r\n }\r\n return [4 /*yield*/, this.xlsx];\r\n case 1:\r\n XLSX = _a.sent();\r\n wbOptions = this.adapter.apply(\"xlsxWorkbookOptions\", {\r\n xlsx: XLSX,\r\n options: {\r\n bookType: \"xlsx\",\r\n bookSST: false,\r\n type: \"base64\",\r\n }\r\n }).options;\r\n sheetName = this.normalizeExcelSheetName(this.adapter.apply(\"xlsxSheetName\", {\r\n xlsx: XLSX,\r\n name: this.title || this.language.translate(\"Data\")\r\n }).name);\r\n wb = {\r\n SheetNames: [sheetName],\r\n Sheets: {}\r\n };\r\n data = [];\r\n dataFields = this.adapter.apply(\"formatDataFields\", {\r\n dataFields: this.dataFields,\r\n format: \"xslx\"\r\n }).dataFields;\r\n // Vertical or horizontal (default) layout\r\n if (options.pivot) {\r\n dataFieldsOrder_2 = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"xlsx\"\r\n }).dataFieldsOrder;\r\n $object.eachOrdered(dataFields, function (key, val) {\r\n var dataRow = [];\r\n if (options.addColumnNames) {\r\n dataRow.push(val);\r\n }\r\n for (var len = _this.data.length, i = 0; i < len; i++) {\r\n var dataValue = _this.data[i][key];\r\n dataRow.push(_this.convertToSpecialFormat(key, dataValue, options, true));\r\n }\r\n data.push(_this.getExcelRow(dataRow, options, undefined, true));\r\n }, function (a, b) {\r\n //console.log(a, b)\r\n var ai = dataFieldsOrder_2.indexOf(a);\r\n var bi = dataFieldsOrder_2.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n else {\r\n // Add column names?\r\n if (options.addColumnNames) {\r\n data.push(this.getExcelRow(dataFields, options, undefined, true));\r\n }\r\n // Add lines\r\n for (len = this.data.length, i = 0; i < len; i++) {\r\n data.push(this.getExcelRow(this.data[i], options, dataFields));\r\n }\r\n }\r\n // Create sheet and add data\r\n wb.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(data);\r\n // Apply adapters\r\n wb = this.adapter.apply(\"xlsxWorkbook\", {\r\n xlsx: XLSX,\r\n workbook: wb,\r\n options: options\r\n }).workbook;\r\n uri = this.adapter.apply(\"getExcel\", {\r\n data: \"data:\" + this.getContentType(type) + \";base64,\" + XLSX.write(wb, wbOptions),\r\n options: options\r\n }).data;\r\n return [2 /*return*/, uri];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This is needed to work around Excel limitations.\r\n *\r\n * @param name Source name\r\n * @return Normalized name\r\n */\r\n Export.prototype.normalizeExcelSheetName = function (name) {\r\n name = name.replace(/([:\\\\\\/?*\\[\\]]+)/g, \" \");\r\n return $utils.truncateWithEllipsis(name, 31, \"...\", true);\r\n };\r\n /**\r\n * Rertuns an array of values to be used as Excel row.\r\n *\r\n * @ignore Exclude from docs\r\n * @param row Row data\r\n * @param options Options\r\n * @param dataFields Data fields\r\n * @param asIs Do not try to convert to dates\r\n * @return Array of values\r\n */\r\n Export.prototype.getExcelRow = function (row, options, dataFields, asIs) {\r\n var _this = this;\r\n if (asIs === void 0) { asIs = false; }\r\n // Init\r\n var items = [];\r\n // Data fields\r\n if (!dataFields) {\r\n dataFields = row;\r\n }\r\n // Data fields order\r\n var dataFieldsOrder = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"xlsx\"\r\n }).dataFieldsOrder;\r\n // Process each row item\r\n $object.eachOrdered(dataFields, function (key, name) {\r\n // Get value\r\n var value = _this.convertEmptyValue(key, row[key], options);\r\n // Convert dates\r\n var item = asIs ? value : _this.convertToSpecialFormat(key, value, options, true);\r\n items.push(item);\r\n }, function (a, b) {\r\n //console.log(a, b)\r\n var ai = dataFieldsOrder.indexOf(a);\r\n var bi = dataFieldsOrder.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n return items;\r\n };\r\n /**\r\n * Returns chart's data formatted as CSV.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Type of the export\r\n * @param options Options\r\n * @param encodeURI If true, will return result will be data URI\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.getCSV = function (type, options, encodeURI) {\r\n if (encodeURI === void 0) { encodeURI = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var csv, dataFields, br, data, dataFieldsOrder_3, len, i, row, charset, uri;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(\"csv\");\r\n }\r\n csv = \"\";\r\n dataFields = this.adapter.apply(\"formatDataFields\", {\r\n dataFields: this.dataFields,\r\n format: \"csv\"\r\n }).dataFields;\r\n br = \"\";\r\n data = this.data;\r\n // Vertical or horizontal (default) layout\r\n if (options.pivot) {\r\n dataFieldsOrder_3 = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"csv\"\r\n }).dataFieldsOrder;\r\n $object.eachOrdered(dataFields, function (key, val) {\r\n var dataRow = [];\r\n if (options.addColumnNames) {\r\n dataRow.push(val);\r\n }\r\n for (var len = data.length, i = 0; i < len; i++) {\r\n var dataValue = data[i][key];\r\n dataRow.push(_this.convertToSpecialFormat(key, dataValue, options, true));\r\n }\r\n csv += br + _this.getCSVRow(dataRow, options, undefined, true);\r\n br = \"\\n\";\r\n }, function (a, b) {\r\n var ai = dataFieldsOrder_3.indexOf(a);\r\n var bi = dataFieldsOrder_3.indexOf(b);\r\n if (ai > bi) {\r\n return -1;\r\n }\r\n else if (ai < bi) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n else {\r\n for (len = data.length, i = 0; i < len; i++) {\r\n row = this.getCSVRow(data[i], options, dataFields);\r\n if (options.reverse) {\r\n csv = row + br + csv;\r\n }\r\n else {\r\n csv += br + row;\r\n }\r\n br = \"\\n\";\r\n }\r\n // Add column names?\r\n if (options.addColumnNames) {\r\n csv = this.getCSVRow(dataFields, options, undefined, true) + br + csv;\r\n }\r\n }\r\n charset = this.adapter.apply(\"charset\", {\r\n charset: \"charset=utf-8\",\r\n type: type,\r\n options: options\r\n }).charset;\r\n uri = this.adapter.apply(\"getCSV\", {\r\n data: encodeURI ? \"data:\" + this.getContentType(type) + \";\" + charset + \",\" + encodeURIComponent(csv) : csv,\r\n options: options\r\n }).data;\r\n return [2 /*return*/, uri];\r\n });\r\n });\r\n };\r\n /**\r\n * Formats a row of CSV data.\r\n *\r\n * @ignore Exclude from docs\r\n * @param row An object holding data for the row\r\n * @param options Options\r\n * @param dataFields Data fields\r\n * @param asIs Do not try to convert to dates\r\n * @return Formated CSV line\r\n */\r\n Export.prototype.getCSVRow = function (row, options, dataFields, asIs) {\r\n var _this = this;\r\n if (asIs === void 0) { asIs = false; }\r\n // Init\r\n var separator = options.separator || \",\";\r\n var items = [];\r\n // Data fields\r\n if (!dataFields) {\r\n dataFields = row;\r\n }\r\n // Data fields order\r\n var dataFieldsOrder = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"csv\"\r\n }).dataFieldsOrder;\r\n // Process each row item\r\n $object.eachOrdered(dataFields, function (key, name) {\r\n // Get value\r\n var value = _this.convertEmptyValue(key, row[key], options);\r\n // Check if we need to skip\r\n // This is no longer required because we are iterating via dataFields anyway\r\n /*if ($type.hasValue(this.dataFields) && !$type.hasValue(this.dataFields[key])) {\r\n return;\r\n }*/\r\n // Convert dates\r\n var item = asIs ? value : _this.convertToSpecialFormat(key, value, options);\r\n // Cast and escape doublequotes\r\n item = \"\" + item;\r\n item = item.replace(/\"/g, '\"\"');\r\n // Enclose into double quotes\r\n if (options.forceQuotes || (item.search(new RegExp(\"\\\"|\\n|\" + separator, \"g\")) >= 0)) {\r\n item = \"\\\"\" + item + \"\\\"\";\r\n }\r\n // Add to item\r\n items.push(item);\r\n }, function (a, b) {\r\n //console.log(a, b)\r\n var ai = dataFieldsOrder.indexOf(a);\r\n var bi = dataFieldsOrder.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n return items.join(separator);\r\n };\r\n /**\r\n * Returns chart's data formatted as HTML table.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @since 4.7.0\r\n * @param type Type of the export\r\n * @param options Options\r\n * @param encodeURI If true, will return result will be data URI\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.getHTML = function (type, options, encodeURI) {\r\n if (encodeURI === void 0) { encodeURI = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var html, dataFields, data, dataFieldsOrder_4, len, i, charset, uri;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(\"html\");\r\n }\r\n html = \"<table>\";\r\n if (options.tableClass) {\r\n html = \"<table class=\\\"\" + options.tableClass + \"\\\">\";\r\n }\r\n dataFields = this.adapter.apply(\"formatDataFields\", {\r\n dataFields: this.dataFields,\r\n format: \"html\"\r\n }).dataFields;\r\n data = this.data;\r\n // Vertical or horizontal (default) layout\r\n if (options.pivot) {\r\n dataFieldsOrder_4 = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"html\"\r\n }).dataFieldsOrder;\r\n html += \"\\n<tbody>\";\r\n $object.eachOrdered(dataFields, function (key, val) {\r\n var dataRow = [];\r\n if (options.addColumnNames) {\r\n dataRow.push(val);\r\n }\r\n for (var len = data.length, i = 0; i < len; i++) {\r\n var dataValue = data[i][key];\r\n dataRow.push(_this.convertToSpecialFormat(key, dataValue, options, true));\r\n }\r\n html += \"\\n\" + _this.getHTMLRow(dataRow, options, undefined, true);\r\n }, function (a, b) {\r\n var ai = dataFieldsOrder_4.indexOf(a);\r\n var bi = dataFieldsOrder_4.indexOf(b);\r\n if (ai > bi) {\r\n return -1;\r\n }\r\n else if (ai < bi) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n html += \"\\n</tbody>\";\r\n }\r\n else {\r\n // Add column names?\r\n if (options.addColumnNames) {\r\n html += \"\\n<thead>\\n\" + this.getHTMLRow(dataFields, options, undefined, true, true) + \"\\n</thead>\";\r\n }\r\n html += \"\\n<tbody>\";\r\n for (len = data.length, i = 0; i < len; i++) {\r\n html += \"\\n\" + this.getHTMLRow(data[i], options, dataFields);\r\n }\r\n html += \"\\n</tbody>\";\r\n }\r\n html += \"\\n</table>\";\r\n charset = this.adapter.apply(\"charset\", {\r\n charset: \"charset=utf-8\",\r\n type: type,\r\n options: options\r\n }).charset;\r\n uri = this.adapter.apply(\"getHTML\", {\r\n data: encodeURI ? \"data:\" + this.getContentType(type) + \";\" + charset + \",\" + encodeURIComponent(html) : html,\r\n options: options\r\n }).data;\r\n return [2 /*return*/, uri];\r\n });\r\n });\r\n };\r\n /**\r\n * Formats a row of HTML data.\r\n *\r\n * @since 4.7.0\r\n * @ignore Exclude from docs\r\n * @param row An object holding data for the row\r\n * @param options Options\r\n * @param dataFields Data fields\r\n * @param asIs Do not try to convert to dates\r\n * @return Formated HTML row\r\n */\r\n Export.prototype.getHTMLRow = function (row, options, dataFields, asIs, headerRow) {\r\n var _this = this;\r\n if (asIs === void 0) { asIs = false; }\r\n if (headerRow === void 0) { headerRow = false; }\r\n // Init output\r\n var html = \"\\t<tr>\";\r\n if (options.rowClass) {\r\n html = \"\\t<tr class=\\\"\" + options.rowClass + \"\\\">\";\r\n }\r\n // Data fields\r\n if (!dataFields) {\r\n dataFields = row;\r\n }\r\n // Data fields order\r\n var dataFieldsOrder = this.adapter.apply(\"dataFieldsOrder\", {\r\n dataFieldsOrder: this.dataFieldsOrder,\r\n format: \"html\"\r\n }).dataFieldsOrder;\r\n // th or dh?\r\n var tag = headerRow ? \"th\" : \"td\";\r\n // Process each row item\r\n var first = true;\r\n $object.eachOrdered(dataFields, function (key, name) {\r\n // Get value\r\n var value = _this.convertEmptyValue(key, row[key], options);\r\n // Convert dates\r\n var item = asIs ? value : _this.convertToSpecialFormat(key, value, options);\r\n // Escape HTML entities\r\n item = \"\" + item;\r\n item = item.replace(/[\\u00A0-\\u9999<>\\&]/gim, function (i) {\r\n return \"&#\" + i.charCodeAt(0) + \";\";\r\n });\r\n // Which tag to use\r\n var useTag = tag;\r\n if (options.pivot && first) {\r\n useTag = \"th\";\r\n }\r\n // Add cell\r\n if (options.cellClass) {\r\n html += \"\\n\\t\\t<\" + useTag + \" class=\\\"\" + options.cellClass + \"\\\">\" + item + \"</\" + useTag + \">\";\r\n }\r\n else {\r\n html += \"\\n\\t\\t<\" + useTag + \">\" + item + \"</\" + useTag + \">\";\r\n }\r\n first = false;\r\n }, function (a, b) {\r\n var ai = dataFieldsOrder.indexOf(a);\r\n var bi = dataFieldsOrder.indexOf(b);\r\n if (ai > bi) {\r\n return 1;\r\n }\r\n else if (ai < bi) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n html += \"\\n\\t</tr>\";\r\n return html;\r\n };\r\n /**\r\n * Returns chart's data in JSON format.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param type Type of the export\r\n * @param options Options\r\n * @param encodeURI If true, will return result will be data URI\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.getJSON = function (type, options, encodeURI) {\r\n if (encodeURI === void 0) { encodeURI = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data, dataFields, sourceData, _loop_1, len, i, json, charset, uri;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!$type.hasValue(options)) {\r\n options = this.getFormatOptions(\"json\");\r\n }\r\n dataFields = this.adapter.apply(\"formatDataFields\", {\r\n dataFields: this.dataFields,\r\n format: \"json\"\r\n }).dataFields;\r\n if (!this._dynamicDataFields) {\r\n data = [];\r\n sourceData = this.data;\r\n _loop_1 = function (len, i) {\r\n var value = sourceData[i];\r\n if (typeof value == \"object\") {\r\n var newValue_1 = {};\r\n $object.each(value, function (field, item) {\r\n if ($type.hasValue(dataFields[field])) {\r\n newValue_1[dataFields[field]] = _this.convertToSpecialFormat(field, item, options);\r\n }\r\n });\r\n data.push(newValue_1);\r\n }\r\n };\r\n for (len = sourceData.length, i = 0; i < len; i++) {\r\n _loop_1(len, i);\r\n }\r\n }\r\n else {\r\n data = this.data;\r\n }\r\n json = JSON.stringify(data, function (key, value) {\r\n if (typeof value == \"object\") {\r\n $object.each(value, function (field, item) {\r\n value[field] = _this.convertToSpecialFormat(field, item, options);\r\n });\r\n }\r\n return value;\r\n }, options.indent);\r\n charset = this.adapter.apply(\"charset\", {\r\n charset: \"charset=utf-8\",\r\n type: type,\r\n options: options\r\n }).charset;\r\n uri = this.adapter.apply(\"getJSON\", {\r\n data: encodeURI ? \"data:\" + this.getContentType(type) + \";\" + charset + \",\" + encodeURIComponent(json) : json,\r\n options: options\r\n }).data;\r\n return [2 /*return*/, uri];\r\n });\r\n });\r\n };\r\n /**\r\n * Converts the value to proper date format.\r\n *\r\n * @ignore Exclude from docs\r\n * @param field Field name\r\n * @param value Value\r\n * @param options Options\r\n * @param keepOriginal Will ignore formatting and will keep value as it is in data\r\n * @return Formatted date value or unmodified value\r\n */\r\n Export.prototype.convertToSpecialFormat = function (field, value, options, keepOriginal) {\r\n // Is this a timestamp or duration?\r\n if (typeof value == \"number\") {\r\n if (this.isDateField(field)) {\r\n value = new Date(value);\r\n }\r\n else if (this.isDurationField(field)) {\r\n return this.durationFormatter.format(value, this.durationFormat);\r\n }\r\n else if (this.isNumberField(field) && this.numberFormat) {\r\n return this.numberFormatter.format(value, this.numberFormat);\r\n }\r\n }\r\n if (value instanceof Date) {\r\n if (options.useTimestamps) {\r\n value = value.getTime();\r\n }\r\n else if (options.useLocale) {\r\n if (!keepOriginal) {\r\n value = value.toLocaleString();\r\n }\r\n }\r\n else {\r\n value = this.dateFormatter.format(value, this.dateFormat);\r\n }\r\n }\r\n else if ($type.isString(value) && this.isDateField(field) && this.dateFormat) {\r\n value = this.dateFormatter.format(this.dateFormatter.parse(value), this.dateFormat);\r\n }\r\n return value;\r\n };\r\n /**\r\n * Converts empty value based on `emptyAs` option.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.convertEmptyValue = function (field, value, options) {\r\n return $type.hasValue(value) ? value : options.emptyAs;\r\n };\r\n /**\r\n * Triggers download of the file.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param uri Data URI with file content\r\n * @param fileName File name\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.download = function (uri, fileName, addBOM) {\r\n if (addBOM === void 0) { addBOM = false; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parts, contentType, decoded, blob_1, chars, i, charCode, blob, link_1, parts, contentType, decoded, blob_2, url_2, chars, i, charCode, blob, url_3, link, parts, contentType, iframe, idoc;\r\n return __generator(this, function (_a) {\r\n if (this.msBlobDownloadSupport()) {\r\n parts = uri.split(\";\");\r\n contentType = parts.shift().replace(/data:/, \"\");\r\n uri = decodeURIComponent(parts.join(\";\").replace(/^[^,]*,/, \"\"));\r\n // Check if we need to Base64-decode\r\n if ([\"image/svg+xml\", \"application/json\", \"text/csv\"].indexOf(contentType) == -1) {\r\n try {\r\n decoded = atob(uri);\r\n uri = decoded;\r\n }\r\n catch (e) {\r\n // Error occurred, meaning string was not Base64-encoded. Do nothing.\r\n return [2 /*return*/, false];\r\n }\r\n }\r\n else {\r\n blob_1 = new Blob([uri], { type: contentType });\r\n window.navigator.msSaveBlob(blob_1, fileName);\r\n return [2 /*return*/, true];\r\n }\r\n chars = new Array(uri.length);\r\n for (i = 0; i < uri.length; ++i) {\r\n charCode = uri.charCodeAt(i);\r\n chars[i] = charCode;\r\n }\r\n blob = new Blob([new Uint8Array(chars)], { type: contentType });\r\n window.navigator.msSaveBlob(blob, fileName);\r\n }\r\n else if (this.blobDownloadSupport()) {\r\n link_1 = document.createElement(\"a\");\r\n link_1.download = fileName;\r\n document.body.appendChild(link_1);\r\n parts = uri.split(\";\");\r\n contentType = parts.shift().replace(/data:/, \"\");\r\n uri = decodeURIComponent(parts.join(\";\").replace(/^[^,]*,/, \"\"));\r\n if ([\"image/svg+xml\", \"application/json\", \"text/csv\", \"text/html\"].indexOf(contentType) == -1) {\r\n try {\r\n decoded = atob(uri);\r\n uri = decoded;\r\n }\r\n catch (e) {\r\n // Error occurred, meaning string was not Base64-encoded. Do nothing.\r\n return [2 /*return*/, false];\r\n }\r\n }\r\n else {\r\n if (addBOM) {\r\n uri = \"\\ufeff\" + uri;\r\n }\r\n blob_2 = new Blob([uri], { type: contentType });\r\n url_2 = window.URL.createObjectURL(blob_2);\r\n link_1.href = url_2;\r\n link_1.download = fileName;\r\n link_1.click();\r\n setTimeout(function () {\r\n document.body.removeChild(link_1);\r\n window.URL.revokeObjectURL(url_2);\r\n }, 100);\r\n return [2 /*return*/, true];\r\n }\r\n chars = new Array(uri.length);\r\n for (i = 0; i < uri.length; ++i) {\r\n charCode = uri.charCodeAt(i);\r\n chars[i] = charCode;\r\n }\r\n if (addBOM) {\r\n chars = [0xEF, 0xBB, 0xBF].concat(chars);\r\n }\r\n blob = new Blob([new Uint8Array(chars)], { type: contentType });\r\n url_3 = window.URL.createObjectURL(blob);\r\n link_1.href = url_3;\r\n link_1.download = fileName;\r\n document.body.appendChild(link_1);\r\n link_1.click();\r\n document.body.removeChild(link_1);\r\n setTimeout(function () {\r\n window.URL.revokeObjectURL(url_3);\r\n }, 100);\r\n }\r\n else if (this.linkDownloadSupport()) {\r\n link = document.createElement(\"a\");\r\n link.download = fileName;\r\n link.href = uri;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n else if (this.legacyIE()) {\r\n parts = uri.match(/^data:(.*);[ ]*([^,]*),(.*)$/);\r\n if (parts.length === 4) {\r\n // Base64-encoded or text-based stuff?\r\n if (parts[2] == \"base64\") {\r\n // Base64-encoded - probably an image\r\n if (parts[1].match(/^image\\//)) {\r\n // Yep, an image. Let's create a temporary image placeholder,\r\n // so that user can use do Save As.\r\n this.showModal(\"<img src=\\\"\" + uri + \"\\\" style=\\\"float: left; max-width: 50%; max-height: 80%; margin: 0 1em 0.5em 0; border: 1px solid #eee;\\\" />\" +\r\n \"<p>\" + this.language.translate(\"To save the image, right-click thumbnail on the left and choose \\\"Save picture as...\\\"\") +\r\n \"</p>\" +\r\n \"<p style=\\\"text-align: center;\\\"><small>\" + this.language.translate(\"(Press ESC to close this message)\") + \"</small></p>\", this.language.translate(\"Image Export Complete\"));\r\n }\r\n }\r\n else {\r\n contentType = void 0;\r\n if (fileName.match(/\\.svg$/)) {\r\n contentType = \"image/svg+xml\";\r\n }\r\n else {\r\n contentType = \"text/plain\";\r\n fileName += \".txt\";\r\n }\r\n iframe = document.createElement(\"iframe\");\r\n iframe.width = \"1px\";\r\n iframe.height = \"1px\";\r\n iframe.style.display = \"none\";\r\n document.body.appendChild(iframe);\r\n idoc = iframe.contentDocument;\r\n idoc.open(contentType, \"replace\");\r\n // TODO test this with various encodings (e.g. UTF)\r\n //idoc.charset = parts[2].replace(/charset=/, \"\");\r\n idoc.write(decodeURIComponent(parts[3]));\r\n idoc.close();\r\n idoc.execCommand(\"SaveAs\", true, fileName);\r\n // Destroy the iframe\r\n document.body.removeChild(iframe);\r\n }\r\n }\r\n }\r\n else {\r\n /**\r\n * Something else - perhaps a mobile.\r\n * Let's just display it in the same page.\r\n * (hey we don't like it either)\r\n */\r\n window.location.href = uri;\r\n }\r\n return [2 /*return*/, true];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns `true` if browser has any supported methods to trigger download\r\n * of a binary file.\r\n *\r\n * @return Supports downloads?\r\n */\r\n Export.prototype.downloadSupport = function () {\r\n //return !this.legacyIE();\r\n return this.linkDownloadSupport() || this.msBlobDownloadSupport();\r\n };\r\n /**\r\n * Checks if the browser supports \"download\" attribute on links.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Browser supports triggering downloads?\r\n */\r\n Export.prototype.linkDownloadSupport = function () {\r\n // Do we have this cached?\r\n var cache = registry.getCache(\"linkDownloadSupport\");\r\n if (cache === false || cache === true) {\r\n return cache;\r\n }\r\n var a = document.createElement(\"a\");\r\n var res = typeof a.download !== \"undefined\";\r\n registry.setCache(\"linkDownloadSupport\", res);\r\n return res;\r\n };\r\n /**\r\n * Checks if the browser supports download via `msBlob`.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Browser supports triggering downloads?\r\n */\r\n Export.prototype.blobDownloadSupport = function () {\r\n return $type.hasValue(window.Blob);\r\n };\r\n /**\r\n * Checks if the browser supports download via `msBlob`.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Browser supports triggering downloads?\r\n */\r\n Export.prototype.msBlobDownloadSupport = function () {\r\n return $type.hasValue(window.navigator.msSaveOrOpenBlob);\r\n };\r\n /**\r\n * Checks if this is a legacy version of IE.\r\n *\r\n * @ignore Exclude from docs\r\n * @return IE9 or less?\r\n */\r\n Export.prototype.legacyIE = function () {\r\n // Create a temporary <div> with conditional tags in it an an <i> tag.\r\n // Count <i>s. If there are some, we have IE9 or late on our hands.\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = \"<!--[if lt IE 10]><i></i><![endif]-->\";\r\n return div.getElementsByTagName(\"i\").length == 1;\r\n };\r\n /**\r\n * Initiates print of the chart.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @param data Data URI for the image\r\n * @param options Options\r\n * @param title Optional title to use (uses window's title by default)\r\n * @return Promise\r\n * @async\r\n */\r\n Export.prototype.print = function (data, options, title) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (options.printMethod == \"css\") {\r\n return [2 /*return*/, this.printViaCSS(data, options, title)];\r\n }\r\n else {\r\n return [2 /*return*/, this.printViaIframe(data, options, title)];\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n Export.prototype.printViaCSS = function (data, options, title) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var scroll, rule, originalTitle, img, isIOS;\r\n return __generator(this, function (_a) {\r\n scroll = document.documentElement.scrollTop || document.body.scrollTop;\r\n rule = new StyleRule($dom.getShadowRoot(this.container), \"body > *\", {\r\n \"display\": \"none\",\r\n \"position\": \"fixed\",\r\n \"visibility\": \"hidden\",\r\n \"opacity\": \"0\",\r\n \"clipPath\": \"polygon(0px 0px,0px 0px,0px 0px,0px 0px);\"\r\n });\r\n if (title && document && document.title) {\r\n originalTitle = document.title;\r\n document.title = title;\r\n }\r\n img = new Image();\r\n img.src = data;\r\n img.style.maxWidth = \"100%\";\r\n img.style.display = \"block\";\r\n img.style.position = \"relative\";\r\n img.style.visibility = \"visible\";\r\n img.style.opacity = \"1\";\r\n img.style.clipPath = \"none\";\r\n document.body.appendChild(img);\r\n // Print\r\n this.setTimeout(function () {\r\n window.print();\r\n }, 50);\r\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n if (isIOS && (options.delay < 1000)) {\r\n options.delay = 1000;\r\n }\r\n else if (options.delay < 100) {\r\n options.delay = 100;\r\n }\r\n // Delay function that resets back the document the way ot was before\r\n this.setTimeout(function () {\r\n // Remove image\r\n document.body.removeChild(img);\r\n // Reset back all elements\r\n /*for (let len = items.length, i = 0; i < len; i++) {\r\n let item = <HTMLElement>items[i];\r\n if ($dom.isElement(item)) {\r\n item.style.display = states[i];\r\n }\r\n }*/\r\n rule.dispose();\r\n // Restore title\r\n if (originalTitle) {\r\n document.title = document.title;\r\n }\r\n // Scroll back the document the way it was before\r\n document.documentElement.scrollTop = document.body.scrollTop = scroll;\r\n }, options.delay || 500);\r\n return [2 /*return*/, true];\r\n });\r\n });\r\n };\r\n Export.prototype.printViaIframe = function (data, options, title) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var iframe, img, isIOS;\r\n return __generator(this, function (_a) {\r\n iframe = document.createElement(\"iframe\");\r\n iframe.style.visibility = \"hidden\";\r\n document.body.appendChild(iframe);\r\n // This is needed for FireFox\r\n iframe.contentWindow.document.open();\r\n iframe.contentWindow.document.close();\r\n img = new Image();\r\n img.src = data;\r\n img.style.maxWidth = \"100%\";\r\n img.style.height = \"auto\";\r\n if (title) {\r\n iframe.contentWindow.document.title = title;\r\n }\r\n iframe.contentWindow.document.body.appendChild(img);\r\n iframe.load = function () {\r\n iframe.contentWindow.document.body.appendChild(img);\r\n };\r\n // Print\r\n this.setTimeout(function () {\r\n try {\r\n if (!iframe.contentWindow.document.execCommand(\"print\", false, null)) {\r\n iframe.contentWindow.print();\r\n }\r\n }\r\n catch (e) {\r\n iframe.contentWindow.print();\r\n }\r\n }, options.delay || 50);\r\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n if (isIOS && (options.delay < 1000)) {\r\n options.delay = 1000;\r\n }\r\n else if (options.delay < 100) {\r\n options.delay = 100;\r\n }\r\n // Delay function that resets back the document the way ot was before\r\n this.setTimeout(function () {\r\n // Remove image\r\n document.body.removeChild(iframe);\r\n }, options.delay + 50 || 100);\r\n return [2 /*return*/, true];\r\n });\r\n });\r\n };\r\n /**\r\n * Finds a background color for the element. If element is transparent it goes\r\n * up the DOM hierarchy to find a parent element that does.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Color code\r\n */\r\n Export.prototype.findBackgroundColor = function (element) {\r\n // Check if element has styles set\r\n var opacity = 1, currentColor = getComputedStyle(element, \"background-color\");\r\n // Check opacity\r\n if (currentColor.match(/[^,]*,[^,]*,[^,]*,[ ]?0/) || currentColor == \"transparent\") {\r\n opacity = 0;\r\n }\r\n if (opacity == 0) {\r\n var parent_2 = element.parentElement; // || <Element>element.parentNode;\r\n // Completely transparent. Look for a parent\r\n if (parent_2) {\r\n return this.findBackgroundColor(parent_2);\r\n }\r\n else {\r\n return color(\"#fff\");\r\n }\r\n }\r\n else {\r\n return color(currentColor, opacity);\r\n }\r\n };\r\n Object.defineProperty(Export.prototype, \"container\", {\r\n /**\r\n * @return Reference\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"container\", {\r\n container: this._container\r\n }).container;\r\n },\r\n /**\r\n * A reference to a container to be used to place [[ExportMenu]] in.\r\n *\r\n * @param value Reference\r\n */\r\n set: function (value) {\r\n this._container = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"sprite\", {\r\n /**\r\n * @return Sprite\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"sprite\", {\r\n sprite: this._sprite\r\n }).sprite;\r\n },\r\n /**\r\n * A reference to [[Sprite]] to export. Can be any Sprite, including some\r\n * internal elements.\r\n *\r\n * @param value Sprite\r\n */\r\n set: function (value) {\r\n this._sprite = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"extraSprites\", {\r\n /**\r\n * @return Sprite\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"extraSprites\", {\r\n extraSprites: this._extraSprites\r\n }).extraSprites;\r\n },\r\n /**\r\n * An array of extra [[Sprite]] elements to include in export.\r\n *\r\n * It can be used to export any external elements, or even other charts.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * chart.exporting.extraSprites.push(chart2);\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.extraSprites.push(chart2);\r\n * ```\r\n *\r\n * IMPORTANT: This setting is ignored when exporting to SVG format.\r\n *\r\n * @since 4.2.0\r\n * @param value Sprite\r\n */\r\n set: function (value) {\r\n this._extraSprites = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"validateSprites\", {\r\n /**\r\n * @return Sprite\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"validateSprites\", {\r\n validateSprites: this._validateSprites\r\n }).validateSprites;\r\n },\r\n /**\r\n * An array of [[Sprite]] elements that need to be valid before export\r\n * commences.\r\n *\r\n * If any of those elements is not completely ready when export is triggered,\r\n * the export will wait until they are (their `validated` event triggers)\r\n * before going through with the export opertaion.\r\n *\r\n * This is useful if you need to modify chart appearance for the export.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * // Add watermark\r\n * let watermark = chart.createChild(am4core.Label);\r\n * watermark.text = \"Copyright (C) 2019\";\r\n * watermark.disabled = true;\r\n *\r\n * // Add watermark to validated sprites\r\n * chart.exporting.validateSprites.push(watermark);\r\n *\r\n * // Enable watermark on export\r\n * chart.exporting.events.on(\"exportstarted\", function(ev) {\r\n * watermark.disabled = false;\r\n * });\r\n *\r\n * // Disable watermark when export finishes\r\n * chart.exporting.events.on(\"exportfinished\", function(ev) {\r\n * watermark.disabled = true;\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * // Add watermark\r\n * var watermark = chart.createChild(am4core.Label);\r\n * watermark.text = \"Copyright (C) 2019\";\r\n * watermark.disabled = true;\r\n *\r\n * // Add watermark to validated sprites\r\n * chart.exporting.validateSprites.push(watermark);\r\n *\r\n * // Enable watermark on export\r\n * chart.exporting.events.on(\"exportstarted\", function(ev) {\r\n * watermark.disabled = false;\r\n * });\r\n *\r\n * // Disable watermark when export finishes\r\n * chart.exporting.events.on(\"exportfinished\", function(ev) {\r\n * watermark.disabled = true;\r\n * });\r\n * ```\r\n *\r\n * @since 4.6.8\r\n * @param value Sprite\r\n */\r\n set: function (value) {\r\n this._validateSprites = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"data\", {\r\n /**\r\n * @return Data\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"data\", {\r\n data: this._data\r\n }).data;\r\n },\r\n /**\r\n * Data to export.\r\n *\r\n * @param value Data\r\n */\r\n set: function (value) {\r\n this._data = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"dataFields\", {\r\n /**\r\n * @return Field names `{ field: fieldName }`\r\n */\r\n get: function () {\r\n if (!this._dataFields) {\r\n this.generateDataFields();\r\n }\r\n return this.adapter.apply(\"dataFields\", {\r\n dataFields: this._dataFields\r\n }).dataFields;\r\n },\r\n /**\r\n * Data fields in `{ field: fieldName }` format. Those are used for\r\n * exporting in data formats to name the columns.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/exporting/#Changing_order_and_names_of_columns} for examples and details\r\n * @param value Field names\r\n */\r\n set: function (value) {\r\n this._dataFields = value;\r\n this._dynamicDataFields = false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Called after target chart's data updates.\r\n *\r\n * @ignore\r\n */\r\n Export.prototype.handleDataUpdated = function () {\r\n if (this._dynamicDataFields) {\r\n this._dataFields = undefined;\r\n }\r\n var hasData = this.data.length > 0;\r\n if (this._prevHasData != hasData) {\r\n this._prevHasData = hasData;\r\n if (this.menu) {\r\n this.menu.invalidate();\r\n }\r\n }\r\n };\r\n Object.defineProperty(Export.prototype, \"dateFormatter\", {\r\n /**\r\n * @return A DateFormatter instance\r\n */\r\n get: function () {\r\n if (!this._dateFormatter) {\r\n this._dateFormatter = new DateFormatter();\r\n this._dateFormatter.language = this.language;\r\n }\r\n return this.adapter.apply(\"dateFormatter\", {\r\n dateFormatter: this._dateFormatter\r\n }).dateFormatter;\r\n },\r\n /**\r\n * A [[DateFormatter]] to use when formatting dates when exporting data.\r\n *\r\n * @param value DateFormatter instance\r\n */\r\n set: function (value) {\r\n this._dateFormatter = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"dateFormat\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"dateFormat\", {\r\n dateFormat: this._dateFormat\r\n }).dateFormat;\r\n },\r\n /**\r\n * A date format to use for exporting dates. Will use [[DateFormatter]]\r\n * format if not set.\r\n *\r\n * @param value Date format\r\n */\r\n set: function (value) {\r\n this._dateFormat = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"dateFields\", {\r\n /**\r\n * @return Date field list\r\n */\r\n get: function () {\r\n if (!this._dateFields) {\r\n this._dateFields = new List();\r\n }\r\n return this.adapter.apply(\"dateFields\", {\r\n dateFields: this._dateFields\r\n }).dateFields;\r\n },\r\n /**\r\n * A list of fields that hold date values.\r\n *\r\n * @param value Date field list\r\n */\r\n set: function (value) {\r\n this._dateFields = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"numberFormatter\", {\r\n /**\r\n * @return A NumberFormatter instance\r\n */\r\n get: function () {\r\n if (!this._numberFormatter) {\r\n this._numberFormatter = new NumberFormatter();\r\n this._numberFormatter.language = this.language;\r\n }\r\n return this.adapter.apply(\"numberFormatter\", {\r\n numberFormatter: this._numberFormatter\r\n }).numberFormatter;\r\n },\r\n /**\r\n * A [[NumberFormatter]] to use when formatting dates when exporting data.\r\n *\r\n * @since 4.5.15\r\n * @param value NumberFormatter instance\r\n */\r\n set: function (value) {\r\n this._numberFormatter = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"numberFormat\", {\r\n /**\r\n * @return Number format\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"numberFormat\", {\r\n numberFormat: this._numberFormat\r\n }).numberFormat;\r\n },\r\n /**\r\n * A number format to use for exporting dates. Will use [[NumberFormatter]]\r\n * format if not set.\r\n *\r\n * @since 4.5.15\r\n * @param value Number format\r\n */\r\n set: function (value) {\r\n this._numberFormat = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"numberFields\", {\r\n /**\r\n * @return Number field list\r\n */\r\n get: function () {\r\n if (!this._numberFields) {\r\n this._numberFields = new List();\r\n }\r\n return this.adapter.apply(\"numberFields\", {\r\n numberFields: this._numberFields\r\n }).numberFields;\r\n },\r\n /**\r\n * A list of fields that hold number values.\r\n *\r\n * @since 4.5.15\r\n * @param value Number field list\r\n */\r\n set: function (value) {\r\n this._numberFields = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"durationFormatter\", {\r\n /**\r\n * @return A DurationFormatter instance\r\n */\r\n get: function () {\r\n if (!this._durationFormatter) {\r\n this._durationFormatter = new DurationFormatter();\r\n this._durationFormatter.language = this.language;\r\n }\r\n return this.adapter.apply(\"durationFormatter\", {\r\n durationFormatter: this._durationFormatter\r\n }).durationFormatter;\r\n },\r\n /**\r\n * A [[DurationFormatter]] to use when formatting duration values when\r\n * exporting data.\r\n *\r\n * @param value DurationFormatter instance\r\n */\r\n set: function (value) {\r\n this._durationFormatter = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"durationFormat\", {\r\n /**\r\n * @return Duration format\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"durationFormat\", {\r\n durationFormat: this._durationFormat\r\n }).durationFormat;\r\n },\r\n /**\r\n * A format to use when formatting values from `durationFields`.\r\n * Will use [[DurationFormatter]] format if not set.\r\n *\r\n * @param value Duration format\r\n */\r\n set: function (value) {\r\n this._durationFormat = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"durationFields\", {\r\n /**\r\n * @return Duration field list\r\n */\r\n get: function () {\r\n if (!this._durationFields) {\r\n this._durationFields = new List();\r\n }\r\n return this.adapter.apply(\"durationFields\", {\r\n durationFields: this._durationFields\r\n }).durationFields;\r\n },\r\n /**\r\n * A list of fields that hold duration values.\r\n *\r\n * @param value Duration field list\r\n */\r\n set: function (value) {\r\n this._durationFields = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Generates data fields out of the first row of data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.generateDataFields = function () {\r\n var _this = this;\r\n this._dataFields = {};\r\n if (this.data.length) {\r\n $array.each(this.data, function (row) {\r\n $object.each(row, function (key, value) {\r\n if (!$type.hasValue(_this._dataFields[key])) {\r\n _this._dataFields[key] = _this.adapter.apply(\"dataFieldName\", {\r\n name: key,\r\n field: key\r\n }).name;\r\n }\r\n });\r\n });\r\n }\r\n };\r\n /**\r\n * Cheks against `dateFields` property to determine if this field holds\r\n * dates.\r\n *\r\n * @ignore Exclude from docs\r\n * @param field Field name\r\n * @param options Options\r\n * @return `true` if it's a date field\r\n */\r\n Export.prototype.isDateField = function (field) {\r\n return this.adapter.apply(\"isDateField\", {\r\n isDateField: this.dateFields.contains(field),\r\n field: field\r\n }).isDateField;\r\n };\r\n /**\r\n * Cheks against `numberFields` property to determine if this field holds\r\n * numbers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param field Field name\r\n * @param options Options\r\n * @return `true` if it's a number field\r\n */\r\n Export.prototype.isNumberField = function (field) {\r\n return this.adapter.apply(\"isNumberField\", {\r\n isNumberField: this.numberFields.contains(field),\r\n field: field\r\n }).isNumberField;\r\n };\r\n /**\r\n * Cheks against `durationFields` property to determine if this field holds\r\n * durations.\r\n *\r\n * @ignore Exclude from docs\r\n * @param field Field name\r\n * @param options Options\r\n * @return `true` if it's a date field\r\n */\r\n Export.prototype.isDurationField = function (field) {\r\n return this.adapter.apply(\"isDurationField\", {\r\n isDurationField: this.durationFields.contains(field),\r\n field: field\r\n }).isDurationField;\r\n };\r\n /**\r\n * Returns proper content type for the export type.\r\n *\r\n * @param type Export format/type\r\n * @return Proper content type, i.e. \"image/jpeg\"\r\n */\r\n Export.prototype.getContentType = function (type) {\r\n var contentType = \"\";\r\n switch (type) {\r\n case \"png\":\r\n case \"gif\":\r\n contentType = \"image/\" + type;\r\n break;\r\n case \"jpg\":\r\n contentType = \"image/jpeg\";\r\n break;\r\n case \"svg\":\r\n contentType = \"image/svg+xml\";\r\n break;\r\n case \"csv\":\r\n contentType = \"text/csv\";\r\n break;\r\n case \"json\":\r\n contentType = \"application/json\";\r\n break;\r\n case \"html\":\r\n contentType = \"text/html\";\r\n break;\r\n case \"pdf\":\r\n case \"pdfdata\":\r\n contentType = \"application/pdf\";\r\n break;\r\n case \"xlsx\":\r\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n break;\r\n }\r\n return this.adapter.apply(\"contentType\", {\r\n contentType: contentType,\r\n type: type\r\n }).contentType;\r\n };\r\n Object.defineProperty(Export.prototype, \"filePrefix\", {\r\n /**\r\n * @return File prefix\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"filePrefix\", {\r\n filePrefix: this._filePrefix\r\n }).filePrefix;\r\n },\r\n /**\r\n * A file prefix to be used for all exported formats.\r\n *\r\n * Export will apply format-related extension to it. E.g. if this is set to\r\n * \"myExport\", the file name of the PNG exported image will be \"myExport.png\".\r\n *\r\n * @param value File prefix\r\n */\r\n set: function (value) {\r\n this._filePrefix = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"backgroundColor\", {\r\n /**\r\n * @return Background color\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"backgroundColor\", {\r\n backgroundColor: this._backgroundColor\r\n }).backgroundColor;\r\n },\r\n /**\r\n * A background color to be used for exported images. If set, this will\r\n * override the automatically acquired background color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this._backgroundColor = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"title\", {\r\n /**\r\n * @return Title\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"title\", {\r\n title: this._title\r\n }).title;\r\n },\r\n /**\r\n * A title to be used when printing.\r\n *\r\n * @param value Title\r\n */\r\n set: function (value) {\r\n this._title = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Displays a preloader/exporting indicator.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Add ability to change text\r\n */\r\n Export.prototype.showPreloader = function () {\r\n var preloader = this.preloader;\r\n if (preloader) {\r\n preloader.progress = 0.5;\r\n preloader.label.text = \"...\";\r\n }\r\n };\r\n /**\r\n * Hides preloader/exporting indicator\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.hidePreloader = function () {\r\n var preloader = this.preloader;\r\n if (preloader) {\r\n preloader.progress = 1;\r\n }\r\n };\r\n Object.defineProperty(Export.prototype, \"preloader\", {\r\n /**\r\n * Returns a an instance of [[Preloader]] associated with the Sprite being\r\n * exported.\r\n *\r\n * @return Preloader\r\n */\r\n get: function () {\r\n return this._sprite && this._sprite.parent && this._sprite.parent.preloader ?\r\n this._sprite.parent.preloader :\r\n undefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Displays a modal saying export is taking longer than expected.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.showTimeout = function () {\r\n this.showModal(this.adapter.apply(\"timeoutMessage\", {\r\n message: this.language.translate(\"Export operation took longer than expected. Something might have gone wrong.\")\r\n }).message);\r\n };\r\n /**\r\n * Hides preloader/exporting indicator.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.hideTimeout = function () {\r\n if (this._timeoutTimeout) {\r\n this.removeDispose(this._timeoutTimeout);\r\n this._timeoutTimeout = null;\r\n }\r\n this.hideModal();\r\n };\r\n Object.defineProperty(Export.prototype, \"language\", {\r\n /**\r\n * @return A [[Language]] instance to be used\r\n */\r\n get: function () {\r\n if (!this._language) {\r\n this._language = new Language();\r\n }\r\n return this._language;\r\n },\r\n /**\r\n * A [[Language]] instance to be used for translations.\r\n *\r\n * @param value An instance of [[Language]]\r\n */\r\n set: function (value) {\r\n this._language = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"modal\", {\r\n /**\r\n * Returns (and creates) [[Modal]].\r\n *\r\n * @ignore Exclude from docs\r\n * @return Modal instance\r\n */\r\n get: function () {\r\n if (!this._modal) {\r\n this._modal = new Modal();\r\n // Prefix with Sprite's class name\r\n this._modal.adapter.add(\"classPrefix\", function (value) {\r\n value = options.classNamePrefix + value;\r\n return value;\r\n });\r\n }\r\n return this._modal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Shows [[Modal]] with specific text.\r\n *\r\n * @ignore Exclude from docs\r\n * @param text Modal contents\r\n */\r\n Export.prototype.showModal = function (text, title) {\r\n // Hide previous modal and preloader\r\n this.hideModal();\r\n this.hidePreloader();\r\n // Create modal\r\n var modal = this.modal;\r\n modal.container = this.sprite.svgContainer.SVGContainer;\r\n modal.content = text;\r\n modal.readerTitle = title;\r\n modal.open();\r\n };\r\n /**\r\n * Hides modal window if one's currently open.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.prototype.hideModal = function () {\r\n if (this._modal) {\r\n this.modal.close();\r\n }\r\n };\r\n /**\r\n * Loads canvg dynamic module.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of canvg\r\n * @async\r\n */\r\n Export.prototype._canvg = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var canvg;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, import(/* webpackChunkName: \"canvg\" */ \"../../canvg/index.js\")];\r\n case 1:\r\n canvg = (_a.sent());\r\n if (canvg.default != null) {\r\n return [2 /*return*/, canvg.default];\r\n }\r\n else {\r\n return [2 /*return*/, canvg];\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Object.defineProperty(Export.prototype, \"canvg\", {\r\n /**\r\n * Returns canvg instance.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of canvg\r\n */\r\n get: function () {\r\n return this._canvg();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Export.prototype, \"pdfmake\", {\r\n /**\r\n * Returns pdfmake instance.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of pdfmake\r\n */\r\n get: function () {\r\n if (pdfmakePromise == null) {\r\n pdfmakePromise = _pdfmake();\r\n }\r\n return pdfmakePromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Loads xlsx dynamic module.\r\n *\r\n * This is an asynchronous function. Check the description of `getImage()`\r\n * for description and example usage.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of pdfmake\r\n * @async\r\n */\r\n Export.prototype._xlsx = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, import(/* webpackChunkName: \"xlsx\" */ \"../../bundled/xlsx\")];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n Object.defineProperty(Export.prototype, \"xlsx\", {\r\n /**\r\n * Returns xlsx instance.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Instance of pdfmake\r\n */\r\n get: function () {\r\n return this._xlsx();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets options for a format.\r\n */\r\n Export.prototype.setFormatOptions = function (type, options) {\r\n this._formatOptions.setKey(type, options);\r\n };\r\n /**\r\n * Returns current options for a format.\r\n */\r\n Export.prototype.getFormatOptions = function (type) {\r\n return this._formatOptions.getKey(type);\r\n };\r\n Object.defineProperty(Export.prototype, \"formatOptions\", {\r\n /**\r\n * A [[Dictionary]] object containing format-specific options.\r\n *\r\n * May be used to change specific option for the format:\r\n *\r\n * ```TypeScript\r\n * chart.exporting.formatOptions.getKey(\"csv\").disabled = true;\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.formatOptions.getKey(\"csv\").disabled = true;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"exporting\": {\r\n * // ...\r\n * \"formatOptions\": {\r\n * \"csv\": {\r\n * \"disabled\": true\r\n * }\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @since 4.9.12\r\n * @return Options\r\n */\r\n get: function () {\r\n return this._formatOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Disables interactivity on parent chart.\r\n */\r\n Export.prototype._disablePointers = function () {\r\n if (!$type.hasValue(this._spriteInteractionsEnabled)) {\r\n this._spriteInteractionsEnabled = this.sprite.interactionsEnabled;\r\n }\r\n this.sprite.interactionsEnabled = false;\r\n };\r\n /**\r\n * Releases temporarily disabled pointers on parent chart.\r\n */\r\n Export.prototype._releasePointers = function () {\r\n if ($type.hasValue(this._spriteInteractionsEnabled) && !this._exportRunning) {\r\n this.sprite.interactionsEnabled = this._spriteInteractionsEnabled;\r\n }\r\n };\r\n /**\r\n * Hides all elements that should not be included in the exported image.\r\n */\r\n Export.prototype.hideNonExportableSprites = function () {\r\n var _this = this;\r\n if (this._objectsAlreadyHidden) {\r\n return;\r\n }\r\n var svgContainer = this.sprite.svgContainer;\r\n if (svgContainer) {\r\n $array.each(svgContainer.nonExportableSprites, function (item) {\r\n if (!item.isHidden && !item.isHiding && item.visible) {\r\n _this._hiddenObjects.push(item);\r\n }\r\n item.hide(0);\r\n });\r\n }\r\n this._objectsAlreadyHidden = true;\r\n };\r\n /**\r\n * Respores elements that were hidden before export.\r\n */\r\n Export.prototype.restoreNonExportableSprites = function () {\r\n if (!this._objectsAlreadyHidden) {\r\n return;\r\n }\r\n $array.each(this._hiddenObjects, function (item) {\r\n item.show(0);\r\n });\r\n this._hiddenObjects = [];\r\n this._objectsAlreadyHidden = false;\r\n };\r\n /**\r\n * Checks if there are elements that absolutely need to be validated before\r\n * export.\r\n *\r\n * If there are invalid elements, it will await for them to be validated.\r\n *\r\n * @return Promise\r\n */\r\n Export.prototype.awaitValidSprites = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var promises;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n promises = [];\r\n if (this.validateSprites.length) {\r\n $array.each(this.validateSprites, function (sprite, index) {\r\n if (sprite.invalid) {\r\n promises.push(new Promise(function (resolve, reject) {\r\n sprite.events.once(\"validated\", function (ev) {\r\n resolve();\r\n });\r\n }));\r\n }\r\n });\r\n }\r\n if (!promises.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, Promise.all(promises)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Export.prototype.processConfig = function (config) {\r\n registry.registeredClasses[\"ExportMenu\"] = ExportMenu;\r\n if (config) {\r\n // Set up menu\r\n if ($type.hasValue(config.menu) && !$type.hasValue(config.menu.type)) {\r\n config.menu.type = \"ExportMenu\";\r\n }\r\n if ($type.hasValue(config.dataFields) && $type.isObject(config.dataFields)) {\r\n this.dataFields = config.dataFields;\r\n delete config.dataFields;\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * XLINK namespace definition.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Export.XLINK = \"http://www.w3.org/1999/xlink\";\r\n return Export;\r\n}(Validatable));\r\nexport { Export };\r\n//# sourceMappingURL=Export.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { dataLoader } from \"./DataLoader\";\r\nimport { JSONParser } from \"./JSONParser\";\r\nimport { CSVParser } from \"./CSVParser\";\r\nimport { BaseObjectEvents } from \"../Base\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { DateFormatter } from \"../formatters/DateFormatter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n;\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents a single data source - external file with all of its settings,\r\n * such as format, data parsing, etc.\r\n *\r\n * ```TypeScript\r\n * chart.dataSource.url = \"http://www.myweb.com/data.json\";\r\n * chart.dataSource.parser = am4core.JSONParser;\r\n * ```\r\n * ```JavaScript\r\n * chart.dataSource.url = \"http://www.myweb.com/data.json\";\r\n * chart.dataSource.parser = am4core.JSONParser;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"dataSource\": {\r\n * \"url\": \"http://www.myweb.com/data.json\",\r\n * \"parser\": \"JSONParser\"\r\n * },\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @see {@link IDataSourceEvents} for a list of available events\r\n * @see {@link IDataSourceAdapters} for a list of available Adapters\r\n */\r\nvar DataSource = /** @class */ (function (_super) {\r\n __extends(DataSource, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DataSource(url, parser) {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Adapter.\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * Custom options for HTTP(S) request.\r\n */\r\n _this._requestOptions = {};\r\n /**\r\n * If set to `true`, any subsequent data loads will be considered incremental\r\n * (containing only new data points that are supposed to be added to existing\r\n * data).\r\n *\r\n * NOTE: this setting works only with element's `data` property. It won't\r\n * work with any other externally-loadable data property.\r\n *\r\n * @default false\r\n */\r\n _this._incremental = false;\r\n /**\r\n * A collection of key/value pairs to attach to a data source URL when making\r\n * an incremental request.\r\n */\r\n _this._incrementalParams = {};\r\n /**\r\n * This setting is used only when `incremental = true`. If set to `true`,\r\n * it will try to retain the same number of data items across each load.\r\n *\r\n * E.g. if incremental load yeilded 5 new records, then 5 items from the\r\n * beginning of data will be removed so that we end up with the same number\r\n * of data items.\r\n *\r\n * @default false\r\n */\r\n _this._keepCount = false;\r\n /**\r\n * If set to `true`, each subsequent load will be treated as an update to\r\n * currently loaded data, meaning that it will try to update values on\r\n * existing data items, not overwrite the whole data.\r\n *\r\n * This will work faster than complete update, and also will animate the\r\n * values to their new positions.\r\n *\r\n * Data sources across loads must contain the same number of data items.\r\n *\r\n * Loader will not truncate the data set if loaded data has fewer data items,\r\n * and if it is longer, the excess data items will be ignored.\r\n *\r\n * @default false\r\n * @since 4.5.5\r\n */\r\n _this._updateCurrentData = false;\r\n /**\r\n * Will show loading indicator when loading files.\r\n */\r\n _this.showPreloader = true;\r\n _this.className = \"DataSource\";\r\n // Set defaults\r\n if (url) {\r\n _this.url = url;\r\n }\r\n // Set parser\r\n if (parser) {\r\n if (typeof parser == \"string\") {\r\n _this.parser = dataLoader.getParserByType(parser);\r\n }\r\n else {\r\n _this.parser = parser;\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Processes the loaded data.\r\n *\r\n * @ignore Exclude from docs\r\n * @param data Raw (unparsed) data\r\n * @param contentType Content type of the loaded data (optional)\r\n */\r\n DataSource.prototype.processData = function (data, contentType) {\r\n // Parsing started\r\n this.dispatchImmediately(\"parsestarted\");\r\n // Check if parser is set\r\n if (!this.parser) {\r\n // Try to resolve from data\r\n this.parser = dataLoader.getParserByData(data, contentType);\r\n if (!this.parser) {\r\n // We have a problem - nobody knows what to do with the data\r\n // Raise error\r\n if (this.events.isEnabled(\"parseerror\")) {\r\n var event_1 = {\r\n type: \"parseerror\",\r\n message: this.language.translate(\"No parser available for file: %1\", null, this.url),\r\n target: this\r\n };\r\n this.events.dispatchImmediately(\"parseerror\", event_1);\r\n }\r\n this.dispatchImmediately(\"parseended\");\r\n return;\r\n }\r\n }\r\n // Apply options adapters\r\n this.parser.options = this.adapter.apply(\"parserOptions\", this.parser.options);\r\n this.parser.options.dateFields = this.adapter.apply(\"dateFields\", this.parser.options.dateFields || []);\r\n this.parser.options.numberFields = this.adapter.apply(\"numberFields\", this.parser.options.numberFields || []);\r\n // Check if we need to pass in date formatter\r\n if (this.parser.options.dateFields && !this.parser.options.dateFormatter) {\r\n this.parser.options.dateFormatter = this.dateFormatter;\r\n }\r\n // Parse\r\n this.data = this.adapter.apply(\"parsedData\", this.parser.parse(this.adapter.apply(\"unparsedData\", data)));\r\n // Check for parsing errors\r\n if (!$type.hasValue(this.data) && this.events.isEnabled(\"parseerror\")) {\r\n var event_2 = {\r\n type: \"parseerror\",\r\n message: this.language.translate(\"Error parsing file: %1\", null, this.url),\r\n target: this\r\n };\r\n this.events.dispatchImmediately(\"parseerror\", event_2);\r\n }\r\n // Wrap up\r\n this.dispatchImmediately(\"parseended\");\r\n if ($type.hasValue(this.data)) {\r\n this.dispatchImmediately(\"done\", {\r\n \"data\": this.data\r\n });\r\n }\r\n // The component is responsible for updating its own data vtriggered via\r\n // events.\r\n // Update last data load\r\n this.lastLoad = new Date();\r\n };\r\n Object.defineProperty(DataSource.prototype, \"url\", {\r\n /**\r\n * @return URL\r\n */\r\n get: function () {\r\n // Get URL\r\n var url = this.disableCache\r\n ? this.timestampUrl(this._url)\r\n : this._url;\r\n // Add incremental params\r\n if (this.incremental && this.component.data.length) {\r\n url = this.addUrlParams(url, this.incrementalParams);\r\n }\r\n return this.adapter.apply(\"url\", url);\r\n },\r\n /**\r\n * URL of the data source.\r\n *\r\n * @param value URL\r\n */\r\n set: function (value) {\r\n this._url = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"requestOptions\", {\r\n /**\r\n * @return Options\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"requestOptions\", this._requestOptions);\r\n },\r\n /**\r\n * Custom options for HTTP(S) request.\r\n *\r\n * At this moment the only option supported is: `requestHeaders`, which holds\r\n * an array of objects for custom request headers, e.g.:\r\n *\r\n * ```TypeScript\r\n * chart.dataSource.requestOptions.requestHeaders = [{\r\n * \"key\": \"x-access-token\",\r\n * \"value\": \"123456789\"\r\n * }];\r\n * ``````JavaScript\r\n * chart.dataSource.requestOptions.requestHeaders = [{\r\n * \"key\": \"x-access-token\",\r\n * \"value\": \"123456789\"\r\n * }];\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"dataSource\": {\r\n * // ...\r\n * \"requestOptions\": {\r\n * \"requestHeaders\": [{\r\n * \"key\": \"x-access-token\",\r\n * \"value\": \"123456789\"\r\n * }]\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * NOTE: setting this options on an-already loaded DataSource will not\r\n * trigger a reload.\r\n *\r\n * @param value Options\r\n */\r\n set: function (value) {\r\n this._requestOptions = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"parser\", {\r\n /**\r\n * @return Data parser\r\n */\r\n get: function () {\r\n if (!this._parser) {\r\n this._parser = new JSONParser();\r\n }\r\n return this.adapter.apply(\"parser\", this._parser);\r\n },\r\n /**\r\n * A parser to be used to parse data.\r\n *\r\n * ```TypeScript\r\n * chart.dataSource.url = \"http://www.myweb.com/data.json\";\r\n * chart.dataSource.parser = am4core.JSONParser;\r\n * ```\r\n * ```JavaScript\r\n * chart.dataSource.url = \"http://www.myweb.com/data.json\";\r\n * chart.dataSource.parser = am4core.JSONParser;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"dataSource\": {\r\n * \"url\": \"http://www.myweb.com/data.json\",\r\n * \"parser\": {\r\n * \"type\": \"JSONParser\"\r\n * }\r\n * },\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @default JSONParser\r\n * @param value Data parser\r\n */\r\n set: function (value) {\r\n this._parser = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"reloadFrequency\", {\r\n /**\r\n * @return Reload frequency (ms)\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"reloadTimeout\", this._reloadFrequency);\r\n },\r\n /**\r\n * Data source reload frequency.\r\n *\r\n * If set, it will reload the same URL every X milliseconds.\r\n *\r\n * @param value Reload frequency (ms)\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this._reloadFrequency != value) {\r\n this._reloadFrequency = value;\r\n // Should we schedule a reload?\r\n if (value) {\r\n if (!$type.hasValue(this._reloadDisposer)) {\r\n this._reloadDisposer = this.events.on(\"ended\", function (ev) {\r\n _this._reloadTimeout = setTimeout(function () {\r\n _this.load();\r\n }, _this.reloadFrequency);\r\n });\r\n }\r\n }\r\n else if ($type.hasValue(this._reloadDisposer)) {\r\n this._reloadDisposer.dispose();\r\n this._reloadDisposer = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"incremental\", {\r\n /**\r\n * @return Incremental load?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"incremental\", this._incremental);\r\n },\r\n /**\r\n * Should subsequent reloads be treated as incremental?\r\n *\r\n * Incremental loads will assume that they contain only new data items\r\n * since the last load.\r\n *\r\n * If `incremental = false` the loader will replace all of the target's\r\n * data with each load.\r\n *\r\n * This setting does not have any effect trhe first time data is loaded.\r\n *\r\n * NOTE: this setting works only with element's `data` property. It won't\r\n * work with any other externally-loadable data property.\r\n *\r\n * @default false\r\n * @param Incremental load?\r\n */\r\n set: function (value) {\r\n this._incremental = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"incrementalParams\", {\r\n /**\r\n * @return Incremental request parameters\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"incrementalParams\", this._incrementalParams);\r\n },\r\n /**\r\n * An object consisting of key/value pairs to apply to an URL when data\r\n * source is making an incremental request.\r\n *\r\n * @param value Incremental request parameters\r\n */\r\n set: function (value) {\r\n this._incrementalParams = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"keepCount\", {\r\n /**\r\n * @return keepCount load?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"keepCount\", this._keepCount);\r\n },\r\n /**\r\n * This setting is used only when `incremental = true`. If set to `true`,\r\n * it will try to retain the same number of data items across each load.\r\n *\r\n * E.g. if incremental load yeilded 5 new records, then 5 items from the\r\n * beginning of data will be removed so that we end up with the same number\r\n * of data items.\r\n *\r\n * @default false\r\n * @param Keep record count?\r\n */\r\n set: function (value) {\r\n this._keepCount = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"updateCurrentData\", {\r\n /**\r\n * @return Update current data?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"updateCurrentData\", this._updateCurrentData);\r\n },\r\n /**\r\n * If set to `true`, each subsequent load will be treated as an update to\r\n * currently loaded data, meaning that it will try to update values on\r\n * existing data items, not overwrite the whole data.\r\n *\r\n * This will work faster than complete update, and also will animate the\r\n * values to their new positions.\r\n *\r\n * Data sources across loads must contain the same number of data items.\r\n *\r\n * Loader will not truncate the data set if loaded data has fewer data items,\r\n * and if it is longer, the excess data items will be ignored.\r\n *\r\n * NOTE: this setting is ignored if `incremental = true`.\r\n *\r\n * @default false\r\n * @since 2.5.5\r\n * @param Update current data?\r\n */\r\n set: function (value) {\r\n this._updateCurrentData = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"language\", {\r\n /**\r\n * @return A [[Language]] instance to be used\r\n */\r\n get: function () {\r\n if (this._language) {\r\n return this._language;\r\n }\r\n else if (this.component) {\r\n this._language = this.component.language;\r\n return this._language;\r\n }\r\n this.language = new Language();\r\n return this.language;\r\n },\r\n /**\r\n * Language instance to use.\r\n *\r\n * Will inherit and use chart's language, if not set.\r\n *\r\n * @param value An instance of Language\r\n */\r\n set: function (value) {\r\n this._language = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSource.prototype, \"dateFormatter\", {\r\n /**\r\n * @return A [[DateFormatter]] instance to be used\r\n */\r\n get: function () {\r\n if (this._dateFormatter) {\r\n return this._dateFormatter;\r\n }\r\n else if (this.component) {\r\n this._dateFormatter = this.component.dateFormatter;\r\n return this._dateFormatter;\r\n }\r\n this.dateFormatter = new DateFormatter();\r\n return this.dateFormatter;\r\n },\r\n /**\r\n * A [[DateFormatter]] to use when parsing dates from string formats.\r\n *\r\n * Will inherit and use chart's DateFormatter if not ser.\r\n *\r\n * @param value An instance of [[DateFormatter]]\r\n */\r\n set: function (value) {\r\n this._dateFormatter = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds current timestamp to the URL.\r\n *\r\n * @param url Source URL\r\n * @return Timestamped URL\r\n */\r\n DataSource.prototype.timestampUrl = function (url) {\r\n var tstamp = new Date().getTime().toString();\r\n var params = {};\r\n params[tstamp] = \"\";\r\n return this.addUrlParams(url, params);\r\n };\r\n /**\r\n * Disposes of this object.\r\n */\r\n DataSource.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n if (this._reloadTimeout) {\r\n clearTimeout(this._reloadTimeout);\r\n }\r\n if ($type.hasValue(this._reloadDisposer)) {\r\n this._reloadDisposer.dispose();\r\n this._reloadDisposer = undefined;\r\n }\r\n };\r\n /**\r\n * Initiate the load.\r\n *\r\n * All loading in JavaScript is asynchronous. This function will trigger the\r\n * load and will exit immediately.\r\n *\r\n * Use DataSource's events to watch for loaded data and errors.\r\n */\r\n DataSource.prototype.load = function () {\r\n if (this.url) {\r\n if (this._reloadTimeout) {\r\n clearTimeout(this._reloadTimeout);\r\n }\r\n dataLoader.load(this);\r\n }\r\n };\r\n /**\r\n * Adds parameters to `url` as query strings. Will take care of proper\r\n * separators.\r\n *\r\n * @param url Source URL\r\n * @param params Parameters\r\n * @return New URL\r\n */\r\n DataSource.prototype.addUrlParams = function (url, params) {\r\n var join = url.match(/\\?/) ? \"&\" : \"?\";\r\n var add = [];\r\n $object.each(params, function (key, value) {\r\n if (value != \"\") {\r\n add.push(key + \"=\" + encodeURIComponent(value));\r\n }\r\n else {\r\n add.push(key);\r\n }\r\n });\r\n if (add.length) {\r\n return url + join + add.join(\"&\");\r\n }\r\n return url;\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n DataSource.prototype.processConfig = function (config) {\r\n registry.registeredClasses[\"json\"] = JSONParser;\r\n registry.registeredClasses[\"JSONParser\"] = JSONParser;\r\n registry.registeredClasses[\"csv\"] = CSVParser;\r\n registry.registeredClasses[\"CSVParser\"] = CSVParser;\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return DataSource;\r\n}(BaseObjectEvents));\r\nexport { DataSource };\r\n//# sourceMappingURL=DataSource.js.map","/**\r\n * Pointed rectangle module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PointedShape } from \"./PointedShape\";\r\nimport * as $math from \"../utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a rectangle with a pointer.\r\n *\r\n * @see {@link IPointedRectangleEvents} for a list of available events\r\n * @see {@link IPointedRectangleAdapters} for a list of available Adapters\r\n */\r\nvar PointedRectangle = /** @class */ (function (_super) {\r\n __extends(PointedRectangle, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PointedRectangle() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PointedRectangle\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.cornerRadius = 6;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PointedRectangle.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var cr = this.cornerRadius;\r\n var w = this.innerWidth;\r\n var h = this.innerHeight;\r\n if (w > 0 && h > 0) {\r\n var x = this.pointerX;\r\n var y = this.pointerY;\r\n var bwh = this.pointerBaseWidth / 2;\r\n var maxcr = $math.min(w / 2, h / 2);\r\n var crtl = $math.fitToRange(cr, 0, maxcr);\r\n var crtr = $math.fitToRange(cr, 0, maxcr);\r\n var crbr = $math.fitToRange(cr, 0, maxcr);\r\n var crbl = $math.fitToRange(cr, 0, maxcr);\r\n // corner coordinates\r\n // top left\r\n var xtl = 0;\r\n var ytl = 0;\r\n // top right\r\n var xtr = w;\r\n var ytr = 0;\r\n // bottom right\r\n var xbr = w;\r\n var ybr = h;\r\n // bottom left\r\n var xbl = 0;\r\n var ybl = h;\r\n var lineT = void 0;\r\n var lineR = void 0;\r\n var lineB = void 0;\r\n var lineL = void 0;\r\n // find stem base side: http://$math.stackexchange.com/questions/274712/calculate-on-which-side-of-straign-line-is-dot-located\r\n // d=(x−x1)(y2−y1)−(y−y1)(x2−x1)\r\n var d1 = (x - xtl) * (ybr - ytl) - (y - ytl) * (xbr - xtl);\r\n var d2 = (x - xbl) * (ytr - ybl) - (y - ybl) * (xtr - xbl);\r\n // top\r\n if (d1 > 0 && d2 > 0) {\r\n var stemX = $math.fitToRange(x, crtl + bwh, w - bwh - crtr);\r\n y = $math.fitToRange(y, -Infinity, 0);\r\n lineT = \"M\" + crtl + \",0 L\" + (stemX - bwh) + \",0 L\" + x + \",\" + y + \" L\" + (stemX + bwh) + \",0 L\" + (w - crtr) + \",0\";\r\n }\r\n else {\r\n lineT = \"M\" + crtl + \",0 L\" + (w - crtr) + \",0\";\r\n }\r\n // bottom\r\n if (d1 < 0 && d2 < 0) {\r\n var stemX = $math.fitToRange(x, crbl + bwh, w - bwh - crbr);\r\n y = $math.fitToRange(y, h, Infinity);\r\n lineB = \" L\" + (w - crbr) + \",\" + h + \" L\" + (stemX + bwh) + \",\" + h + \" L\" + x + \",\" + y + \" L\" + (stemX - bwh) + \",\" + h + \" L\" + crbl + \",\" + h;\r\n }\r\n else {\r\n lineB = \" L\" + crbl + \",\" + h;\r\n }\r\n // left\r\n if (d1 < 0 && d2 > 0) {\r\n var stemY = $math.fitToRange(y, crtl + bwh, h - crbl - bwh);\r\n x = $math.fitToRange(x, -Infinity, 0);\r\n lineL = \" L0,\" + (h - crbl) + \" L0,\" + (stemY + bwh) + \" L\" + x + \",\" + y + \" L0,\" + (stemY - bwh) + \" L0,\" + crtl;\r\n }\r\n else {\r\n lineL = \" L0,\" + crtl;\r\n }\r\n // right\r\n if (d1 > 0 && d2 < 0) {\r\n var stemY = $math.fitToRange(y, crtr + bwh, h - bwh - crbr);\r\n x = $math.fitToRange(x, w, Infinity);\r\n lineR = \" L\" + w + \",\" + crtr + \" L\" + w + \",\" + (stemY - bwh) + \" L\" + x + \",\" + y + \" L\" + w + \",\" + (stemY + bwh) + \" L\" + w + \",\" + (h - crbr);\r\n }\r\n else {\r\n lineR = \" L\" + w + \",\" + (h - crbr);\r\n }\r\n var arcTR = \" a\" + crtr + \",\" + crtr + \" 0 0 1 \" + crtr + \",\" + crtr;\r\n var arcBR = \" a\" + crbr + \",\" + crbr + \" 0 0 1 -\" + crbr + \",\" + crbr;\r\n var arcBL = \" a\" + crbl + \",\" + crbl + \" 0 0 1 -\" + crbl + \",-\" + crbl;\r\n var arcTL = \" a\" + crtl + \",\" + crtl + \" 0 0 1 \" + crtl + \",-\" + crtl;\r\n this.path = lineT + arcTR + lineR + arcBR + lineB + arcBL + lineL + arcTL;\r\n }\r\n };\r\n Object.defineProperty(PointedRectangle.prototype, \"cornerRadius\", {\r\n /**\r\n * @return Corner radius (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadius\");\r\n },\r\n /**\r\n * Radius of rectangle's border in pixels.\r\n *\r\n * @default 0\r\n * @param value Corner radius (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cornerRadius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PointedRectangle;\r\n}(PointedShape));\r\nexport { PointedRectangle };\r\n//# sourceMappingURL=PointedRectangle.js.map","/**\r\n * Pointed shape module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a shape with a pointer.\r\n *\r\n * @see {@link IPointedShapeEvents} for a list of available events\r\n * @see {@link IPointedShapeAdapters} for a list of available Adapters\r\n */\r\nvar PointedShape = /** @class */ (function (_super) {\r\n __extends(PointedShape, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PointedShape() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PointedShape\";\r\n _this.pointerBaseWidth = 15;\r\n _this.pointerLength = 10;\r\n _this.pointerY = 0;\r\n _this.pointerX = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PointedShape.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (!$type.isNumber(this.pointerX)) {\r\n this.pointerX = this.pixelWidth / 2;\r\n }\r\n if (!$type.isNumber(this.pointerY)) {\r\n this.pointerY = this.pixelHeight + 10;\r\n }\r\n };\r\n Object.defineProperty(PointedShape.prototype, \"pointerBaseWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pointerBaseWidth\");\r\n },\r\n /**\r\n * A width of the pinter's (stem's) thick end (base) in pixels.\r\n *\r\n * @default 15\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"pointerBaseWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointedShape.prototype, \"pointerLength\", {\r\n /**\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pointerLength\");\r\n },\r\n /**\r\n * A length of the pinter (stem) in pixels.\r\n *\r\n * @default 10\r\n * @param value Length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"pointerLength\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointedShape.prototype, \"pointerX\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pointerX\");\r\n },\r\n /**\r\n * X coordinate the shape is pointing to.\r\n *\r\n * @param value X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"pointerX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointedShape.prototype, \"pointerY\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pointerY\");\r\n },\r\n /**\r\n * Y coordinate the shape is pointing to.\r\n *\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"pointerY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PointedShape;\r\n}(Sprite));\r\nexport { PointedShape };\r\n//# sourceMappingURL=PointedShape.js.map","/**\r\n * Module for \"Drop Shadow\" filter.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter } from \"./Filter\";\r\nimport { color } from \"../../utils/Color\";\r\nimport { registry } from \"../../Registry\";\r\n;\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creats a \"Drop Shadow\" filter.\r\n */\r\nvar DropShadowFilter = /** @class */ (function (_super) {\r\n __extends(DropShadowFilter, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DropShadowFilter() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DropShadowFilter\";\r\n // Create elements\r\n // NOTE: we do not need to add each individual element to `_disposers`\r\n // because `filterPrimitives` has an event handler which automatically adds\r\n // anything added to it to `_disposers`\r\n _this.color = color(\"#000\");\r\n _this.feGaussianBlur = _this.paper.add(\"feGaussianBlur\");\r\n _this.feGaussianBlur.attr({ \"result\": \"blurOut\", \"in\": \"SourceGraphic\" });\r\n _this.filterPrimitives.push(_this.feGaussianBlur);\r\n _this.feOffset = _this.paper.add(\"feOffset\");\r\n _this.feOffset.attr({ \"result\": \"offsetBlur\" });\r\n _this.filterPrimitives.push(_this.feOffset);\r\n _this.feFlood = _this.paper.add(\"feFlood\");\r\n _this.feFlood.attr({ \"flood-color\": _this.color });\r\n _this.filterPrimitives.push(_this.feFlood);\r\n _this.feComposite = _this.paper.add(\"feComposite\");\r\n _this.feComposite.attr({ \"in2\": \"offsetBlur\", operator: \"in\" });\r\n _this.filterPrimitives.push(_this.feComposite);\r\n _this.feMerge = _this.paper.addGroup(\"feMerge\");\r\n _this.feMerge.add(_this.paper.add(\"feMergeNode\"));\r\n _this.feMerge.add(_this.paper.add(\"feMergeNode\").attr({ \"in\": \"SourceGraphic\" }));\r\n _this.filterPrimitives.push(_this.feMerge);\r\n // Set default properties\r\n _this.width = 200;\r\n _this.height = 200;\r\n _this.blur = 1.5;\r\n _this.dx = 3;\r\n _this.dy = 3;\r\n _this.opacity = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DropShadowFilter.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Shadow color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.properties.color = value;\r\n if (this.feFlood) {\r\n this.feFlood.attr({ \"flood-color\": value });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"opacity\", {\r\n /**\r\n * @return Opacity (0-1)\r\n */\r\n get: function () {\r\n return this.properties.opacity;\r\n },\r\n /**\r\n * Opacity of the shadow. (0-1)\r\n *\r\n * @param value Opacity (0-1)\r\n */\r\n set: function (value) {\r\n this.properties.opacity = value;\r\n this.feFlood.attr({ \"flood-opacity\": value });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"dx\", {\r\n /**\r\n * @return Horizontal offset (px)\r\n */\r\n get: function () {\r\n return this.properties.dx;\r\n },\r\n /**\r\n * Horizontal offset in pixels.\r\n *\r\n * @param value Horizontal offset (px)\r\n */\r\n set: function (value) {\r\n this.properties.dx = value;\r\n this.feOffset.attr({ \"dx\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"dy\", {\r\n /**\r\n * @return Vertical offset (px)\r\n */\r\n get: function () {\r\n return this.properties.dy;\r\n },\r\n /**\r\n * Vertical offset in pixels.\r\n *\r\n * @param value Vertical offset (px)\r\n */\r\n set: function (value) {\r\n this.properties.dy = value;\r\n this.feOffset.attr({ \"dy\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropShadowFilter.prototype, \"blur\", {\r\n /**\r\n * @return Blur\r\n */\r\n get: function () {\r\n return this.properties.blur;\r\n },\r\n /**\r\n * Blur.\r\n *\r\n * @param value Blur\r\n */\r\n set: function (value) {\r\n this.properties.blur = value;\r\n this.feGaussianBlur.attr({ \"stdDeviation\": value / this.scale });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [updateScale description]\r\n *\r\n * @todo Description\r\n */\r\n DropShadowFilter.prototype.updateScale = function () {\r\n this.dx = this.dx;\r\n this.dy = this.dy;\r\n this.blur = this.blur;\r\n };\r\n return DropShadowFilter;\r\n}(Filter));\r\nexport { DropShadowFilter };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DropShadowFilter\"] = DropShadowFilter;\r\n//# sourceMappingURL=DropShadowFilter.js.map","/**\r\n * Functionality for drawing a trapezoid.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw a Trapezoid.\r\n *\r\n * @see {@link ITrapezoidEvents} for a list of available events\r\n * @see {@link ITrapezoidAdapters} for a list of available Adapters\r\n */\r\nvar Trapezoid = /** @class */ (function (_super) {\r\n __extends(Trapezoid, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Trapezoid() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Trapezoid\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.topSide = percent(100);\r\n _this.bottomSide = percent(100);\r\n _this.leftSide = percent(100);\r\n _this.rightSide = percent(100);\r\n _this.isMeasured = false; // todo: add measureElement\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Trapezoid.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.pixelWidth;\r\n var h = this.pixelHeight;\r\n var ts = $utils.relativeToValue(this.topSide, w);\r\n var bs = $utils.relativeToValue(this.bottomSide, w);\r\n var ls = $utils.relativeToValue(this.leftSide, h);\r\n var rs = $utils.relativeToValue(this.rightSide, h);\r\n // 1----2\r\n // | |\r\n // 4----3\r\n var x0 = (w - ts) / 2;\r\n var y0 = (h - ls) / 2;\r\n var x1 = w - (w - ts) / 2;\r\n var y1 = (h - rs) / 2;\r\n var x2 = w - (w - bs) / 2;\r\n var y2 = h - (h - rs) / 2;\r\n var x3 = (w - bs) / 2;\r\n var y3 = h - (h - ls) / 2;\r\n var mt = \"\";\r\n var mr = \"\";\r\n var mb = \"\";\r\n var ml = \"\";\r\n if ($type.hasValue(this.horizontalNeck)) {\r\n var hn = this.horizontalNeck.value;\r\n mt = $path.lineTo({ x: w * hn, y: Math.max(y0, y1) });\r\n mb = $path.lineTo({ x: w * hn, y: Math.min(y2, y3) });\r\n }\r\n if ($type.hasValue(this.verticalNeck)) {\r\n var vn = this.verticalNeck.value;\r\n mr = $path.lineTo({ x: Math.min(x1, x2), y: h * vn });\r\n ml = $path.lineTo({ x: Math.max(x0, x3), y: h * vn });\r\n }\r\n var path = $path.moveTo({ x: x0, y: y0 })\r\n + mt\r\n + $path.lineTo({ x: x1, y: y1 })\r\n + mr\r\n + $path.lineTo({ x: x2, y: y2 })\r\n + mb\r\n + $path.lineTo({ x: x3, y: y3 })\r\n + ml;\r\n this.path = path;\r\n };\r\n Object.defineProperty(Trapezoid.prototype, \"topSide\", {\r\n /**\r\n * @return Width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"topSide\");\r\n },\r\n /**\r\n * Wdith of the top side. Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(100)\r\n * @param value Width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"topSide\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Trapezoid.prototype, \"bottomSide\", {\r\n /**\r\n * @return Width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bottomSide\");\r\n },\r\n /**\r\n * Wdith of the bottom side. Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(100)\r\n * @param value Width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"bottomSide\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Trapezoid.prototype, \"leftSide\", {\r\n /**\r\n * @return Height\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"leftSide\");\r\n },\r\n /**\r\n * Height of the left side. Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(100)\r\n * @param value Height\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"leftSide\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Trapezoid.prototype, \"rightSide\", {\r\n /**\r\n * @return Height\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"rightSide\");\r\n },\r\n /**\r\n * Height of the right side. Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(100)\r\n * @param value Height\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"rightSide\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Trapezoid.prototype, \"horizontalNeck\", {\r\n /**\r\n * @return Horizontal neck position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"horizontalNeck\");\r\n },\r\n /**\r\n * A relative vertical position of the \"neck\". If the top and bottom sides\r\n * are of different width, and `horizontalNeck` is set, a choke point\r\n * will be created at that position, creating a funnel shape.\r\n *\r\n * @param value Horizontal neck position\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"horizontalNeck\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Trapezoid.prototype, \"verticalNeck\", {\r\n /**\r\n * @return Vertical neck position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"verticalNeck\");\r\n },\r\n /**\r\n * A relative horizontal position of the \"neck\". If the left and right sides\r\n * are of different height, and `verticalNeck` is set, a choke point\r\n * will be created at that position, creating a funnel shape.\r\n *\r\n * @param value Vertical neck position\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"verticalNeck\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Trapezoid;\r\n}(Sprite));\r\nexport { Trapezoid };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Trapezoid\"] = Trapezoid;\r\n//# sourceMappingURL=Trapezoid.js.map","/**\r\n * Zoom out button functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a zoom out button.\r\n *\r\n * @see {@link IZoomOutButtonEvents} for a list of available events\r\n * @see {@link IZoomOutButtonAdapters} for a list of available Adapters\r\n */\r\nvar ZoomOutButton = /** @class */ (function (_super) {\r\n __extends(ZoomOutButton, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ZoomOutButton() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"ZoomOutButton\";\r\n _this.padding(9, 9, 9, 9);\r\n //this.dx = - 5;\r\n //this.dy = 5;\r\n _this.showSystemTooltip = true;\r\n var interfaceColors = new InterfaceColorSet();\r\n var background = _this.background;\r\n background.cornerRadius(20, 20, 20, 20);\r\n background.fill = interfaceColors.getFor(\"primaryButton\");\r\n background.stroke = interfaceColors.getFor(\"primaryButtonStroke\");\r\n background.strokeOpacity = 0;\r\n background.states.getKey(\"hover\").properties.fill = interfaceColors.getFor(\"primaryButtonHover\");\r\n background.states.getKey(\"down\").properties.fill = interfaceColors.getFor(\"primaryButtonActive\");\r\n // Create an icon\r\n var icon = new Sprite();\r\n icon.element = _this.paper.add(\"path\");\r\n var path = $path.moveTo({ x: 0, y: 0 });\r\n path += $path.lineTo({ x: 11, y: 0 });\r\n icon.path = path;\r\n icon.pixelPerfect = true;\r\n icon.padding(8, 3, 8, 3);\r\n icon.stroke = interfaceColors.getFor(\"primaryButtonText\");\r\n _this.icon = icon;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n ZoomOutButton.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Zoom Out\");\r\n }\r\n };\r\n return ZoomOutButton;\r\n}(Button));\r\nexport { ZoomOutButton };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ZoomOutButton\"] = ZoomOutButton;\r\n//# sourceMappingURL=ZoomOutButton.js.map","/**\r\n * Cone module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../Container\";\r\nimport { Sprite, visualProperties } from \"../../Sprite\";\r\nimport { Ellipse } from \"../../elements/Ellipse\";\r\nimport { LinearGradientModifier } from \"../../rendering/fills/LinearGradientModifier\";\r\nimport { percent } from \"../../utils/Percent\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $path from \"../../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Builds a round cone/cylinder.\r\n *\r\n * @see {@link IConeEvents} for a list of available events\r\n * @see {@link IConeAdapters} for a list of available Adapters\r\n */\r\nvar Cone = /** @class */ (function (_super) {\r\n __extends(Cone, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Cone() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Cone\";\r\n _this.angle = 30;\r\n _this.radius = percent(100);\r\n _this.topRadius = percent(100);\r\n _this.top = _this.createChild(Ellipse);\r\n _this.top.shouldClone = false;\r\n _this.bottom = _this.createChild(Ellipse);\r\n _this.bottom.shouldClone = false;\r\n _this.body = _this.createChild(Sprite);\r\n _this.body.shouldClone = false;\r\n _this.body.setElement(_this.paper.add(\"path\"));\r\n _this.layout = \"none\";\r\n _this.bodyFillModifier = new LinearGradientModifier();\r\n _this.bodyFillModifier.lightnesses = [0, -0.25, 0];\r\n _this.body.fillModifier = _this.bodyFillModifier;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Cone.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n $object.copyProperties(this, this.top, visualProperties);\r\n $object.copyProperties(this, this.bottom, visualProperties);\r\n $object.copyProperties(this, this.body, visualProperties);\r\n var w = this.innerWidth;\r\n var h = this.innerHeight;\r\n var bottom = this.bottom;\r\n var top = this.top;\r\n var angle = this.angle;\r\n var radiusBase;\r\n var dx;\r\n var dy;\r\n if (this.orientation == \"horizontal\") {\r\n radiusBase = h / 2;\r\n bottom.y = h / 2;\r\n bottom.x = 0;\r\n top.y = h / 2;\r\n top.x = w;\r\n dx = (90 - angle) / 90;\r\n dy = 0;\r\n this.bodyFillModifier.gradient.rotation = 90;\r\n }\r\n else {\r\n dx = 0;\r\n dy = (90 - angle) / 90;\r\n radiusBase = w / 2;\r\n bottom.y = h;\r\n bottom.x = w / 2;\r\n top.x = w / 2;\r\n this.bodyFillModifier.gradient.rotation = 0;\r\n }\r\n var radius = this.radius.value * radiusBase;\r\n var topRadius = this.topRadius.value * radiusBase;\r\n bottom.radius = radius - radius * dx;\r\n bottom.radiusY = radius - radius * dy;\r\n top.radius = topRadius - topRadius * dx;\r\n top.radiusY = topRadius - topRadius * dy;\r\n var path;\r\n if (this.orientation == \"horizontal\") {\r\n path = $path.moveTo({ x: 0, y: h / 2 - bottom.radiusY }) + $path.arcTo(-90, -180, bottom.radius, bottom.radiusY) + $path.lineTo({ x: w, y: h / 2 + top.radiusY }) + $path.arcTo(90, 180, top.radius, top.radiusY) + $path.closePath();\r\n }\r\n else {\r\n path = $path.moveTo({ x: w / 2 - top.radius, y: 0 }) + $path.arcTo(180, -180, top.radius, top.radiusY) + $path.lineTo({ x: w / 2 + bottom.radius, y: h }) + $path.arcTo(0, 180, bottom.radius, bottom.radiusY) + $path.closePath();\r\n }\r\n this.body.path = path;\r\n };\r\n Object.defineProperty(Cone.prototype, \"angle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * Angle of the point of view to the 3D element. (0-360)\r\n *\r\n * @default 30\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Cone.prototype, \"radius\", {\r\n /**\r\n * @return Bottom radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * A relative radius of the cone's bottom (base).\r\n *\r\n * It is relevant to the inner width or height of the element.\r\n *\r\n * @default Percent(100)\r\n * @param value Bottom radius\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Cone.prototype, \"topRadius\", {\r\n /**\r\n * @return Top radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"topRadius\");\r\n },\r\n /**\r\n * A relative radius of the cone's top (tip).\r\n *\r\n * It is relevant to the inner width or height of the element.\r\n *\r\n * @default Percent(0)\r\n * @param value Top radius\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"topRadius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Cone.prototype, \"orientation\", {\r\n /**\r\n * Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the cone\r\n *\r\n * @default \"vertical\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Cone;\r\n}(Container));\r\nexport { Cone };\r\n//# sourceMappingURL=Cone.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { registry } from \"../../Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for color modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nvar ColorModifier = /** @class */ (function (_super) {\r\n __extends(ColorModifier, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColorModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColorModifier\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Modifies color value.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Original color\r\n * @return Modified\r\n */\r\n ColorModifier.prototype.modify = function (value) {\r\n return value;\r\n };\r\n return ColorModifier;\r\n}(BaseObject));\r\nexport { ColorModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorModifier\"] = ColorModifier;\r\n//# sourceMappingURL=ColorModifier.js.map","/**\r\n * Creates a 3D rectangle.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../Container\";\r\nimport { Sprite } from \"../../Sprite\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $path from \"../../rendering/Path\";\r\nimport { Color, color, toColor } from \"../../utils/Color\";\r\nimport { RadialGradient } from \"../../rendering/fills/RadialGradient\";\r\nimport { LinearGradient } from \"../../rendering/fills/LinearGradient\";\r\nimport { LightenFilter } from \"../../rendering/filters/LightenFilter\";\r\nimport * as $type from \"../../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Builds a 3D rectangle\r\n * @see {@link IRectangle3DEvents} for a list of available events\r\n * @see {@link IRectangle3DAdapters} for a list of available Adapters\r\n */\r\nvar Rectangle3D = /** @class */ (function (_super) {\r\n __extends(Rectangle3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Rectangle3D() {\r\n var _this = _super.call(this) || this;\r\n _this.angle = 30;\r\n _this.depth = 30;\r\n _this.className = \"Rectangle3D\";\r\n _this.layout = \"none\";\r\n var sideBack = _this.createChild(Sprite);\r\n sideBack.shouldClone = false;\r\n sideBack.setElement(_this.paper.add(\"path\"));\r\n sideBack.isMeasured = false;\r\n _this.sideBack = sideBack;\r\n _this._disposers.push(_this.sideBack);\r\n var sideBottom = _this.createChild(Sprite);\r\n sideBottom.shouldClone = false;\r\n sideBottom.setElement(_this.paper.add(\"path\"));\r\n sideBottom.isMeasured = false;\r\n _this.sideBottom = sideBottom;\r\n _this._disposers.push(_this.sideBottom);\r\n var sideLeft = _this.createChild(Sprite);\r\n sideLeft.shouldClone = false;\r\n sideLeft.setElement(_this.paper.add(\"path\"));\r\n sideLeft.isMeasured = false;\r\n _this.sideLeft = sideLeft;\r\n _this._disposers.push(_this.sideLeft);\r\n var sideRight = _this.createChild(Sprite);\r\n sideRight.shouldClone = false;\r\n sideRight.setElement(_this.paper.add(\"path\"));\r\n sideRight.isMeasured = false;\r\n _this.sideRight = sideRight;\r\n _this._disposers.push(_this.sideRight);\r\n var sideTop = _this.createChild(Sprite);\r\n sideTop.shouldClone = false;\r\n sideTop.setElement(_this.paper.add(\"path\"));\r\n sideTop.isMeasured = false;\r\n _this.sideTop = sideTop;\r\n _this._disposers.push(_this.sideTop);\r\n var sideFront = _this.createChild(Sprite);\r\n sideFront.shouldClone = false;\r\n sideFront.setElement(_this.paper.add(\"path\"));\r\n sideFront.isMeasured = false;\r\n _this.sideFront = sideFront;\r\n _this._disposers.push(_this.sideFront);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Rectangle3D.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.innerWidth;\r\n var h = this.innerHeight;\r\n var depth = this.depth;\r\n var angle = this.angle;\r\n var sin = $math.sin(angle);\r\n var cos = $math.cos(angle);\r\n var a = { x: 0, y: 0 };\r\n var b = { x: w, y: 0 };\r\n var c = { x: w, y: h };\r\n var d = { x: 0, y: h };\r\n var ah = { x: depth * cos, y: -depth * sin };\r\n var bh = { x: depth * cos + w, y: -depth * sin };\r\n var ch = { x: depth * cos + w, y: -depth * sin + h };\r\n var dh = { x: depth * cos, y: -depth * sin + h };\r\n this.sideFront.path = $path.moveTo(a) + $path.lineTo(b) + $path.lineTo(c) + $path.lineTo(d) + $path.closePath();\r\n this.sideBack.path = $path.moveTo(ah) + $path.lineTo(bh) + $path.lineTo(ch) + $path.lineTo(dh) + $path.closePath();\r\n this.sideLeft.path = $path.moveTo(a) + $path.lineTo(ah) + $path.lineTo(dh) + $path.lineTo(d) + $path.closePath();\r\n this.sideRight.path = $path.moveTo(b) + $path.lineTo(bh) + $path.lineTo(ch) + $path.lineTo(c) + $path.closePath();\r\n this.sideBottom.path = $path.moveTo(d) + $path.lineTo(dh) + $path.lineTo(ch) + $path.lineTo(c) + $path.closePath();\r\n this.sideTop.path = $path.moveTo(a) + $path.lineTo(ah) + $path.lineTo(bh) + $path.lineTo(b) + $path.closePath();\r\n };\r\n Object.defineProperty(Rectangle3D.prototype, \"depth\", {\r\n /**\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth (Z dimension) of the 3D rectangle in pixels.\r\n *\r\n * @default 30\r\n * @param value Depth (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"depth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rectangle3D.prototype, \"angle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * Angle of the point of view to the 3D element. (0-360)\r\n *\r\n * @default 30\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets actual `fill` property on the SVG element, including applicable color\r\n * modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Fill\r\n */\r\n Rectangle3D.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n if (!$type.isObject(value) || \"r\" in value) {\r\n value = toColor(value);\r\n }\r\n var colorStr;\r\n if (value instanceof Color) {\r\n colorStr = value.hex;\r\n }\r\n else if (value instanceof LinearGradient || value instanceof RadialGradient) {\r\n colorStr = value.stops.getIndex(0).color.hex;\r\n }\r\n else {\r\n var filter = new LightenFilter();\r\n filter.lightness = -0.2;\r\n this.sideBack.filters.push(filter);\r\n var filter2 = filter.clone();\r\n filter2.lightness = -0.4;\r\n this.sideLeft.filters.push(filter2);\r\n var filter3 = filter.clone();\r\n filter3.lightness = -0.2;\r\n this.sideRight.filters.push(filter3);\r\n var filter4 = filter.clone();\r\n filter4.lightness = -0.1;\r\n this.sideTop.filters.push(filter4);\r\n var filter5 = filter.clone();\r\n filter5.lightness = -0.5;\r\n this.sideBottom.filters.push(filter5);\r\n }\r\n if (colorStr) {\r\n this.sideBack.fill = color(colorStr).lighten(-0.2);\r\n this.sideLeft.fill = color(colorStr).lighten(-0.4);\r\n this.sideRight.fill = color(colorStr).lighten(-0.2);\r\n this.sideTop.fill = color(colorStr).lighten(-0.1);\r\n this.sideBottom.fill = color(colorStr).lighten(-0.5);\r\n }\r\n };\r\n /**\r\n * Copies all properties and related data from a different instance of Rectangle3D.\r\n *\r\n * @param source Source Rectangle3D\r\n */\r\n Rectangle3D.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.sideBack.copyFrom(source.sideBack);\r\n this.sideLeft.copyFrom(source.sideLeft);\r\n this.sideRight.copyFrom(source.sideRight);\r\n this.sideTop.copyFrom(source.sideTop);\r\n this.sideBottom.copyFrom(source.sideBottom);\r\n };\r\n return Rectangle3D;\r\n}(Container));\r\nexport { Rectangle3D };\r\n//# sourceMappingURL=Rectangle3D.js.map","/**\r\n * 3D slice module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Slice } from \"../Slice\";\r\nimport { Sprite } from \"../../Sprite\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $path from \"../../rendering/Path\";\r\nimport * as $type from \"../../utils/Type\";\r\nimport { Color, color } from \"../../utils/Color\";\r\nimport { RadialGradient } from \"../../rendering/fills/RadialGradient\";\r\nimport { LinearGradient } from \"../../rendering/fills/LinearGradient\";\r\nimport { LightenFilter } from \"../../rendering/filters/LightenFilter\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw a 3D slice of a Pie chart.\r\n *\r\n * @see {@link ISlice3DEvents} for a list of available events\r\n * @see {@link ISlice3DAdapters} for a list of available Adapters\r\n */\r\nvar Slice3D = /** @class */ (function (_super) {\r\n __extends(Slice3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Slice3D() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"Slice3D\";\r\n _this.layout = \"none\";\r\n // Create edge container\r\n var edge = _this.createChild(Sprite);\r\n _this.edge = edge;\r\n edge.shouldClone = false;\r\n edge.isMeasured = false;\r\n edge.toBack();\r\n // Set defaults\r\n _this.angle = 30;\r\n _this.depth = 20;\r\n // Create side A element\r\n var sideA = _this.createChild(Sprite);\r\n _this.sideA = sideA;\r\n sideA.shouldClone = false;\r\n sideA.isMeasured = false;\r\n //sideA.setElement(this.paper.add(\"path\"));\r\n //sideA.strokeOpacity = 0;\r\n // Crate side B element\r\n var sideB = _this.createChild(Sprite);\r\n _this.sideB = sideB;\r\n sideB.shouldClone = false;\r\n sideB.isMeasured = false;\r\n //sideB.setElement(this.paper.add(\"path\"));\r\n //sideB.strokeOpacity = 0;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets actual `fill` property on the SVG element, including applicable color\r\n * modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Fill\r\n */\r\n Slice3D.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n var colorStr;\r\n if (value instanceof Color) {\r\n colorStr = value.hex;\r\n }\r\n else if (value instanceof LinearGradient || value instanceof RadialGradient) {\r\n colorStr = value.stops.getIndex(0).color.hex;\r\n }\r\n else {\r\n var filter = new LightenFilter();\r\n filter.lightness = -0.25;\r\n this.edge.filters.push(filter);\r\n this.sideA.filters.push(filter.clone());\r\n this.sideB.filters.push(filter.clone());\r\n }\r\n if (colorStr) {\r\n var edgeFill = color(colorStr).lighten(-0.25);\r\n this.edge.fill = edgeFill;\r\n this.sideA.fill = edgeFill;\r\n this.sideB.fill = edgeFill;\r\n this.edge.stroke = edgeFill;\r\n this.sideA.stroke = edgeFill;\r\n this.sideB.stroke = edgeFill;\r\n }\r\n };\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Slice3D.prototype.draw = function () {\r\n this.cornerRadius = 0;\r\n this.innerCornerRadius = 0;\r\n _super.prototype.draw.call(this);\r\n if (this.arc !== 0 && this.radius > 0 && this.depth > 0) {\r\n this.sideB.show(0);\r\n this.sideA.show(0);\r\n this.edge.show(0);\r\n var startAngle = this.startAngle;\r\n var arc = this.arc;\r\n var innerRadius = this.pixelInnerRadius || 0;\r\n var radiusY = this.radiusY || 0;\r\n //let cornerRadius = this.cornerRadius || 0;\r\n //let innerCornerRadius = this.innerCornerRadius;\r\n var radius = this.radius;\r\n // this is code duplicate with $path.arc. @todo to think how to avoid it\r\n var endAngle = startAngle + arc;\r\n //let crSin = $math.sin($math.min(arc, 45) / 2);\r\n //innerCornerRadius = innerCornerRadius || cornerRadius;\r\n var innerRadiusY = (radiusY / radius) * innerRadius;\r\n //let cornerRadiusY = (radiusY / radius) * cornerRadius;\r\n //let innerCornerRadiusY = (radiusY / radius) * innerCornerRadius;\r\n //cornerRadius = $math.fitToRange(cornerRadius, 0, (radius - innerRadius) / 2);\r\n //cornerRadiusY = $math.fitToRange(cornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n //innerCornerRadius = $math.fitToRange(innerCornerRadius, 0, (radius - innerRadius) / 2);\r\n //innerCornerRadiusY = $math.fitToRange(innerCornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n //cornerRadius = $math.fitToRange(cornerRadius, 0, radius * crSin);\r\n //cornerRadiusY = $math.fitToRange(cornerRadiusY, 0, radiusY * crSin);\r\n //innerCornerRadius = $math.fitToRange(innerCornerRadius, 0, innerRadius * crSin);\r\n //innerCornerRadiusY = $math.fitToRange(innerCornerRadiusY, 0, innerRadiusY * crSin);\r\n //let crAngle: number = Math.asin(cornerRadius / radius / 2) * $math.DEGREES * 2;\r\n //let crAngleY: number = Math.asin(cornerRadiusY / radiusY / 2) * $math.DEGREES * 2;\r\n //if (innerRadius < innerCornerRadius) {\r\n //\tinnerRadius = innerCornerRadius;\r\n //}\r\n //if (innerRadiusY < innerCornerRadiusY) {\r\n //\tinnerRadiusY = innerCornerRadiusY;\r\n //}\r\n //let crInnerAngle: number = Math.asin(innerCornerRadius / innerRadius / 2) * $math.DEGREES * 2;\r\n //let crInnerAngleY: number = Math.asin(innerCornerRadiusY / innerRadiusY / 2) * $math.DEGREES * 2;\r\n //if (!$type.isNumber(crInnerAngle)) {\r\n //\tcrInnerAngle = 0;\r\n //}\r\n //if (!$type.isNumber(crInnerAngleY)) {\r\n //\tcrInnerAngleY = 0;\r\n //}\r\n //let middleAngle = startAngle + arc / 2;\r\n //let mPoint = { x: $math.round($math.cos(middleAngle) * innerRadius, 4), y: $math.round($math.sin(middleAngle) * innerRadiusY, 4) };\r\n var a0 = { x: $math.cos(startAngle) * (innerRadius), y: $math.sin(startAngle) * (innerRadiusY) };\r\n var b0 = { x: $math.cos(startAngle) * (radius), y: $math.sin(startAngle) * (radiusY) };\r\n var c0 = { x: $math.cos(endAngle) * (radius), y: $math.sin(endAngle) * (radiusY) };\r\n var d0 = { x: $math.cos(endAngle) * (innerRadius), y: $math.sin(endAngle) * (innerRadiusY) };\r\n // end of duplicate\r\n var h = this.depth;\r\n var ah = { x: a0.x, y: a0.y - h };\r\n var bh = { x: b0.x, y: b0.y - h };\r\n var ch = { x: c0.x, y: c0.y - h };\r\n var dh = { x: d0.x, y: d0.y - h };\r\n var edgePath = \"\";\r\n var count = Math.ceil(arc / 5);\r\n var step = arc / count;\r\n var mangle = startAngle;\r\n var prevPoint = bh;\r\n for (var i = 0; i < count; i++) {\r\n mangle += step;\r\n if (mangle > 0 && mangle < 180) {\r\n edgePath += $path.moveTo(prevPoint);\r\n var pp = { x: $math.cos(mangle) * (radius), y: $math.sin(mangle) * (radiusY) - h };\r\n edgePath += $path.lineTo({ x: prevPoint.x, y: prevPoint.y + h });\r\n edgePath += $path.arcToPoint({ x: pp.x, y: pp.y + h }, radius, radiusY, true);\r\n edgePath += $path.lineTo(pp);\r\n edgePath += $path.arcToPoint(prevPoint, radius, radiusY);\r\n edgePath += \"z\";\r\n prevPoint = pp;\r\n }\r\n else {\r\n edgePath += $path.moveTo(prevPoint);\r\n var pp = { x: $math.cos(mangle) * (radius), y: $math.sin(mangle) * (radiusY) - h };\r\n edgePath += $path.arcToPoint(pp, radius, radiusY, true);\r\n edgePath += $path.lineTo({ x: pp.x, y: pp.y + h });\r\n edgePath += $path.arcToPoint({ x: prevPoint.x, y: prevPoint.y + h }, radius, radiusY);\r\n edgePath += $path.lineTo(prevPoint);\r\n edgePath += \"z\";\r\n prevPoint = pp;\r\n }\r\n }\r\n prevPoint = ah;\r\n mangle = startAngle;\r\n for (var i = 0; i < count; i++) {\r\n mangle += step;\r\n if (mangle > 0 && mangle < 180) {\r\n edgePath += $path.moveTo(prevPoint);\r\n var pp = { x: $math.cos(mangle) * (innerRadius), y: $math.sin(mangle) * (innerRadiusY) - h };\r\n edgePath += $path.lineTo({ x: prevPoint.x, y: prevPoint.y + h });\r\n edgePath += $path.arcToPoint({ x: pp.x, y: pp.y + h }, innerRadius, innerRadiusY, true);\r\n edgePath += $path.lineTo(pp);\r\n edgePath += $path.arcToPoint(prevPoint, innerRadius, innerRadiusY);\r\n edgePath += \"z\";\r\n prevPoint = pp;\r\n }\r\n else {\r\n edgePath += $path.moveTo(prevPoint);\r\n var pp = { x: $math.cos(mangle) * (innerRadius), y: $math.sin(mangle) * (innerRadiusY) - h };\r\n edgePath += $path.arcToPoint(pp, innerRadius, innerRadiusY, true);\r\n edgePath += $path.lineTo({ x: pp.x, y: pp.y + h });\r\n edgePath += $path.arcToPoint({ x: prevPoint.x, y: prevPoint.y + h }, innerRadius, innerRadiusY);\r\n edgePath += $path.lineTo(prevPoint);\r\n edgePath += \"z\";\r\n prevPoint = pp;\r\n }\r\n }\r\n this.edge.path = edgePath;\r\n /*\r\n a0 = { x: $math.cos(startAngle) * (innerRadius + innerCornerRadius), y: $math.sin(startAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n b0 = { x: $math.cos(startAngle) * (radius - cornerRadius), y: $math.sin(startAngle) * (radiusY - cornerRadiusY) };\r\n c0 = { x: $math.cos(endAngle) * (radius - cornerRadius), y: $math.sin(endAngle) * (radiusY - cornerRadiusY) };\r\n d0 = { x: $math.cos(endAngle) * (innerRadius + innerCornerRadius), y: $math.sin(endAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n // end of duplicate\r\n \r\n ah = { x: a0.x, y: a0.y - h };\r\n bh = { x: b0.x, y: b0.y - h };\r\n ch = { x: c0.x, y: c0.y - h };\r\n dh = { x: d0.x, y: d0.y - h };\r\n */\r\n this.sideA.path = $path.moveTo(a0) + $path.lineTo(b0) + $path.lineTo(bh) + $path.lineTo(ah) + $path.closePath();\r\n this.sideB.path = $path.moveTo(c0) + $path.lineTo(d0) + $path.lineTo(dh) + $path.lineTo(ch) + $path.closePath();\r\n if (this.startAngle < 90) {\r\n this.sideA.toBack();\r\n }\r\n else {\r\n this.sideA.toFront();\r\n }\r\n if (this.startAngle + this.arc > 90) {\r\n this.sideB.toBack();\r\n }\r\n else {\r\n this.sideB.toFront();\r\n }\r\n this.slice.dy = -h;\r\n }\r\n else {\r\n this.sideA.hide(0);\r\n this.sideB.hide(0);\r\n this.edge.hide(0);\r\n }\r\n };\r\n Object.defineProperty(Slice3D.prototype, \"depth\", {\r\n /**\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth (height) of the 3D slice in pixels.\r\n *\r\n * @default 20\r\n * @param depth Depth (px)\r\n */\r\n set: function (depth) {\r\n this.setPropertyValue(\"depth\", depth, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice3D.prototype, \"angle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n var angle = this.getPropertyValue(\"angle\");\r\n if (!$type.isNumber(angle)) {\r\n angle = 0;\r\n }\r\n return angle;\r\n },\r\n /**\r\n * Angle of the point of view to the 3D element. (0-360)\r\n *\r\n * @default 30\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Slice3D.prototype, \"radiusY\", {\r\n /**\r\n * @return Vertical radius (0-1)\r\n */\r\n get: function () {\r\n var radiusY = this.getPropertyValue(\"radiusY\");\r\n if (!$type.isNumber(radiusY)) {\r\n radiusY = this.radius - this.radius * this.angle / 90;\r\n }\r\n return radiusY;\r\n },\r\n /**\r\n * Vertical radius for creating skewed slices.\r\n *\r\n * This is relevant to `radius`, e.g. 0.5 will set vertical radius to half\r\n * the `radius`.\r\n *\r\n * @param value Vertical radius (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radiusY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all properties and related data from a different instance of Axis.\r\n *\r\n * @param source Source Axis\r\n */\r\n Slice3D.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.edge.copyFrom(source.edge);\r\n this.sideA.copyFrom(source.sideA);\r\n this.sideB.copyFrom(source.sideB);\r\n };\r\n return Slice3D;\r\n}(Slice));\r\nexport { Slice3D };\r\n//# sourceMappingURL=Slice3D.js.map","import { StyleRule } from \"../utils/DOM\";\r\nimport { InterfaceColorSet } from \"../utils/InterfaceColorSet\";\r\nimport { Dictionary } from \"../utils/Dictionary\";\r\nimport { MultiDisposer, CounterDisposer } from \"../utils/Disposer\";\r\nvar rules = new Dictionary();\r\n/**\r\n * A dynamically-loadable CSS module for Export menu.\r\n *\r\n * @ignore Exclude from docs\r\n * @param prefix Prefix to addtach to class names\r\n * @return A MultiDisposer with style rules\r\n */\r\nexport default function (element, prefix) {\r\n var newPrefix = (prefix ? prefix : \"amexport\");\r\n var colorSet = new InterfaceColorSet();\r\n var counter = rules.insertKeyIfEmpty(newPrefix, function () {\r\n var disposer = new MultiDisposer([\r\n /*new StyleRule(`.${newPrefix}-menu`, {\r\n \"opacity\": \"0.3\",\r\n \"transition\": \"all 100ms ease-in-out\",\r\n }),\r\n\r\n new StyleRule(`div:hover .${newPrefix}-menu, .${newPrefix}-menu.active`, {\r\n \"opacity\": \"0.9\",\r\n }),*/\r\n new StyleRule(element, \".\" + newPrefix + \"-menu *\", {\r\n \"box-sizing\": \"border-box\"\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu-level-0\", {\r\n \"position\": \"absolute\",\r\n \"top\": \"5px\",\r\n \"right\": \"5px\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu-level-0.\" + newPrefix + \"-left\", {\r\n \"right\": \"auto\",\r\n \"left\": \"5px\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu-level-0.\" + newPrefix + \"-right\", {\r\n \"right\": \"5px\",\r\n \"left\": \"auto\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu-level-0.\" + newPrefix + \"-top\", {\r\n \"top\": \"5px\",\r\n \"bottom\": \"auto\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu-level-0.\" + newPrefix + \"-bottom\", {\r\n \"top\": \"auto\",\r\n \"bottom\": \"5px\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item.\" + newPrefix + \"-item-level-0\", {\r\n \"opacity\": \"0.3\",\r\n \"width\": \"30px\",\r\n \"min-height\": \"30px\",\r\n \"transition\": \"all 100ms ease-in-out\",\r\n }),\r\n new StyleRule(element, \"div:hover > div > .\" + newPrefix + \"-menu .\" + newPrefix + \"-item.\" + newPrefix + \"-item-level-0, .\" + newPrefix + \"-item.\" + newPrefix + \"-item-level-0.active\", {\r\n \"opacity\": \"0.9\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item.\" + newPrefix + \"-item-level-0 > a\", {\r\n \"padding\": \"0\",\r\n \"text-align\": \"center\",\r\n \"overflow\": \"hidden\"\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item.\" + newPrefix + \"-item-level-0:before\", {\r\n \"display\": \"block\"\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item\", {\r\n \"position\": \"relative\",\r\n \"display\": \"block\",\r\n \"opacity\": \"0\",\r\n \"z-index\": \"1\",\r\n \"border-radius\": \"3px\",\r\n \"background-color\": colorSet.getFor(\"secondaryButton\").hex,\r\n \"padding\": \"0\",\r\n \"margin\": \"1px 1px 0 0\",\r\n \"color\": colorSet.getFor(\"secondaryButton\").alternative.hex,\r\n \"transition\": \"all 100ms ease-in-out, opacity 0.5s ease 0.5s\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-left .\" + newPrefix + \"-item\", {\r\n \"margin\": \"1px 0 0 1px\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item:hover, .\" + newPrefix + \"-item.active\", {\r\n \"background\": colorSet.getFor(\"secondaryButtonHover\").hex,\r\n \"color\": colorSet.getFor(\"secondaryButtonText\").hex,\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"position\": \"absolute\",\r\n \"top\": \"-1px\",\r\n \"right\": \"0\",\r\n \"margin-right\": \"100%\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-left .\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"left\": \"0\",\r\n \"right\": \"auto\",\r\n \"margin-left\": \"100%\",\r\n \"margin-right\": \"auto\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-right .\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"left\": \"auto\",\r\n \"right\": \"0\",\r\n \"margin-left\": \"auto\",\r\n \"margin-right\": \"100%\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-top .\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"top\": \"-1px\",\r\n \"bottom\": \"auto\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-bottom .\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"top\": \"auto\",\r\n \"bottom\": \"0\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item > .\" + newPrefix + \"-menu\", {\r\n \"display\": \"none\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item:hover > .\" + newPrefix + \"-menu, .\" + newPrefix + \"-item.active > .\" + newPrefix + \"-menu\", {\r\n \"display\": \"block\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item:hover > .\" + newPrefix + \"-menu > .\" + newPrefix + \"-item, .\" + newPrefix + \"-item.active > .\" + newPrefix + \"-menu > .\" + newPrefix + \"-item\", {\r\n \"opacity\": \"1\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-menu\", {\r\n \"display\": \"block\",\r\n \"list-style\": \"none\",\r\n \"margin\": \"0\",\r\n \"padding\": \"0\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-label\", {\r\n \"display\": \"block\",\r\n \"cursor\": \"default\",\r\n \"padding\": \"0.5em 1em\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-icon\", {\r\n \"display\": \"block\",\r\n \"cursor\": \"default\",\r\n \"padding\": \"0.2em 0.4em\",\r\n \"width\": \"1.2em\",\r\n \"height\": \"1.2em\",\r\n \"min-width\": \"32px\",\r\n \"min-height\": \"32px\",\r\n \"margin\": \"auto auto\",\r\n \"border-radius\": \"3px\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-item-level-0 > .\" + newPrefix + \"-icon\", {\r\n \"padding\": \"0.1em 0.2em\",\r\n }),\r\n new StyleRule(element, \".\" + newPrefix + \"-clickable\", {\r\n \"cursor\": \"pointer\",\r\n }),\r\n ]);\r\n return new CounterDisposer(function () {\r\n rules.removeKey(newPrefix);\r\n disposer.dispose();\r\n });\r\n });\r\n return counter.increment();\r\n}\r\n//# sourceMappingURL=ExportCSS.js.map","/**\r\n * ExportMenu provides functionality for building Export menu\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport exportCSS from \"./ExportCSS\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { List } from \"../utils/List\";\r\nimport { getInteraction } from \"../interaction/Interaction\";\r\nimport { MutableValueDisposer } from \"../utils/Disposer\";\r\nimport { Language } from \"../utils/Language\";\r\nimport { Validatable } from \"../utils/Validatable\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a menu for Export operations.\r\n *\r\n * To add an export menu to a chart, set this to a new instance of\r\n * [[ExportMenu]].\r\n *\r\n * ```TypeScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JavaScript\r\n * chart.exporting.menu = new am4core.ExportMenu();\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"exporting\": {\r\n * \"menu\": {}\r\n * }\r\n * }\r\n * ```\r\n * @important\r\n */\r\nvar ExportMenu = /** @class */ (function (_super) {\r\n __extends(ExportMenu, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ExportMenu() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * An [[Adapter]].\r\n */\r\n _this.adapter = new Adapter(_this);\r\n /**\r\n * How many milliseconds to hold menu/sub-menu open after it loses focus or\r\n * hover, before auto-closing it.\r\n *\r\n * @default 1000\r\n */\r\n _this.closeDelay = 1000;\r\n /**\r\n * Close the menu automatically when some export operation is triggered.\r\n *\r\n * @default true\r\n * @since 4.2.2\r\n */\r\n _this.closeOnClick = true;\r\n /**\r\n * An instance of [[Language]].\r\n */\r\n _this._language = new MutableValueDisposer();\r\n /**\r\n * What HTML tags to use to build menu.\r\n */\r\n _this._menuTag = \"ul\";\r\n /**\r\n * Which tag to use to enclose individual menu items.\r\n */\r\n _this._itemTag = \"li\";\r\n /**\r\n * Tag to wrap menu item labels in.\r\n */\r\n _this._labelTag = \"a\";\r\n /**\r\n * Tag to use for icons\r\n */\r\n _this._iconTag = \"img\";\r\n /**\r\n * Prefix for class names applied to menu elements.\r\n */\r\n _this._classPrefix = \"amexport\";\r\n /**\r\n * If set to `true` [[ExportMenu]] will load it's own external CSS when\r\n * instantiated.\r\n */\r\n _this._defaultStyles = true;\r\n /**\r\n * Horizontal positioning.\r\n */\r\n _this._align = \"right\";\r\n /**\r\n * Vertical positioning.\r\n */\r\n _this._verticalAlign = \"top\";\r\n /**\r\n * A tabindex to apply to Export Menu.\r\n */\r\n _this._tabindex = 0;\r\n /**\r\n * Whether next menu close event should be ignored.\r\n */\r\n _this._ignoreNextClose = false;\r\n /**\r\n * Default menu items.\r\n */\r\n _this._items = [\r\n {\r\n \"label\": \"...\",\r\n \"menu\": [\r\n {\r\n \"label\": \"Image\",\r\n \"menu\": [\r\n { \"type\": \"png\", \"label\": \"PNG\" },\r\n { \"type\": \"jpg\", \"label\": \"JPG\" },\r\n { \"type\": \"svg\", \"label\": \"SVG\" },\r\n { \"type\": \"pdf\", \"label\": \"PDF\" }\r\n ]\r\n }, {\r\n \"label\": \"Data\",\r\n \"menu\": [\r\n { \"type\": \"json\", \"label\": \"JSON\" },\r\n { \"type\": \"csv\", \"label\": \"CSV\" },\r\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\r\n { \"type\": \"html\", \"label\": \"HTML\" },\r\n { \"type\": \"pdfdata\", \"label\": \"PDF\" }\r\n ]\r\n }, {\r\n \"label\": \"Print\", \"type\": \"print\"\r\n }\r\n ]\r\n }\r\n ];\r\n _this.className = \"ExportMenu\";\r\n _this._disposers.push(_this._language);\r\n _this.invalidate();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)draws the Export menu.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ExportMenu.prototype.validate = function () {\r\n this.draw();\r\n _super.prototype.validate.call(this);\r\n };\r\n /**\r\n * Draws the menu based on current items.\r\n *\r\n * Normally, there's no need to call this explicitly. The chart, if it has\r\n * export menu enabled, will automatically draw the menu.\r\n */\r\n ExportMenu.prototype.draw = function () {\r\n var _this = this;\r\n // Create top-level menu item, or clear it\r\n if (!this._element) {\r\n this._element = this.createMenuElement(0);\r\n }\r\n else {\r\n this._element.innerHTML = \"\";\r\n this._element.className = this.getMenuItemClass(0);\r\n }\r\n // See if we're loading external CSS\r\n // Hide it until CSS is loaded\r\n if (this.defaultStyles) {\r\n this._element.style.display = \"none\";\r\n }\r\n // Append to container\r\n $type.getValue(this._container).appendChild(this._element);\r\n // Apply adapter to menu items before processing\r\n var items = this.adapter.apply(\"items\", {\r\n items: this._items\r\n }).items;\r\n for (var len = items.length, i = 0; i < len; i++) {\r\n this.drawBranch(this._element, items[i], 0);\r\n }\r\n // Apply adapter to finalized menu element\r\n this._element = this.adapter.apply(\"menuElement\", {\r\n menuElement: this._element\r\n }).menuElement;\r\n // Set up global \"down\" event\r\n this._disposers.push(getInteraction().body.events.on(\"down\", function (ev) {\r\n if (!ev.pointer.touch) {\r\n _this._ignoreNextClose = false;\r\n }\r\n _this.close();\r\n }));\r\n // Set up global event on ESC press to close the menu\r\n this._disposers.push(getInteraction().body.events.on(\"keydown\", function (ev) {\r\n var key = keyboard.getEventKey(ev.event);\r\n switch (key) {\r\n case \"esc\":\r\n _this.close();\r\n break;\r\n case \"up\":\r\n case \"down\":\r\n case \"left\":\r\n case \"right\":\r\n if (_this._currentSelection) {\r\n ev.event.preventDefault();\r\n }\r\n _this.moveSelection(key);\r\n break;\r\n }\r\n }));\r\n if (this.defaultStyles) {\r\n this.loadDefaultCSS();\r\n }\r\n };\r\n /**\r\n * Creates a new branch in export menu. This function is recursive for\r\n * building multi-level menus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param container Container to put branch elements in\r\n * @param branch Menu item\r\n * @param level Current nesting level\r\n */\r\n ExportMenu.prototype.drawBranch = function (container, branch, level) {\r\n var _this = this;\r\n // Apply adapter\r\n branch = this.adapter.apply(\"branch\", {\r\n branch: branch,\r\n level: level\r\n }).branch;\r\n // Unsupported?\r\n // ExportMenu does not check or know for specific browser/system\r\n // capabilities. It must happen in some other code and applied via Adapter.\r\n // Export itself will check compatibility, but there might be other plugins\r\n // that influence it or even add any specific export functionality.\r\n if (branch.unsupported === true) {\r\n return;\r\n }\r\n // Init ascendants\r\n if (!branch.ascendants) {\r\n branch.ascendants = new List();\r\n }\r\n // Get type\r\n var type = branch.type;\r\n // Create an item\r\n var element = this.createItemElement(level, type);\r\n // Create label\r\n var label;\r\n // Create icon\r\n if (branch.icon) {\r\n label = this.createIconElement(level, type);\r\n label.src = branch.icon;\r\n if (branch.label || branch.title) {\r\n label.title = branch.title || branch.label;\r\n }\r\n }\r\n else if (branch.svg) {\r\n label = this.createSvgElement(level, type, branch.svg);\r\n if (branch.label || branch.title) {\r\n label.title = branch.title || branch.label;\r\n }\r\n }\r\n else {\r\n label = this.createLabelElement(level, type);\r\n label.innerHTML = (branch.label ? this.language.translate(branch.label) : \"\");\r\n if (branch.title) {\r\n label.title = branch.title;\r\n }\r\n }\r\n // Apply reader text to label\r\n var readerLabel = this.getReaderLabel(branch, label.innerHTML);\r\n label.setAttribute(\"aria-label\", readerLabel);\r\n // Add Label\r\n element.appendChild(label);\r\n // Create interaction object\r\n // TODO clean this up when it's disposed\r\n branch.interactions = getInteraction().getInteraction(element);\r\n branch.element = element;\r\n // Create interaction manager we can set event listeners to\r\n if (this.typeClickable(type)) {\r\n //branch.interactions.clickable = true;\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"hit\", function (ev) {\r\n if (_this.events.isEnabled(\"hit\") && !_this.isDisposed()) {\r\n var event_1 = {\r\n \"type\": \"hit\",\r\n \"event\": ev.event,\r\n \"target\": _this,\r\n \"branch\": branch\r\n };\r\n _this.events.dispatchImmediately(\"hit\", event_1);\r\n }\r\n });\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"enter\")) {\r\n if (_this.events.isEnabled(\"enter\")) {\r\n var event_2 = {\r\n \"type\": \"enter\",\r\n \"event\": ev.event,\r\n \"target\": _this,\r\n \"branch\": branch\r\n };\r\n _this.events.dispatchImmediately(\"enter\", event_2);\r\n }\r\n }\r\n });\r\n }\r\n {\r\n var submenu_1 = this.getSubMenu(branch);\r\n // Add ENTER event to open sub-menus\r\n if (submenu_1 != null) {\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"enter\")) {\r\n // This is item has sub-menu, activate the first child on ENTER\r\n _this.selectBranch(submenu_1[0]);\r\n // Attempt to set focus\r\n _this.setFocus(submenu_1[0]);\r\n }\r\n });\r\n branch.interactions.events.on(\"hit\", function (ev) {\r\n _this.selectBranch(branch);\r\n });\r\n }\r\n }\r\n // Add events\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"over\", function (ev) {\r\n if (ev.pointer.touch) {\r\n // Cancel pending menu closure\r\n _this._ignoreNextClose = true;\r\n }\r\n _this.selectBranch(branch);\r\n if (_this.events.isEnabled(\"over\")) {\r\n var event_3 = {\r\n \"type\": \"over\",\r\n \"event\": ev.event,\r\n \"target\": _this,\r\n \"branch\": branch\r\n };\r\n _this.events.dispatchImmediately(\"over\", event_3);\r\n }\r\n });\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"out\", function (ev) {\r\n if (_this.isDisposed()) {\r\n return;\r\n }\r\n if (!ev.pointer.touch) {\r\n _this.delayUnselectBranch(branch);\r\n }\r\n if (_this.events.isEnabled(\"out\")) {\r\n var event_4 = {\r\n \"type\": \"out\",\r\n \"event\": ev.event,\r\n \"target\": _this,\r\n \"branch\": branch\r\n };\r\n _this.events.dispatchImmediately(\"out\", event_4);\r\n }\r\n });\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"focus\", function (ev) {\r\n _this.selectBranch(branch);\r\n });\r\n // TODO clean this up when it's disposed\r\n branch.interactions.events.on(\"blur\", function (ev) {\r\n _this.delayUnselectBranch(branch);\r\n });\r\n // Increment level\r\n var local_level = level + 1;\r\n // Has sub-menu?\r\n if (branch.menu) {\r\n var submenu = this.createMenuElement(local_level);\r\n branch.submenuElement = submenu;\r\n for (var len = branch.menu.length, i = 0; i < len; i++) {\r\n var ascendants = new List();\r\n branch.menu[i].ascendants = ascendants;\r\n if (branch.ascendants.length) {\r\n ascendants.copyFrom(branch.ascendants);\r\n }\r\n ascendants.push(branch);\r\n this.drawBranch(submenu, branch.menu[i], local_level);\r\n }\r\n // Sub-menu is empty (all items are not supported)\r\n // Do not draw this menu item at all\r\n if (submenu.innerHTML == \"\") {\r\n return;\r\n }\r\n element.appendChild(submenu);\r\n }\r\n // Should this item be hidden?\r\n if (branch.hidden) {\r\n this.hideBranch(branch);\r\n }\r\n // Add id?\r\n if (branch.id) {\r\n element.setAttribute(\"id\", branch.id);\r\n }\r\n // Background color?\r\n if (branch.color) {\r\n element.style.backgroundColor = branch.color.hex;\r\n }\r\n // Append to container\r\n container.appendChild(element);\r\n };\r\n /**\r\n * Creates a menu element to hold its elements in. Usually it's an `<ul>`\r\n * tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @return HTML element reference\r\n */\r\n ExportMenu.prototype.createMenuElement = function (level) {\r\n var element = document.createElement(this.menuTag);\r\n element.className = this.getMenuItemClass(level);\r\n // Accessibility\r\n if (level === 0) {\r\n element.setAttribute(\"role\", \"menubar\");\r\n }\r\n else {\r\n element.setAttribute(\"role\", \"menu\");\r\n }\r\n return element;\r\n };\r\n /**\r\n * Generates a class name for the menu element based on its nesting level.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @return Class name(s)\r\n */\r\n ExportMenu.prototype.getMenuItemClass = function (level) {\r\n var className = this.classPrefix + \"-menu \" + this.classPrefix + \"-menu-level-\" + level;\r\n if (level === 0) {\r\n className += \" \" + this.classPrefix + \"-menu-root \" +\r\n this.classPrefix + \"-\" + this.align + \" \" +\r\n this.classPrefix + \"-\" + this.verticalAlign;\r\n }\r\n return this.adapter.apply(\"menuClass\", {\r\n className: className,\r\n level: level\r\n }).className;\r\n };\r\n /**\r\n * Creates menu item. Usually `<li>` tag. Its label and sub-elements will go\r\n * into this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @param type Type of the menu item\r\n * @return HTML element reference\r\n */\r\n ExportMenu.prototype.createItemElement = function (level, type) {\r\n var element = document.createElement(this.itemTag);\r\n var className = this.classPrefix + \"-item \" + this.classPrefix\r\n + \"-item-level-\" + level\r\n + \" \" + this.classPrefix + \"-item-\" + (type || \"blank\");\r\n element.className = this.adapter.apply(\"itemClass\", {\r\n className: className,\r\n level: level,\r\n type: type\r\n }).className;\r\n element.setAttribute(\"role\", \"menuitem\");\r\n element.setAttribute(\"tabindex\", this.tabindex.toString());\r\n return element;\r\n };\r\n /**\r\n * Creates a \"label\" part of the menu item. It could be text or any HTML\r\n * content.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @param type Type of the menu item\r\n * @return An HTML Element\r\n */\r\n ExportMenu.prototype.createLabelElement = function (level, type) {\r\n var element = document.createElement(this.labelTag);\r\n var className = this.classPrefix + \"-label \" + this.classPrefix\r\n + \"-label-level-\" + level\r\n + \" \" + this.classPrefix + \"-item-\" + (type || \"blank\");\r\n if (this.typeClickable(type)) {\r\n className += \" \" + this.classPrefix + \"-clickable\";\r\n }\r\n element.className = this.adapter.apply(\"labelClass\", {\r\n className: className,\r\n level: level,\r\n type: type\r\n }).className;\r\n // Accessible navigation\r\n //element.setAttribute(\"tabindex\", this.tabindex.toString());\r\n //element.setAttribute(\"role\", \"menuitem\");\r\n return element;\r\n };\r\n /**\r\n * Creates a \"icon\" part of the menu item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @param type Type of the menu item\r\n * @return An HTML Element\r\n */\r\n ExportMenu.prototype.createIconElement = function (level, type) {\r\n var element = document.createElement(this.iconTag);\r\n var className = this.classPrefix + \"-icon \" + this.classPrefix\r\n + \"-icon-level-\" + level\r\n + \" \" + this.classPrefix + \"-item-\" + (type || \"blank\");\r\n if (this.typeClickable(type)) {\r\n className += \" \" + this.classPrefix + \"-clickable\";\r\n }\r\n element.className = this.adapter.apply(\"labelClass\", {\r\n className: className,\r\n level: level,\r\n type: type\r\n }).className;\r\n // Accessible navigation\r\n element.setAttribute(\"tabindex\", this.tabindex.toString());\r\n element.setAttribute(\"role\", \"menuitem\");\r\n return element;\r\n };\r\n /**\r\n * Creates a a custom element out of raw HTML.\r\n *\r\n * @ignore Exclude from docs\r\n * @param level Current nesting level\r\n * @param type Type of the menu item\r\n * @return An HTML Element\r\n */\r\n ExportMenu.prototype.createSvgElement = function (level, type, svg) {\r\n var parser = new DOMParser();\r\n var element = parser.parseFromString(svg, \"image/svg+xml\").documentElement;\r\n var className = this.classPrefix + \"-icon \" + this.classPrefix\r\n + \"-icon-level-\" + level\r\n + \" \" + this.classPrefix + \"-item-\" + (type || \"blank\");\r\n if (this.typeClickable(type)) {\r\n className += \" \" + this.classPrefix + \"-clickable\";\r\n }\r\n element.setAttribute(\"class\", this.adapter.apply(\"labelClass\", {\r\n className: className,\r\n level: level,\r\n type: type\r\n }).className);\r\n // Accessible navigation\r\n element.setAttribute(\"tabindex\", this.tabindex.toString());\r\n element.setAttribute(\"role\", \"menuitem\");\r\n return element;\r\n };\r\n /**\r\n * Destroys the menu and all its elements.\r\n */\r\n ExportMenu.prototype.dispose = function () {\r\n if (!this._disposed) {\r\n _super.prototype.dispose.call(this);\r\n if (this._element && this._element.parentNode) {\r\n this._element.parentNode.removeChild(this._element);\r\n }\r\n }\r\n };\r\n /**\r\n * Checks whether menu item type is supposed to be clickable.\r\n *\r\n * @ignore Exclude from docs\r\n * @param type Menu item type\r\n * @return Is clickable?\r\n */\r\n ExportMenu.prototype.typeClickable = function (type) {\r\n return $type.hasValue(type);\r\n };\r\n /**\r\n * Checks whether menu item has any sub-items.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch A menu item\r\n * @return Has sub-items?\r\n */\r\n ExportMenu.prototype.hasSubMenu = function (branch) {\r\n return (branch.menu && branch.menu.length) ? true : false;\r\n };\r\n /**\r\n * Returns sub-items (if they exist).\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch A menu item\r\n * @return Submenus\r\n */\r\n ExportMenu.prototype.getSubMenu = function (branch) {\r\n if (branch.menu && branch.menu.length) {\r\n return branch.menu;\r\n }\r\n };\r\n /**\r\n * Generates and returns an applicable label to be used for screen readers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item A menu item instance\r\n * @param label Current label\r\n * @return Reader text\r\n */\r\n ExportMenu.prototype.getReaderLabel = function (branch, label) {\r\n // Strip any HTML from the label\r\n label = $utils.stripTags(label);\r\n // Add textual note if the branch is clickable\r\n if (branch.ascendants.length == 0) {\r\n label = label == \"...\" ? this.language.translate(\"Export\") : label;\r\n label += \" [\" + this.language.translate(\"Press ENTER or use arrow keys to navigate\") + \"]\";\r\n }\r\n else if (this.hasSubMenu(branch)) {\r\n label += \" [\" + this.language.translate(\"Click, tap or press ENTER to open\") + \"]\";\r\n }\r\n else if (branch.type == \"print\") {\r\n label = this.language.translate(\"Click, tap or press ENTER to print.\");\r\n }\r\n else if (this.typeClickable(branch.type)) {\r\n label = this.language.translate(\"Click, tap or press ENTER to export as %1.\", undefined, label);\r\n }\r\n return this.adapter.apply(\"rederLabel\", {\r\n label: label,\r\n branch: branch\r\n }).label;\r\n };\r\n Object.defineProperty(ExportMenu.prototype, \"container\", {\r\n /**\r\n * @return Container\r\n */\r\n get: function () {\r\n return this._container;\r\n },\r\n /**\r\n * Getters and setters\r\n */\r\n /**\r\n * An HTML container to place the Menu in.\r\n *\r\n * A container must be an HTML element, because menu itself is HTML, and\r\n * cannot be placed into SVG.\r\n *\r\n * @param container Reference to container element\r\n * @todo Check if menu is already build. If it is, just move it to a new container\r\n */\r\n set: function (container) {\r\n this._container = container;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"items\", {\r\n /**\r\n * @return Menu items\r\n */\r\n get: function () {\r\n return this._items;\r\n },\r\n /**\r\n * A list of menu items. Can be nested.\r\n *\r\n * @param items Menu items\r\n */\r\n set: function (items) {\r\n this._items = items;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"tag\", {\r\n /**\r\n * Sets main menu tag to place menu in.\r\n *\r\n * This also sets up how menu items are built.\r\n *\r\n * If you set this to \"ul\", menu items will be wrapped into `<li>` tags.\r\n *\r\n * If set to \"div\", menu items will be wrapped in `<div>` tags.\r\n *\r\n * @default \"ul\"\r\n * @param tag Tag to use for menu\r\n */\r\n set: function (tag) {\r\n this._menuTag = tag;\r\n this._itemTag = tag == \"ul\" ? \"li\" : \"div\";\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"menuTag\", {\r\n /**\r\n * Returns current menu tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Menu tag (item that contains sub-items)\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"menuTag\", {\r\n tag: this._menuTag\r\n }).tag;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"itemTag\", {\r\n /**\r\n * Returns tag to wrap items into.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Item tag\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"itemTag\", {\r\n tag: this._itemTag\r\n }).tag;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"labelTag\", {\r\n /**\r\n * Returns menu label tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Label tag\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"labelTag\", {\r\n tag: this._labelTag\r\n }).tag;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"iconTag\", {\r\n /**\r\n * Returns icon tag.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Icon tag\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"iconTag\", {\r\n tag: this._iconTag\r\n }).tag;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"align\", {\r\n /**\r\n * @return Horizontal alignment\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"align\", {\r\n align: this._align\r\n }).align;\r\n },\r\n /**\r\n * A horizontal alignment for the menu placement.\r\n *\r\n * @param value Horizontal alignment\r\n */\r\n set: function (value) {\r\n this._align = value;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"verticalAlign\", {\r\n /**\r\n * @return Vertical alignment\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"verticalAlign\", {\r\n verticalAlign: this._verticalAlign\r\n }).verticalAlign;\r\n },\r\n /**\r\n * A vertical alignment for the menu placement.\r\n *\r\n * @param value Vertical alignment\r\n */\r\n set: function (value) {\r\n this._verticalAlign = value;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"classPrefix\", {\r\n /**\r\n * @return Class name prefix\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"classPrefix\", {\r\n classPrefix: this._classPrefix\r\n }).classPrefix;\r\n },\r\n /**\r\n * Class name prefix.\r\n *\r\n * @default \"amexport\"\r\n * @param value Class name prefix\r\n */\r\n set: function (value) {\r\n this._classPrefix = value;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"defaultStyles\", {\r\n /**\r\n * @return Should ExportMenu load its own CSS?\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"defaultStyles\", {\r\n defaultStyles: this._defaultStyles\r\n }).defaultStyles;\r\n },\r\n /**\r\n * Indicates whether [[ExportMenu]] should load external CSS to style itself.\r\n *\r\n * If set to `false`, the menu will not be styled, and will rely on some\r\n * external CSS.\r\n *\r\n * @default true\r\n * @param Should ExportMenu load its own CSS?\r\n */\r\n set: function (value) {\r\n if (this._defaultStyles != value) {\r\n this._defaultStyles = value;\r\n if (value) {\r\n this.loadDefaultCSS();\r\n }\r\n }\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Loads the default CSS.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ExportMenu.prototype.loadDefaultCSS = function () {\r\n this._disposers.push(exportCSS($dom.getShadowRoot(this.container), this.classPrefix));\r\n if (this._element) {\r\n this._element.style.display = \"\";\r\n }\r\n };\r\n Object.defineProperty(ExportMenu.prototype, \"tabindex\", {\r\n /**\r\n * @return Tab index\r\n */\r\n get: function () {\r\n return this.adapter.apply(\"tabindex\", {\r\n tabindex: this._tabindex\r\n }).tabindex;\r\n },\r\n /**\r\n * A tab index for the menu.\r\n *\r\n * Tab index will influence the order in which elements on the chart and\r\n * the whole page are selected when pressing TAB key.\r\n *\r\n * @param value Tab index\r\n */\r\n set: function (value) {\r\n this._tabindex = value;\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ExportMenu.prototype, \"language\", {\r\n /**\r\n * @return A [[Language]] instance to be used\r\n */\r\n get: function () {\r\n var _this = this;\r\n var language = this._language.get();\r\n if (language == null) {\r\n language = new Language();\r\n // TODO code duplication with `set language()`\r\n this._language.set(language, language.events.on(\"localechanged\", function (ev) {\r\n _this.invalidate();\r\n }));\r\n }\r\n return language;\r\n },\r\n /**\r\n * A [[Language]] instance.\r\n *\r\n * @param value An instance of [[Language]]\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n this._language.set(value, value.events.on(\"localechanged\", function (ev) {\r\n _this.invalidate();\r\n }));\r\n this.invalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Controlling the menu\r\n */\r\n /**\r\n * Removes all active classes from menu items. Useful on touch devices and\r\n * keyboard navigation where open menu can be closed instantly by clicking or\r\n * tapping outside it.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ExportMenu.prototype.close = function () {\r\n var _this = this;\r\n if (this.isDisposed()) {\r\n return;\r\n }\r\n if (this._ignoreNextClose) {\r\n this._ignoreNextClose = false;\r\n return;\r\n }\r\n if (this.closeOnClick) {\r\n this._element.style.pointerEvents = \"none\";\r\n setTimeout(function () {\r\n _this._element.style.pointerEvents = \"auto\";\r\n }, 100);\r\n }\r\n if (this._currentSelection) {\r\n this.setBlur(this._currentSelection);\r\n this._currentSelection = undefined;\r\n }\r\n if (this._element) {\r\n var items = this._element.getElementsByClassName(\"active\");\r\n for (var len = items.length, i = len - 1; i >= 0; i--) {\r\n if (items[i]) {\r\n $dom.removeClass(items[i], \"active\");\r\n }\r\n }\r\n }\r\n this.events.dispatchImmediately(\"closed\", {\r\n type: \"closed\",\r\n target: this\r\n });\r\n };\r\n /**\r\n * Selects a branch in the menu.\r\n *\r\n * Handles closing of currently open branch.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Branch to select\r\n */\r\n ExportMenu.prototype.selectBranch = function (branch) {\r\n var _this = this;\r\n if (this.isDisposed()) {\r\n return;\r\n }\r\n // Cancel previous closure\r\n if (branch.closeTimeout) {\r\n this.removeDispose(branch.closeTimeout);\r\n branch.closeTimeout = undefined;\r\n }\r\n // Add active class\r\n $dom.addClass(branch.element, \"active\");\r\n // Set expanded\r\n if (branch.submenuElement) {\r\n branch.submenuElement.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n // Remove current selection\r\n if (this._currentSelection && this._currentSelection !== branch && this._currentSelection.ascendants) {\r\n $iter.each($iter.concat($iter.fromArray([this._currentSelection]), this._currentSelection.ascendants.iterator()), function (ascendant) {\r\n if (!branch.ascendants.contains(ascendant) && branch !== ascendant) {\r\n _this.unselectBranch(ascendant, true);\r\n }\r\n });\r\n }\r\n // Select and/or cancel timeout for current ascendants\r\n $iter.each(branch.ascendants.iterator(), function (ascendant) {\r\n if (ascendant.closeTimeout) {\r\n _this.removeDispose(ascendant.closeTimeout);\r\n ascendant.closeTimeout = undefined;\r\n }\r\n $dom.addClass(ascendant.element, \"active\");\r\n });\r\n // Log current selection\r\n this._currentSelection = branch;\r\n // Invoke event\r\n if (this.events.isEnabled(\"branchselected\")) {\r\n var event_5 = {\r\n type: \"branchselected\",\r\n target: this,\r\n branch: branch\r\n };\r\n this.events.dispatchImmediately(\"branchselected\", event_5);\r\n }\r\n };\r\n /**\r\n * Unselects a branch. Also selects a branch one level up if necessary.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Branch to unselect\r\n * @param simple If `true`, only the branch will be unselected without selecting parent branch\r\n */\r\n ExportMenu.prototype.unselectBranch = function (branch, simple) {\r\n if (this.isDisposed()) {\r\n return;\r\n }\r\n // Remove active class\r\n $dom.removeClass(branch.element, \"active\");\r\n // Set expanded\r\n if (branch.submenuElement) {\r\n branch.submenuElement.removeAttribute(\"aria-expanded\");\r\n }\r\n // Remove current selection\r\n if (this._currentSelection == branch) {\r\n this._currentSelection = undefined;\r\n }\r\n // Invoke event\r\n if (this.events.isEnabled(\"branchunselected\")) {\r\n var event_6 = {\r\n type: \"branchunselected\",\r\n target: this,\r\n branch: branch\r\n };\r\n this.events.dispatchImmediately(\"branchunselected\", event_6);\r\n }\r\n };\r\n /**\r\n * Delay unselection of a branch. This can still be cancelled in some other\r\n * place if the branch or its children regain focus.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Branch to unselect\r\n * @param simple If `true`, only the branch will be unselected without selecting parent branch\r\n */\r\n ExportMenu.prototype.delayUnselectBranch = function (branch, simple) {\r\n var _this = this;\r\n if (this.isDisposed()) {\r\n return;\r\n }\r\n // Schedule branch unselection\r\n if (branch.closeTimeout) {\r\n this.removeDispose(branch.closeTimeout);\r\n branch.closeTimeout = undefined;\r\n }\r\n branch.closeTimeout = this.setTimeout(function () {\r\n _this.unselectBranch(branch, simple);\r\n }, this.closeDelay);\r\n // Schedule unselection of all ascendants\r\n // In case focus went away from the export menu altogether, this will ensure\r\n // that all items will be closed.\r\n // In case we're jumping to other menu item, those delayed unselections will\r\n // be cancelled by `selectBranch`\r\n if (simple !== true && branch.ascendants) {\r\n $iter.each(branch.ascendants.iterator(), function (ascendant) {\r\n _this.delayUnselectBranch(ascendant, true);\r\n });\r\n }\r\n };\r\n /**\r\n * Navigates the menu based on which direction kayboard key was pressed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param key A key that was pressed\r\n */\r\n ExportMenu.prototype.moveSelection = function (key) {\r\n if (this.isDisposed()) {\r\n return;\r\n }\r\n // Check if there's a current selection\r\n if (!this._currentSelection) {\r\n return;\r\n }\r\n var newSelection;\r\n if (key == \"up\") {\r\n // Try moving up in current menu list, or to the last item if already\r\n // at the top\r\n newSelection = this.getPrevSibling(this._currentSelection);\r\n }\r\n else if (key == \"down\") {\r\n // Try moving down in current menu list, or to the top item if already\r\n // at the bottom\r\n newSelection = this.getNextSibling(this._currentSelection);\r\n }\r\n else if ((key == \"left\" && this.align == \"right\") || (key == \"right\" && this.align == \"left\")) {\r\n var menu = this.getSubMenu(this._currentSelection);\r\n // Go one level-deeper\r\n if (menu != null) {\r\n newSelection = menu[0];\r\n }\r\n }\r\n else if ((key == \"right\" && this.align == \"right\") || (key == \"left\" && this.align == \"left\")) {\r\n // Go one level-deeper\r\n newSelection = this.getParentItem(this._currentSelection);\r\n }\r\n if (newSelection && newSelection !== this._currentSelection) {\r\n this.selectBranch(newSelection);\r\n this.setFocus(newSelection);\r\n this._currentSelection = newSelection;\r\n }\r\n };\r\n /**\r\n * Returns all siblings of a menu item, including this same menu item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item\r\n * @return List of sibling menu items\r\n */\r\n ExportMenu.prototype.getSiblings = function (branch) {\r\n var parent = this.getParentItem(branch);\r\n if (parent && parent.menu) {\r\n return parent.menu;\r\n }\r\n else {\r\n return [];\r\n }\r\n };\r\n /**\r\n * Returns menu items parent item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item\r\n * @return Parent menu item\r\n */\r\n ExportMenu.prototype.getParentItem = function (branch) {\r\n if (branch.ascendants && branch.ascendants.length) {\r\n return branch.ascendants.getIndex(branch.ascendants.length - 1);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n /**\r\n * Returns next sibling in the same menu branch. If there is no next sibling,\r\n * the first one is returned. If there is just one item, that item is\r\n * returned. Unsupported menu items are skipped.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item to search siblings for\r\n * @return Menu item\r\n */\r\n ExportMenu.prototype.getNextSibling = function (branch) {\r\n var siblings = this.getSiblings(branch);\r\n if (siblings.length > 1) {\r\n var next = siblings.indexOf(branch) + 1;\r\n next = siblings.length == next ? 0 : next;\r\n return siblings[next].unsupported ? this.getNextSibling(siblings[next]) : siblings[next];\r\n }\r\n else {\r\n return branch;\r\n }\r\n };\r\n /**\r\n * Returns previous sibling in the same menu branch. If there is no next\r\n * sibling, the first one is returned. If there is just one item, that item is\r\n * returned. Unsupported menu items are skipped.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item to search siblings for\r\n * @return Menu item\r\n */\r\n ExportMenu.prototype.getPrevSibling = function (branch) {\r\n var siblings = this.getSiblings(branch);\r\n if (siblings.length > 1) {\r\n var prev = siblings.indexOf(branch) - 1;\r\n prev = prev == -1 ? siblings.length - 1 : prev;\r\n return siblings[prev].unsupported ? this.getPrevSibling(siblings[prev]) : siblings[prev];\r\n }\r\n else {\r\n return branch;\r\n }\r\n };\r\n /**\r\n * Attempts to set focus on particular menu element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item\r\n */\r\n ExportMenu.prototype.setFocus = function (branch) {\r\n if (branch.interactions) {\r\n try {\r\n branch.interactions.element.focus();\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n }\r\n };\r\n /**\r\n * Attempts to remove focus from the menu element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param branch Menu item\r\n */\r\n ExportMenu.prototype.setBlur = function (branch) {\r\n if (branch.interactions) {\r\n try {\r\n branch.interactions.element.blur();\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n }\r\n };\r\n /**\r\n * Hides the whole branch of menu.\r\n *\r\n * @param branch branch\r\n */\r\n ExportMenu.prototype.hideBranch = function (branch) {\r\n branch.element.style.display = \"none\";\r\n };\r\n /**\r\n * Show the branch of menu.\r\n *\r\n * @param branch branch\r\n */\r\n ExportMenu.prototype.showBranch = function (branch) {\r\n branch.element.style.display = \"\";\r\n };\r\n Object.defineProperty(ExportMenu.prototype, \"element\", {\r\n /**\r\n * The main element o fthe menu - usually `<ul>`.\r\n *\r\n * @since 4.10.6\r\n * @return Menu element\r\n */\r\n get: function () {\r\n return this._element;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ExportMenu;\r\n}(Validatable));\r\nexport { ExportMenu };\r\n//# sourceMappingURL=ExportMenu.js.map","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"mobx\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"MobxReactRouter\", [\"mobx\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MobxReactRouter\"] = factory(require(\"mobx\"));\n\telse\n\t\troot[\"MobxReactRouter\"] = factory(root[\"Mobx\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(2);\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"root\":\"Mobx\",\"commonjs2\":\"mobx\",\"commonjs\":\"mobx\",\"amd\":\"mobx\"}\nvar external_root_Mobx_commonjs2_mobx_commonjs_mobx_amd_mobx_ = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./src/store.js\nvar _class, _descriptor, _temp;\n\nfunction _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\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 _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n\nfunction _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); }\n\n\nvar RouterStore = (_class = (_temp =\n/*#__PURE__*/\nfunction () {\n function RouterStore() {\n var _this = this;\n\n _classCallCheck(this, RouterStore);\n\n _initializerDefineProperty(this, \"location\", _descriptor, this);\n\n this.history = null;\n\n this.push = function (location, state) {\n _this.history.push(location, state);\n };\n\n this.replace = function (location, state) {\n _this.history.replace(location, state);\n };\n\n this.go = function (n) {\n _this.history.go(n);\n };\n\n this.goBack = function () {\n _this.history.goBack();\n };\n\n this.goForward = function () {\n _this.history.goForward();\n };\n\n this.push = this.push.bind(this);\n this.replace = this.replace.bind(this);\n this.go = this.go.bind(this);\n this.goBack = this.goBack.bind(this);\n this.goForward = this.goForward.bind(this);\n }\n\n _createClass(RouterStore, [{\n key: \"_updateLocation\",\n value: function _updateLocation(newState) {\n this.location = newState;\n }\n /*\n * History methods\n */\n\n }]);\n\n return RouterStore;\n}(), _temp), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"location\", [external_root_Mobx_commonjs2_mobx_commonjs_mobx_amd_mobx_[\"observable\"]], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return null;\n }\n}), _applyDecoratedDescriptor(_class.prototype, \"_updateLocation\", [external_root_Mobx_commonjs2_mobx_commonjs_mobx_amd_mobx_[\"action\"]], Object.getOwnPropertyDescriptor(_class.prototype, \"_updateLocation\"), _class.prototype)), _class);\n;\n// CONCATENATED MODULE: ./src/sync.js\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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\n\nvar sync_syncHistoryWithStore = function syncHistoryWithStore(history, store) {\n // Initialise store\n store.history = history; // Handle update from history object\n\n var handleLocationChange = function handleLocationChange(location) {\n store._updateLocation(location);\n };\n\n var unsubscribeFromHistory = history.listen(handleLocationChange);\n handleLocationChange(history.location);\n\n var subscribe = function subscribe(listener) {\n var onStoreChange = function onStoreChange() {\n var rawLocation = _objectSpread({}, store.location);\n\n listener(rawLocation, history.action);\n }; // Listen for changes to location state in store\n\n\n var unsubscribeFromStore = Object(external_root_Mobx_commonjs2_mobx_commonjs_mobx_amd_mobx_[\"observe\"])(store, 'location', onStoreChange);\n listener(store.location, history.action);\n return unsubscribeFromStore;\n };\n\n history.subscribe = subscribe;\n history.unsubscribe = unsubscribeFromHistory;\n return history;\n};\n// CONCATENATED MODULE: ./index.js\n/* concated harmony reexport RouterStore */__webpack_require__.d(__webpack_exports__, \"RouterStore\", function() { return RouterStore; });\n/* concated harmony reexport syncHistoryWithStore */__webpack_require__.d(__webpack_exports__, \"syncHistoryWithStore\", function() { return sync_syncHistoryWithStore; });\n\n\n\n/***/ })\n/******/ ]);\n});","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","export default {\n year: '年',\n month: '月',\n day: '日',\n hour: '时',\n minute: '分',\n am: '上午',\n pm: '下午'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar ContainerRender = /*#__PURE__*/function (_React$Component) {\n _inherits(ContainerRender, _React$Component);\n\n var _super = _createSuper(ContainerRender);\n\n function ContainerRender() {\n var _this;\n\n _classCallCheck(this, ContainerRender);\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.removeContainer = function () {\n if (_this.container) {\n ReactDOM.unmountComponentAtNode(_this.container);\n\n _this.container.parentNode.removeChild(_this.container);\n\n _this.container = null;\n }\n };\n\n _this.renderComponent = function (props, ready) {\n var _this$props = _this.props,\n visible = _this$props.visible,\n getComponent = _this$props.getComponent,\n forceRender = _this$props.forceRender,\n getContainer = _this$props.getContainer,\n parent = _this$props.parent;\n\n if (visible || parent._component || forceRender) {\n if (!_this.container) {\n _this.container = getContainer();\n }\n\n ReactDOM.unstable_renderSubtreeIntoContainer(parent, getComponent(props), _this.container, function callback() {\n if (ready) {\n ready.call(this);\n }\n });\n }\n };\n\n return _this;\n }\n\n _createClass(ContainerRender, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.autoDestroy) {\n this.removeContainer();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children({\n renderComponent: this.renderComponent,\n removeContainer: this.removeContainer\n });\n }\n }]);\n\n return ContainerRender;\n}(React.Component);\n\nContainerRender.propTypes = {\n autoMount: PropTypes.bool,\n autoDestroy: PropTypes.bool,\n visible: PropTypes.bool,\n forceRender: PropTypes.bool,\n parent: PropTypes.any,\n getComponent: PropTypes.func.isRequired,\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.func.isRequired\n};\nContainerRender.defaultProps = {\n autoMount: true,\n autoDestroy: true,\n forceRender: false\n};\nexport { ContainerRender as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n var _super = _createSuper(Portal);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Portal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createContainer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var didUpdate = this.props.didUpdate;\n\n if (didUpdate) {\n didUpdate(prevProps);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeContainer();\n }\n }, {\n key: \"createContainer\",\n value: function createContainer() {\n this._container = this.props.getContainer();\n this.forceUpdate();\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n if (this._container) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this._container) {\n return ReactDOM.createPortal(this.props.children, this._container);\n }\n\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n didUpdate: PropTypes.func\n};\nexport { Portal as default };","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// Also detects iOS\r\nexport function isSafari() {\r\n return /apple/i.test(navigator.vendor);\r\n}\r\nexport function isInternetExplorer() {\r\n return /MSIE |Trident\\//.test(navigator.userAgent);\r\n}\r\n//# sourceMappingURL=Browser.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColorModifier } from \"./ColorModifier\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $type from \"../../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class can be used to modify linear gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.GradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.GradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"GradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nvar GradientModifier = /** @class */ (function (_super) {\r\n __extends(GradientModifier, _super);\r\n /**\r\n * Constructor.\r\n */\r\n function GradientModifier() {\r\n var _this = _super.call(this) || this;\r\n _this.lightnesses = [];\r\n _this.brightnesses = [];\r\n _this.opacities = [];\r\n _this.offsets = [];\r\n _this.className = \"GradientModifier\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(GradientModifier.prototype, \"lightnesses\", {\r\n /**\r\n * @return Lightness values\r\n */\r\n get: function () {\r\n return this._lightnesses;\r\n },\r\n /**\r\n * An array of lightness values for each step.\r\n *\r\n * @param value Lightness values\r\n */\r\n set: function (value) {\r\n this._lightnesses = value;\r\n this._brightnesses = [];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"brightnesses\", {\r\n /**\r\n * @return Brightness values\r\n */\r\n get: function () {\r\n return this._brightnesses;\r\n },\r\n /**\r\n * An array of brightness values for each step.\r\n *\r\n * @param value Brightness values\r\n */\r\n set: function (value) {\r\n this._brightnesses = value;\r\n this._lightnesses = [];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"opacities\", {\r\n /**\r\n * @return Opacity values\r\n */\r\n get: function () {\r\n return this._opacities;\r\n },\r\n /**\r\n * An array of opacity values for each step.\r\n *\r\n * @param value Opacity values\r\n */\r\n set: function (value) {\r\n this._opacities = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GradientModifier.prototype, \"offsets\", {\r\n /**\r\n * @return Offsets\r\n */\r\n get: function () {\r\n return this._offsets;\r\n },\r\n /**\r\n * An array of relative position (0-1) for each step.\r\n *\r\n * If not set, all steps will be of equal relative length.\r\n *\r\n * @param value Offsets\r\n */\r\n set: function (value) {\r\n this._offsets = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Modifies the color based on step setting.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Source color\r\n * @return A gradient that matches set modification rules\r\n */\r\n GradientModifier.prototype.modify = function (value) {\r\n // Clear current gradient\r\n this.gradient.clear();\r\n // Get step count\r\n var count = 0;\r\n if (this.opacities) {\r\n count = $math.max(count, this.opacities.length);\r\n }\r\n if (this.lightnesses) {\r\n count = $math.max(count, this.lightnesses.length);\r\n }\r\n if (this.brightnesses) {\r\n count = $math.max(count, this.brightnesses.length);\r\n }\r\n // Init step values\r\n var opacity = 1, lightness, brightness;\r\n // Apply steps\r\n for (var i = 0; i < count; i++) {\r\n // Take base color\r\n var color = value;\r\n // Check if there are any parameters for this step\r\n if (this.opacities && $type.isNumber(this.opacities[i])) {\r\n opacity = this.opacities[i];\r\n }\r\n if (this.lightnesses && $type.isNumber(this.lightnesses[i])) {\r\n lightness = this.lightnesses[i];\r\n brightness = undefined;\r\n }\r\n if (this.brightnesses && $type.isNumber(this.brightnesses[i])) {\r\n brightness = this.brightnesses[i];\r\n lightness = undefined;\r\n }\r\n // Check if we need to brighten/lighten color\r\n if ($type.isNumber(brightness)) {\r\n color = value.brighten(this.brightnesses[i]);\r\n }\r\n else if ($type.isNumber(lightness)) {\r\n color = value.lighten(this.lightnesses[i]);\r\n }\r\n // Get offset (it's OK if it's undefined)\r\n var offset = this.offsets[i];\r\n // Apply step\r\n this.gradient.addColor(color, opacity, offset);\r\n }\r\n return this.gradient;\r\n };\r\n GradientModifier.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this._offsets = source.offsets;\r\n this._brightnesses = source.brightnesses;\r\n this._lightnesses = source.lightnesses;\r\n this._opacities = source.opacities;\r\n };\r\n return GradientModifier;\r\n}(ColorModifier));\r\nexport { GradientModifier };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GradientModifier\"] = GradientModifier;\r\n//# sourceMappingURL=GradientModifier.js.map","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<BrowserRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<HashRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!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 }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware <a>.\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Link> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\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\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <NavLink> outside a <Router>\") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, 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 { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/**\r\n * Grip module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { registry } from \"../Registry\";\r\nimport { percent } from \"../utils/Percent\";\r\nimport * as $path from \"../rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a grip element that can be used for scrolling or other things.\r\n *\r\n * @see {@link IGripEvents} for a list of available events\r\n * @see {@link IGripAdapters} for a list of available Adapters\r\n * @since 4.4.0\r\n */\r\nvar Grip = /** @class */ (function (_super) {\r\n __extends(Grip, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Grip() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"Grip\";\r\n var cs = new InterfaceColorSet();\r\n // Set defaults\r\n _this.layout = \"absolute\";\r\n _this.padding(10, 10, 10, 10);\r\n _this.margin(3, 3, 3, 3);\r\n _this.background.fillOpacity = 0.3;\r\n _this.background.cornerRadius(10, 10, 10, 10);\r\n // Create an icon\r\n var icon = new Sprite();\r\n icon.element = _this.paper.add(\"path\");\r\n var path = $path.moveTo({ x: -6, y: 0 });\r\n path += $path.lineTo({ x: 6, y: 0 });\r\n path += $path.moveTo({ x: -8, y: -6 });\r\n path += $path.lineTo({ x: 0, y: -12 });\r\n path += $path.lineTo({ x: 8, y: -6 });\r\n path += $path.moveTo({ x: -8, y: 6 });\r\n path += $path.lineTo({ x: 0, y: 12 });\r\n path += $path.lineTo({ x: 8, y: 6 });\r\n icon.path = path;\r\n icon.strokeWidth = 2;\r\n icon.fillOpacity = 0;\r\n icon.pixelPerfect = true;\r\n icon.padding(0, 4, 0, 4);\r\n icon.stroke = cs.getFor(\"text\");\r\n icon.strokeOpacity = 0.7;\r\n icon.align = \"center\";\r\n icon.valign = \"middle\";\r\n _this.icon = icon;\r\n _this.label.dispose();\r\n _this.label = undefined;\r\n // Set default position\r\n _this.position = \"right\";\r\n // Set up autohide\r\n _this.autoHideDelay = 3000;\r\n _this.events.on(\"shown\", function (ev) {\r\n if (_this._autoHideTimeout) {\r\n _this._autoHideTimeout.dispose();\r\n }\r\n if (_this.autoHideDelay) {\r\n _this._autoHideTimeout = _this.setTimeout(function () {\r\n _this.hide();\r\n }, _this.autoHideDelay);\r\n }\r\n });\r\n _this.events.on(\"down\", function (ev) {\r\n if (_this._autoHideTimeout) {\r\n _this._autoHideTimeout.dispose();\r\n }\r\n });\r\n _this.events.on(\"out\", function (ev) {\r\n if (_this.autoHideDelay) {\r\n _this._autoHideTimeout = _this.setTimeout(function () {\r\n _this.hide();\r\n }, _this.autoHideDelay);\r\n }\r\n });\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Grip.prototype, \"position\", {\r\n /**\r\n * @return Position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"position\");\r\n },\r\n /**\r\n * Sets position of the grip.\r\n *\r\n * Available options: \"left\", \"right\" (default), \"top\", \"bottom\".\r\n *\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"position\", value)) {\r\n switch (value) {\r\n case \"left\":\r\n this.align = \"left\";\r\n this.valign = \"middle\";\r\n this.horizontalCenter = \"left\";\r\n this.verticalCenter = \"middle\";\r\n this.icon.rotation = 0;\r\n this.width = undefined;\r\n this.height = percent(30);\r\n break;\r\n case \"right\":\r\n this.align = \"right\";\r\n this.valign = \"middle\";\r\n this.horizontalCenter = \"right\";\r\n this.verticalCenter = \"middle\";\r\n this.icon.rotation = 0;\r\n this.width = undefined;\r\n this.height = percent(30);\r\n break;\r\n case \"top\":\r\n this.align = \"center\";\r\n this.valign = \"top\";\r\n this.horizontalCenter = \"middle\";\r\n this.verticalCenter = \"top\";\r\n this.icon.rotation = 90;\r\n this.width = percent(30);\r\n this.height = undefined;\r\n break;\r\n case \"bottom\":\r\n this.align = \"center\";\r\n this.valign = \"bottom\";\r\n this.horizontalCenter = \"middle\";\r\n this.verticalCenter = \"bottom\";\r\n this.icon.rotation = 90;\r\n this.width = percent(30);\r\n this.height = undefined;\r\n break;\r\n default:\r\n this.align = \"center\";\r\n this.valign = \"middle\";\r\n this.horizontalCenter = \"middle\";\r\n this.verticalCenter = \"middle\";\r\n this.icon.rotation = 90;\r\n this.width = percent(30);\r\n this.height = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Grip.prototype, \"autoHideDelay\", {\r\n /**\r\n * @return Delay\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"autoHideDelay\");\r\n },\r\n /**\r\n * Number of milliseconds to show grip until it is hidden automatically.\r\n *\r\n * @default 3000\r\n * @param value Delay\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"autoHideDelay\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Grip;\r\n}(Button));\r\nexport { Grip };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Grip\"] = Grip;\r\n//# sourceMappingURL=Grip.js.map","/**\r\n * [[Chart]] class provides base functionality for all chart types to inherit.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../core/Registry\";\r\nimport { Component } from \"../core/Component\";\r\nimport { MutableValueDisposer, Disposer } from \"../core/utils/Disposer\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Grip } from \"../core/elements/Grip\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport * as $iter from \"../core/utils/Iterator\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Chart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ChartDataItem = /** @class */ (function (_super) {\r\n __extends(ChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ChartDataItem;\r\n}(DataItem));\r\nexport { ChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all Charts.\r\n *\r\n * @see {@link IChartEvents} for a list of available Events\r\n * @see {@link IChartAdapters} for a list of available Adapters\r\n */\r\nvar Chart = /** @class */ (function (_super) {\r\n __extends(Chart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Chart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A reference to chart's [[Legend]].\r\n * @ignore\r\n */\r\n _this._legend = new MutableValueDisposer();\r\n if (_this.constructor === Chart) {\r\n throw new Error(\"'Chart' cannot be instantiated directly. Please use a specific chart type.\");\r\n }\r\n _this.className = \"Chart\";\r\n // Create a list of titles\r\n var template = new Label();\r\n _this.titles = new ListTemplate(template);\r\n _this._disposers.push(new ListDisposer(_this.titles));\r\n _this._disposers.push(template);\r\n // Chart component is also a container. it holds _chartAndLegendCont and titles\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.layout = \"vertical\";\r\n // Chart and legend\r\n var chartAndLegendContainer = _this.createChild(Container);\r\n chartAndLegendContainer.shouldClone = false;\r\n chartAndLegendContainer.layout = \"vertical\";\r\n chartAndLegendContainer.width = percent(100);\r\n chartAndLegendContainer.height = percent(100);\r\n _this.chartAndLegendContainer = chartAndLegendContainer;\r\n // Chart container holds all the elements of a chart, extept titles and legend\r\n var chartContainer = chartAndLegendContainer.createChild(Container);\r\n chartContainer.shouldClone = false;\r\n chartContainer.width = percent(100);\r\n chartContainer.height = percent(100);\r\n _this.chartContainer = chartContainer;\r\n _this.showOnInit = true;\r\n _this._disposers.push(_this._legend);\r\n // Add title list events to apply certain formatting options and to make\r\n // the chart reference them as accessible screen reader labels\r\n _this.titles.events.on(\"inserted\", function (label) {\r\n _this.processTitle(label);\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n _this.titles.events.on(\"removed\", function (label) {\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n // Accessibility\r\n // It seems we can't set focusable on the whole chart because it seems to\r\n // mess up the whole focus event system - getting a focus on an inside\r\n // object also trigger focus on parent\r\n //this.focusable = true;\r\n _this.role = \"region\";\r\n _this.defaultState.transitionDuration = 1;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Chart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Chart\");\r\n }\r\n };\r\n /**\r\n * Initiates drawing of the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.draw = function () {\r\n this.fixLayout();\r\n _super.prototype.draw.call(this);\r\n };\r\n /**\r\n * Updates legend's hierarchy based on the position.\r\n */\r\n Chart.prototype.fixLayout = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var chartAndLegendContainer = this.chartAndLegendContainer;\r\n var chartContainer = this.chartContainer;\r\n chartContainer.x = undefined;\r\n chartContainer.y = undefined;\r\n if (legend.position != \"absolute\") {\r\n legend.x = undefined;\r\n legend.y = undefined;\r\n }\r\n switch (legend.position) {\r\n case \"left\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n legend.toBack();\r\n break;\r\n case \"right\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n legend.toFront();\r\n break;\r\n case \"top\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.toBack();\r\n break;\r\n case \"bottom\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.toFront();\r\n break;\r\n case \"absolute\":\r\n legend.isMeasured = false;\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n */\r\n Chart.prototype.feedLegend = function () {\r\n // Nothing here. This method is provided only as a \"placeholder\" for\r\n // extending classes to override\r\n };\r\n /**\r\n * Adds a new title to the chart when it is inserted into chart's titles\r\n * list.\r\n * @param event An event object which is triggered when inserting into titles list\r\n * @return Label object\r\n */\r\n Chart.prototype.processTitle = function (event) {\r\n var title = event.newValue;\r\n title.parent = this;\r\n title.toBack();\r\n title.shouldClone = false;\r\n title.align = \"center\";\r\n // Need to explicitly apply the `id` attribute so it can be referenced by\r\n // `aria-labelledby`\r\n title.uidAttr();\r\n return title;\r\n };\r\n /**\r\n * Checks if chart has any title elements. If it does, we will use them in an\r\n * `aria-labelledby` attribute so that screen readers can use them to properly\r\n * describe the chart when it is focused or hovered.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.updateReaderTitleReferences = function () {\r\n if (this.titles.length) {\r\n var titleIds_1 = [];\r\n $iter.each(this.titles.iterator(), function (title) {\r\n titleIds_1.push(title.uid);\r\n });\r\n this.setSVGAttribute({ \"aria-labelledby\": titleIds_1.join(\" \") });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-labelledby\");\r\n }\r\n };\r\n Object.defineProperty(Chart.prototype, \"legend\", {\r\n /**\r\n * @return Legend\r\n */\r\n get: function () {\r\n return this._legend.get();\r\n },\r\n /**\r\n * Holds the instance of chart's [[Leged]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for more information about legends\r\n * @param Legend\r\n */\r\n set: function (legend) {\r\n this.setLegend(legend);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Prepares the legend instance for use in this chart.\r\n *\r\n * @param legend Legend\r\n */\r\n Chart.prototype.setLegend = function (legend) {\r\n var _this = this;\r\n if (this._legend.get() !== legend) {\r\n if (legend) {\r\n // Set legend options\r\n legend.parent = this.chartAndLegendContainer;\r\n this._legend.set(legend, legend.events.on(\"propertychanged\", function (event) {\r\n if (event.property == \"position\") {\r\n _this.fixLayout();\r\n }\r\n }, undefined, false));\r\n legend.addDisposer(new Disposer(function () {\r\n _this.legend = undefined;\r\n }));\r\n }\r\n else {\r\n this._legend.reset();\r\n }\r\n this.feedLegend();\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n Chart.prototype.dispose = function () {\r\n // otherwise there might be some errors when disposing chart which was just inited\r\n if (this.legend) {\r\n this.legend.dispose();\r\n }\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Chart.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up legend\r\n if ($type.hasValue(config.legend) && !$type.hasValue(config.legend.type)) {\r\n config.legend.type = \"Legend\";\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n Chart.prototype.copyFrom = function (source) {\r\n this.titles.copyFrom(source.titles);\r\n this.chartContainer.copyFrom(source.chartContainer);\r\n if (source.legend) {\r\n this.legend = source.legend.clone();\r\n this.legend.removeChildren();\r\n }\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n Object.defineProperty(Chart.prototype, \"dragGrip\", {\r\n /**\r\n * @return Grip\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._dragGrip) {\r\n var grip_1 = this.tooltipContainer.createChild(Grip);\r\n grip_1.align = \"right\";\r\n grip_1.valign = \"middle\";\r\n grip_1.hide(0);\r\n grip_1.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n _this.interactionsEnabled = false;\r\n }\r\n });\r\n grip_1.events.on(\"up\", function (ev) {\r\n _this.interactionsEnabled = true;\r\n });\r\n this.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n grip_1.show();\r\n }\r\n });\r\n this._dragGrip = grip_1;\r\n }\r\n return this._dragGrip;\r\n },\r\n /**\r\n * An instance of [[Grip]] which serves as a grip point which appears on\r\n * touch and allows scrolling whole page even if chart is occupying the\r\n * whole of the screen and would otherwise prevent scrolling.\r\n *\r\n * @since 4.4.0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n * @param value Grip\r\n */\r\n set: function (value) {\r\n this._dragGrip = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Chart.prototype, \"focusable\", {\r\n get: function () {\r\n return this.parent.focusable;\r\n },\r\n set: function (value) {\r\n this.parent.focusable = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Chart;\r\n}(Component));\r\nexport { Chart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Chart\"] = Chart;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Reduce horizontal margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingLeft > 10) {\r\n state.properties.paddingLeft = 10;\r\n }\r\n if (target.pixelPaddingRight > 10) {\r\n state.properties.paddingRight = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Reduce vertical margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingTop > 10) {\r\n state.properties.paddingTop = 10;\r\n }\r\n if (target.pixelPaddingBottom > 10) {\r\n state.properties.paddingBottom = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove horizontal padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingLeft = 0;\r\n state.properties.paddingRight = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove vertical padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingTop = 0;\r\n state.properties.paddingBottom = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Chart.js.map","/**\r\n * Module that defines everything related to building bullets.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates bullets.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Bullet = /** @class */ (function (_super) {\r\n __extends(Bullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Bullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Bullet\";\r\n _this.isMeasured = false;\r\n _this.tooltipX = 0;\r\n _this.tooltipY = 0;\r\n _this.layout = \"none\";\r\n _this.applyOnClones = true;\r\n _this.copyToLegendMarker = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Bullet.prototype, \"locationX\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationX\");\r\n },\r\n /**\r\n * Relative horizontal location within cell. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"locationX\", value)) {\r\n var dataItem = this.dataItem;\r\n if (dataItem && dataItem.component) {\r\n dataItem.component.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"locationY\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationY\");\r\n },\r\n /**\r\n * Relative vertical location within cell. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"locationY\", value)) {\r\n var dataItem = this.dataItem;\r\n if (dataItem && dataItem.component) {\r\n dataItem.component.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"xField\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"xField\");\r\n },\r\n /**\r\n * [xField description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"xField\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"yField\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"yField\");\r\n },\r\n /**\r\n * [yField description]\r\n *\r\n * Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"yField\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"isDynamic\", {\r\n /**\r\n * @return Redraw on data change?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"isDynamic\");\r\n },\r\n /**\r\n * Indicates if the bullet is \"dynamic\".\r\n *\r\n * In most cases the bullets remain the same, even if the underlying data\r\n * changes.\r\n *\r\n * However, in cases where bullet also displays a label, or its size depends\r\n * on data, it also needs to be redrawn when the underlying data changes.\r\n *\r\n * Only those bullets that have set `isDynamic = true` will be redrawn each\r\n * time data changes. Regular bullets will be reused as they are.\r\n *\r\n * @default false\r\n * @param value Redraw on data change?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"isDynamic\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Bullet.prototype, \"copyToLegendMarker\", {\r\n /**\r\n * @return Redraw on data change?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"copyToLegendMarker\");\r\n },\r\n /**\r\n * Indicates if the bullet should be copied to legend marker\r\n *\r\n * @default false\r\n * @param value Redraw on data change?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"copyToLegendMarker\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Bullet;\r\n}(Container));\r\nexport { Bullet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Bullet\"] = Bullet;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Hide bullets\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.isXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Bullet) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Bullet.js.map","/**\r\n * Legend-related functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../core/Component\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { RoundedRectangle } from \"../core/elements/RoundedRectangle\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { keyboard } from \"../core/utils/Keyboard\";\r\nimport { registry } from \"../core/Registry\";\r\nimport { getInteraction } from \"../core/interaction/Interaction\";\r\nimport { percent, Percent } from \"../core/utils/Percent\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../core/utils/Utils\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport * as $math from \"../core/utils/Math\";\r\nimport { Sprite } from \"../core/Sprite\";\r\nimport { Disposer } from \"../core/utils/Disposer\";\r\nimport { MouseCursorStyle } from \"../core/interaction/Mouse\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\nimport { Scrollbar } from \"../core/elements/Scrollbar\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Legend]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar LegendDataItem = /** @class */ (function (_super) {\r\n __extends(LegendDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LegendDataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * @ignore\r\n */\r\n _this.childrenCreated = false;\r\n _this.className = \"LegendDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(LegendDataItem.prototype, \"label\", {\r\n /**\r\n * A legend item's [[Label]] element.\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._label) {\r\n var label_1 = this.component.labels.create();\r\n this._label = label_1;\r\n this.addSprite(label_1);\r\n this._disposers.push(label_1);\r\n label_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.labels.removeValue(label_1);\r\n }\r\n }));\r\n }\r\n return this._label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"color\", {\r\n /**\r\n * @return Main color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Main color of legend data item.\r\n *\r\n * This is set by the target element this legend item represents, like\r\n * a Series or a Slice.\r\n *\r\n * It can be used to derive a color in legend's sub-items, like label:\r\n *\r\n * ```TypeScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JavaScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"legend\": {\r\n * // ...\r\n * \"labels\": {\r\n * \"text\": \"[{color}]{name}[/]\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/#Legend_labels} For more information about configuring legend labels.\r\n * @param value Main color\r\n */\r\n set: function (value) {\r\n this.setProperty(\"color\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"valueLabel\", {\r\n /**\r\n * A legend item's [[Label]] element for \"value label\".\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._valueLabel) {\r\n var valueLabel_1 = this.component.valueLabels.create();\r\n this._valueLabel = valueLabel_1;\r\n this.addSprite(valueLabel_1);\r\n this._disposers.push(valueLabel_1);\r\n valueLabel_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.valueLabels.removeValue(valueLabel_1);\r\n }\r\n }));\r\n }\r\n return this._valueLabel;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"itemContainer\", {\r\n /**\r\n * A reference to the main [[Container]] that holds legend item's elements:\r\n * marker and labels.\r\n *\r\n * @return Item container\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._itemContainer) {\r\n var component_1 = this.component;\r\n var itemContainer_1 = component_1.itemContainers.create();\r\n itemContainer_1.parent = component_1;\r\n this._itemContainer = itemContainer_1;\r\n this.addSprite(itemContainer_1);\r\n this._disposers.push(itemContainer_1);\r\n // Add click/tap event to toggle item\r\n if (itemContainer_1.togglable) {\r\n itemContainer_1.events.on(\"toggled\", function (ev) {\r\n component_1.toggleDataItem(ev.target.dataItem);\r\n }, undefined, false);\r\n }\r\n // Add focus event so that we can track which object is currently in focus\r\n // for keyboard toggling\r\n if (itemContainer_1.focusable) {\r\n itemContainer_1.events.on(\"hit\", function (ev) {\r\n // We need this here in order to reset focused item when it is clicked\r\n // normally so that it is not toggled by ENTER afterwards\r\n component_1.focusedItem = undefined;\r\n }, undefined, false);\r\n itemContainer_1.events.on(\"focus\", function (ev) {\r\n component_1.focusedItem = ev.target.dataItem;\r\n }, undefined, false);\r\n itemContainer_1.events.on(\"blur\", function (ev) {\r\n component_1.focusedItem = undefined;\r\n }, undefined, false);\r\n }\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.itemContainers.removeValue(itemContainer_1);\r\n }\r\n }));\r\n if (this.dataContext.uidAttr) {\r\n itemContainer_1.readerControls = this.dataContext.uidAttr();\r\n itemContainer_1.readerLabelledBy = this.dataContext.uidAttr();\r\n }\r\n var sprite = this.dataContext;\r\n if ((sprite instanceof DataItem || sprite instanceof Sprite) && !sprite.isDisposed()) {\r\n var visibilitychanged = function (ev) {\r\n itemContainer_1.readerChecked = ev.visible;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = !ev.visible;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n };\r\n sprite.addDisposer(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.dataItems.remove(_this);\r\n }\r\n }));\r\n if (sprite instanceof Sprite) {\r\n itemContainer_1.addDisposer(sprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false));\r\n itemContainer_1.addDisposer(sprite.events.on(\"hidden\", function (ev) {\r\n itemContainer_1.readerChecked = false;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = true;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n itemContainer_1.addDisposer(sprite.events.on(\"shown\", function (ev) {\r\n itemContainer_1.readerChecked = true;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = false;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n }\r\n else {\r\n itemContainer_1.addDisposer(sprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false));\r\n }\r\n }\r\n }\r\n return this._itemContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"marker\", {\r\n /**\r\n * A [[Container]] that holds legend item's marker element.\r\n *\r\n * @return Marker\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._marker) {\r\n var marker_1 = this.component.markers.create();\r\n this._marker = marker_1;\r\n marker_1.parent = this.itemContainer;\r\n this.addSprite(marker_1);\r\n this._disposers.push(marker_1);\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.markers.removeValue(marker_1);\r\n }\r\n }));\r\n }\r\n return this._marker;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LegendDataItem;\r\n}(DataItem));\r\nexport { LegendDataItem };\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a class that carries legend settings.\r\n *\r\n * A legend might change its settings dynamically. Legend can also be shared\r\n * by several elements, requiring different settings.\r\n *\r\n * Having legend's settings in a separate object is a good way to \"hot swap\"\r\n * a set of settings for the legend.\r\n */\r\nvar LegendSettings = /** @class */ (function () {\r\n function LegendSettings() {\r\n /**\r\n * Should marker be created for each legend item.\r\n */\r\n this.createMarker = true;\r\n }\r\n return LegendSettings;\r\n}());\r\nexport { LegendSettings };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * [[Legend]] class is used to create legend for the chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for Legend documentation\r\n * @see {@link ILegendEvents} for a list of available events\r\n * @see {@link ILegendAdapters} for a list of available Adapters\r\n */\r\nvar Legend = /** @class */ (function (_super) {\r\n __extends(Legend, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Legend() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Legend\";\r\n // Set defaults\r\n _this.layout = \"grid\";\r\n _this.setPropertyValue(\"useDefaultMarker\", false);\r\n _this.setPropertyValue(\"scrollable\", false);\r\n _this.setPropertyValue(\"contentAlign\", \"center\");\r\n // Create a template container and list for legend items\r\n var itemContainer = new Container();\r\n itemContainer.applyOnClones = true;\r\n itemContainer.padding(8, 0, 8, 0);\r\n itemContainer.margin(0, 10, 0, 10);\r\n itemContainer.layout = \"horizontal\";\r\n itemContainer.clickable = true;\r\n itemContainer.focusable = true;\r\n itemContainer.role = \"switch\";\r\n itemContainer.togglable = true;\r\n itemContainer.cursorOverStyle = MouseCursorStyle.pointer;\r\n itemContainer.background.fillOpacity = 0; // creates hit area\r\n // Create container list using item template we just created\r\n _this.itemContainers = new ListTemplate(itemContainer);\r\n _this._disposers.push(new ListDisposer(_this.itemContainers));\r\n _this._disposers.push(_this.itemContainers.template);\r\n // Set up global keyboard events for toggling elements\r\n _this._disposers.push(getInteraction().body.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"enter\") && _this.focusedItem) {\r\n var focusedItem = _this.focusedItem;\r\n var target = focusedItem.itemContainer;\r\n if (target.togglable) {\r\n _this.toggleDataItem(focusedItem);\r\n }\r\n else if (target.clickable && target.events.isEnabled(\"hit\")) {\r\n target.dispatchImmediately(\"hit\", { event: ev });\r\n // We need this here because \"hit\" event resets `this.focusedItem`\r\n // And we need it here\r\n _this.focusedItem = focusedItem;\r\n }\r\n }\r\n }, _this));\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create a template container and list for the a marker\r\n var marker = new Container();\r\n marker.width = 23;\r\n marker.height = 23;\r\n marker.interactionsEnabled = false;\r\n marker.applyOnClones = true;\r\n marker.setStateOnChildren = true;\r\n marker.background.fillOpacity = 0;\r\n marker.background.strokeOpacity = 0;\r\n marker.propertyFields.fill = \"fill\";\r\n marker.valign = \"middle\";\r\n var disabledColor = interfaceColors.getFor(\"disabledBackground\");\r\n marker.events.on(\"childadded\", function (event) {\r\n var child = event.newValue;\r\n var activeState = child.states.create(\"active\");\r\n activeState.properties.stroke = disabledColor;\r\n activeState.properties.fill = disabledColor;\r\n });\r\n _this.markers = new ListTemplate(marker);\r\n _this._disposers.push(new ListDisposer(_this.markers));\r\n _this._disposers.push(_this.markers.template);\r\n // Create a legend background element\r\n var rectangle = marker.createChild(RoundedRectangle);\r\n rectangle.width = percent(100);\r\n rectangle.height = percent(100);\r\n rectangle.applyOnClones = true;\r\n rectangle.propertyFields.fill = \"fill\"; //othrwise old edge doesn't like as the same pattern is set both on parent and child https://codepen.io/team/amcharts/pen/72d7a98f3fb811d3118795220ff63182\r\n rectangle.strokeOpacity = 0;\r\n // Create a template container and list for item labels\r\n var label = new Label();\r\n label.text = \"{name}\";\r\n label.margin(0, 5, 0, 5);\r\n label.valign = \"middle\";\r\n label.applyOnClones = true;\r\n label.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n _this.labels = new ListTemplate(label);\r\n _this._disposers.push(new ListDisposer(_this.labels));\r\n _this._disposers.push(_this.labels.template);\r\n label.interactionsEnabled = false;\r\n label.truncate = true;\r\n label.fullWords = false;\r\n // Create a template container and list for item value labels\r\n var valueLabel = new Label();\r\n valueLabel.margin(0, 5, 0, 0);\r\n valueLabel.valign = \"middle\";\r\n valueLabel.width = 50; // to avoid rearranging legend entries when value changes.\r\n valueLabel.align = \"right\";\r\n valueLabel.textAlign = \"end\";\r\n valueLabel.applyOnClones = true;\r\n valueLabel.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n valueLabel.interactionsEnabled = false;\r\n _this.valueLabels = new ListTemplate(valueLabel);\r\n _this._disposers.push(new ListDisposer(_this.valueLabels));\r\n _this._disposers.push(_this.valueLabels.template);\r\n _this.position = \"bottom\"; // don't use setPropertyValue here!\r\n // Create a state for disabled legend items\r\n itemContainer.states.create(\"active\");\r\n itemContainer.setStateOnChildren = true;\r\n // Apply accessibility settings\r\n _this.role = \"group\";\r\n _this.events.on(\"layoutvalidated\", _this.handleScrollbar, _this, false);\r\n _this.events.on(\"parentset\", function () {\r\n var parent = _this.parent;\r\n if (parent) {\r\n _this._disposers.push(parent.events.on(\"maxsizechanged\", function () {\r\n if (_this.scrollable) {\r\n _this.setTimeout(function () {\r\n _this.updateMasks();\r\n _this.handleScrollbar();\r\n _this._handleWheelReal(1);\r\n }, 100);\r\n }\r\n }));\r\n }\r\n });\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Legend.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Legend\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Legend.prototype.createDataItem = function () {\r\n return new LegendDataItem();\r\n };\r\n /**\r\n * [validateDataElements description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Legend.prototype.validateDataElements = function () {\r\n if (this.scrollbar) {\r\n this.scrollbar.start = 0;\r\n this.scrollbar.end = 1;\r\n }\r\n _super.prototype.validateDataElements.call(this);\r\n };\r\n /**\r\n * [validateDataElement description]\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n * @todo Description\r\n * @todo Figure out how to update appearance of legend item without losing focus\r\n * @todo Update legend marker appearance as apperance of related series changes\r\n */\r\n Legend.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n // Get data item (legend item's) container\r\n var container = dataItem.itemContainer;\r\n var marker = dataItem.marker;\r\n $utils.used(dataItem.label);\r\n var valueLabel = dataItem.valueLabel;\r\n // Set parent and update current state\r\n container.readerChecked = dataItem.dataContext.visible;\r\n // Tell series its legend data item\r\n dataItem.dataContext.legendDataItem = dataItem;\r\n var tempMaxWidth = dataItem.label.maxWidth;\r\n if (!(dataItem.label.width instanceof Percent)) {\r\n dataItem.label.width = undefined;\r\n }\r\n if (tempMaxWidth > 0) {\r\n dataItem.label.maxWidth = tempMaxWidth;\r\n }\r\n if (valueLabel.align == \"right\") {\r\n valueLabel.width = undefined;\r\n }\r\n var legendSettings = dataItem.dataContext.legendSettings;\r\n // If we are not using default markers, create a unique legend marker based\r\n // on the data item type\r\n var dataContext = dataItem.dataContext;\r\n if (dataContext.createLegendMarker && (!this.useDefaultMarker || !(dataContext instanceof Sprite))) {\r\n if (!dataItem.childrenCreated) {\r\n dataContext.createLegendMarker(marker);\r\n dataItem.childrenCreated = true;\r\n }\r\n }\r\n else {\r\n this.markers.template.propertyFields.fill = undefined;\r\n }\r\n if (dataContext.updateLegendValue) {\r\n dataContext.updateLegendValue(); // this solves issue with external legend, as legend is created after chart updates legend values\r\n }\r\n if (dataContext.component && dataContext.component.updateLegendValue) {\r\n dataContext.component.updateLegendValue(dataContext);\r\n }\r\n if (valueLabel.invalid) {\r\n valueLabel.validate();\r\n }\r\n if (valueLabel.text == \"\" || valueLabel.text == undefined) {\r\n valueLabel.__disabled = true;\r\n }\r\n else {\r\n valueLabel.__disabled = false;\r\n }\r\n if (legendSettings && (legendSettings.itemValueText != undefined || legendSettings.valueText != undefined)) {\r\n valueLabel.__disabled = false;\r\n }\r\n var visible = dataItem.dataContext.visible;\r\n if (visible === undefined) {\r\n visible = true;\r\n }\r\n visible = $type.toBoolean(visible);\r\n dataItem.dataContext.visible = visible;\r\n container.events.disableType(\"toggled\");\r\n container.isActive = !visible;\r\n if (container.isActive) {\r\n container.setState(\"active\", 0);\r\n }\r\n else {\r\n container.setState(\"default\", 0);\r\n }\r\n container.events.enableType(\"toggled\");\r\n };\r\n Legend.prototype.afterDraw = function () {\r\n var _this = this;\r\n var maxWidth = this.getPropertyValue(\"maxWidth\");\r\n var maxLabelWidth = 0;\r\n this.labels.each(function (label) {\r\n if (label.invalid) {\r\n label.maxWidth = undefined;\r\n label.validate();\r\n }\r\n if (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxLabelWidth) {\r\n maxLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n }\r\n });\r\n var maxValueLabelWidth = 0;\r\n this.valueLabels.each(function (label) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n if (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxValueLabelWidth) {\r\n maxValueLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n }\r\n });\r\n var maxMarkerWidth = 0;\r\n this.markers.each(function (marker) {\r\n if (marker.invalid) {\r\n marker.validate();\r\n }\r\n if (marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight > maxMarkerWidth) {\r\n maxMarkerWidth = marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight;\r\n }\r\n });\r\n var itemContainer = this.itemContainers.template;\r\n var margin = itemContainer.pixelMarginRight + itemContainer.pixelMarginLeft;\r\n var maxAdjustedLabelWidth;\r\n var trueMaxWidth = maxLabelWidth + maxValueLabelWidth + maxMarkerWidth;\r\n if (!$type.isNumber(maxWidth)) {\r\n maxAdjustedLabelWidth = maxLabelWidth;\r\n }\r\n else {\r\n maxWidth = maxWidth - margin;\r\n if (maxWidth > trueMaxWidth) {\r\n maxWidth = trueMaxWidth;\r\n }\r\n maxAdjustedLabelWidth = maxWidth - maxMarkerWidth - maxValueLabelWidth;\r\n }\r\n this.labels.each(function (label) {\r\n if (_this.valueLabels.template.align == \"right\" || label.measuredWidth > maxAdjustedLabelWidth) {\r\n if (!(label.width instanceof Percent)) {\r\n label.width = Math.min(label.maxWidth, maxAdjustedLabelWidth - label.pixelMarginLeft - label.pixelMarginRight);\r\n label.maxWidth = label.width;\r\n }\r\n }\r\n });\r\n if (this.valueLabels.template.align == \"right\") {\r\n this.valueLabels.each(function (valueLabel) {\r\n valueLabel.width = maxValueLabelWidth - valueLabel.pixelMarginRight - valueLabel.pixelMarginLeft;\r\n });\r\n }\r\n _super.prototype.afterDraw.call(this);\r\n };\r\n Legend.prototype.handleScrollbar = function () {\r\n var scrollbar = this.scrollbar;\r\n if (this.scrollable && scrollbar) {\r\n var measuredHeight = this.maxHeight;\r\n scrollbar.height = measuredHeight;\r\n scrollbar.x = this.measuredWidth - scrollbar.pixelWidth - scrollbar.pixelMarginLeft;\r\n if (this.contentHeight > measuredHeight) {\r\n scrollbar.visible = true;\r\n scrollbar.thumb.height = scrollbar.height * measuredHeight / this.contentHeight;\r\n this.paddingRight = scrollbar.pixelWidth + scrollbar.pixelMarginLeft + scrollbar.pixelMarginRight;\r\n }\r\n else {\r\n scrollbar.thumb.height = scrollbar.height * measuredHeight / this.contentHeight;\r\n this.paddingRight = scrollbar.pixelWidth + scrollbar.pixelMarginLeft + scrollbar.pixelMarginRight;\r\n scrollbar.visible = false;\r\n scrollbar.start = 0;\r\n scrollbar.end = 1;\r\n }\r\n scrollbar.handleThumbPosition();\r\n this.updateMasks();\r\n }\r\n };\r\n Object.defineProperty(Legend.prototype, \"position\", {\r\n /**\r\n * @return Position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"position\");\r\n },\r\n /**\r\n * Position of the legend.\r\n *\r\n * Options: \"left\", \"right\", \"top\", \"bottom\" (default), or \"absolute\".\r\n *\r\n * IMPORTANT: [[MapChart]] will ignore this setting, as it is using different\r\n * layout structure than other charts.\r\n *\r\n * To position legend in [[MapChart]] set legend's `align` (`\"left\"` or\r\n * `\"right\"`) and `valign` (`\"top\"` or `\"bottom\"`) properties instead.\r\n *\r\n * @default \"bottom\"\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"position\", value)) {\r\n if (value == \"left\" || value == \"right\") {\r\n this.margin(10, 5, 10, 10);\r\n this.valign = \"middle\";\r\n this.contentAlign = \"none\";\r\n this.valueLabels.template.align = \"right\";\r\n if (!$type.isNumber(this.maxColumns)) {\r\n this.maxColumns = 1;\r\n }\r\n this.width = undefined;\r\n this.maxWidth = 220;\r\n }\r\n else {\r\n this.maxColumns = undefined;\r\n this.width = percent(100);\r\n this.valueLabels.template.align = \"left\";\r\n }\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Legend.prototype, \"useDefaultMarker\", {\r\n /**\r\n * @return Use default marker?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"useDefaultMarker\");\r\n },\r\n /**\r\n * Should legend try to mirror the look of the related item when building\r\n * the marker for legend item?\r\n *\r\n * If set to `false` it will try to make the marker look like its related\r\n * item.\r\n *\r\n * E.g. if an item is for a Line Series, it will display a line of the\r\n * same thickness, color, and will use the same bullets if series have them.\r\n *\r\n * If set to `true`, all markers will be shown as squares, regardless of te\r\n * series type.\r\n *\r\n * @default false\r\n * @param value Use default marker?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"useDefaultMarker\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Legend.prototype, \"scrollable\", {\r\n /**\r\n * @return Legend Scrollable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"scrollable\");\r\n },\r\n /**\r\n * If set to `true` the Legend will display a scrollbar if its contents do\r\n * not fit into its `maxHeight`.\r\n *\r\n * Please note that `maxHeight` is automatically set for Legend when its\r\n * `position` is set to `\"left\"` or `\"right\"`.\r\n *\r\n * @default false\r\n * @since 4.8.0\r\n * @param value Legend Scrollable?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"scrollable\", value, true)) {\r\n if (value) {\r\n var scrollbar = this.createChild(Scrollbar);\r\n this.scrollbar = scrollbar;\r\n scrollbar.isMeasured = false;\r\n scrollbar.orientation = \"vertical\";\r\n scrollbar.endGrip.__disabled = true;\r\n scrollbar.startGrip.__disabled = true;\r\n scrollbar.visible = false;\r\n scrollbar.marginLeft = 5;\r\n this._mouseWheelDisposer = this.events.on(\"wheel\", this.handleWheel, this, false);\r\n this._disposers.push(this._mouseWheelDisposer);\r\n this._disposers.push(scrollbar.events.on(\"rangechanged\", this.updateMasks, this, false));\r\n }\r\n else {\r\n if (this._mouseWheelDisposer) {\r\n this._mouseWheelDisposer.dispose();\r\n if (this.scrollbar) {\r\n this.scrollbar.dispose();\r\n this.scrollbar = undefined;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles mouse wheel scrolling of legend.\r\n *\r\n * @param event Event\r\n */\r\n Legend.prototype.handleWheel = function (event) {\r\n this._handleWheelReal(event.shift.y);\r\n };\r\n Legend.prototype._handleWheelReal = function (shift) {\r\n var scrollbar = this.scrollbar;\r\n if (scrollbar) {\r\n var ds = (shift / 1000 * this.measuredHeight / this.contentHeight);\r\n var delta = scrollbar.end - scrollbar.start;\r\n if (shift > 0) {\r\n scrollbar.start = $math.max(0, scrollbar.start - ds);\r\n scrollbar.end = scrollbar.start + delta;\r\n }\r\n else {\r\n scrollbar.end = $math.min(1, scrollbar.end - ds);\r\n scrollbar.start = scrollbar.end - delta;\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Legend.prototype.updateMasks = function () {\r\n var _this = this;\r\n if (this.scrollbar) {\r\n this.itemContainers.each(function (itemContainer) {\r\n itemContainer.dy = -_this.scrollbar.thumb.pixelY * _this.contentHeight / _this.maxHeight;\r\n itemContainer.maskRectangle = { x: 0, y: -itemContainer.dy, width: _this.measuredWidth, height: _this.maxHeight };\r\n });\r\n }\r\n this.invalidatePosition();\r\n };\r\n /**\r\n * Toggles a legend item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item Legend item\r\n * @todo Maybe do it with togglable instead\r\n */\r\n Legend.prototype.toggleDataItem = function (item) {\r\n var dataContext = item.dataContext;\r\n if (!dataContext.visible || dataContext.isHiding || (dataContext instanceof Sprite && dataContext.isHidden)) {\r\n item.color = item.colorOrig;\r\n dataContext.appeared = true;\r\n item.itemContainer.isActive = false;\r\n if (dataContext.hidden === true) {\r\n dataContext.hidden = false;\r\n }\r\n if (dataContext.show) {\r\n dataContext.show();\r\n }\r\n else {\r\n dataContext.visible = true;\r\n }\r\n this.svgContainer.readerAlert(this.language.translate(\"%1 shown\", this.language.locale, item.label.readerTitle));\r\n }\r\n else {\r\n item.itemContainer.isActive = true;\r\n dataContext.appeared = true;\r\n if (dataContext.hide) {\r\n dataContext.hide();\r\n }\r\n else {\r\n dataContext.visible = false;\r\n }\r\n this.svgContainer.readerAlert(this.language.translate(\"%1 hidden\", this.language.locale, item.label.readerTitle));\r\n item.color = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n }\r\n };\r\n Object.defineProperty(Legend.prototype, \"preloader\", {\r\n /**\r\n * Override preloader method so that legend does not accidentally show its\r\n * own preloader.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Always `undefined`\r\n */\r\n get: function () {\r\n return;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [handleDataItemPropertyChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Legend.prototype.handleDataItemPropertyChange = function (dataItem, name) {\r\n dataItem.valueLabel.invalidate();\r\n dataItem.label.invalidate();\r\n };\r\n return Legend;\r\n}(Component));\r\nexport { Legend };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Legend\"] = Legend;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Move legend to below the chart if chart is narrow\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"left\" || target.position == \"right\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"bottom\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Move legend to the right if chart is very short\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"top\" || target.position == \"bottom\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"right\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Disable legend altogether on small charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.isXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Legend.js.map","/**\r\n * Functionality for any series-based elements, like Line Series (graphs),\r\n * Pie slice lists, etc.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../../core/Component\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List, ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Dictionary, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { LegendSettings } from \"../Legend\";\r\nimport { options } from \"../../core/Options\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $ease from \"../../core/utils/Ease\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Series]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar SeriesDataItem = /** @class */ (function (_super) {\r\n __extends(SeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SeriesDataItem\";\r\n //@todo Should we make `bullets` list disposable?\r\n //this._disposers.push(new DictionaryDisposer(this.bullets));\r\n _this.values.value = {};\r\n _this.values.value = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(SeriesDataItem.prototype, \"bullets\", {\r\n /**\r\n * A dictionary of data items bullets, where key is uid of a bullet template.\r\n */\r\n get: function () {\r\n if (!this._bullets) {\r\n this._bullets = new Dictionary();\r\n this._disposers.push(new DictionaryDisposer(this._bullets));\r\n }\r\n return this._bullets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n SeriesDataItem.prototype.dispose = function () {\r\n this.bullets.clear();\r\n _super.prototype.dispose.call(this);\r\n };\r\n Object.defineProperty(SeriesDataItem.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.value.value;\r\n },\r\n /**\r\n * data items's numeric value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"value\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return SeriesDataItem;\r\n}(DataItem));\r\nexport { SeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines base class for any kind of serial data.\r\n *\r\n * @see {@link ISeriesEvents} for a list of available Events\r\n * @see {@link ISeriesAdapters} for a list of available Adapters\r\n * @todo Separate axis-related stuff to some other class so that MapSeries would not have unrelated stuff\r\n */\r\nvar Series = /** @class */ (function (_super) {\r\n __extends(Series, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Series() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Should this series excluded from the axis scale calculations?\r\n *\r\n * @default false\r\n */\r\n _this._ignoreMinMax = false;\r\n /**\r\n * Should series' bullets?\r\n *\r\n * @default true\r\n */\r\n _this._showBullets = true;\r\n /**\r\n * Settings for the appearance of the related legend items.\r\n */\r\n _this.legendSettings = new LegendSettings();\r\n /**\r\n * Lowest overal values by type.\r\n */\r\n _this._tmin = new Dictionary();\r\n /**\r\n * Highest overal values by type.\r\n */\r\n _this._tmax = new Dictionary();\r\n /**\r\n * Lowest values in current selection by type.\r\n */\r\n _this._smin = new Dictionary();\r\n /**\r\n * Highest values in current selection by type.\r\n */\r\n _this._smax = new Dictionary();\r\n /**\r\n * [dataItemsByAxis description]\r\n *\r\n * Both by category and date.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.dataItemsByAxis = new Dictionary();\r\n /**\r\n * Normally series items are focusable using keyboard, so that people can\r\n * select them with a TAB key. However, if there are a lot of data points on\r\n * screen it might be long and useless to tab through all o fthem.\r\n *\r\n * This is where `skipFocusThreshold` comes in. If there are more items than\r\n * the value set here, we will not make those focusable and rather let screen\r\n * reader software rely on the series summary, or authors provide alternative\r\n * detailed information display, such as HTML table.\r\n *\r\n * Different series might have different threshold defaults.\r\n */\r\n _this.skipFocusThreshold = 20;\r\n /**\r\n * Used to indicate if `itemReaderText` was changed \"from the outside\".\r\n */\r\n _this._itemReaderTextChanged = false;\r\n /**\r\n * Most of the series use absolute values. However sometimes various\r\n * calculated percent values are need, e.g. item's percent representation\r\n * across all values in series, etc.\r\n *\r\n * It's a resource-intensive operation, so it is disabled by default.\r\n *\r\n * If you need percents to be calculated, e.g. for showing them in tooltips,\r\n * or creating 100% stacks, this setting needs to be set to `true`.\r\n *\r\n * NOTE: `PieChart`, which relies on slice percentages, has this\r\n * automatically set to `true`.\r\n *\r\n * @default false\r\n */\r\n _this.calculatePercent = false;\r\n /**\r\n * When `calculatePercent` is enabled and data item's percent value is\r\n * calculated, last item's real value is used instead of its working value.\r\n *\r\n * This is done for the animations when last item in series (e.g. slice in\r\n * a `PieSeries`) is hidden or shown. (if we would use real value, the\r\n * calculated percent would always be 100%).\r\n *\r\n * Sometimes there is a need (e.g. for drill-down Sunburst) to disable this\r\n * hack by setting `usePercentHack` to `false`.\r\n *\r\n * @since 4.9.13\r\n * @default true\r\n */\r\n _this.usePercentHack = true;\r\n /**\r\n * Specifies if series should be automatically disposed when removing from\r\n * chart's `series` list.\r\n *\r\n * @default true\r\n */\r\n _this.autoDispose = true;\r\n /**\r\n * When chart/series' data is processed, all kinds of derivative values are\r\n * calculated. E.g. sum, min, max, change, etc. This is a potentially\r\n * time-consuming operation, especially prominent in data-heavy charts.\r\n *\r\n * If your chart does not need those values, and you have a lot of data,\r\n * setting this to `true` might give a dramatic increase in initial chart\r\n * load speed.\r\n *\r\n * Please note, regular column and line series usage scenarios do not\r\n * require derivative values. Those come into play only when you do advanced\r\n * functionality like coloring segments of charts in different colors\r\n * depending on change between open and close values, have stacked series, or\r\n * display any of the derived values, like percent, in tooltips or bullets.\r\n *\r\n * @default false\r\n */\r\n _this.simplifiedProcessing = false;\r\n if (_this.constructor === Series) {\r\n throw new Error(\"'Series' cannot be instantiated directly. Please use a specific series type.\");\r\n }\r\n _this.className = \"Series\";\r\n _this.isMeasured = false;\r\n _this.layout = \"none\";\r\n _this.shouldClone = false;\r\n _this.setPropertyValue(\"hidden\", false);\r\n _this.axisRanges = new List();\r\n _this.axisRanges.events.on(\"inserted\", _this.processAxisRange, _this, false);\r\n _this.minBulletDistance = 0; // otherwise we'll have a lot of cases when people won't see bullets and think it's a bug\r\n _this.mainContainer = _this.createChild(Container);\r\n _this.mainContainer.shouldClone = false;\r\n _this.mainContainer.mask = _this.createChild(Sprite);\r\n _this._disposers.push(_this.mainContainer);\r\n // all bullets should go on top of lines/fills. So we add a separate container for bullets and later set it's parent to chart.bulletsContainer\r\n var bulletsContainer = _this.mainContainer.createChild(Container);\r\n _this._shouldBeReady.push(bulletsContainer);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.layout = \"none\";\r\n bulletsContainer.virtualParent = _this;\r\n _this._disposers.push(bulletsContainer);\r\n _this.bulletsContainer = bulletsContainer;\r\n _this.tooltip = new Tooltip();\r\n _this.tooltip.virtualParent = _this;\r\n _this._disposers.push(_this.tooltip);\r\n _this.hiddenState.transitionEasing = $ease.cubicIn;\r\n // this data item holds sums, averages, etc\r\n _this.dataItem = _this.createDataItem();\r\n _this._disposers.push(_this.dataItem);\r\n _this.dataItem.component = _this;\r\n // Apply accessibility\r\n _this.role = \"group\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * We need this here so that class names can be applied to bullets container.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.applyTheme = function () {\r\n _super.prototype.applyTheme.call(this);\r\n if (options.autoSetClassName && this.bulletsContainer) {\r\n this.bulletsContainer.className = this.className + \"-bullets\";\r\n this.bulletsContainer.setClassName();\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Series.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Series.prototype.createDataItem = function () {\r\n return new SeriesDataItem();\r\n };\r\n Object.defineProperty(Series.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart;\r\n },\r\n /**\r\n * Chart series is used on.\r\n *\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions bullet.\r\n *\r\n * @param bullet Sprite\r\n */\r\n Series.prototype.positionBullet = function (bullet) {\r\n // Placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Decorates newly created bullet after it has been instert into the list.\r\n *\r\n * @param event List event\r\n * @todo investigate why itemReaderText is undefined\r\n */\r\n Series.prototype.processBullet = function (event) {\r\n var _this = this;\r\n var bullet = event.newValue;\r\n bullet.isTemplate = true;\r\n // Add accessibility options to bullet\r\n // If there are relatively few bullets, make them focusable\r\n this.events.once(\"datavalidated\", function (ev) {\r\n if (_this.itemsFocusable()) {\r\n bullet.focusable = true;\r\n }\r\n });\r\n this.invalidate();\r\n };\r\n /**\r\n * removes bullets\r\n *\r\n * @param event List event\r\n */\r\n Series.prototype.removeBullet = function (event) {\r\n var bullet = event.oldValue;\r\n this.dataItems.each(function (dataItem) {\r\n var eachBullet = dataItem.bullets.getKey(bullet.uid);\r\n if (eachBullet) {\r\n eachBullet.dispose();\r\n }\r\n });\r\n this.invalidate();\r\n };\r\n /**\r\n * Validates data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.validateDataItems = function () {\r\n _super.prototype.validateDataItems.call(this);\r\n this.processValues(false);\r\n };\r\n /**\r\n * Returns first value for the specific key in the series.\r\n *\r\n * @param key Key\r\n * @return Value\r\n * @todo Description\r\n * @todo Convert to propert object property iterator\r\n */\r\n Series.prototype.getFirstValue = function (key, startIndex) {\r\n // find first\r\n /*\r\n return $iter.findMap(this.dataItems.iterator(), (dataItem) => {\r\n for (let key in dataItem.values) {\r\n if ($object.hasKey(dataItem.values, key)) {\r\n let value: number = dataItem.values[key].workingValue;\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n });*/\r\n //if (startIndex > 0 && startIndex < this.dataItems.length - 1) {\r\n //startIndex++;\r\n //}\r\n for (var i = startIndex; i >= 0; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n var value = dataItem.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns first value for the specific key in the series.\r\n *\r\n * @param key Key\r\n * @return Value\r\n * @todo Description\r\n * @todo Convert to propert object property iterator\r\n */\r\n Series.prototype.getAbsoluteFirstValue = function (key) {\r\n for (var i = 0; i < this.dataItems.length; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n var value = dataItem.values[key].value;\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * [rangeChangeUpdate description]\r\n *\r\n * @todo Description\r\n */\r\n Series.prototype.rangeChangeUpdate = function () {\r\n _super.prototype.rangeChangeUpdate.call(this);\r\n this.processValues(true);\r\n };\r\n /**\r\n * [processValues description]\r\n *\r\n * @todo Description\r\n * @todo Convert to propert object property iterator\r\n * @param dataItems [description]\r\n */\r\n Series.prototype.processValues = function (working) {\r\n var _this = this;\r\n if (!this.simplifiedProcessing) {\r\n var dataItems = this.dataItems;\r\n var count_1 = {};\r\n var sum_1 = {};\r\n var absoluteSum_1 = {};\r\n var low_1 = {};\r\n var high_1 = {};\r\n var open_1 = {};\r\n var close_1 = {};\r\n var previous_1 = {};\r\n var first_1 = {};\r\n var absoluteFirst_1 = {};\r\n //let duration: number = 0; // todo: check if series uses selection.change or selection.change.percent and set duration to interpolationduration\r\n var startIndex_1 = $math.max(0, this.startIndex);\r\n startIndex_1 = $math.min(startIndex_1, this.dataItems.length);\r\n var endIndex = $math.min(this.endIndex, this.dataItems.length);\r\n if (!$type.isNumber(startIndex_1)) {\r\n startIndex_1 = 0;\r\n }\r\n if (!$type.isNumber(endIndex)) {\r\n endIndex = this.dataItems.length;\r\n }\r\n if (startIndex_1 > 0) {\r\n var dataItem_1 = dataItems.getIndex(startIndex_1 - 1);\r\n $object.each(dataItem_1.values, function (key, values) {\r\n var value = dataItem_1.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n // save previous\r\n previous_1[key] = value;\r\n }\r\n });\r\n }\r\n var _loop_1 = function (i) {\r\n var dataItem_2 = dataItems.getIndex(i);\r\n $object.each(dataItem_2.values, function (key, values) {\r\n var value = dataItem_2.getActualWorkingValue(key);\r\n //if (i >= startIndex && i <= endIndex) { // do not add to count, sum etc if it is not within start/end index\r\n if ($type.isNumber(value)) {\r\n // count values\r\n if (!$type.isNumber(count_1[key])) {\r\n count_1[key] = 0;\r\n }\r\n count_1[key]++;\r\n // sum values\r\n if (!$type.isNumber(sum_1[key])) {\r\n sum_1[key] = 0;\r\n }\r\n sum_1[key] += value;\r\n // absolute sum values\r\n if (!$type.isNumber(absoluteSum_1[key])) {\r\n absoluteSum_1[key] = 0;\r\n }\r\n absoluteSum_1[key] += Math.abs(value);\r\n // open\r\n if (!$type.isNumber(open_1[key])) {\r\n open_1[key] = value;\r\n }\r\n // close\r\n close_1[key] = value;\r\n // low\r\n if (!$type.isNumber(low_1[key])) {\r\n low_1[key] = value;\r\n }\r\n else {\r\n if (low_1[key] > value) {\r\n low_1[key] = value;\r\n }\r\n }\r\n // high\r\n if (!$type.isNumber(high_1[key])) {\r\n high_1[key] = value;\r\n }\r\n else {\r\n if (high_1[key] < value) {\r\n high_1[key] = value;\r\n }\r\n }\r\n if (!$type.isNumber(first_1[key])) {\r\n first_1[key] = _this.getFirstValue(key, startIndex_1);\r\n }\r\n if (!$type.isNumber(absoluteFirst_1[key])) {\r\n absoluteFirst_1[key] = _this.getAbsoluteFirstValue(key);\r\n }\r\n // change\r\n dataItem_2.setCalculatedValue(key, value - first_1[key], \"change\");\r\n // change from start percent\r\n // will fail if first value is 0\r\n dataItem_2.setCalculatedValue(key, (value - first_1[key]) / first_1[key] * 100, \"changePercent\");\r\n dataItem_2.setCalculatedValue(key, (value - absoluteFirst_1[key]), \"startChange\");\r\n dataItem_2.setCalculatedValue(key, (value - absoluteFirst_1[key]) / absoluteFirst_1[key] * 100, \"startChangePercent\");\r\n // previous change\r\n var prevValue = previous_1[key];\r\n if (!$type.isNumber(prevValue)) {\r\n prevValue = value;\r\n }\r\n dataItem_2.setCalculatedValue(key, value - prevValue, \"previousChange\");\r\n // previous change percent\r\n dataItem_2.setCalculatedValue(key, (value - prevValue) / prevValue * 100, \"previousChangePercent\");\r\n // save previous\r\n previous_1[key] = value;\r\n }\r\n });\r\n };\r\n for (var i = startIndex_1; i < endIndex; i++) {\r\n _loop_1(i);\r\n }\r\n if (this.calculatePercent) {\r\n var _loop_2 = function (i) {\r\n var dataItem_3 = dataItems.getIndex(i);\r\n $object.each(dataItem_3.values, function (key) {\r\n var ksum = absoluteSum_1[key];\r\n var value = dataItem_3.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n if (ksum > 0) {\r\n if (_this.usePercentHack) {\r\n // this hack is made in order to make it possible to animate single slice to 0\r\n // if there is only one slice left, percent value is always 100%, so it won't animate\r\n // so we use real value of a slice instead of current value\r\n if (value == ksum) {\r\n ksum = dataItem_3.values[key].value;\r\n }\r\n }\r\n var percent = value / ksum * 100;\r\n dataItem_3.setCalculatedValue(key, percent, \"percent\");\r\n }\r\n else {\r\n dataItem_3.setCalculatedValue(key, 0, \"percent\");\r\n }\r\n }\r\n });\r\n };\r\n for (var i = startIndex_1; i < endIndex; i++) {\r\n _loop_2(i);\r\n }\r\n }\r\n // calculate one before first (cant do that in cycle, as we don't know open yet\r\n // when drawing line chart we should draw line to the invisible data point to the left, otherwise the line will always look like it starts from the selected point\r\n // so we do startIndex - 1\r\n if (startIndex_1 > 0) {\r\n var zeroItem_1 = dataItems.getIndex(startIndex_1 - 1);\r\n $object.each(zeroItem_1.values, function (key) {\r\n var value = zeroItem_1.values[key].value;\r\n // change\r\n zeroItem_1.setCalculatedValue(key, value - open_1[key], \"change\");\r\n // change percent\r\n zeroItem_1.setCalculatedValue(key, (value - open_1[key]) / open_1[key] * 100, \"changePercent\");\r\n });\r\n }\r\n // we save various data like sum, average to dataPoint of the series\r\n var dataItem_4 = this.dataItem;\r\n $object.each(dataItem_4.values, function (key) {\r\n dataItem_4.setCalculatedValue(key, sum_1[key], \"sum\");\r\n dataItem_4.setCalculatedValue(key, absoluteSum_1[key], \"absoluteSum\");\r\n dataItem_4.setCalculatedValue(key, sum_1[key] / count_1[key], \"average\");\r\n dataItem_4.setCalculatedValue(key, open_1[key], \"open\");\r\n dataItem_4.setCalculatedValue(key, close_1[key], \"close\");\r\n dataItem_4.setCalculatedValue(key, low_1[key], \"low\");\r\n dataItem_4.setCalculatedValue(key, high_1[key], \"high\");\r\n dataItem_4.setCalculatedValue(key, count_1[key], \"count\");\r\n });\r\n }\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.validate = function () {\r\n if ($utils.isIE()) {\r\n this.filters.clear();\r\n }\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n //axisRange.contents.disposeChildren(); // not good for columns, as they are reused\r\n //\t\t\taxisRange.appendChildren();\r\n axisRange.validate();\r\n });\r\n _super.prototype.validate.call(this);\r\n var bulletsContainer = this.bulletsContainer;\r\n bulletsContainer.fill = this.fill;\r\n bulletsContainer.stroke = this.stroke;\r\n bulletsContainer.x = this.pixelX;\r\n bulletsContainer.y = this.pixelY;\r\n if (this.bulletsContainer.children.length > 0) {\r\n if (this._showBullets) {\r\n for (var i = 0; i < this.startIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n for (var i = this.dataItems.length - 1; i > this.endIndex; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.bulletsContainer.children.each(function (bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n this.updateTooltipBounds();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Series.prototype.updateTooltipBounds = function () {\r\n if (this.topParent) {\r\n var x = 0;\r\n var y = 0;\r\n var w = this.topParent.maxWidth;\r\n var h = this.topParent.maxHeight;\r\n var rect = { x: x, y: y, width: w, height: h };\r\n this.tooltip.setBounds(rect);\r\n }\r\n };\r\n Series.prototype.shouldCreateBullet = function (dataItem, bulletTemplate) {\r\n return true;\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Series.prototype.validateDataElement = function (dataItem) {\r\n var _this = this;\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n if (this._showBullets) {\r\n if (!this.isHidden) {\r\n this.bulletsContainer.visible = true;\r\n }\r\n this.bullets.each(function (bulletTemplate) {\r\n // always better to use the same, this helps to avoid redrawing\r\n var bullet = dataItem.bullets.getKey(bulletTemplate.uid);\r\n if (_this.shouldCreateBullet(dataItem, bulletTemplate)) {\r\n if (!bullet) {\r\n var disabledField = bulletTemplate.propertyFields.disabled;\r\n var dataContext = dataItem.dataContext;\r\n if (disabledField && dataContext && dataContext[disabledField] === false) {\r\n bulletTemplate.applyOnClones = false;\r\n bulletTemplate.disabled = false;\r\n bullet = bulletTemplate.clone();\r\n bulletTemplate.disabled = true;\r\n bulletTemplate.applyOnClones = true;\r\n }\r\n else {\r\n bullet = bulletTemplate.clone();\r\n }\r\n bullet.shouldClone = false;\r\n dataItem.addSprite(bullet);\r\n if (!_this.visible || _this.isHiding) {\r\n bullet.hide(0);\r\n }\r\n }\r\n var currentDataItem = bullet.dataItem;\r\n if (currentDataItem != dataItem) {\r\n // set to undefined in order not to reuse\r\n if (currentDataItem) {\r\n currentDataItem.bullets.setKey(bulletTemplate.uid, undefined);\r\n }\r\n var readerText_1 = _this.itemReaderText;\r\n if (bullet instanceof Bullet) {\r\n if (!readerText_1) {\r\n readerText_1 = (\"{\" + bullet.xField + \"}: {\" + bullet.yField + \"}\");\r\n }\r\n if (bullet.isDynamic) {\r\n dataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n //dataItem.events.on(\"calculatedvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n _this.dataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n }\r\n bullet.deepInvalidate();\r\n }\r\n // Add accessibility to bullet\r\n if (bullet.focusable) {\r\n bullet.events.on(\"focus\", function (ev) {\r\n bullet.readerTitle = _this.populateString(readerText_1, bullet.dataItem);\r\n }, undefined, false);\r\n bullet.events.on(\"blur\", function (ev) {\r\n bullet.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n if (bullet.hoverable) {\r\n bullet.events.on(\"over\", function (ev) {\r\n bullet.readerTitle = _this.populateString(readerText_1, bullet.dataItem);\r\n }, undefined, false);\r\n bullet.events.on(\"out\", function (ev) {\r\n bullet.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n }\r\n bullet.parent = _this.bulletsContainer;\r\n dataItem.bullets.setKey(bulletTemplate.uid, bullet);\r\n // pass max w/h so we'd know if we should show/hide somethings\r\n bullet.maxWidth = dataItem.itemWidth;\r\n bullet.maxHeight = dataItem.itemHeight;\r\n bullet.__disabled = false;\r\n _this.positionBullet(bullet);\r\n }\r\n else {\r\n if (bullet) {\r\n bullet.__disabled = true;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.bulletsContainer.visible = false;\r\n }\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n if (!this.dataRangeInvalid) {\r\n this.invalidateProcessedData();\r\n }\r\n };\r\n Object.defineProperty(Series.prototype, \"ignoreMinMax\", {\r\n /**\r\n * @return Exclude from calculations?\r\n */\r\n get: function () {\r\n return this._ignoreMinMax;\r\n },\r\n /**\r\n * Should this series excluded from the axis scale calculations?\r\n *\r\n * @default false\r\n * @param value Exclude from calculations?\r\n */\r\n set: function (value) {\r\n this._ignoreMinMax = value;\r\n this.invalidateDataItems();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Create a mask for the series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.createMask = function () {\r\n // A placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Process axis range after it has been added to the list.\r\n *\r\n * @param event Event\r\n */\r\n Series.prototype.processAxisRange = function (event) {\r\n // create container if not existing\r\n if (!this.rangesContainer) {\r\n this.rangesContainer = this.createChild(Container);\r\n this.rangesContainer.shouldClone = false;\r\n this.rangesContainer.isMeasured = false;\r\n }\r\n var axisRange = event.newValue;\r\n if (axisRange) {\r\n axisRange.contents.parent = this.rangesContainer;\r\n axisRange.isRange = true;\r\n axisRange.events.on(\"valuechanged\", this.invalidateDataItems, this, false);\r\n }\r\n };\r\n /**\r\n * [getAxisField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param axis [description]\r\n * @return [description]\r\n */\r\n Series.prototype.getAxisField = function (axis) {\r\n return;\r\n };\r\n /**\r\n * Shows the tooltip at specific position.\r\n *\r\n * @ignore Exclude from docs\r\n * @param xPosition X\r\n * @param yPosition Y\r\n */\r\n Series.prototype.showTooltipAtPosition = function (xPosition, yPosition) {\r\n // Placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(Series.prototype, \"minBulletDistance\", {\r\n /**\r\n * @return Distance (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minBulletDistance\");\r\n },\r\n /**\r\n * Minimal distance between data points in pixels.\r\n *\r\n * If distance gets smaller than this, bullets are turned off to avoid\r\n * overlapping.\r\n *\r\n * `0` (zero) disables this behavior.\r\n *\r\n * IMPORTANT: This setting will work only when Series' base axis\r\n * is [[CategoryAxis]] or [[DateAxis]]. If base axis is [[ValueAxis]] the\r\n * setting will be ignored, because it would be a huge overhead to measure\r\n * distance between each and every bullet.\r\n *\r\n * @default 0\r\n * @param value Distance (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minBulletDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"bullets\", {\r\n /**\r\n * A list of bullets that will be added to each and every items in the\r\n * series.\r\n *\r\n * You can push any object that is a descendant of a [[Sprite]] here. All\r\n * items added to this list will be copied and used as a bullet on all data\r\n * items, including their properties, events, etc.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/bullets/} for more info about the concept of Bullets\r\n * @return List of bullets.\r\n */\r\n get: function () {\r\n if (!this._bullets) {\r\n this._bullets = new ListTemplate(new Bullet());\r\n this._bullets.template.virtualParent = this;\r\n this._bullets.events.on(\"inserted\", this.processBullet, this, false);\r\n this._bullets.events.on(\"removed\", this.removeBullet, this, false);\r\n this._disposers.push(new ListDisposer(this._bullets));\r\n this._disposers.push(this._bullets.template);\r\n }\r\n return this._bullets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Binds related legend data item's visual settings to this series' visual\r\n * settings.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n Series.prototype.createLegendMarker = function (marker) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(Series.prototype, \"hiddenInLegend\", {\r\n /**\r\n * @return Hidden in legend?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hiddenInLegend\");\r\n },\r\n /**\r\n * Should the series be hidden in legend?\r\n *\r\n * @param value Hidden in legend?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"hiddenInLegend\", value)) {\r\n if (this.chart) {\r\n this.chart.feedLegend();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"name\");\r\n },\r\n /**\r\n * Series' name.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"name\", value);\r\n var legendDataItem = this.legendDataItem;\r\n if (legendDataItem) {\r\n legendDataItem.component.invalidate();\r\n legendDataItem.component.invalidateRawData();\r\n }\r\n this.readerTitle = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"itemReaderText\", {\r\n /**\r\n * @return Screen reader text template\r\n */\r\n get: function () {\r\n // Get explicitly set reader text\r\n var readerText = this._itemReaderText;\r\n // Not set? Let's try something else\r\n if (!readerText) {\r\n // Tooltip text?\r\n if (this.tooltipText) {\r\n readerText = $utils.plainText(this.tooltipText);\r\n }\r\n else if (this.tooltipHTML) {\r\n readerText = $utils.plainText(this.tooltipHTML);\r\n }\r\n }\r\n if (!this._adapterO) {\r\n return readerText;\r\n }\r\n else {\r\n return this._adapterO.apply(\"itemReaderText\", readerText);\r\n }\r\n },\r\n /**\r\n * Screen reader text to be applied to each individual data item, such\r\n * as bullets, columns or slices.\r\n *\r\n * The template can contain field reference meta codes, i.e. `{dateX}`,\r\n * `{valueY}`, etc.\r\n *\r\n * Any text formatting options, e.g. `[bold]` will be ignored.\r\n *\r\n * @param value Screen reader text template\r\n */\r\n set: function (value) {\r\n this._itemReaderText = value;\r\n this._itemReaderTextChanged = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns if number of data items in the series are beyond non-focusable\r\n * count and should not be available for TAB-through.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Items focusable?\r\n */\r\n Series.prototype.itemsFocusable = function () {\r\n return this.dataItems.length >= this.skipFocusThreshold ? false : true;\r\n };\r\n Object.defineProperty(Series.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * Legend data item that corresponds to this series.\r\n *\r\n * @param value Data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n this._legendDataItem.itemContainer.deepInvalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates corresponding legend data item with current values.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Series.prototype.updateLegendValue = function (dataItem, notRange) {\r\n // if this series has legend item\r\n if (this.legendDataItem) {\r\n var legendSettings = this.legendSettings;\r\n var legendDataItem = this.legendDataItem;\r\n var label = legendDataItem.label;\r\n var valueLabel = legendDataItem.valueLabel;\r\n // update legend\r\n if ((dataItem && !dataItem.isDisposed()) || notRange) {\r\n if (valueLabel) {\r\n if (legendSettings.itemValueText) {\r\n valueLabel.text = legendSettings.itemValueText;\r\n }\r\n valueLabel.dataItem = dataItem;\r\n }\r\n if (label) {\r\n if (legendSettings.itemLabelText) {\r\n label.text = legendSettings.itemLabelText;\r\n }\r\n label.dataItem = dataItem;\r\n }\r\n }\r\n else {\r\n if (label) {\r\n // if itemLabelText is set, means we have to reset label even if labelText is not set\r\n if (legendSettings.labelText || legendSettings.itemLabelText != undefined) {\r\n label.text = legendSettings.labelText;\r\n }\r\n label.dataItem = this.dataItem;\r\n }\r\n if (valueLabel) {\r\n if (legendSettings.valueText || legendSettings.itemValueText != undefined) {\r\n valueLabel.text = legendSettings.valueText;\r\n }\r\n valueLabel.dataItem = this.dataItem;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n Series.prototype.copyFrom = function (source) {\r\n this.bullets.copyFrom(source.bullets);\r\n this.bulletsContainer.copyFrom(source.bulletsContainer);\r\n this.calculatePercent = source.calculatePercent;\r\n this.usePercentHack = source.usePercentHack;\r\n this.simplifiedProcessing = source.simplifiedProcessing;\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n /**\r\n * Displays a modal or console message with error, and halts any further\r\n * processing of this element.\r\n *\r\n * @param e Error\r\n */\r\n Series.prototype.raiseCriticalError = function (e) {\r\n if (this._chart && this._chart.modal) {\r\n this._chart.modal.content = this._chart.adapter.apply(\"criticalError\", e).message;\r\n this._chart.modal.closable = false;\r\n if (!options.suppressErrors) {\r\n this._chart.modal.open();\r\n }\r\n this._chart.disabled = true;\r\n }\r\n if (options.verbose) {\r\n console.log(e);\r\n }\r\n };\r\n /**\r\n * Applies filters to the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.applyFilters = function () {\r\n var _this = this;\r\n _super.prototype.applyFilters.call(this);\r\n this.bulletsContainer.filters.clear();\r\n // copyFrom of a list copies, does not clone\r\n $iter.each(this.filters.iterator(), function (filter) {\r\n _this.bulletsContainer.filters.push(filter.clone());\r\n });\r\n };\r\n Object.defineProperty(Series.prototype, \"heatRules\", {\r\n /**\r\n * A list of heat rules to apply to series' elements based on the value\r\n * of the data item.\r\n *\r\n * Heat rules can be any \"numeric\" (including `Color`) property, and can also\r\n * be applied to child objects of series, like columns, bullets, etc.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * series.heatRules.push({\r\n * \"target\": series.columns.template,\r\n * \"property\": \"fill\",\r\n * \"min\": am4core.color(\"#F5DBCB\"),\r\n * \"max\": am4core.color(\"#ED7B84\"),\r\n * \"dataField\": \"valueY\"\r\n *});\r\n *```\r\n * ```Javacript\r\n * series.heatRules.push({\r\n * \"target\": series.columns.template,\r\n * \"property\": \"fill\",\r\n * \"min\": am4core.color(\"#F5DBCB\"),\r\n * \"max\": am4core.color(\"#ED7B84\"),\r\n * \"dataField\": \"valueY\"\r\n *});\r\n *```\r\n *```JSON\r\n *{\r\n * // ...\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"heatRules\": [{\r\n * \"target\": \"columns.template\",\r\n * \"property\": \"fill\",\r\n * \"min\": \"#F5DBCB\",\r\n * \"max\": \"#ED7B84\",\r\n * \"dataField\": \"valueY\"\r\n * }]\r\n * }]\r\n *}\r\n *```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/series/#Heat_maps} for more about heat rules\r\n * @return Heat rules\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._heatRules) {\r\n this._heatRules = new List();\r\n this._heatRules.events.on(\"inserted\", function (event) {\r\n var heatRule = event.newValue;\r\n var target = heatRule.target;\r\n if (target) {\r\n var dataField_1 = heatRule.dataField;\r\n if (!$type.hasValue(dataField_1)) {\r\n dataField_1 = \"value\";\r\n }\r\n var seriesDataItem_1 = _this.dataItem;\r\n var property_1 = heatRule.property;\r\n var minValue = $type.toNumber(heatRule.minValue);\r\n var maxValue = $type.toNumber(heatRule.maxValue);\r\n if (!$type.isNumber(minValue) && !$type.isNumber(maxValue)) {\r\n _this.dataItem.events.on(\"calculatedvaluechanged\", function (event) {\r\n if (event.property == dataField_1) {\r\n $iter.each(_this.dataItems.iterator(), function (dataItem) {\r\n var foundSprite = false;\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite.clonedFrom == target) {\r\n var anySprite = sprite;\r\n anySprite[property_1] = anySprite[property_1];\r\n foundSprite = true;\r\n }\r\n });\r\n if (!foundSprite) {\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite instanceof Container) {\r\n $iter.each(sprite.children.iterator(), function (child) {\r\n if (child.className == target.className) {\r\n var anyChild = child;\r\n anyChild[property_1] = anyChild[property_1];\r\n }\r\n // giveup here\r\n else if (child instanceof Container) {\r\n child.deepInvalidate();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n _this.dataItems.template.events.on(\"workingvaluechanged\", function (event) {\r\n if (event.property == dataField_1) {\r\n var dataItem = event.target;\r\n var foundSprite_1 = false;\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite.clonedFrom == target) {\r\n var anySprite = sprite;\r\n anySprite[property_1] = anySprite[property_1];\r\n foundSprite_1 = true;\r\n }\r\n });\r\n if (!foundSprite_1) {\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite instanceof Container) {\r\n $iter.each(sprite.children.iterator(), function (child) {\r\n if (child.className == target.className) {\r\n var anyChild = child;\r\n anyChild[property_1] = anyChild[property_1];\r\n }\r\n // givup here\r\n else if (child instanceof Container) {\r\n child.deepInvalidate();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n target.adapter.add(property_1, function (value, ruleTarget, property) {\r\n var minValue = $type.toNumber(heatRule.minValue);\r\n var maxValue = $type.toNumber(heatRule.maxValue);\r\n var min = heatRule.min;\r\n var max = heatRule.max;\r\n if (ruleTarget instanceof Sprite) {\r\n var anySprite = ruleTarget;\r\n var propertyField = anySprite.propertyFields[property];\r\n if (propertyField && ruleTarget.dataItem) {\r\n var dataContext = ruleTarget.dataItem.dataContext;\r\n if (dataContext && $type.hasValue(dataContext[propertyField])) {\r\n return value;\r\n }\r\n }\r\n }\r\n var dataItem = ruleTarget.dataItem;\r\n if (!$type.isNumber(minValue)) {\r\n minValue = seriesDataItem_1.values[dataField_1].low;\r\n }\r\n if (!$type.isNumber(maxValue)) {\r\n maxValue = seriesDataItem_1.values[dataField_1].high;\r\n }\r\n if (dataItem) {\r\n var fieldValues = dataItem.values[dataField_1];\r\n if (fieldValues) {\r\n var workingValue = dataItem.getActualWorkingValue(dataField_1);\r\n if ($type.hasValue(min) && $type.hasValue(max) && $type.isNumber(minValue) && $type.isNumber(maxValue) && $type.isNumber(workingValue)) {\r\n var percent = void 0;\r\n if (heatRule.logarithmic) {\r\n percent = (Math.log(workingValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E) / ((Math.log(maxValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E));\r\n }\r\n else {\r\n percent = (workingValue - minValue) / (maxValue - minValue);\r\n }\r\n if ($type.isNumber(workingValue) && (!$type.isNumber(percent) || Math.abs(percent) == Infinity)) {\r\n percent = 0.5;\r\n }\r\n // fixes problems if all values are the same\r\n if ($type.isNumber(min)) {\r\n return min + (max - min) * percent;\r\n }\r\n else if (min instanceof Color) {\r\n return new Color($colors.interpolate(min.rgb, max.rgb, percent));\r\n }\r\n }\r\n }\r\n }\r\n return value;\r\n });\r\n }\r\n });\r\n }\r\n return this._heatRules;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Series.prototype.processConfig = function (config) {\r\n var heatRules;\r\n if (config) {\r\n // Set up bullets\r\n if ($type.hasValue(config.bullets) && $type.isArray(config.bullets)) {\r\n for (var i = 0, len = config.bullets.length; i < len; i++) {\r\n var bullets = config.bullets[i];\r\n if (!$type.hasValue(bullets.type)) {\r\n bullets.type = \"Bullet\";\r\n }\r\n }\r\n }\r\n // Let's take heatRules out of the config, so that we can process\r\n // them later, when bullets are already there\r\n if ($type.hasValue(config.heatRules) && $type.isArray(config.heatRules)) {\r\n heatRules = config.heatRules;\r\n delete config.heatRules;\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n // Process heat rules again, when all other elements are ready\r\n if (heatRules) {\r\n for (var i = 0, len = heatRules.length; i < len; i++) {\r\n var rule = heatRules[i];\r\n // Resolve target\r\n var target = this;\r\n if ($type.hasValue(rule.target) && $type.isString(rule.target)) {\r\n // Check if we can find this element by id\r\n if (this.map.hasKey(rule.target)) {\r\n target = this.map.getKey(rule.target);\r\n }\r\n else {\r\n var parts = rule.target.split(\".\");\r\n for (var x = 0; x < parts.length; x++) {\r\n if (target instanceof List) {\r\n var listitem = target.getIndex($type.toNumber(parts[x]));\r\n if (!listitem) {\r\n target = target[parts[x]];\r\n }\r\n else {\r\n target = listitem;\r\n }\r\n }\r\n else {\r\n var maybeIndex = parts[x].match(/^(.*)\\[([0-9]+)\\]/);\r\n if (maybeIndex) {\r\n if (target[maybeIndex[1]] instanceof List) {\r\n target = target[maybeIndex[1]].getIndex($type.toNumber(maybeIndex[2]));\r\n }\r\n else {\r\n target = target[maybeIndex[1]][$type.toNumber(maybeIndex[2])];\r\n }\r\n }\r\n else {\r\n target = target[parts[x]];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n rule.target = target;\r\n // Resolve colors and percents\r\n if ($type.hasValue(rule.min)) {\r\n rule.min = this.maybeColorOrPercent(rule.min);\r\n }\r\n if ($type.hasValue(rule.max)) {\r\n rule.max = this.maybeColorOrPercent(rule.max);\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, {\r\n heatRules: heatRules\r\n });\r\n }\r\n };\r\n /**\r\n * Returns visibility value\r\n * @ignore\r\n */\r\n /*\r\n protected getVisibility(): boolean {\r\n let hidden = this.getPropertyValue(\"hidden\");\r\n if (hidden) {\r\n return false;\r\n }\r\n else {\r\n return super.getVisibility();\r\n }\r\n }*/\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n Series.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Must come last\r\n else if (a == \"heatRules\") {\r\n return 1;\r\n }\r\n else if (b == \"heatRules\") {\r\n return -1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n /**\r\n * Sets `visibility` property:\r\n *\r\n * * `true` - visible\r\n * * `false` - hidden\r\n *\r\n * @param value true - visible, false - hidden\r\n * @return Current visibility\r\n */\r\n Series.prototype.setVisibility = function (value) {\r\n _super.prototype.setVisibility.call(this, value);\r\n this.bulletsContainer.visible = value;\r\n };\r\n return Series;\r\n}(Component));\r\nexport { Series };\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Series\"] = Series;\r\nregistry.registeredClasses[\"SeriesDataItem\"] = SeriesDataItem;\r\n//# sourceMappingURL=Series.js.map","/**\r\n * Serial chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Chart, ChartDataItem } from \"../Chart\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Series } from \"../series/Series\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[SerialChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar SerialChartDataItem = /** @class */ (function (_super) {\r\n __extends(SerialChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SerialChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SerialChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return SerialChartDataItem;\r\n}(ChartDataItem));\r\nexport { SerialChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all series-based charts, like XY, Pie, etc.\r\n *\r\n * Is not useful on its own.\r\n *\r\n * @see {@link ISerialChartEvents} for a list of available Events\r\n * @see {@link ISerialChartAdapters} for a list of available Adapters\r\n */\r\nvar SerialChart = /** @class */ (function (_super) {\r\n __extends(SerialChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SerialChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this._exitDP = {};\r\n _this.className = \"SerialChart\";\r\n _this.colors = new ColorSet();\r\n _this._usesData = false;\r\n // Create a container for series\r\n var seriesContainer = _this.chartContainer.createChild(Container);\r\n seriesContainer.shouldClone = false;\r\n seriesContainer.width = percent(100);\r\n seriesContainer.height = percent(100);\r\n seriesContainer.isMeasured = false;\r\n seriesContainer.layout = \"none\";\r\n seriesContainer.zIndex = 2;\r\n _this.seriesContainer = seriesContainer;\r\n // Create a container for bullets\r\n var bulletsContainer = _this.chartContainer.createChild(Container);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.width = percent(100);\r\n bulletsContainer.height = percent(100);\r\n bulletsContainer.isMeasured = false;\r\n bulletsContainer.zIndex = 3;\r\n bulletsContainer.layout = \"none\";\r\n _this.bulletsContainer = bulletsContainer;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n SerialChart.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n if (this.colors) {\r\n this.colors.dispose();\r\n }\r\n if (this.patterns) {\r\n this.patterns.dispose();\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor\r\n */\r\n SerialChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Serial chart\");\r\n }\r\n };\r\n Object.defineProperty(SerialChart.prototype, \"series\", {\r\n /**\r\n * A list of chart's series.\r\n *\r\n * @return Chart's series\r\n */\r\n get: function () {\r\n if (!this._series) {\r\n this._series = new ListTemplate(this.createSeries());\r\n this._series.events.on(\"inserted\", this.handleSeriesAdded, this, false);\r\n this._series.events.on(\"removed\", this.handleSeriesRemoved, this, false);\r\n this._disposers.push(new ListDisposer(this._series, false));\r\n this._disposers.push(this._series.template);\r\n }\r\n return this._series;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SerialChart.prototype.handleSeriesRemoved = function (event) {\r\n var series = event.oldValue;\r\n this.dataUsers.removeValue(series);\r\n this.dataUsers.each(function (dataUser) {\r\n dataUser.invalidateDataItems();\r\n });\r\n if (this._exitDP[series.uid]) {\r\n this._exitDP[series.uid].dispose();\r\n delete this._exitDP[series.uid];\r\n }\r\n if (series.autoDispose) {\r\n series.dispose();\r\n }\r\n else {\r\n series.parent = undefined;\r\n series.bulletsContainer.parent = undefined;\r\n }\r\n //this.feedLegend();\r\n var legend = this.legend;\r\n if (legend) {\r\n var dataItems = this.legend.dataItems;\r\n for (var i = dataItems.length - 1; i >= 0; i--) {\r\n var dataItem = dataItems.getIndex(i);\r\n if (dataItem && dataItem.dataContext == series) {\r\n legend.dataItems.remove(dataItem);\r\n }\r\n }\r\n for (var i = legend.data.length - 1; i >= 0; i--) {\r\n var di = legend.data[i];\r\n if (di && di == series) {\r\n $array.remove(legend.data, di);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Decorates a new [[Series]] object with required parameters when it is\r\n * added to the chart.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n SerialChart.prototype.handleSeriesAdded = function (event) {\r\n var _this = this;\r\n var series = event.newValue;\r\n if (series.isDisposed()) {\r\n return;\r\n }\r\n series.chart = this;\r\n series.parent = this.seriesContainer;\r\n series.bulletsContainer.parent = this.bulletsContainer;\r\n this._dataUsers.moveValue(series);\r\n series.addDisposer(new Disposer(function () {\r\n _this.dataUsers.removeValue(series);\r\n }));\r\n this.handleSeriesAdded2(series);\r\n this.handleLegendSeriesAdded(series);\r\n };\r\n SerialChart.prototype.handleLegendSeriesAdded = function (series) {\r\n if (!series.hiddenInLegend) {\r\n if (this.legend) {\r\n this.legend.addData(series);\r\n }\r\n }\r\n };\r\n SerialChart.prototype.handleSeriesAdded2 = function (series) {\r\n var _this = this;\r\n if (!this.dataInvalid) {\r\n this._exitDP[series.uid] = registry.events.once(\"exitframe\", function () {\r\n if (!series.data || series.data.length == 0) {\r\n series.data = _this.data;\r\n if (series.showOnInit) {\r\n series.reinit();\r\n series.setPropertyValue(\"showOnInit\", false);\r\n series.showOnInit = true;\r\n }\r\n if (!series.isDisposed()) {\r\n series.events.once(\"datavalidated\", function () {\r\n if (series.data == _this.data) {\r\n series._data = [];\r\n }\r\n });\r\n }\r\n }\r\n });\r\n this._disposers.push(this._exitDP[series.uid]);\r\n }\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n * @ignore\r\n */\r\n SerialChart.prototype.feedLegend = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var legendData_1 = [];\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (!series.hiddenInLegend) {\r\n legendData_1.push(series);\r\n }\r\n });\r\n legend.dataFields.name = \"name\";\r\n legend.data = legendData_1;\r\n }\r\n };\r\n /**\r\n * Creates and returns a new Series, suitable for this chart type.\r\n *\r\n * @return New series\r\n */\r\n SerialChart.prototype.createSeries = function () {\r\n return new Series();\r\n };\r\n Object.defineProperty(SerialChart.prototype, \"colors\", {\r\n /**\r\n * @return Color list\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"colors\");\r\n },\r\n /**\r\n * Chart's color list.\r\n *\r\n * This list can be used by a number of serial items, like applying a new\r\n * color for each Series added. Or, applying a new color for each slice\r\n * of a Pie chart.\r\n *\r\n * Please see [[ColorSet]] for information on how you can set up to generate\r\n * unique colors.\r\n *\r\n * A theme you are using may override default pre-defined colors.\r\n *\r\n * @param value Color list\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"colors\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SerialChart.prototype, \"patterns\", {\r\n /**\r\n * @return Pattern set\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"patterns\");\r\n },\r\n /**\r\n * A [[PatternSet]] to use when creating patterned fills for slices.\r\n *\r\n * @since 4.7.5\r\n * @param value Pattern set\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"patterns\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all parameters from another [[SerialChart]].\r\n *\r\n * @param source Source SerialChart\r\n */\r\n SerialChart.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.series.copyFrom(source.series);\r\n };\r\n /**\r\n * Hides the chart instantly and then shows it. If defaultState.transitionDuration > 0, this will result an animation in which properties of hidden state will animate to properties of visible state.\r\n */\r\n SerialChart.prototype.appear = function () {\r\n _super.prototype.appear.call(this);\r\n this.series.each(function (series) {\r\n if (series.showOnInit && series.inited) {\r\n series.appear();\r\n }\r\n });\r\n };\r\n return SerialChart;\r\n}(Chart));\r\nexport { SerialChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SerialChart\"] = SerialChart;\r\n//# sourceMappingURL=SerialChart.js.map","/**\r\n * Axis break module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class to define \"breaks\" on axes.\r\n *\r\n * @see {@link IAxisBreakEvents} for a list of available events\r\n * @see {@link IAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar AxisBreak = /** @class */ (function (_super) {\r\n __extends(AxisBreak, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AxisBreak() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Reference to parent Axis.\r\n */\r\n _this._axis = new MutableValueDisposer();\r\n /**\r\n * A list of axis data items which fall within this break.\r\n */\r\n _this.dataItems = new List();\r\n _this.className = \"AxisBreak\";\r\n // Set defaults\r\n _this.breakSize = 0.01;\r\n _this.marginLeft = -5;\r\n _this.marginRight = -5;\r\n _this.marginTop = -5;\r\n _this.marginBottom = -5;\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create elements\r\n // (these won't be used actually, just for setting properties)\r\n var fillShape = new WavedLine();\r\n fillShape.fill = interfaceColors.getFor(\"background\");\r\n fillShape.stroke = color();\r\n fillShape.fillOpacity = 0.9;\r\n fillShape.zIndex = 0;\r\n _this._fillShape = fillShape;\r\n var startLine = new WavedLine();\r\n startLine.fill = color();\r\n startLine.stroke = interfaceColors.getFor(\"grid\");\r\n startLine.strokeOpacity = 0.3;\r\n startLine.zIndex = 1;\r\n _this._startLine = startLine;\r\n var endLine = new WavedLine();\r\n endLine.fill = color();\r\n endLine.stroke = color(\"#000000\"); // interfaceColors.getFor(\"grid\");\r\n endLine.strokeOpacity = 0.3;\r\n endLine.zIndex = 2;\r\n _this._endLine = endLine;\r\n _this._disposers.push(_this._axis);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n AxisBreak.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n if (this._fillShape) {\r\n this._fillShape.dispose();\r\n }\r\n if (this._startLine) {\r\n this._startLine.dispose();\r\n }\r\n if (this._endLine) {\r\n this._endLine.dispose();\r\n }\r\n };\r\n Object.defineProperty(AxisBreak.prototype, \"startLine\", {\r\n /**\r\n * @return Element\r\n */\r\n get: function () {\r\n return this._startLine;\r\n },\r\n /**\r\n * An element used for the starting line of the break.\r\n *\r\n * @param sprite Element\r\n */\r\n set: function (sprite) {\r\n if (this._startLine) {\r\n this._startLine.dispose();\r\n }\r\n this._startLine = sprite;\r\n this.addBreakSprite(sprite);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"endLine\", {\r\n /**\r\n * @return Element\r\n */\r\n get: function () {\r\n return this._endLine;\r\n },\r\n /**\r\n * An element used for the end line of the break.\r\n *\r\n * @param sprite Element\r\n */\r\n set: function (sprite) {\r\n if (this._endLine) {\r\n this._endLine.dispose();\r\n }\r\n this._endLine = sprite;\r\n this.addBreakSprite(sprite);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"fillShape\", {\r\n /**\r\n * @return Element\r\n */\r\n get: function () {\r\n return this._fillShape;\r\n },\r\n /**\r\n * An element used for fill of the break.\r\n *\r\n * @param sprite Element\r\n */\r\n set: function (sprite) {\r\n if (this._fillShape) {\r\n this._fillShape.dispose();\r\n }\r\n this._fillShape = sprite;\r\n this.addBreakSprite(sprite);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds a break element (e.g. lines, fill) to the break, which is\r\n * [[Container]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param sprite Element to add\r\n */\r\n AxisBreak.prototype.addBreakSprite = function (sprite) {\r\n sprite.parent = this;\r\n sprite.isMeasured = false;\r\n this._disposers.push(sprite);\r\n };\r\n Object.defineProperty(AxisBreak.prototype, \"axis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n return this._axis.get();\r\n },\r\n /**\r\n * An Axis this Break is associated with.\r\n *\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n if (this._axis.get() !== axis) {\r\n this._axis.set(axis, axis.renderer.gridContainer.events.on(\"transformed\", this.invalidate, this, false));\r\n axis.renderer.createBreakSprites(this);\r\n // this can't go to copyFrom, as axis is set later\r\n var breakTemplate = axis.axisBreaks.template;\r\n this.startLine.copyFrom(breakTemplate.startLine);\r\n this.endLine.copyFrom(breakTemplate.endLine);\r\n this.fillShape.copyFrom(breakTemplate.fillShape);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"breakSize\", {\r\n /**\r\n * @return Relative axis break\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"breakSize\");\r\n },\r\n /**\r\n * A size of the break relative to the actual size of the scope break spans.\r\n *\r\n * For example, if `breakSize = 0.1` and unbroken scope of values it spans\r\n * would be 100 pixels, the break would be 10 pixels wide.\r\n *\r\n * 0 means the break will completely collapse and hide the values.\r\n * 1 means break would be not collapse at all, which would make it\r\n * effectively useless.\r\n *\r\n * @default 0.01\r\n * @param value Relative axis break\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"breakSize\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"startPoint\", {\r\n /**\r\n * Returns pixel coordinates of axis break's start.\r\n *\r\n * @return Start point\r\n */\r\n get: function () {\r\n var renderer = this.axis.renderer;\r\n if (renderer) {\r\n return renderer.positionToPoint(this.startPosition);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"endPoint\", {\r\n /**\r\n * Returns pixel coordinates of axis break's end.\r\n *\r\n * @return End point\r\n */\r\n get: function () {\r\n var renderer = this.axis.renderer;\r\n if (renderer) {\r\n return renderer.positionToPoint(this.endPosition);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"startPosition\", {\r\n /**\r\n * Returns a relative position at which axis break starts.\r\n *\r\n * This is a calculated position, meaning it shows relative position of the\r\n * break after break is applied.\r\n *\r\n * @return Start position\r\n */\r\n get: function () {\r\n return;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"endPosition\", {\r\n /**\r\n * Returns a relative position at which axis break ends.\r\n *\r\n * This is a calculated position, meaning it shows relative position of the\r\n * break after break is applied.\r\n *\r\n * @return End position\r\n */\r\n get: function () {\r\n return;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Draws the axis break.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisBreak.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n renderer.updateBreakElement(this);\r\n }\r\n };\r\n Object.defineProperty(AxisBreak.prototype, \"startValue\", {\r\n /**\r\n * @return Starting value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startValue\");\r\n },\r\n /**\r\n * A starting value for the break.\r\n *\r\n * @param value Starting value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startValue\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBreak.prototype, \"endValue\", {\r\n /**\r\n * @return End value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endValue\");\r\n },\r\n /**\r\n * An end value for the break.\r\n *\r\n * @param value End value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endValue\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AxisBreak;\r\n}(Container));\r\nexport { AxisBreak };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisBreak\"] = AxisBreak;\r\n//# sourceMappingURL=AxisBreak.js.map","/**\r\n * Base class for all Axis\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../../core/Component\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { SortedListTemplate } from \"../../core/utils/SortedList\";\r\nimport { List, ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Disposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Axis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar AxisDataItem = /** @class */ (function (_super) {\r\n __extends(AxisDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AxisDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisDataItem.prototype, \"grid\", {\r\n /**\r\n * @return Grid element\r\n */\r\n get: function () {\r\n if (!this._grid) {\r\n var component_1 = this.component;\r\n if (component_1) {\r\n var template = void 0;\r\n var grid_1;\r\n if (this.isRange) {\r\n template = component_1.axisRanges.template.grid;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n grid_1 = template.clone();\r\n }\r\n }\r\n else {\r\n template = component_1.renderer.grid.template;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n grid_1 = component_1.renderer.grid.create();\r\n this._disposers.push(new Disposer(function () {\r\n component_1.renderer.grid.removeValue(grid_1);\r\n }));\r\n }\r\n }\r\n this.grid = grid_1;\r\n grid_1.shouldClone = false;\r\n this._disposers.push(grid_1);\r\n grid_1.axis = this.component;\r\n }\r\n }\r\n return this._grid;\r\n },\r\n /**\r\n * A [[Grid]] element associated with this data item.\r\n *\r\n * If there is no grid element associated with data item, a new one is\r\n * created and returned.\r\n *\r\n * @param grid Grid element\r\n */\r\n set: function (grid) {\r\n if (this._grid && this._grid != grid) {\r\n $array.remove(this.sprites, this._grid);\r\n this._grid.dataItem = undefined;\r\n }\r\n if (grid) {\r\n if (grid.dataItem && grid.dataItem != this) {\r\n $array.remove(grid.dataItem.sprites, grid);\r\n grid.dataItem.grid = undefined;\r\n }\r\n this.addSprite(grid);\r\n }\r\n this._grid = grid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"tick\", {\r\n /**\r\n * @return Tick element\r\n */\r\n get: function () {\r\n if (!this._tick) {\r\n var component_2 = this.component;\r\n if (component_2) {\r\n var template = void 0;\r\n var tick_1;\r\n if (this.isRange) {\r\n template = component_2.axisRanges.template.tick;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n tick_1 = template.clone();\r\n }\r\n }\r\n else {\r\n template = component_2.renderer.ticks.template;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n tick_1 = component_2.renderer.ticks.create();\r\n this._disposers.push(new Disposer(function () {\r\n component_2.renderer.ticks.removeValue(tick_1);\r\n }));\r\n }\r\n }\r\n this.tick = tick_1;\r\n tick_1.axis = this.component;\r\n tick_1.shouldClone = false;\r\n this._disposers.push(tick_1);\r\n }\r\n }\r\n return this._tick;\r\n },\r\n /**\r\n * An [[AxisTick]] element associated with this data item.\r\n *\r\n * If there is no tick element associated with data item, a new one is\r\n * created and returned.\r\n *\r\n * @param tick Tick element\r\n */\r\n set: function (tick) {\r\n if (this._tick && this._tick != tick) {\r\n $array.remove(this.sprites, this._tick);\r\n this._tick.dataItem = undefined;\r\n }\r\n if (tick) {\r\n if (tick.dataItem && tick.dataItem != this) {\r\n $array.remove(tick.dataItem.sprites, tick);\r\n tick.dataItem.tick = undefined;\r\n }\r\n this.addSprite(tick);\r\n }\r\n this._tick = tick;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"label\", {\r\n /**\r\n * @return Label element\r\n */\r\n get: function () {\r\n if (!this._label) {\r\n var component_3 = this.component;\r\n if (component_3) {\r\n var template = void 0;\r\n var label_1;\r\n if (this.isRange) {\r\n template = component_3.axisRanges.template.label;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n label_1 = template.clone();\r\n }\r\n }\r\n else {\r\n template = component_3.renderer.labels.template;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n label_1 = component_3.renderer.labels.create();\r\n this._disposers.push(new Disposer(function () {\r\n component_3.renderer.labels.removeValue(label_1);\r\n }));\r\n }\r\n }\r\n this._disposers.push(label_1);\r\n this.label = label_1;\r\n label_1.shouldClone = false;\r\n label_1.axis = this.component;\r\n label_1.virtualParent = component_3;\r\n }\r\n }\r\n return this._label;\r\n },\r\n /**\r\n * An [[AxisLabel]] element associated with this data item.\r\n *\r\n * If there is no label element associated with data item, a new one is\r\n * created and returned.\r\n *\r\n * @param label Label element\r\n */\r\n set: function (label) {\r\n if (this._label && this._label != label) {\r\n $array.remove(this.sprites, this._label);\r\n this._label.dataItem = undefined;\r\n }\r\n if (label) {\r\n if (label.dataItem && label.dataItem != this) {\r\n $array.remove(label.dataItem.sprites, label);\r\n label.dataItem.label = undefined;\r\n }\r\n this.addSprite(label);\r\n }\r\n this._label = label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"axisFill\", {\r\n /**\r\n * @return Label element\r\n */\r\n get: function () {\r\n if (!this._axisFill) {\r\n var component_4 = this.component;\r\n if (component_4) {\r\n var template = void 0;\r\n var axisFill_1;\r\n if (this.isRange) {\r\n template = component_4.axisRanges.template.axisFill;\r\n if (!this.isTemplate && template.disabled) {\r\n return;\r\n }\r\n else {\r\n axisFill_1 = template.clone();\r\n }\r\n }\r\n else {\r\n template = component_4.renderer.axisFills.template;\r\n if (template.disabled) {\r\n return;\r\n }\r\n else {\r\n axisFill_1 = component_4.renderer.axisFills.create();\r\n this._disposers.push(new Disposer(function () {\r\n component_4.renderer.axisFills.removeValue(axisFill_1);\r\n }));\r\n }\r\n }\r\n this.axisFill = axisFill_1;\r\n axisFill_1.shouldClone = false;\r\n this._disposers.push(axisFill_1);\r\n }\r\n }\r\n return this._axisFill;\r\n },\r\n /**\r\n * An [[AxisFill]] associated element with this data item.\r\n *\r\n * If there is no fill element associated with data item, a new one is\r\n * created and returned.\r\n *\r\n * @param label Label element\r\n */\r\n set: function (axisFill) {\r\n if (this._axisFill && this._axisFill != axisFill) {\r\n $array.remove(this.sprites, this._axisFill);\r\n this._axisFill.dataItem = undefined;\r\n }\r\n if (axisFill) {\r\n if (axisFill.dataItem && axisFill.dataItem != this) {\r\n $array.remove(axisFill.dataItem.sprites, axisFill);\r\n axisFill.dataItem.axisFill = undefined;\r\n }\r\n axisFill.axis = this.component;\r\n this.addSprite(axisFill);\r\n }\r\n this._axisFill = axisFill;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"text\", {\r\n /**\r\n * @return Text label\r\n */\r\n get: function () {\r\n return this._text;\r\n },\r\n /**\r\n * Text to be used as data item's label.\r\n *\r\n * @param text Text label\r\n */\r\n set: function (text) {\r\n this._text = text;\r\n if (this._label) { // do not use getter, it will create unwanted instances!\r\n this._label.text = text;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"mask\", {\r\n /**\r\n * Data item's mask.\r\n *\r\n * @return Mask\r\n */\r\n get: function () {\r\n return this._mask;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"contents\", {\r\n /**\r\n * Returns a [[Container]] to place all visual elements, related to data item\r\n * in.\r\n *\r\n * If there is no Container, a new one is created.\r\n *\r\n * @return Contents container\r\n */\r\n get: function () {\r\n if (!this._contents) {\r\n var contents = new Container();\r\n this.addSprite(contents);\r\n contents.isMeasured = false;\r\n this._contents = contents;\r\n var component = this.component;\r\n if (component) {\r\n var mask = component.renderer.createFill(this.component);\r\n mask.disabled = false;\r\n mask.axis = component;\r\n this.addSprite(mask);\r\n this._mask = mask;\r\n contents.mask = mask;\r\n }\r\n }\r\n return this._contents;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisDataItem.prototype, \"axisBreak\", {\r\n /**\r\n * @return Axis break\r\n */\r\n get: function () {\r\n return this._axisBreak;\r\n },\r\n /**\r\n * An [[AxisBreak]] this data item falls within.\r\n *\r\n * @param axisBreak Axis break\r\n */\r\n set: function (axisBreak) {\r\n if (this._axisBreak) {\r\n this._axisBreak.dataItems.removeValue(this);\r\n }\r\n if (axisBreak) {\r\n axisBreak.dataItems.push(this);\r\n }\r\n this._axisBreak = axisBreak;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Re-draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisDataItem.prototype.validate = function () {\r\n if (this.component) {\r\n this.component.validateDataElement(this);\r\n }\r\n };\r\n /**\r\n * Appends data item's elements to the parent [[Container]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisDataItem.prototype.appendChildren = function () {\r\n if (this.component) {\r\n this.component.appendDataItem(this);\r\n }\r\n };\r\n /**\r\n * Checks if data item has particular property set.\r\n *\r\n * @param prop Property name\r\n * @return Property set?\r\n */\r\n AxisDataItem.prototype.hasProperty = function (prop) {\r\n return prop == \"component\" ? true : _super.prototype.hasProperty.call(this, prop);\r\n };\r\n /**\r\n * Copies all parameters from another [[AxisDataItem]].\r\n *\r\n * @param source Source AxisDataItem\r\n */\r\n AxisDataItem.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.text = source.text;\r\n if (source.bullet) {\r\n this.bullet = source.bullet.clone();\r\n }\r\n this.minPosition = source.minPosition;\r\n this.maxPosition = source.maxPosition;\r\n };\r\n /**\r\n * Sets visibility of the Data Item.\r\n *\r\n * @param value Data Item\r\n */\r\n AxisDataItem.prototype.setVisibility = function (value, noChangeValues) {\r\n _super.prototype.setVisibility.call(this, value, noChangeValues);\r\n if (this._contents) {\r\n this._contents.visible = value;\r\n }\r\n };\r\n Object.defineProperty(AxisDataItem.prototype, \"bullet\", {\r\n /**\r\n * @return Bullet\r\n */\r\n get: function () {\r\n return this._bullet;\r\n },\r\n /**\r\n * Set it to an instance of any [[Sprite]]. It will be displayed as an axis\r\n * bullet in the middle of the cell, or specific value.\r\n *\r\n * If you need position bullet relatively to the cell, use [[AxisBullet]]\r\n * instead. It has a `location` property which can be used to indicate\r\n * precise relative location within cell/range.\r\n *\r\n * Also, [[AxisBullet]] is a [[Container]] so you can push any other element\r\n * into it.\r\n *\r\n * NOTE: `location` is relative to the parent axis range's scope, i.e.\r\n * between its `date` and `endDate` for [[DateAxis]], or `value`/`endValue`\r\n * ([[ValueAxis]]), or `category`/`endCategory` ([[categoryAxis]]).\r\n *\r\n * ```TypeScript\r\n * let range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n *\r\n * let flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JavaScript\r\n * var range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n *\r\n * var flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * // ...\r\n * \"axisRanges\": [{\r\n * \"date\": new Date(2018, 0, 5),\r\n * \"bullet: {\r\n * \"type\": \"FlagBullet\",\r\n * \"label\": {\r\n * \"text\": \"Hello\"\r\n * }\r\n * }\r\n * }]\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @since 4.5.9\r\n * @param value Bullet\r\n */\r\n set: function (value) {\r\n if (this._bullet && this._bullet != value) {\r\n $array.remove(this.sprites, this._bullet);\r\n this._bullet.dataItem = undefined;\r\n }\r\n this._bullet = value;\r\n if (value) {\r\n this.addSprite(value);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AxisDataItem;\r\n}(DataItem));\r\nexport { AxisDataItem };\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines named positions for data item's location within [[Axis]].\r\n */\r\nexport var AxisItemLocation;\r\n(function (AxisItemLocation) {\r\n AxisItemLocation[AxisItemLocation[\"Start\"] = 0] = \"Start\";\r\n AxisItemLocation[AxisItemLocation[\"Middle\"] = 0.5] = \"Middle\";\r\n AxisItemLocation[AxisItemLocation[\"End\"] = 1] = \"End\";\r\n})(AxisItemLocation || (AxisItemLocation = {}));\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all Axis elements.\r\n *\r\n * @see {@link IAxisEvents} for a list of available Events\r\n * @see {@link IAxisAdapters} for a list of available Adapters\r\n */\r\nvar Axis = /** @class */ (function (_super) {\r\n __extends(Axis, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Axis() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Number of Grid elements on the axis.\r\n */\r\n _this._gridCount = 10;\r\n /**\r\n * A list of [[XYSeries]] that are using this Axis.\r\n */\r\n _this._series = new List();\r\n /**\r\n * Specifies if axis should be automatically disposed when removing from\r\n * chart's axis list.\r\n *\r\n * @default true\r\n */\r\n _this.autoDispose = true;\r\n /**\r\n * @ignore\r\n */\r\n _this._axisItemCount = 0;\r\n if (_this.constructor === Axis) {\r\n throw new Error(\"'Axis' cannot be instantiated directly. Please use a specific axis type.\");\r\n }\r\n _this.hideTooltipWhileZooming = true;\r\n _this.minWidth = 0.0001;\r\n _this.minHeight = 0.0001;\r\n _this.className = \"Axis\";\r\n _this.shouldClone = false;\r\n _this.setPropertyValue(\"cursorTooltipEnabled\", true);\r\n _this.toggleZoomOutButton = true;\r\n _this.zoomable = true;\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create title\r\n _this.title = new Label();\r\n _this.title.shouldClone = false;\r\n _this._disposers.push(_this.title);\r\n _this.setPropertyValue(\"startLocation\", 0);\r\n _this.setPropertyValue(\"endLocation\", 1);\r\n // Data item iterator\r\n _this._dataItemsIterator = new $iter.ListIterator(_this.dataItems, function () { return _this.dataItems.create(); });\r\n _this._dataItemsIterator.createNewItems = true;\r\n // Create tooltip\r\n var tooltip = new Tooltip();\r\n _this._disposers.push(tooltip);\r\n tooltip.label.padding(5, 10, 5, 10);\r\n tooltip.background.pointerLength = 5;\r\n tooltip.fitPointerToBounds = true;\r\n tooltip.background.filters.clear();\r\n // Set virtual parentfor the tooltip so that it can properly inheirt\r\n // formatters from the axis.\r\n tooltip.virtualParent = _this;\r\n // Create background element for the tooltip\r\n var background = tooltip.background;\r\n background.cornerRadius = 0;\r\n background.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n background.stroke = background.fill;\r\n background.strokeWidth = 1;\r\n background.fillOpacity = 1;\r\n tooltip.label.fill = interfaceColors.getFor(\"alternativeText\");\r\n _this.tooltip = tooltip;\r\n // Accessibility\r\n _this.readerHidden = true;\r\n _this.events.on(\"rangechangestarted\", function () {\r\n _this.series.each(function (series) {\r\n if (series.hideTooltipWhileZooming) {\r\n series.tooltip.hide();\r\n series.tooltip.preventShow = true;\r\n }\r\n });\r\n if (_this.hideTooltipWhileZooming) {\r\n _this.tooltip.hide();\r\n _this.tooltip.preventShow = true;\r\n }\r\n }, undefined, false);\r\n _this.events.on(\"rangechangeended\", function () {\r\n _this.series.each(function (series) {\r\n if (series.hideTooltipWhileZooming) {\r\n series.tooltip.hide();\r\n series.tooltip.preventShow = false;\r\n }\r\n });\r\n if (_this.hideTooltipWhileZooming) {\r\n _this.tooltip.hide();\r\n _this.tooltip.preventShow = false;\r\n }\r\n }, undefined, false);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Holds reference to a function that accepts a DataItem and its index as\r\n * parameters.\r\n *\r\n * It can either return a fill opacity for a fill, or manipulate data item\r\n * directly, to create various highlighting scenarios.\r\n *\r\n * For example, you can set it up to highlight only weekends on a\r\n * [[DateAxis]].\r\n */\r\n Axis.prototype.fillRule = function (dataItem, index) {\r\n if (!$type.isNumber(index)) {\r\n index = dataItem.index;\r\n }\r\n if (index / 2 == Math.round(index / 2)) {\r\n dataItem.axisFill.__disabled = true;\r\n dataItem.axisFill.opacity = 0;\r\n }\r\n else {\r\n dataItem.axisFill.opacity = 1;\r\n dataItem.axisFill.__disabled = false;\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Axis.prototype.createDataItem = function () {\r\n return new AxisDataItem();\r\n };\r\n /**\r\n * Invalidates layout.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.invalidateLayout = function () {\r\n _super.prototype.invalidateLayout.call(this);\r\n // this puts series after axis in invalidation order also makes series update it's data items in case widht/height of a series is not 100%\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.invalidateLayout();\r\n });\r\n };\r\n /**\r\n * Invalidates series of this axis.\r\n */\r\n Axis.prototype.invalidateSeries = function () {\r\n // this puts series after axis in invalidation order also makes series update it's data items in case widht/height of a series is not 100%\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.invalidate();\r\n });\r\n };\r\n /**\r\n * Override to cancel super call for data element validation.\r\n * @ignore\r\n */\r\n Axis.prototype.validateDataElements = function () {\r\n this._axisItemCount = 0;\r\n if (this.ghostLabel) {\r\n this.renderer.updateLabelElement(this.ghostLabel, this.start, this.end);\r\n this.ghostLabel.validate();\r\n }\r\n };\r\n /**\r\n * Recalculates the number of grid items on the axis.\r\n */\r\n Axis.prototype.updateGridCount = function () {\r\n if (this.renderer) {\r\n var gridCount = this.axisLength / this.renderer.minGridDistance;\r\n if (gridCount != this._gridCount) {\r\n this._gridCount = gridCount;\r\n this.clearCache();\r\n }\r\n }\r\n };\r\n /**\r\n * Redraws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.validateLayout = function () {\r\n this.axisFullLength = this.axisLength / (this.end - this.start);\r\n _super.prototype.validateLayout.call(this);\r\n this.updateGridCount();\r\n var renderer = this.renderer;\r\n if (renderer) {\r\n renderer.updateAxisLine();\r\n renderer.updateTooltip();\r\n renderer.updateBaseGridElement();\r\n }\r\n if (this._prevLength != this.axisLength) {\r\n this.dispatchImmediately(\"lengthchanged\");\r\n this._prevLength = this.axisLength;\r\n }\r\n };\r\n /**\r\n * Initializes Axis' renderer.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.initRenderer = function () {\r\n };\r\n /**\r\n * Adds a data item to the Axis.\r\n *\r\n * @param dataItem Data item\r\n */\r\n Axis.prototype.appendDataItem = function (dataItem) {\r\n var renderer = this.renderer;\r\n var tick = dataItem.tick;\r\n if (tick) {\r\n if (tick.above) {\r\n tick.parent = renderer.bulletsContainer;\r\n }\r\n else {\r\n tick.parent = renderer.gridContainer;\r\n }\r\n }\r\n if (dataItem.label) {\r\n dataItem.label.parent = renderer;\r\n }\r\n var axisFill = dataItem.axisFill;\r\n if (axisFill) {\r\n if (axisFill.above) {\r\n axisFill.parent = renderer.bulletsContainer;\r\n }\r\n else {\r\n axisFill.parent = renderer.gridContainer;\r\n }\r\n }\r\n var grid = dataItem.grid;\r\n if (grid) {\r\n if (grid.above) {\r\n grid.parent = renderer.bulletsContainer;\r\n }\r\n else {\r\n grid.parent = renderer.gridContainer;\r\n }\r\n }\r\n if (dataItem.bullet) {\r\n dataItem.bullet.parent = renderer.bulletsContainer;\r\n }\r\n };\r\n /**\r\n * Redraws Axis' related items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n this.validateLayout();\r\n this.renderer.updateGridContainer();\r\n };\r\n /**\r\n * Redars Axis ranges.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.validateAxisRanges = function () {\r\n var _this = this;\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n _this.appendDataItem(axisRange);\r\n _this.validateDataElement(axisRange);\r\n if (axisRange.grid) {\r\n axisRange.grid.validate();\r\n }\r\n if (axisRange.tick) {\r\n axisRange.tick.validate();\r\n }\r\n if (axisRange.axisFill) {\r\n axisRange.axisFill.validate();\r\n }\r\n if (axisRange.label) {\r\n axisRange.label.validate();\r\n }\r\n });\r\n };\r\n /**\r\n * Invalidates all axis breaks, so they are redrawn.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.validateBreaks = function () {\r\n if (this._axisBreaks) {\r\n $iter.each(this._axisBreaks.iterator(), function (axisBreak) {\r\n axisBreak.invalidate();\r\n });\r\n }\r\n };\r\n /**\r\n * Associates an Axis break with this Axis, after it is inserted into\r\n * `axisBreaks`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n Axis.prototype.processBreak = function (event) {\r\n var axisBreak = event.newValue;\r\n axisBreak.parent = this.renderer.breakContainer;\r\n axisBreak.axis = this;\r\n };\r\n /**\r\n * Registers a [[XYSeries]] element with this Axis.\r\n *\r\n * Returns a [[Disposer]] for all events, added to Series for watching\r\n * changes in Axis, and vice versa.\r\n * @ignore\r\n * @param series Series\r\n * @return Event disposer\r\n */\r\n Axis.prototype.registerSeries = function (series) {\r\n var _this = this;\r\n this.series.moveValue(series);\r\n return new MultiDisposer([\r\n new Disposer(function () {\r\n _this.series.removeValue(series);\r\n }),\r\n this.events.on(\"lengthchanged\", series.invalidate, series, false),\r\n this.events.on(\"lengthchanged\", series.createMask, series, false),\r\n this.events.on(\"startchanged\", series.invalidate, series, false),\r\n this.events.on(\"endchanged\", series.invalidate, series, false),\r\n ]);\r\n };\r\n Object.defineProperty(Axis.prototype, \"renderer\", {\r\n /**\r\n * @return Renderer\r\n */\r\n get: function () {\r\n return this._renderer;\r\n },\r\n /**\r\n * An [[AxisRenderer]] to be used to render this Axis.\r\n *\r\n * Please note that most of the settings, related to Axis' appearance are set\r\n * via its renderer. Not directly on the Axis.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * axis.renderer.inside = true;\r\n * axis.renderer.minLabelPosition = 0.1;\r\n * axis.renderer.maxLabelPosition = 0.9;\r\n * ```\r\n * ```JavaScript\r\n * axis.renderer.inside = true;\r\n * axis.renderer.minLabelPosition = 0.1;\r\n * axis.renderer.maxLabelPosition = 0.9;\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/} for more info\r\n * @param renderer Renderer\r\n */\r\n set: function (renderer) {\r\n if (renderer != this._renderer) {\r\n this._renderer = renderer;\r\n renderer.chart = this.chart;\r\n renderer.axis = this;\r\n renderer.parent = this;\r\n this.title.parent = this; // we add title to axis and set layout in renderer to avoid one extra container, as otherwise axis container would be used for holding renderer only\r\n this.initRenderer();\r\n this._disposers.push(renderer.gridContainer.events.on(\"maxsizechanged\", this.invalidate, this, false));\r\n var ghostLabel_1 = this.renderer.labels.create();\r\n this._disposers.push(ghostLabel_1);\r\n ghostLabel_1.dataItem = this.dataItems.template.clone(); // just for the adapters not to fail\r\n ghostLabel_1.text = \"L\";\r\n ghostLabel_1.parent = this.renderer;\r\n ghostLabel_1.shouldClone = false;\r\n ghostLabel_1.fillOpacity = 0;\r\n ghostLabel_1.opacity = 0;\r\n ghostLabel_1.strokeOpacity = 0;\r\n ghostLabel_1.interactionsEnabled = false;\r\n ghostLabel_1.validate();\r\n this.ghostLabel = ghostLabel_1;\r\n this.events.on(\"beforedatavalidated\", function () {\r\n ghostLabel_1.text = \"L\";\r\n }, undefined, false);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts a relative position to angle. (for circular axes)\r\n *\r\n * @param position Position (0-1)\r\n * @return Angle\r\n */\r\n Axis.prototype.positionToAngle = function (position) {\r\n return this.renderer.positionToAngle(position);\r\n };\r\n /**\r\n * Converts pixel coordinates to a relative position. (0-1)\r\n *\r\n * @param point Coorinates (px)\r\n * @return Position (0-1)\r\n */\r\n Axis.prototype.pointToPosition = function (point) {\r\n return this.renderer.pointToPosition(point);\r\n };\r\n /**\r\n * Converts relative position to coordinate.\r\n *\r\n * @since 4.7.15\r\n * @param position (0-1)\r\n * @return coordinate (px)\r\n */\r\n Axis.prototype.positionToCoordinate = function (position) {\r\n return this.renderer.positionToCoordinate(position);\r\n };\r\n /**\r\n * [getAnyRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param start [description]\r\n * @param end [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getAnyRangePath = function (start, end) {\r\n return this.renderer.getPositionRangePath(start, end);\r\n };\r\n /**\r\n * Converts any positional parameter to a relative position on axis.\r\n *\r\n * @todo Description (review)\r\n * @param value Pisition\r\n * @return Position (0-1)\r\n */\r\n Axis.prototype.anyToPosition = function (value) {\r\n return 0;\r\n };\r\n /**\r\n * Converts any positional parameter to a relative position on axis.\r\n *\r\n * @todo Description (review)\r\n * @param value Pisition\r\n * @return Orientation point\r\n */\r\n Axis.prototype.anyToPoint = function (value) {\r\n return { x: 0, y: 0, angle: 0 };\r\n };\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition [description]\r\n * @param endPosition [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getPositionRangePath = function (startPosition, endPosition) {\r\n if (this.renderer) {\r\n return this.renderer.getPositionRangePath(startPosition, endPosition);\r\n }\r\n return \"\";\r\n };\r\n Object.defineProperty(Axis.prototype, \"axisLength\", {\r\n /**\r\n * Actual axis length in pixels.\r\n *\r\n * @return Axis length (px)\r\n */\r\n get: function () {\r\n if (this.renderer) {\r\n return this.renderer.axisLength;\r\n }\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"cursorTooltipEnabled\", {\r\n /**\r\n * @return Display tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cursorTooltipEnabled\");\r\n },\r\n /**\r\n * Indicates if axis should display a tooltip for chart's cursor.\r\n *\r\n * @param value Display tooltip?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"cursorTooltipEnabled\", value)) {\r\n if (value && this.renderer) {\r\n this.renderer.updateTooltip();\r\n }\r\n else if (this.tooltip) {\r\n this.tooltip.hide(0);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"toggleZoomOutButton\", {\r\n /**\r\n * @return Toggle zoom out button?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"toggleZoomOutButton\");\r\n },\r\n /**\r\n * Normally, when axis is zoomed in, a zoom out button is shown by a chart,\r\n * and vice versa: when axis is zoomed out completely, zoom out button is\r\n * hidden.\r\n *\r\n * Setting this to `false` will disable this behavior. Zooming in our out\r\n * this axis will not reveal or hide zoom out button.\r\n *\r\n * @default true\r\n * @since 4.6.2\r\n * @param value Toggle zoom out button?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"toggleZoomOutButton\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Hides element's [[Tooltip]].\r\n *\r\n * @see {@link Tooltip}\r\n */\r\n Axis.prototype.hideTooltip = function (duration) {\r\n _super.prototype.hideTooltip.call(this, duration);\r\n this._tooltipPosition = undefined;\r\n };\r\n /**\r\n * Shows Axis tooltip at specific relative position within Axis. (0-1)\r\n *\r\n * @param position Position (0-1)\r\n * @param local or global position\r\n */\r\n Axis.prototype.showTooltipAtPosition = function (position, local) {\r\n var tooltip = this._tooltip;\r\n if (!tooltip || this.dataItems.length <= 0) {\r\n this._tooltipPosition = undefined;\r\n }\r\n else {\r\n if (!local) {\r\n position = this.toAxisPosition(position);\r\n }\r\n if (!$type.isNumber(position) || position < this.start || position > this.end) {\r\n tooltip.hide(0);\r\n this._tooltipPosition = undefined;\r\n return;\r\n }\r\n var renderer = this.renderer;\r\n //@todo: think of how to solve this better\r\n if (!tooltip.parent) {\r\n tooltip.parent = this.tooltipContainer;\r\n }\r\n var tooltipLocation = renderer.tooltipLocation;\r\n var startPosition = this.getCellStartPosition(position);\r\n var endPosition = this.getCellEndPosition(position);\r\n if (this.tooltipPosition == \"fixed\") {\r\n position = startPosition + (endPosition - startPosition) * tooltipLocation;\r\n }\r\n position = $math.fitToRange(position, this.start, this.end);\r\n if (this._tooltipPosition != position) {\r\n this._tooltipPosition = position;\r\n var tooltipLocation2 = renderer.tooltipLocation2;\r\n var startPoint = renderer.positionToPoint(startPosition, tooltipLocation2);\r\n var endPoint = renderer.positionToPoint(endPosition, tooltipLocation2);\r\n // save values so cursor could use them\r\n this.currentItemStartPoint = startPoint;\r\n this.currentItemEndPoint = endPoint;\r\n if (renderer.fullWidthTooltip) {\r\n tooltip.width = endPoint.x - startPoint.x;\r\n tooltip.height = endPoint.y - startPoint.y;\r\n }\r\n var point = renderer.positionToPoint(position, tooltipLocation2);\r\n var globalPoint = $utils.spritePointToSvg(point, this.renderer.line);\r\n tooltip.text = this.getTooltipText(position);\r\n if (tooltip.text) {\r\n tooltip.delayedPointTo(globalPoint);\r\n tooltip.show();\r\n }\r\n }\r\n if (!this.cursorTooltipEnabled || this.tooltip.disabled) {\r\n tooltip.hide(0);\r\n }\r\n }\r\n };\r\n /**\r\n * Converts relative position (0-1) to Axis position with zoom level and\r\n * inversed taken into account.\r\n *\r\n * @param position Global position (0-1)\r\n * @return Position within Axis (0-1)\r\n */\r\n Axis.prototype.toAxisPosition = function (position) {\r\n position = this.renderer.toAxisPosition(position);\r\n if (position == undefined) {\r\n return;\r\n }\r\n position = position * (this.end - this.start);\r\n if (this.renderer.inversed) {\r\n position = this.end - position;\r\n }\r\n else {\r\n position = this.start + position;\r\n }\r\n return position;\r\n };\r\n /**\r\n * Converts position on the axis with zoom level and\r\n * inversed taken into account to global position.\r\n *\r\n * @param position Axis position (0-1)\r\n * @return Global position (0-1)\r\n */\r\n Axis.prototype.toGlobalPosition = function (position) {\r\n if (this.renderer.inversed) {\r\n position = this.end - position;\r\n }\r\n else {\r\n position = position - this.start;\r\n }\r\n return position / (this.end - this.start);\r\n };\r\n /**\r\n * Returns text to be used for cursor's Axis tooltip.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position coordinate (px)\r\n * @return Label text\r\n */\r\n Axis.prototype.getTooltipText = function (position) {\r\n return;\r\n };\r\n /**\r\n * Updates Axis' tooltip's position and possibly size, and pointer (stem)\r\n * place.\r\n *\r\n * @ignore Exclude from docs\r\n * @param pointerOrientation Pointer (stem) orientation\r\n * @param boundingRectangle A rectangle for tooltip to fit within\r\n */\r\n Axis.prototype.updateTooltip = function (pointerOrientation, boundingRectangle) {\r\n var tooltip = this._tooltip;\r\n if (tooltip) {\r\n tooltip.fixDoc = false;\r\n tooltip.pointerOrientation = pointerOrientation;\r\n tooltip.setBounds($utils.spriteRectToSvg(boundingRectangle, this.renderer.line));\r\n }\r\n };\r\n /**\r\n * [roundPosition description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param position Relative position\r\n * @param location Location on axis\r\n * @return Rounded position\r\n */\r\n Axis.prototype.roundPosition = function (position, location, axisLocation) {\r\n return position;\r\n };\r\n /**\r\n * [getCellStartPosition description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param position [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getCellStartPosition = function (position) {\r\n return position;\r\n };\r\n /**\r\n * [getCellEndPosition description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param position [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getCellEndPosition = function (position) {\r\n return position;\r\n };\r\n Object.defineProperty(Axis.prototype, \"axisRanges\", {\r\n /**\r\n * A list of axis ranges for this Axis.\r\n *\r\n * @return Axis ranges\r\n */\r\n get: function () {\r\n if (!this._axisRanges) {\r\n var dataItem = this.createDataItem();\r\n dataItem.isRange = true;\r\n dataItem.axisFill = this.renderer.axisFills.template.clone();\r\n dataItem.grid = this.renderer.grid.template.clone();\r\n dataItem.tick = this.renderer.ticks.template.clone();\r\n dataItem.label = this.renderer.labels.template.clone();\r\n dataItem.isTemplate = true;\r\n dataItem.component = this;\r\n dataItem.axisFill.disabled = false;\r\n dataItem.tick.disabled = false;\r\n dataItem.grid.disabled = false;\r\n dataItem.label.disabled = false;\r\n this._axisRanges = new ListTemplate(dataItem);\r\n this._axisRanges.events.on(\"inserted\", this.processAxisRange, this, false);\r\n this._disposers.push(new ListDisposer(this._axisRanges));\r\n this._disposers.push(this._axisRanges.template);\r\n }\r\n return this._axisRanges;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Decorates an axis range after it has been added to the axis range list.\r\n *\r\n * @param event Event\r\n */\r\n Axis.prototype.processAxisRange = function (event) {\r\n var axisRange = event.newValue;\r\n axisRange.component = this;\r\n axisRange.isRange = true;\r\n };\r\n Object.defineProperty(Axis.prototype, \"axisBreaks\", {\r\n /**\r\n * A list of axis breaks on this Axis.\r\n *\r\n * @return Axis breaks.\r\n */\r\n get: function () {\r\n if (!this._axisBreaks) {\r\n this._axisBreaks = new SortedListTemplate(this.createAxisBreak(), function (a, b) {\r\n return $number.order(a.adjustedStartValue, b.adjustedStartValue);\r\n });\r\n this._axisBreaks.events.on(\"inserted\", this.processBreak, this, false);\r\n this._disposers.push(new ListDisposer(this._axisBreaks));\r\n this._disposers.push(this._axisBreaks.template);\r\n }\r\n return this._axisBreaks;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates a new axis break.\r\n *\r\n * @return Axis break\r\n */\r\n Axis.prototype.createAxisBreak = function () {\r\n return new AxisBreak();\r\n };\r\n Object.defineProperty(Axis.prototype, \"series\", {\r\n /**\r\n * A list of Series currently associated with this Axis.\r\n *\r\n * @return Series\r\n */\r\n get: function () {\r\n if (!this._series) {\r\n this._series = new List();\r\n }\r\n return this._series;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes Series' data items.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.processSeriesDataItems = function () {\r\n };\r\n /**\r\n * Processes Series' single data item.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Axis.prototype.processSeriesDataItem = function (dataItem, axisLetter) {\r\n };\r\n /**\r\n * Post-processes Serie's data items.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.postProcessSeriesDataItems = function (series) {\r\n };\r\n /**\r\n * Post-processes Serie's single data item.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Axis.prototype.postProcessSeriesDataItem = function (dataItem) {\r\n };\r\n //\r\n /**\r\n * Updates Axis based on all Series that might influence it.\r\n *\r\n * Called by Series after Series data is validated.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.updateAxisBySeries = function () {\r\n };\r\n /**\r\n * Hides unused data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Axis.prototype.hideUnusedDataItems = function () {\r\n var _this = this;\r\n // hide all unused\r\n var dataItemsIterator = this._dataItemsIterator;\r\n dataItemsIterator.createNewItems = false;\r\n $iter.each(dataItemsIterator.iterator(), function (dataItem) {\r\n _this.validateDataElement(dataItem); // solves shrinking\r\n dataItem.__disabled = true;\r\n });\r\n dataItemsIterator.clear();\r\n dataItemsIterator.createNewItems = true;\r\n };\r\n /**\r\n * Returns a Series' data item that corresponds to specific position on Axis.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param series Series\r\n * @param position Position (0-1)\r\n * @param findNearest Should axis try to find nearest tooltip if there is no data item at exact position\r\n * @return Data item\r\n */\r\n Axis.prototype.getSeriesDataItem = function (series, position, findNearest) {\r\n return;\r\n };\r\n /**\r\n * Returns an angle that corresponds to specific position on axis.\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key ???\r\n * @param location Location\r\n * @param stackKey ???\r\n * @return Angle\r\n */\r\n Axis.prototype.getAngle = function (dataItem, key, location, stackKey, range) {\r\n return;\r\n };\r\n /**\r\n * [getX description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem [description]\r\n * @param key [description]\r\n * @param location [description]\r\n * @param stackKey [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getX = function (dataItem, key, location, stackKey, range) {\r\n return;\r\n };\r\n /**\r\n * [getX description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem [description]\r\n * @param key [description]\r\n * @param location [description]\r\n * @param stackKey [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getPositionX = function (dataItem, key, location, stackKey, range) {\r\n return;\r\n };\r\n /**\r\n * [getY description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem [description]\r\n * @param key [description]\r\n * @param location [description]\r\n * @param stackKey [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getY = function (dataItem, key, location, stackKey, range) {\r\n return;\r\n };\r\n /**\r\n * [getY description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem [description]\r\n * @param key [description]\r\n * @param location [description]\r\n * @param stackKey [description]\r\n * @return [description]\r\n */\r\n Axis.prototype.getPositionY = function (dataItem, key, location, stackKey, range) {\r\n return;\r\n };\r\n Object.defineProperty(Axis.prototype, \"basePoint\", {\r\n /**\r\n * Coordinates of the actual axis start.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Base point coordinates\r\n */\r\n get: function () {\r\n return { x: 0, y: 0 };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [dataChangeUpdate description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Axis.prototype.dataChangeUpdate = function () {\r\n };\r\n /**\r\n * [dataChangeUpdate description]\r\n *\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Axis.prototype.seriesDataChangeUpdate = function (series) {\r\n };\r\n /**\r\n * Removes axis breaks that fall between `min` and `max` (???)\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param min Start value\r\n * @param max End value\r\n * @return Spread o\r\n */\r\n Axis.prototype.adjustDifference = function (min, max) {\r\n var difference = max - min;\r\n if ($type.isNumber(difference)) {\r\n if (this._axisBreaks) {\r\n $iter.eachContinue(this._axisBreaks.iterator(), function (axisBreak) {\r\n var startValue = axisBreak.adjustedStartValue;\r\n var endValue = axisBreak.adjustedEndValue;\r\n if ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n // breaks are sorted, we don't need go further anymore\r\n if (startValue > max) {\r\n return false;\r\n }\r\n if (endValue >= min) {\r\n if ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n var breakSize = axisBreak.breakSize;\r\n var intersection = $math.intersection({ start: startValue, end: endValue }, { start: min, end: max });\r\n if (intersection) {\r\n difference -= (intersection.end - intersection.start) * (1 - breakSize);\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n });\r\n }\r\n return difference;\r\n }\r\n };\r\n /**\r\n * Checks if specific value falls within a break.\r\n *\r\n * Returns [[AxisBreak]] the value falls into.\r\n *\r\n * @param value Value to check\r\n * @return Axis break\r\n */\r\n Axis.prototype.isInBreak = function (value) {\r\n if (this._axisBreaks) {\r\n return $iter.find(this._axisBreaks.iterator(), function (axisBreak) {\r\n return value >= axisBreak.adjustedStartValue &&\r\n value <= axisBreak.adjustedEndValue;\r\n });\r\n }\r\n };\r\n /**\r\n * [fixAxisBreaks description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Axis.prototype.fixAxisBreaks = function () {\r\n var _this = this;\r\n if (this._axisBreaks) {\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks.length > 0) {\r\n // first make sure that startValue is <= end value\r\n // This needs to make a copy of axisBreaks because it mutates the list while traversing\r\n // TODO very inefficient\r\n $array.each($iter.toArray(axisBreaks.iterator()), function (axisBreak) {\r\n var startValue = $math.min(axisBreak.startValue, axisBreak.endValue);\r\n var endValue = $math.max(axisBreak.startValue, axisBreak.endValue);\r\n axisBreak.adjustedStartValue = startValue;\r\n axisBreak.adjustedEndValue = endValue;\r\n _this._axisBreaks.update(axisBreak);\r\n });\r\n var firstAxisBreak = axisBreaks.first;\r\n var previousEndValue_1 = Math.min(firstAxisBreak.startValue, firstAxisBreak.endValue);\r\n // process breaks\r\n // TODO does this need to call axisBreaks.update ?\r\n $iter.each(axisBreaks.iterator(), function (axisBreak) {\r\n var startValue = axisBreak.adjustedStartValue;\r\n var endValue = axisBreak.adjustedEndValue;\r\n // breaks can't overlap\r\n // if break starts before previous break ends\r\n if (startValue < previousEndValue_1) {\r\n startValue = previousEndValue_1;\r\n if (endValue < previousEndValue_1) {\r\n endValue = previousEndValue_1;\r\n }\r\n }\r\n axisBreak.adjustedStartValue = startValue;\r\n axisBreak.adjustedEndValue = endValue;\r\n });\r\n }\r\n }\r\n };\r\n Object.defineProperty(Axis.prototype, \"startIndex\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return [description]\r\n */\r\n get: function () {\r\n return 0;\r\n },\r\n /**\r\n * We need start/end indexes of axes to be 0 - `dataItems.length`.\r\n *\r\n * Yes, also for category axis, this helps to avoid jumping of categories\r\n * while scrolling and does not do a lot of extra work as we use\r\n * protected `_startIndex` and `_endIndex` when working with items.\r\n *\r\n * @hidden\r\n */\r\n /**\r\n * [startIndex description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"endIndex\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.dataItems.length;\r\n },\r\n /**\r\n * [endIndex description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a formatted label based on position.\r\n *\r\n * Individual axis types should override this method to generate a label\r\n * that is relevant to axis type.\r\n *\r\n * Please note that `position` represents position within axis which may be\r\n * zoomed and not correspond to Cursor's `position`.\r\n *\r\n * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n * @param position Relative position on axis (0-1)\r\n * @return Position label\r\n */\r\n Axis.prototype.getPositionLabel = function (position) {\r\n return Math.round(position * 100) + \"%x\";\r\n };\r\n Object.defineProperty(Axis.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart;\r\n },\r\n /**\r\n * A Chart this Axis belongs to.\r\n *\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates a data item for a Series range.\r\n *\r\n * @param series Target Series\r\n * @return Range data item\r\n */\r\n Axis.prototype.createSeriesRange = function (series) {\r\n var range = this.axisRanges.create();\r\n range.component = this;\r\n range.axisFill = this.renderer.axisFills.template.clone();\r\n range.axisFill.disabled = false;\r\n range.axisFill.fillOpacity = 0;\r\n range.grid = this.renderer.grid.template.clone();\r\n range.grid.disabled = true;\r\n range.tick = this.renderer.ticks.template.clone();\r\n range.tick.disabled = true;\r\n range.label = this.renderer.labels.template.clone();\r\n range.label.disabled = true;\r\n range.addDisposer(new Disposer(function () {\r\n series.axisRanges.removeValue(range);\r\n }));\r\n series.axisRanges.push(range);\r\n return range;\r\n };\r\n /**\r\n * Copies all properties and related data from a different instance of Axis.\r\n *\r\n * @param source Source Axis\r\n */\r\n Axis.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.renderer) {\r\n this.renderer.copyFrom(source.renderer);\r\n }\r\n else {\r\n if (source.renderer) {\r\n this.renderer = source.renderer.clone();\r\n this._disposers.push(this.renderer);\r\n }\r\n }\r\n if (source.title) {\r\n if (!this.title) {\r\n this.title = source.title.clone();\r\n this.title.parent = this;\r\n }\r\n else {\r\n this.title.copyFrom(source.title);\r\n }\r\n this._disposers.push(this.title);\r\n }\r\n };\r\n /**\r\n * Resets internal iterator.\r\n */\r\n Axis.prototype.resetIterators = function () {\r\n this._dataItemsIterator.reset();\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Axis.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up axis ranges\r\n if ($type.hasValue(config.axisRanges) && $type.isArray(config.axisRanges)) {\r\n for (var i = 0, len = config.axisRanges.length; i < len; i++) {\r\n var range = config.axisRanges[i];\r\n // If `series` is set, we know it's a series range\r\n if ($type.hasValue(range[\"series\"])) {\r\n if ($type.isString(range[\"series\"])) {\r\n if (this.map.hasKey(range[\"series\"])) {\r\n //range[\"series\"] = this.map.getKey(range[\"series\"]);\r\n config.axisRanges[i] = this.createSeriesRange(this.map.getKey(range[\"series\"]));\r\n delete (range[\"series\"]);\r\n config.axisRanges[i].config = range;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Ordering function used in JSON setup.\r\n *\r\n * @param a Item A\r\n * @param b Item B\r\n * @return Order\r\n */\r\n Axis.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // last\r\n else if (a == \"title\") {\r\n return 1;\r\n }\r\n else if (b == \"title\") {\r\n return -1;\r\n }\r\n // first\r\n else if (a == \"component\") {\r\n return -1;\r\n }\r\n else if (b == \"component\") {\r\n return 1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n Object.defineProperty(Axis.prototype, \"startLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startLocation\");\r\n },\r\n /**\r\n * Axis start location. Works on Date/Category axis, doesn't work on Value axis.\r\n *\r\n * * 0 - Full first cell is shown.\r\n * * 0.5 - Half of first cell is shown.\r\n * * 1 - None of the first cell is visible. (you probably don't want that)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"endLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endLocation\");\r\n },\r\n /**\r\n * Axis end location. Works on Date/Category axis, doesn't work on Value axis.\r\n *\r\n * * 0 - None of the last cell is shown. (don't do that)\r\n * * 0.5 - Half of the last cell is shown.\r\n * * 1 - Full last cell is shown.\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Axis.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.renderer) {\r\n this.renderer.gridContainer.disabled = value;\r\n }\r\n return changed;\r\n };\r\n Object.defineProperty(Axis.prototype, \"title\", {\r\n /**\r\n * @return Title label\r\n */\r\n get: function () {\r\n return this._title;\r\n },\r\n /**\r\n * A reference to a [[Label]] element which serves as a title to the axis.\r\n *\r\n * When axis is created it aleready has an element, so you can just modify\r\n * it.\r\n *\r\n * Or you can replace it with your own instance of `Label`.\r\n *\r\n * @param value Title label\r\n */\r\n set: function (value) {\r\n if (this._title && this._title != value) {\r\n this._title.dispose();\r\n }\r\n if (value) {\r\n this._title = value;\r\n value.parent = this;\r\n value.shouldClone = false;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"hideTooltipWhileZooming\", {\r\n /**\r\n * @return Hide tooltip while zooming?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hideTooltipWhileZooming\");\r\n },\r\n /**\r\n * Indicates if axis' tooltip should be hidden while axis range is animating\r\n * (zooming)\r\n *\r\n * @default true\r\n * @since 4.7.16\r\n * @param value Hide tooltip while zooming?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"hideTooltipWhileZooming\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Axis.prototype, \"zoomable\", {\r\n /**\r\n * @return Zoomable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"zoomable\");\r\n },\r\n /**\r\n * Should the axis be zoomed with scrollbar/cursor?\r\n *\r\n * @default true\r\n * @since 4.9.28\r\n * @param value Zoomable?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"zoomable\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Axis;\r\n}(Component));\r\nexport { Axis };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Axis\"] = Axis;\r\nregistry.registeredClasses[\"AxisDataItem\"] = AxisDataItem;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Disable axis tooltips.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.maybeXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Axis && target.tooltip) {\r\n var state = target.states.create(stateId);\r\n state.properties.cursorTooltipEnabled = false;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Axis.js.map","/**\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw Axis line.\r\n *\r\n * @see {@link IAxisLineEvents} for a list of available events\r\n * @see {@link IAxisLineAdapters} for a list of available Adapters\r\n */\r\nvar AxisLine = /** @class */ (function (_super) {\r\n __extends(AxisLine, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AxisLine() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisLine\";\r\n _this.element = _this.paper.add(\"path\");\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.stroke = interfaceColors.getFor(\"grid\");\r\n _this.strokeOpacity = 0.15;\r\n _this.pixelPerfect = true;\r\n _this.fill = color();\r\n _this.applyTheme();\r\n _this.interactionsEnabled = false;\r\n return _this;\r\n //this.element.moveTo({ x: 0, y: 0 });\r\n }\r\n return AxisLine;\r\n}(Sprite));\r\nexport { AxisLine };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLine\"] = AxisLine;\r\n//# sourceMappingURL=AxisLine.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * AxisFill is a base class used to defines fill shapes for various\r\n * type-specific Axes.\r\n *\r\n * Axis fills are used to add fills to specific ranges of those axes.\r\n *\r\n * @see {@link IAxisFillEvents} for a list of available events\r\n * @see {@link IAxisFillAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar AxisFill = /** @class */ (function (_super) {\r\n __extends(AxisFill, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Axis\r\n */\r\n function AxisFill(axis) {\r\n var _this = _super.call(this) || this;\r\n _this.axis = axis;\r\n _this.element = _this.paper.add(\"path\");\r\n _this.className = \"AxisFill\";\r\n _this.isMeasured = false;\r\n _this.location = 0;\r\n _this.above = false;\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.fillOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n AxisFill.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n return changed;\r\n };\r\n /**\r\n * Draws the fill element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisFill.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this.__disabled || this.disabled) {\r\n return;\r\n }\r\n if (this.axis && $type.isNumber(this.startPosition) && $type.isNumber(this.endPosition)) {\r\n this.fillPath = this.axis.getPositionRangePath(this.startPosition, this.endPosition);\r\n this.path = this.fillPath;\r\n if (this.isMeasured) {\r\n this.measure();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AxisFill.prototype, \"startPosition\", {\r\n /**\r\n * @return Start position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startPosition\");\r\n },\r\n /**\r\n * An actual starting position of the fill.\r\n *\r\n * @param value Starting position\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startPosition\", value);\r\n this.invalidate(); // this is needed as relative position might not change when zooming\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisFill.prototype, \"endPosition\", {\r\n /**\r\n * @return End position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endPosition\");\r\n },\r\n /**\r\n * An actual end position of the fill.\r\n *\r\n * @param value End position\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endPosition\", value);\r\n this.invalidate(); // this is needed as relative position might not change when zooming\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisFill.prototype, \"location\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"location\");\r\n },\r\n /**\r\n * Relative location of the fill. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"location\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n AxisFill.prototype.setPath = function (value) {\r\n if (this.setPropertyValue(\"path\", value)) {\r\n this.element.attr({ \"d\": value });\r\n return true;\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(AxisFill.prototype, \"above\", {\r\n /**\r\n * @return Draw above series?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"above\");\r\n },\r\n /**\r\n * Normally fill goes below series. Set this to `true` to go above.\r\n *\r\n * @default false\r\n * @since 4.5.9\r\n * @param value Draw above series?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"above\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AxisFill;\r\n}(Sprite));\r\nexport { AxisFill };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisFill\"] = AxisFill;\r\n//# sourceMappingURL=AxisFill.js.map","/**\r\n * A module defining functionality for axis grid elements.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Displays an axis grid line.\r\n *\r\n * @see {@link IGridEvents} for a list of available events\r\n * @see {@link IGridAdapters} for a list of available Adapters\r\n * @todo Review: container is better, as we'll be able to attach something to the grid, also with 3d charts we might need some additional elements\r\n * @important\r\n */\r\nvar Grid = /** @class */ (function (_super) {\r\n __extends(Grid, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Grid() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Grid\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.location = 0.5;\r\n _this.isMeasured = false;\r\n _this.above = false;\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.stroke = interfaceColors.getFor(\"grid\");\r\n _this.pixelPerfect = true;\r\n _this.strokeOpacity = 0.15;\r\n _this.fill = color(); // \"none\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Grid.prototype, \"location\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"location\");\r\n },\r\n /**\r\n * Location within axis cell to place grid line on.\r\n *\r\n * * 0 - start\r\n * * 0.5 - middle\r\n * * 1 - end\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"location\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Grid.prototype, \"above\", {\r\n /**\r\n * @return Draw above series?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"above\");\r\n },\r\n /**\r\n * Normally fill goes below series. Set this to `true` to go above.\r\n *\r\n * @default false\r\n * @since 4.5.9\r\n * @param value Draw above series?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"above\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n Grid.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n return changed;\r\n };\r\n return Grid;\r\n}(Sprite));\r\nexport { Grid };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Grid\"] = Grid;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Disable grid on smaller charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.maybeXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Grid) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Grid.js.map","/**\r\n * Axis Label module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Use to create labels on Axis.\r\n *\r\n * @see {@link IAxisLabelEvents} for a list of available events\r\n * @see {@link IAxisLabelAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar AxisLabel = /** @class */ (function (_super) {\r\n __extends(AxisLabel, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AxisLabel() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisLabel\";\r\n _this.isMeasured = false;\r\n _this.padding(10, 10, 10, 10);\r\n _this.location = 0.5;\r\n //this.nonScaling = true; // not good for perf\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisLabel.prototype, \"location\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"location\");\r\n },\r\n /**\r\n * Relative location of the label. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"location\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisLabel.prototype, \"inside\", {\r\n /**\r\n * Returns if label is set to be drawn inside axis.\r\n *\r\n * @return Inside?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"inside\");\r\n },\r\n /**\r\n * Sets if label should be drawn inside axis.\r\n *\r\n * @param value Inside?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"inside\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n AxisLabel.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n return changed;\r\n };\r\n return AxisLabel;\r\n}(Label));\r\nexport { AxisLabel };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLabel\"] = AxisLabel;\r\n//# sourceMappingURL=AxisLabel.js.map","/**\r\n * Tick module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A basic Tick class.\r\n *\r\n * A tick is a short dash, mainly connecting an object like axis or slice to\r\n * it's textual label.\r\n *\r\n * @see {@link ITickEvents} for a list of available events\r\n * @see {@link ITickAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar Tick = /** @class */ (function (_super) {\r\n __extends(Tick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Tick() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Tick\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fillOpacity = 0;\r\n _this.length = 6;\r\n _this.strokeOpacity = 0.2;\r\n _this.stroke = interfaceColors.getFor(\"grid\");\r\n _this.isMeasured = false;\r\n _this.nonScalingStroke = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(Tick.prototype, \"length\", {\r\n /**\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n if (this.disabled) {\r\n return 0;\r\n }\r\n return this.getPropertyValue(\"length\");\r\n },\r\n /**\r\n * Length of the tick in pixels.\r\n *\r\n * @param value Length (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"length\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Tick;\r\n}(Sprite));\r\nexport { Tick };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Tick\"] = Tick;\r\n//# sourceMappingURL=Tick.js.map","/**\r\n * Axis Tick module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an axis tick\r\n * @see {@link IAxisTickEvents} for a list of available events\r\n * @see {@link IAxisTickAdapters} for a list of available Adapters\r\n */\r\nvar AxisTick = /** @class */ (function (_super) {\r\n __extends(AxisTick, _super);\r\n function AxisTick() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisTick\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.location = 0.5;\r\n _this.above = false;\r\n _this.isMeasured = false;\r\n _this.pixelPerfect = true;\r\n _this.strokeOpacity = 0;\r\n _this.length = 5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisTick.prototype, \"location\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"location\");\r\n },\r\n /**\r\n * Relative location of the tick. (0-1)\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"location\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisTick.prototype, \"inside\", {\r\n /**\r\n * Returns if label is set to be drawn inside axis.\r\n *\r\n * @return Inside?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"inside\");\r\n },\r\n /**\r\n * Sets if tick should be drawn inside axis.\r\n *\r\n * @param value Inside?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"inside\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisTick.prototype, \"above\", {\r\n /**\r\n * @return Draw above series?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"above\");\r\n },\r\n /**\r\n * Normally tick goes below series. Set this to `true` to go above.\r\n *\r\n * @default false\r\n * @since 4.5.9\r\n * @param value Draw above series?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"above\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n AxisTick.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n return changed;\r\n };\r\n return AxisTick;\r\n}(Tick));\r\nexport { AxisTick };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisTick\"] = AxisTick;\r\n//# sourceMappingURL=AxisTick.js.map","/**\r\n * Module, defining base Axis Renderer.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { AxisDataItem } from \"./Axis\";\r\nimport { AxisLine } from \"./AxisLine\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all axis renderers.\r\n *\r\n * @see {@link IAxisRendererEvents} for a list of available events\r\n * @see {@link IAxisRendererAdapters} for a list of available Adapters\r\n */\r\nvar AxisRenderer = /** @class */ (function (_super) {\r\n __extends(AxisRenderer, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRenderer() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A related chart.\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n _this.className = \"AxisRenderer\";\r\n // Set defaults\r\n _this.minGridDistance = 50;\r\n _this.inside = false;\r\n _this.inversed = false;\r\n _this.tooltipLocation = 0.5;\r\n _this.fullWidthTooltip = false;\r\n _this.cellStartLocation = 0;\r\n _this.cellEndLocation = 1;\r\n _this.minLabelPosition = 0;\r\n _this.maxLabelPosition = 1;\r\n _this.shouldClone = false;\r\n var gridContainer = _this.createChild(Container);\r\n gridContainer.shouldClone = false;\r\n gridContainer.layout = \"none\";\r\n //\tgridContainer.isMeasured = false;\r\n gridContainer.virtualParent = _this;\r\n gridContainer.width = percent(100);\r\n gridContainer.height = percent(100);\r\n _this.gridContainer = gridContainer;\r\n // not good without this\r\n gridContainer.events.on(\"maxsizechanged\", function () {\r\n if (_this.inited) {\r\n _this.invalidateAxisItems();\r\n }\r\n }, _this, false);\r\n var breakContainer = _this.createChild(Container);\r\n breakContainer.shouldClone = false;\r\n breakContainer.isMeasured = false;\r\n breakContainer.layout = \"none\";\r\n breakContainer.width = percent(100);\r\n breakContainer.height = percent(100);\r\n _this.breakContainer = breakContainer;\r\n var bulletsContainer = _this.createChild(Container);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.isMeasured = false;\r\n bulletsContainer.layout = \"none\";\r\n bulletsContainer.width = percent(100);\r\n bulletsContainer.height = percent(100);\r\n _this.bulletsContainer = bulletsContainer;\r\n _this.line = _this.createChild(AxisLine);\r\n _this.line.shouldClone = false;\r\n _this.line.strokeOpacity = 0;\r\n var baseGrid = _this.createChild(Grid);\r\n baseGrid.shouldClone = false;\r\n _this.baseGrid = baseGrid;\r\n // Make elements disposable\r\n var disposers = _this._disposers;\r\n disposers.push(baseGrid);\r\n disposers.push(_this.line);\r\n disposers.push(gridContainer);\r\n disposers.push(breakContainer);\r\n disposers.push(bulletsContainer);\r\n disposers.push(_this._chart);\r\n _this.ticks.template.disabled = true;\r\n _this.axisFills.template.disabled = true;\r\n _this.axisFills.template.interactionsEnabled = false;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisRenderer.prototype, \"axis\", {\r\n /**\r\n * Axis of a renderer\r\n * @return axis Axis\r\n */\r\n get: function () {\r\n return this._axis;\r\n },\r\n /**\r\n * Axis of a renderer\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n this.setAxis(axis);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n AxisRenderer.prototype.setAxis = function (axis) {\r\n this._axis = axis;\r\n this.baseGrid.parent = axis;\r\n this.line.parent = axis;\r\n this.gridContainer.bind(\"opacity\", axis);\r\n };\r\n /**\r\n * Called when rendered is attached to an Axis, as well as a property of\r\n * Axis that might affect the appearance is updated.\r\n *\r\n * E.g. `axis.opposite`, `axis.inside`, etc.\r\n *\r\n * This method is called **before** draw, so that any related setting\r\n * changed in this method can be changed.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRenderer.prototype.processRenderer = function () {\r\n this.events.on(\"sizechanged\", this.updateTooltip, this, false);\r\n this.events.on(\"positionchanged\", this.updateTooltip, this, false);\r\n this.labels.template.inside = this.inside;\r\n this.ticks.template.inside = this.inside;\r\n };\r\n /**\r\n * Updates Axis' tooltip.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRenderer.prototype.updateTooltip = function () {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"axisLength\", {\r\n /**\r\n * Returns actual length of the Axis, in pixels.\r\n *\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n // This is a placeholder method for extending classes to override.\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Re-positions an element to new coordinates.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item A target element\r\n * @param point New coordinates\r\n */\r\n AxisRenderer.prototype.positionItem = function (item, point) {\r\n if (item) {\r\n item.moveTo(point);\r\n }\r\n };\r\n /**\r\n * Converts relative position on axis to point coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @return Point\r\n */\r\n AxisRenderer.prototype.positionToPoint = function (position, position2) {\r\n // This is a placeholder method for extending classes to override.\r\n return { x: 0, y: 0 };\r\n };\r\n /**\r\n * Converts relative position on axis to angle.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review / units)\r\n * @param position Position (0-1)\r\n * @return Angle\r\n */\r\n AxisRenderer.prototype.positionToAngle = function (position) {\r\n // This is a placeholder method for extending classes to override.\r\n return 0;\r\n };\r\n /**\r\n * Converts relative position (0-1) on axis to a pixel coordinate.\r\n *\r\n * @param position Position (0-1)\r\n * @return Coordinate (px)\r\n */\r\n AxisRenderer.prototype.positionToCoordinate = function (position) {\r\n var coordinate;\r\n var axis = this.axis;\r\n var axisFullLength = axis.axisFullLength;\r\n if (axis.renderer.inversed) {\r\n coordinate = (axis.end - position) * axisFullLength;\r\n }\r\n else {\r\n coordinate = (position - axis.start) * axisFullLength;\r\n }\r\n return coordinate;\r\n };\r\n AxisRenderer.prototype.updateGridContainer = function () {\r\n };\r\n AxisRenderer.prototype.getHeight = function () {\r\n var gridContainer = this.gridContainer;\r\n if (gridContainer.parent) {\r\n return gridContainer.parent.pixelHeight;\r\n }\r\n return this.gridContainer.pixelHeight || 0;\r\n };\r\n AxisRenderer.prototype.getWidth = function () {\r\n var gridContainer = this.gridContainer;\r\n if (gridContainer.parent) {\r\n return gridContainer.parent.pixelWidth;\r\n }\r\n return this.gridContainer.pixelWidth || 0;\r\n };\r\n /**\r\n * Converts a coordinate in pixels to a relative position. (0-1)\r\n *\r\n * @param coordinate Coordinate (px)\r\n * @param coordinate2 Coordinate of a second axis, only needed for complex axes systems, like timeline (px)\r\n * @return Position (0-1)\r\n */\r\n AxisRenderer.prototype.coordinateToPosition = function (coordinate, coordinate2) {\r\n var position;\r\n var axis = this.axis;\r\n var axisFullLength = axis.axisFullLength;\r\n if (axis.renderer.inversed) {\r\n position = axis.end - coordinate / axisFullLength;\r\n }\r\n else {\r\n position = coordinate / axisFullLength + axis.start;\r\n }\r\n return $math.round(position, 5);\r\n };\r\n /**\r\n * Converts a point at specific coordinates to a relative position (0-1)\r\n * on the axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Point\r\n * @return Position (0-1)\r\n */\r\n AxisRenderer.prototype.pointToPosition = function (point) {\r\n // This is a placeholder method for extending classes to override.\r\n return 0;\r\n };\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition Starting position\r\n * @param endPosition End position\r\n * @return SVG path\r\n */\r\n AxisRenderer.prototype.getPositionRangePath = function (startPosition, endPosition) {\r\n return \"\";\r\n };\r\n /**\r\n * Invalidates all axis data items, effectively causing them re-evaluated.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n */\r\n AxisRenderer.prototype.invalidateAxisItems = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n axis.invalidateDataItems();\r\n }\r\n };\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRenderer.prototype.updateGridElement = function (grid, position, endPosition) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions a tick element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param tick Tick element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRenderer.prototype.updateTickElement = function (tick, position, endPosition) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions axis bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet AxisBullet element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRenderer.prototype.updateBullet = function (bullet, position, endPosition) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions a label element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param label Label element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRenderer.prototype.updateLabelElement = function (label, position, endPosition, location) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions the axis fill element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fill Fill element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRenderer.prototype.updateFillElement = function (fill, position, endPosition) {\r\n fill.startPosition = position;\r\n fill.endPosition = endPosition;\r\n };\r\n /**\r\n * Updates and positions the axis line element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRenderer.prototype.updateAxisLine = function () {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRenderer.prototype.updateBaseGridElement = function () {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Updates and positions an axis break element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Break element\r\n */\r\n AxisRenderer.prototype.updateBreakElement = function (axisBreak) {\r\n this.positionItem(axisBreak.startLine, axisBreak.startPoint);\r\n this.toggleVisibility(axisBreak.startLine, axisBreak.startPosition, 0, 1);\r\n this.positionItem(axisBreak.endLine, axisBreak.endPoint);\r\n this.toggleVisibility(axisBreak.endLine, axisBreak.endPosition, 0, 1);\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"minGridDistance\", {\r\n /**\r\n * @return Min distance (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minGridDistance\");\r\n },\r\n /**\r\n * Minimum distance in pixels between grid elements.\r\n *\r\n * Use it to control density of the grid/labels on the axis.element.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/#Setting_the_density_of_the_the_grid_labels} for more info\r\n * @param value Min distance (px)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"minGridDistance\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"chart\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * A chart, associated with the Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart.set(value, null);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Toggles visibility of an element, based on its current position and\r\n * min/max position settings.\r\n *\r\n * E.g. labels based on `minLabelPosition` and `maxLabelPosition`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param sprite An element to toggle\r\n * @param position Elements current position\r\n * @param minPosition Min position setting\r\n * @param maxPosition Max position setting\r\n */\r\n AxisRenderer.prototype.toggleVisibility = function (sprite, position, minPosition, maxPosition) {\r\n var axis = this.axis;\r\n var dataItem = sprite.dataItem;\r\n if (dataItem && dataItem instanceof AxisDataItem) {\r\n if ($type.isNumber(dataItem.minPosition)) {\r\n minPosition = dataItem.minPosition;\r\n }\r\n if ($type.isNumber(dataItem.maxPosition)) {\r\n maxPosition = dataItem.maxPosition;\r\n }\r\n }\r\n var updatedStart = axis.start + (axis.end - axis.start) * (minPosition - 0.0001);\r\n var updatedEnd = axis.start + (axis.end - axis.start) * (maxPosition + 0.0001);\r\n if (!sprite.disabled) {\r\n if (position < updatedStart || position > updatedEnd) {\r\n sprite.__disabled = true;\r\n }\r\n else {\r\n sprite.__disabled = false;\r\n }\r\n }\r\n };\r\n /**\r\n * Creates visual elements for and axis break.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Axis break\r\n */\r\n AxisRenderer.prototype.createBreakSprites = function (axisBreak) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"axisFills\", {\r\n /**\r\n * A list of Axis' Fill elements.\r\n *\r\n * Those are fill elements that cover the space between every second set\r\n * of grid lines, and can be configured to create striped charts.\r\n *\r\n * Please note that these are disabled by default. To enable them, set\r\n * template to true.\r\n *\r\n * ```TypeScript\r\n * categoryAxis.renderer.axisFills.template.disabled = false;\r\n * ```\r\n * ```JavaScript\r\n * categoryAxis.renderer.axisFills.template.disabled = false;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * // ...\r\n * \"renderer\": {\r\n * \"axisFills\": {\r\n * \"disabled\": false\r\n * }\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/alternated-axis-fills/} this tutorial for more info.\r\n * @return Fill elements\r\n */\r\n get: function () {\r\n if (!this._axisFills) {\r\n var fill = this.createFill(this.axis);\r\n this._axisFills = new ListTemplate(fill);\r\n fill.applyOnClones = true;\r\n fill.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n this._disposers.push(new ListDisposer(this._axisFills));\r\n this._disposers.push(this._axisFills.template);\r\n }\r\n return this._axisFills;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a new fill element, suitable for this Axis Renderer type.\r\n *\r\n * @return Fill element\r\n */\r\n AxisRenderer.prototype.createFill = function (axis) {\r\n return new AxisFill(axis);\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"grid\", {\r\n /**\r\n * A list of Axis' Grid elements.\r\n *\r\n * @return Grid elements\r\n */\r\n get: function () {\r\n if (!this._grid) {\r\n var grid = this.createGrid();\r\n this._grid = new ListTemplate(grid);\r\n grid.applyOnClones = true;\r\n grid.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n this._disposers.push(new ListDisposer(this._grid));\r\n this._disposers.push(this._grid.template);\r\n }\r\n return this._grid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a new grid element, suitable for this Axis Renderer type.\r\n *\r\n * @return Grid element\r\n */\r\n AxisRenderer.prototype.createGrid = function () {\r\n return new Grid();\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"ticks\", {\r\n /**\r\n * A list of Axis' Tick elements.\r\n *\r\n * Please note that these are disabled by default. To enable ticks, you'll\r\n * need to set `disabled` and `strokeOpacity` properties of the tick template.\r\n *\r\n * ```TypeScript\r\n * categoryAxis.renderer.ticks.template.disabled = false;\r\n * categoryAxis.renderer.ticks.template.strokeOpacity = 0.5;\r\n * ```\r\n * ```JavaScript\r\n * categoryAxis.renderer.ticks.template.disabled = false;\r\n * categoryAxis.renderer.ticks.template.strokeOpacity = 0.5;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * // ...\r\n * \"renderer\": {\r\n * \"ticks\": {\r\n * \"disabled\": false,\r\n * \"strokeOpacity\": 0.5\r\n * }\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @return Tick elements\r\n */\r\n get: function () {\r\n if (!this._ticks) {\r\n var tick = this.createTick();\r\n tick.applyOnClones = true;\r\n tick.isMeasured = false;\r\n tick.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n this._ticks = new ListTemplate(tick);\r\n this._disposers.push(new ListDisposer(this._ticks));\r\n this._disposers.push(this._ticks.template);\r\n }\r\n return this._ticks;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a new tick element, suitable for this Axis Renderer type.\r\n *\r\n * @return Tick element\r\n */\r\n AxisRenderer.prototype.createTick = function () {\r\n return new AxisTick();\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"labels\", {\r\n /**\r\n * A list of Axis' Label elements.\r\n *\r\n * @return Label elements\r\n */\r\n get: function () {\r\n if (!this._labels) {\r\n var label = this.createLabel();\r\n this._labels = new ListTemplate(label);\r\n label.applyOnClones = true;\r\n label.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n this._disposers.push(new ListDisposer(this._labels));\r\n this._disposers.push(this._labels.template);\r\n }\r\n return this._labels;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a new label element, suitable for this Axis Renderer type.\r\n *\r\n * @return Label element\r\n */\r\n AxisRenderer.prototype.createLabel = function () {\r\n return new AxisLabel();\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"inside\", {\r\n /**\r\n * @return Labels inside?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"inside\");\r\n },\r\n /**\r\n * Indicates whether Axis' labels and ticks should be drawn inside Plot area.\r\n *\r\n * Does not work with all renderers, like AxisRendererRadial.\r\n *\r\n * @param value Labels inside?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"inside\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n }\r\n }\r\n if (value) {\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n else {\r\n this.width = undefined;\r\n this.height = undefined;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"opposite\", {\r\n /**\r\n * @return Draw axis on opposite side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"opposite\");\r\n },\r\n /**\r\n * Indicates whether Axis should be drawn on the opposite side of the plot\r\n * area than it would normally be drawn based on chart's settings.\r\n *\r\n * Does not work with all renderers, like [[AxisRendererRadial]] and\r\n * [[AxisRenderer Circular].\r\n *\r\n * @param value Draw axis on opposite side?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"opposite\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"fullWidthTooltip\", {\r\n /**\r\n * @return Full width tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fullWidthTooltip\");\r\n },\r\n /**\r\n * Indicates if Axis tooltip should take the whole width of the axis cell.\r\n * (between two grid lines)\r\n *\r\n * NOTE: this setting is ignored on circular axis types.\r\n *\r\n * @param value Full width tooltip?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fullWidthTooltip\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"tooltipLocation\", {\r\n /**\r\n * @return Tooltip location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipLocation\");\r\n },\r\n /**\r\n * Location within axis cell to show tooltip on. (0-1)\r\n *\r\n * 0 - show at the start\r\n * 0.5 - show right in the middle\r\n * 1 - show at the end\r\n *\r\n * @param value Tooltip location\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipLocation\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"tooltipLocation2\", {\r\n /**\r\n * @return Tooltip location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipLocation2\");\r\n },\r\n /**\r\n * Location within secondary axis cell to show tooltip on. (0-1)\r\n *\r\n * 0 - show at the start\r\n * 0.5 - show right in the middle\r\n * 1 - show at the end\r\n *\r\n * @param value Tooltip location\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipLocation2\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"cellStartLocation\", {\r\n /**\r\n * @return Cell start (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cellStartLocation\");\r\n },\r\n /**\r\n * Location for the cell start.\r\n *\r\n * Normally a \"cell\" is the whole available width in a category.\r\n *\r\n * If there are several clustered column-like series available, the whole\r\n * space is divided between each clustered column, or column stacks.\r\n *\r\n * `cellStartLocation` identifies where, within available space, the actual\r\n * cell starts.\r\n *\r\n * This, together with column series' `width` will affect actual width of\r\n * columns, and thus gaps between them.\r\n *\r\n * This will affect category-like axes only, like [[DateAxis]], or\r\n * [[CategoryAxis]].\r\n *\r\n * This is used to limit a space occupied by series like column.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n * @param value Cell start (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"cellStartLocation\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"cellEndLocation\", {\r\n /**\r\n * @return Cell end (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cellEndLocation\");\r\n },\r\n /**\r\n * Location for the cell end.\r\n *\r\n * Normally a \"cell\" is the whole available width in a category.\r\n *\r\n * If there are several clustered column-like series available, the whole\r\n * space is divided between each clustered column, or column stacks.\r\n *\r\n * `cellEndLocation` identifies where, within available space, the actual\r\n * cell ends.\r\n *\r\n * This, together with column series' `width` will affect actual width of\r\n * columns, and thus gaps between them.\r\n *\r\n * This will affect category-like axes only, like [[DateAxis]], or\r\n * [[CategoryAxis]].\r\n *\r\n * This is used to limit a space occupied by series like column.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n * @param value Cell end (0-1)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"cellEndLocation\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"inversed\", {\r\n /**\r\n * @return Flip axis?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"inversed\");\r\n },\r\n /**\r\n * Indicates if the scale of the axis should be flipped.\r\n *\r\n * @param value Flip axis?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"inversed\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"minLabelPosition\", {\r\n /**\r\n * @return Min label position (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minLabelPosition\");\r\n },\r\n /**\r\n * Minimum position along the Axis, for labels.\r\n *\r\n * Labels, which have their position closer to the start of the Axis, will be\r\n * automatically hidden.\r\n *\r\n * E.g., setting this to 0.05 (5% of total axis length) would hide labels,\r\n * that would otherwise be drawn very near start of the Axis.\r\n *\r\n * This is especially usefull with `inside = true`, or if the chart hasn't\r\n * got any extra margins.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n * @param value Min label position (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minLabelPosition\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"maxLabelPosition\", {\r\n /**\r\n * @return Max label position (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxLabelPosition\");\r\n },\r\n /**\r\n * Maximum position along the Axis, for labels.\r\n *\r\n * Labels, which have their position closer to the and of the Axis, will be\r\n * automatically hidden.\r\n *\r\n * E.g., setting this to 0.95 (95% of total axis length) would hide labels,\r\n * that would otherwise be drawn very near end of the Axis.\r\n *\r\n * This is especially usefull with `inside = true`, or if the chart hasn't\r\n * got any extra margins.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n * @param value Max label position (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxLabelPosition\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all settings and related items from another object of the same\r\n * type.\r\n *\r\n * @param source Source object\r\n */\r\n AxisRenderer.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.grid.template.copyFrom(source.grid.template);\r\n this.ticks.template.copyFrom(source.ticks.template);\r\n this.labels.template.copyFrom(source.labels.template);\r\n this.axisFills.template.copyFrom(source.axisFills.template);\r\n this.line.copyFrom(source.line);\r\n this.baseGrid.copyFrom(source.baseGrid);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n AxisRenderer.prototype.toAxisPosition = function (value) {\r\n return value;\r\n };\r\n /**\r\n * Sets `visibility` property:\r\n *\r\n * * `true` - visible\r\n * * `false` - hidden\r\n *\r\n * @param value true - visible, false - hidden\r\n * @return Current visibility\r\n */\r\n AxisRenderer.prototype.setVisibility = function (value) {\r\n _super.prototype.setVisibility.call(this, value);\r\n this.bulletsContainer.visible = value;\r\n };\r\n return AxisRenderer;\r\n}(Container));\r\nexport { AxisRenderer };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRenderer\"] = AxisRenderer;\r\n//# sourceMappingURL=AxisRenderer.js.map","/**\r\n * Axis Bullet module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to draw a positioned bullet (element) on an Axis.\r\n *\r\n * ```TypeScript\r\n * let range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n *\r\n * let flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JavaScript\r\n * var range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n *\r\n * var flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * // ...\r\n * \"axisRanges\": [{\r\n * \"date\": new Date(2018, 0, 5),\r\n * \"bullet: {\r\n * \"type\": \"FlagBullet\",\r\n * \"label\": {\r\n * \"text\": \"Hello\"\r\n * }\r\n * }\r\n * }]\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @since 4.5.9\r\n * @see {@link IAxisBulletEvents} for a list of available events\r\n * @see {@link IAxisBulletAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar AxisBullet = /** @class */ (function (_super) {\r\n __extends(AxisBullet, _super);\r\n function AxisBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisBullet\";\r\n _this.location = 0.5;\r\n _this.isMeasured = false;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisBullet.prototype, \"location\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"location\");\r\n },\r\n /**\r\n * Relative position within cell/range.\r\n *\r\n * Value range is from from `0` (beginning) to `1` (end).\r\n *\r\n * NOTE: `location` is relative to the parent axis range's scope, i.e.\r\n * between its `date` and `endDate` for [[DateAxis]], or `value`/`endValue`\r\n * ([[ValueAxis]]), or `category`/`endCategory` ([[categoryAxis]]).\r\n *\r\n * ```TypeScript\r\n * let range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n * range.endDate = new Date(2018, 0, 6);\r\n *\r\n * let bullet = new am4charts.AxisBullet();\r\n * bullet.location = 1;\r\n *\r\n * let flag = bullet.createChild(am4plugins_bullets.FlagBullet);\r\n * flag.label.text = \"Hello\";\r\n * ```\r\n * ```JavaScript\r\n * var range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n * range.endDate = new Date(2018, 0, 6);\r\n *\r\n * var bullet = new am4charts.AxisBullet();\r\n * bullet.location = 1;\r\n *\r\n * var flag = bullet.createChild(am4plugins_bullets.FlagBullet);\r\n * flag.label.text = \"Hello\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * // ...\r\n * \"axisRanges\": [{\r\n * \"date\": new Date(2018, 0, 5),\r\n * \"endDate\": new Date(2018, 0, 6),\r\n * \"bullet: {\r\n * \"type\": \"AxisBullet\",\r\n * \"location\": 1,\r\n * \"children\": [{\r\n * \"type\": \"FlagBullet\",\r\n * \"label\": {\r\n * \"text\": \"Hello\"\r\n * }\r\n * }]\r\n * }\r\n * }]\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @default 0.5\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"location\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n AxisBullet.prototype.setDisabled = function (value) {\r\n var changed = _super.prototype.setDisabled.call(this, value);\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n }\r\n return changed;\r\n };\r\n return AxisBullet;\r\n}(Container));\r\nexport { AxisBullet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisBullet\"] = AxisBullet;\r\n//# sourceMappingURL=AxisBullet.js.map","/**\r\n * Module, defining Axis Renderer for vertical axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { WavedRectangle } from \"../../core/elements/WavedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A renderer for vertical axis.\r\n *\r\n * @see {@link IAxisRendererYEvents} for a list of available events\r\n * @see {@link IAxisRendererYAdapters} for a list of available Adapters\r\n */\r\nvar AxisRendererY = /** @class */ (function (_super) {\r\n __extends(AxisRendererY, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererY() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisRendererY\";\r\n _this.minGridDistance = 40;\r\n _this.opposite = false;\r\n _this.height = percent(100);\r\n _this.labels.template.verticalCenter = \"middle\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererY.prototype.setAxis = function (axis) {\r\n _super.prototype.setAxis.call(this, axis);\r\n axis.layout = \"horizontal\";\r\n };\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererY.prototype.updateGridContainer = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n var gridContainer = this.gridContainer;\r\n gridContainer.y = axis.pixelY;\r\n gridContainer.height = axis.axisLength;\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererY.prototype.toAxisPosition = function (value) {\r\n var axis = this.axis;\r\n if (axis) {\r\n var inversedPosition = 1 - value;\r\n var relativePositionSprite = axis.relativePositionSprite;\r\n var y = axis.pixelY;\r\n if (relativePositionSprite) {\r\n y = $utils.spritePointToSprite({ x: 0, y: this.pixelY }, this.parent, relativePositionSprite).y;\r\n }\r\n else {\r\n relativePositionSprite = axis.parent;\r\n }\r\n if (relativePositionSprite) {\r\n var relativeY = y / relativePositionSprite.innerHeight;\r\n var relativeHeight = axis.axisLength / relativePositionSprite.innerHeight;\r\n return 1 - (inversedPosition - relativeY) / relativeHeight;\r\n }\r\n }\r\n return value;\r\n };\r\n /**\r\n * Called when rendered is attached to an Axis, as well as a property of\r\n * Axis that might affect the appearance is updated.\r\n *\r\n * E.g. `axis.opposite`, `axis.inside`, etc.\r\n *\r\n * This method is called **before** draw, so that any related setting\r\n * changed in this method can be changed.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererY.prototype.processRenderer = function () {\r\n _super.prototype.processRenderer.call(this);\r\n var axis = this.axis;\r\n if (axis) {\r\n var title = axis.title;\r\n title.valign = \"middle\";\r\n if (!(axis.height instanceof Percent)) {\r\n axis.height = percent(100);\r\n }\r\n if (this.opposite) {\r\n title.rotation = 90;\r\n this.line.toBack();\r\n title.toFront();\r\n }\r\n else {\r\n title.rotation = -90;\r\n title.toBack();\r\n this.line.toFront();\r\n }\r\n }\r\n };\r\n /**\r\n * Updates some of the Axis tooltip's visual properties, related to\r\n * rendering of the Axis.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererY.prototype.updateTooltip = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n var bigNum = 2000;\r\n var bbx = 0;\r\n var bby = 0;\r\n var bbw = bigNum;\r\n var bbh = this.axisLength;\r\n // right\r\n if (this.opposite) {\r\n if (this.inside) {\r\n bbx = -bigNum;\r\n bbw = bigNum;\r\n }\r\n }\r\n // left\r\n else {\r\n if (!this.inside) {\r\n bbx = -bigNum;\r\n bbw = bigNum;\r\n }\r\n }\r\n this.axis.updateTooltip(\"horizontal\", { x: bbx, y: bby, width: bbw, height: bbh });\r\n }\r\n };\r\n Object.defineProperty(AxisRendererY.prototype, \"axisLength\", {\r\n /**\r\n * Returns actual length of the Axis, in pixels.\r\n *\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n var axis = this.axis;\r\n return (axis.measuredHeight - axis.pixelPaddingTop - axis.pixelPaddingBottom) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position on axis to point coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @param position2 Position (0-1) Position on the second axis\r\n * @return Point\r\n */\r\n AxisRendererY.prototype.positionToPoint = function (position, position2) {\r\n return { x: 0, y: this.positionToCoordinate(position) };\r\n };\r\n /**\r\n * Converts a point at specific coordinates to a relative position (0-1)\r\n * on the axis.\r\n *\r\n * @param point Point\r\n * @return Position (0-1)\r\n */\r\n AxisRendererY.prototype.pointToPosition = function (point) {\r\n return this.coordinateToPosition(point.y, point.x);\r\n };\r\n /**\r\n * Converts a coordinate in pixels to a relative position. (0-1)\r\n *\r\n * @param coordinate Coordinate (px)\r\n * @param coordinate2 Coordinate of a second axis, only needed for complex axes systems, like timeline (px)\r\n * @return Position (0-1)\r\n */\r\n AxisRendererY.prototype.coordinateToPosition = function (coordinate, coordinate2) {\r\n var position;\r\n var axis = this.axis;\r\n var axisFullLength = axis.axisFullLength;\r\n if (axis.renderer.inversed) {\r\n position = (1 - axis.start) - coordinate / axisFullLength;\r\n }\r\n else {\r\n position = coordinate / axisFullLength + (1 - axis.end);\r\n }\r\n return $math.round(position, 5);\r\n };\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition Starting position\r\n * @param endPosition End position\r\n * @return SVG path\r\n */\r\n AxisRendererY.prototype.getPositionRangePath = function (startPosition, endPosition) {\r\n var y1 = $math.fitToRange(this.positionToCoordinate(startPosition), 0, this.axisLength);\r\n var y2 = $math.fitToRange(this.positionToCoordinate(endPosition), 0, this.axisLength);\r\n var h = Math.abs(y2 - y1);\r\n var w = this.getWidth();\r\n var y = Math.min(y1, y2);\r\n var x = 0;\r\n return $path.rectToPath({\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }, true);\r\n };\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererY.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n //\tpoint.y = $utils.spritePointToSprite({ x: 0, y: point.y }, this, this.gridContainer).y;\r\n grid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.getWidth(), y: 0 });\r\n this.positionItem(grid, point);\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions a tick element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param tick Tick element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererY.prototype.updateTickElement = function (tick, position, endPosition) {\r\n position = position + (endPosition - position) * tick.location;\r\n var point = this.positionToPoint(position);\r\n var tickLength = tick.length;\r\n try {\r\n $utils.used(this.axis.title.measuredWidth);\r\n }\r\n catch (_a) {\r\n // void\r\n }\r\n point.x = $utils.spritePointToSprite({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x;\r\n if (!this.opposite) {\r\n tickLength *= (tick.inside ? 1 : -1);\r\n }\r\n else {\r\n tickLength *= (tick.inside ? -1 : 1);\r\n }\r\n tick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: tickLength, y: 0 });\r\n this.positionItem(tick, point);\r\n this.toggleVisibility(tick, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions the axis line element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererY.prototype.updateAxisLine = function () {\r\n this.line.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.axisLength });\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererY.prototype.updateBaseGridElement = function () {\r\n _super.prototype.updateBaseGridElement.call(this);\r\n var axis = this.axis;\r\n var w = this.getWidth();\r\n var h = this.axisLength;\r\n var y = axis.basePoint.y;\r\n var baseGrid = this.baseGrid;\r\n if (y < -0.2 || y > h + 0.2) {\r\n baseGrid.hide(0);\r\n }\r\n else {\r\n var x = $utils.spritePointToSprite({ x: 0, y: 0 }, this.gridContainer, baseGrid.parent).x;\r\n baseGrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: w, y: 0 });\r\n baseGrid.moveTo({ x: x, y: y });\r\n baseGrid.show(0);\r\n }\r\n };\r\n /**\r\n * Updates and positions a label element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param label Label element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRendererY.prototype.updateLabelElement = function (label, position, endPosition, location) {\r\n if (!$type.hasValue(location)) {\r\n location = label.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n label.isMeasured = !label.inside;\r\n var point = this.positionToPoint(position);\r\n var horizontalCenter;\r\n var deltaX = 0;\r\n var maxWidth = this.gridContainer.maxWidth;\r\n if (this.opposite) {\r\n if (label.inside) {\r\n horizontalCenter = \"right\";\r\n if (label.align == \"left\") {\r\n deltaX = -maxWidth;\r\n horizontalCenter = \"left\";\r\n }\r\n if (label.align == \"center\") {\r\n deltaX = -maxWidth / 2;\r\n horizontalCenter = \"middle\";\r\n }\r\n }\r\n else {\r\n horizontalCenter = \"left\";\r\n }\r\n point.x = 0 + deltaX;\r\n }\r\n else {\r\n if (label.inside) {\r\n horizontalCenter = \"left\";\r\n if (label.align == \"right\") {\r\n deltaX = maxWidth;\r\n horizontalCenter = \"right\";\r\n }\r\n if (label.align == \"center\") {\r\n deltaX = maxWidth / 2;\r\n horizontalCenter = \"middle\";\r\n }\r\n }\r\n else {\r\n horizontalCenter = \"right\";\r\n }\r\n point.x = this.measuredWidth + deltaX;\r\n }\r\n if (label.rotation == 0) {\r\n // Apply fuzzy logic to verticalCenter only if labels are not rotated\r\n label.horizontalCenter = horizontalCenter;\r\n }\r\n this.positionItem(label, point);\r\n this.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n };\r\n /**\r\n * Updates and positions an axis break element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Break element\r\n */\r\n AxisRendererY.prototype.updateBreakElement = function (axisBreak) {\r\n _super.prototype.updateBreakElement.call(this, axisBreak);\r\n var startLine = axisBreak.startLine;\r\n var endLine = axisBreak.endLine;\r\n var fillShape = axisBreak.fillShape;\r\n var startPoint = axisBreak.startPoint;\r\n var endPoint = axisBreak.endPoint;\r\n var x1 = axisBreak.pixelMarginLeft;\r\n var x2 = this.getWidth() - axisBreak.pixelMarginLeft - axisBreak.pixelMarginRight;\r\n startPoint.y = $math.fitToRange(startPoint.y, -1, this.axisLength + 1);\r\n endPoint.y = $math.fitToRange(endPoint.y, -1, this.axisLength + 1);\r\n if (startPoint.y == endPoint.y && (startPoint.y < 0 || startPoint.y > this.axisLength)) {\r\n axisBreak.fillShape.__disabled = true;\r\n }\r\n else {\r\n axisBreak.fillShape.__disabled = false;\r\n }\r\n var w = Math.abs(x2 - x1);\r\n startLine.x = x1;\r\n startLine.height = 0;\r\n startLine.width = w;\r\n endLine.x = x1;\r\n endLine.height = 0;\r\n endLine.width = w;\r\n fillShape.width = w;\r\n fillShape.height = Math.abs(endPoint.y - startPoint.y);\r\n fillShape.x = x1;\r\n fillShape.y = endPoint.y;\r\n };\r\n /**\r\n * Creates visual elements for and axis break.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Axis break\r\n */\r\n AxisRendererY.prototype.createBreakSprites = function (axisBreak) {\r\n axisBreak.startLine = new WavedLine();\r\n axisBreak.endLine = new WavedLine();\r\n var wavedRectangle = new WavedRectangle();\r\n wavedRectangle.setWavedSides(true, false, true, false);\r\n axisBreak.fillShape = wavedRectangle;\r\n };\r\n /**\r\n * Converts a position on the axis to a coordinate in pixels.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position (0-1)\r\n * @return Coordinate (px)\r\n */\r\n AxisRendererY.prototype.positionToCoordinate = function (position) {\r\n var coordinate;\r\n var axis = this.axis;\r\n var axisFullLength = axis.axisFullLength;\r\n if (!axis.renderer.inversed) {\r\n coordinate = (axis.end - position) * axisFullLength;\r\n }\r\n else {\r\n coordinate = (position - axis.start) * axisFullLength;\r\n }\r\n return coordinate;\r\n };\r\n /**\r\n * Updates and positions axis bullets.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet AxisBullet element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererY.prototype.updateBullet = function (bullet, position, endPosition) {\r\n var location = 0.5;\r\n if (bullet instanceof AxisBullet) {\r\n location = bullet.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n point.x = $utils.spritePointToSprite({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x;\r\n this.positionItem(bullet, point);\r\n this.toggleVisibility(bullet, position, 0, 1);\r\n };\r\n return AxisRendererY;\r\n}(AxisRenderer));\r\nexport { AxisRendererY };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererY\"] = AxisRendererY;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Put labels inside plot area.\r\n * Disable first and last labels.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthS,\r\n state: function (target, stateId) {\r\n if (target instanceof AxisRendererY) {\r\n var state = target.states.create(stateId);\r\n state.properties.inside = true;\r\n state.properties.maxLabelPosition = 0.9;\r\n state.properties.minLabelPosition = 0.1;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Disable labels altogather on very small charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof AxisRendererY) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=AxisRendererY.js.map","/**\r\n * A module which defines functionality related to Value Axis Break.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class to define \"breaks\" on value axis.\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * when comparing columns with relatively similar values, it would make sense\r\n * to cut out their mid section, so that their tip differences are more\r\n * prominent.\r\n *\r\n * @see {@link IValueAxisBreakEvents} for a list of available events\r\n * @see {@link IValueAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ValueAxisBreak = /** @class */ (function (_super) {\r\n __extends(ValueAxisBreak, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ValueAxisBreak() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ValueAxisBreak\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ValueAxisBreak.prototype, \"startPosition\", {\r\n /**\r\n * Pixel position of the break's start.\r\n *\r\n * @return Position (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n return this.axis.valueToPosition(this.adjustedStartValue);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxisBreak.prototype, \"endPosition\", {\r\n /**\r\n * Pixel position of the break's end.\r\n *\r\n * @return Position (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n return this.axis.valueToPosition(this.adjustedEndValue);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ValueAxisBreak;\r\n}(AxisBreak));\r\nexport { ValueAxisBreak };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ValueAxisBreak\"] = ValueAxisBreak;\r\n//# sourceMappingURL=ValueAxisBreak.js.map","/**\r\n * Value Axis module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Axis, AxisDataItem } from \"./Axis\";\r\nimport { AxisRendererY } from \"./AxisRendererY\";\r\nimport { MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { ValueAxisBreak } from \"./ValueAxisBreak\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[ValueAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ValueAxisDataItem = /** @class */ (function (_super) {\r\n __extends(ValueAxisDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ValueAxisDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ValueAxisDataItem\";\r\n _this.values.value = {};\r\n _this.values.endValue = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ValueAxisDataItem.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values[\"value\"].value;\r\n },\r\n /**\r\n * A data point's numeric value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"value\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxisDataItem.prototype, \"endValue\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values[\"endValue\"].value;\r\n },\r\n /**\r\n * Data point's numeric end value.\r\n *\r\n * @param value End value\r\n */\r\n set: function (value) {\r\n this.setValue(\"endValue\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ValueAxisDataItem;\r\n}(AxisDataItem));\r\nexport { ValueAxisDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to create a value axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Monthly Sales\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Monthly Sales\";\r\n * ```\r\n * ```JSON\r\n * \"yAxes\": [{\r\n * \"type\": \"ValueAxis\",\r\n * \"title\": {\r\n * \"text\": \"Monthly Sales\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link IValueAxisEvents} for a list of available Events\r\n * @see {@link IValueAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ValueAxis = /** @class */ (function (_super) {\r\n __extends(ValueAxis, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ValueAxis() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * [_stepDecimalPlaces description]\r\n *\r\n * @todo Description\r\n */\r\n _this._stepDecimalPlaces = 0;\r\n _this._prevStepDecimalPlaces = 0;\r\n _this._adjustLabelPrecision = true;\r\n /**\r\n * Base value for the axis.\r\n */\r\n _this._baseValue = 0;\r\n /**\r\n * Adjusted start in case we have breaks.\r\n *\r\n * @todo Description\r\n */\r\n _this._adjustedStart = 0;\r\n /**\r\n * Adjusted end in case we have breaks.\r\n *\r\n * @todo Description\r\n */\r\n _this._adjustedEnd = 1;\r\n _this._extremesChanged = false;\r\n _this._deltaMinMax = 1;\r\n _this._dsc = false;\r\n /**\r\n * As calculating totals is expensive operation and not often needed, we\r\n * don't do it by default.\r\n *\r\n * In case you use `totalPercent` or `total` in your charts, this must be set\r\n * to `true`.\r\n *\r\n * @default false\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/#100_stacks} For using `calculateTotals` for 100% stacked series.\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-strings/#Placeholders_for_numeric_values} For using `calculateTotals` in labels.\r\n */\r\n _this.calculateTotals = false;\r\n _this.className = \"ValueAxis\";\r\n // Set field name\r\n _this.axisFieldName = \"value\";\r\n // Set defaults\r\n _this.setPropertyValue(\"maxZoomFactor\", 1000);\r\n _this.setPropertyValue(\"extraMin\", 0);\r\n _this.setPropertyValue(\"extraMax\", 0);\r\n _this.setPropertyValue(\"strictMinMax\", false);\r\n _this.setPropertyValue(\"maxPrecision\", Number.MAX_VALUE);\r\n _this.setPropertyValue(\"adjustLabelPrecision\", true);\r\n _this.setPropertyValue(\"extraTooltipPrecision\", 0);\r\n _this.keepSelection = false;\r\n _this.includeRangesInMinMax = false;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Holds reference to a function that accepts a DataItem as parameter.\r\n *\r\n * It can either return a fill opacity for a fill, or manipulate data item\r\n * directly, to create various highlighting scenarios.\r\n */\r\n ValueAxis.prototype.fillRule = function (dataItem) {\r\n var value = dataItem.value;\r\n var axis = dataItem.component;\r\n if (!dataItem.axisFill.disabled) {\r\n // rounding in left to solve floating point number\r\n if ($math.round(value / axis.step / 2, 5) == Math.round(value / axis.step / 2)) {\r\n dataItem.axisFill.__disabled = true;\r\n }\r\n else {\r\n dataItem.axisFill.__disabled = false;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n ValueAxis.prototype.createDataItem = function () {\r\n return new ValueAxisDataItem();\r\n };\r\n /**\r\n * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n *\r\n * @return Axis break\r\n */\r\n ValueAxis.prototype.createAxisBreak = function () {\r\n return new ValueAxisBreak();\r\n };\r\n /**\r\n * [dataChangeUpdate description]\r\n *\r\n * This is a placeholder to override for extending classes.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n ValueAxis.prototype.dataChangeUpdate = function () {\r\n this.clearCache();\r\n if (!this.keepSelection) {\r\n if (this._start != 0 || this._end != 1) {\r\n this._start = 0;\r\n this._end = 1;\r\n this.dispatchImmediately(\"startendchanged\");\r\n }\r\n }\r\n else {\r\n if (this._start != 0) {\r\n this.dispatchImmediately(\"startchanged\");\r\n }\r\n if (this._end != 1) {\r\n this.dispatchImmediately(\"endchanged\");\r\n }\r\n if (this._start != 0 || this._end != 1) {\r\n this.dispatchImmediately(\"startendchanged\");\r\n }\r\n }\r\n this._maxZoomed = this._maxDefined;\r\n this._minZoomed = this._minDefined;\r\n this._maxAdjusted = this._maxDefined;\r\n this._minAdjusted = this._minDefined;\r\n };\r\n /**\r\n * Processes data items of the related Series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ValueAxis.prototype.processSeriesDataItems = function () {\r\n // @todo: add some boolean (maybe autodedect) if we need these calculations or not. this place uses a lot of cpu\r\n if (this.calculateTotals) {\r\n var series = this.series.getIndex(0);\r\n var startIndex = series.startIndex;\r\n if (series.dataItems.length > 0) {\r\n if (startIndex > 0) {\r\n startIndex--;\r\n }\r\n var endIndex = series.endIndex;\r\n if (endIndex < series.dataItems.length) {\r\n endIndex++;\r\n }\r\n var _loop_1 = function (i) {\r\n // This has to be `var` in order to avoid garbage collection\r\n var total = {};\r\n var sum = {};\r\n this_1.series.each(function (series) {\r\n if (!series.excludeFromTotal) {\r\n var dataItem_1 = series.dataItems.getIndex(i);\r\n if (dataItem_1) {\r\n $object.each(dataItem_1.values, function (key) {\r\n var value = dataItem_1.values[key].workingValue; // can not use getWorkingValue here!\r\n if ($type.isNumber(value)) {\r\n if (!$type.isNumber(total[key])) {\r\n total[key] = Math.abs(value);\r\n }\r\n else {\r\n total[key] += Math.abs(value);\r\n }\r\n if (!$type.isNumber(sum[key])) {\r\n sum[key] = value;\r\n }\r\n else {\r\n sum[key] += value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n this_1.series.each(function (series) {\r\n if (!series.excludeFromTotal) {\r\n var dataItem_2 = series.dataItems.getIndex(i);\r\n if (dataItem_2) {\r\n $object.each(dataItem_2.values, function (key) {\r\n var value = dataItem_2.values[key].workingValue; // can not use getWorkingValue here!\r\n if ($type.isNumber(value)) {\r\n dataItem_2.setCalculatedValue(key, total[key], \"total\");\r\n dataItem_2.setCalculatedValue(key, 100 * value / total[key], \"totalPercent\");\r\n dataItem_2.setCalculatedValue(key, sum[key], \"sum\");\r\n }\r\n });\r\n }\r\n }\r\n });\r\n };\r\n var this_1 = this;\r\n // This has to be `var` in order to avoid garbage collection\r\n for (var i = startIndex; i < endIndex; ++i) {\r\n _loop_1(i);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Validates the whole axis. Causes it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n */\r\n ValueAxis.prototype.validate = function () {\r\n if (this.axisLength <= 0) {\r\n return;\r\n }\r\n _super.prototype.validate.call(this);\r\n this.getMinMax();\r\n if (!$type.isNumber(this._minAdjusted)) {\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.value = null;\r\n });\r\n }\r\n this.fixAxisBreaks();\r\n this.calculateZoom();\r\n this.validateAxisElements();\r\n this.validateAxisRanges();\r\n this.validateBreaks();\r\n this.hideUnusedDataItems();\r\n this.renderer.invalidateLayout();\r\n // hide too close\r\n //this.hideTooCloseDataItems();\r\n };\r\n /**\r\n * Calculates all positions, related to axis as per current zoom.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ValueAxis.prototype.calculateZoom = function () {\r\n if ($type.isNumber(this.min) && $type.isNumber(this.max)) {\r\n var min = this.positionToValue(this.start);\r\n var max = this.positionToValue(this.end);\r\n var differece = this.adjustDifference(min, max);\r\n var minMaxStep = this.adjustMinMax(min, max, differece, this._gridCount, true);\r\n var stepDecimalPlaces = $utils.decimalPlaces(minMaxStep.step);\r\n this._stepDecimalPlaces = stepDecimalPlaces;\r\n min = $math.round(min, stepDecimalPlaces);\r\n max = $math.round(max, stepDecimalPlaces);\r\n minMaxStep = this.adjustMinMax(min, max, differece, this._gridCount, true);\r\n var step = minMaxStep.step;\r\n if (this.syncWithAxis) {\r\n var calculated = this.getCache(min + \"-\" + max);\r\n if ($type.isNumber(calculated)) {\r\n step = calculated;\r\n }\r\n }\r\n else {\r\n min = minMaxStep.min;\r\n max = minMaxStep.max;\r\n }\r\n if (this._minZoomed != min || this._maxZoomed != max || this._step != step || this._dsc) {\r\n this._dsc = false;\r\n this._minZoomed = min;\r\n this._maxZoomed = max;\r\n this._step = step;\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n }\r\n }\r\n };\r\n ValueAxis.prototype.fixSmallStep = function (step) {\r\n if (1 + step == 1) {\r\n step *= 2;\r\n return this.fixSmallStep(step);\r\n }\r\n return step;\r\n };\r\n /**\r\n * Validates Axis elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n ValueAxis.prototype.validateAxisElements = function () {\r\n var _this = this;\r\n if ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n // first regular items\r\n var value_1 = this.minZoomed - this._step * 2;\r\n if (!this.logarithmic) {\r\n value_1 = Math.floor(value_1 / this._step) * this._step;\r\n }\r\n else {\r\n var differencePower = Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E;\r\n if (differencePower > 1) {\r\n value_1 = Math.pow(10, Math.log(this.min) * Math.LOG10E);\r\n }\r\n else {\r\n value_1 = Math.floor(this.minZoomed / this._step) * this._step;\r\n if (value_1 == 0) {\r\n value_1 = this.minZoomed;\r\n }\r\n }\r\n }\r\n var maxZoomed = this._maxZoomed + this._step;\r\n this.resetIterators();\r\n var dataItemsIterator_1 = this._dataItemsIterator;\r\n if (this._step == 0) {\r\n return;\r\n }\r\n this._step = this.fixSmallStep(this._step);\r\n var i = 0;\r\n var precisionChanged = this._prevStepDecimalPlaces != this._stepDecimalPlaces;\r\n this._prevStepDecimalPlaces = this._stepDecimalPlaces;\r\n while (value_1 <= maxZoomed) {\r\n var axisBreak = this.isInBreak(value_1);\r\n if (!axisBreak) {\r\n var dataItem = dataItemsIterator_1.find(function (x) { return x.value === value_1; });\r\n if (dataItem.__disabled) {\r\n dataItem.__disabled = false;\r\n }\r\n //this.processDataItem(dataItem);\r\n this.appendDataItem(dataItem);\r\n dataItem.axisBreak = undefined;\r\n if (dataItem.value != value_1 || precisionChanged) {\r\n dataItem.value = value_1;\r\n dataItem.text = this.formatLabel(value_1);\r\n if (dataItem.label && dataItem.label.invalid) {\r\n dataItem.label.validate();\r\n }\r\n if (dataItem.value >= this.min && dataItem.value <= this.max) {\r\n if (dataItem.label) {\r\n if ((this.axisLetter == \"Y\" && dataItem.label.measuredWidth > this.ghostLabel.measuredWidth) || (this.axisLetter == \"X\" && dataItem.label.measuredHeight > this.ghostLabel.measuredHeight)) {\r\n this.ghostLabel.text = dataItem.label.currentText;\r\n this.ghostLabel.validate();\r\n }\r\n }\r\n }\r\n }\r\n this.validateDataElement(dataItem);\r\n }\r\n i++;\r\n var oldValue = value_1;\r\n if (!this.logarithmic) {\r\n value_1 += this._step;\r\n }\r\n else {\r\n var differencePower = Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E;\r\n if (differencePower > 1) {\r\n value_1 = Math.pow(10, Math.log(this.min) * Math.LOG10E + i);\r\n }\r\n else {\r\n value_1 += this._step;\r\n }\r\n }\r\n var stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(this._step)) * Math.LOG10E));\r\n if (stepPower < 1) {\r\n // exponent is less then 1 too. Count decimals of exponent\r\n var decCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 2;\r\n decCount = Math.min(13, decCount);\r\n // round value to avoid floating point issues\r\n value_1 = $math.round(value_1, decCount);\r\n // ceil causes problems: https://codepen.io/team/amcharts/pen/XWMjZwy?editors=1010\r\n if (oldValue == value_1) {\r\n value_1 = maxZoomed;\r\n break;\r\n }\r\n }\r\n }\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks) {\r\n // breaks later\r\n var renderer_1 = this.renderer;\r\n $iter.each(axisBreaks.iterator(), function (axisBreak) {\r\n if (axisBreak.breakSize > 0) {\r\n // only add grid if gap is bigger then minGridDistance\r\n if ($math.getDistance(axisBreak.startPoint, axisBreak.endPoint) > renderer_1.minGridDistance) {\r\n var breakValue_1 = axisBreak.adjustedMin;\r\n while (breakValue_1 <= axisBreak.adjustedMax) {\r\n if (breakValue_1 >= axisBreak.adjustedStartValue && breakValue_1 <= axisBreak.adjustedEndValue) {\r\n var dataItem = dataItemsIterator_1.find(function (x) { return x.value === breakValue_1; });\r\n if (dataItem.__disabled) {\r\n dataItem.__disabled = false;\r\n }\r\n //this.processDataItem(dataItem);\r\n _this.appendDataItem(dataItem);\r\n dataItem.axisBreak = axisBreak;\r\n if (dataItem.value != breakValue_1) {\r\n dataItem.value = breakValue_1;\r\n dataItem.text = _this.formatLabel(breakValue_1);\r\n if (dataItem.label && dataItem.label.invalid) {\r\n dataItem.label.validate();\r\n }\r\n }\r\n _this.validateDataElement(dataItem);\r\n }\r\n breakValue_1 += axisBreak.adjustedStep;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Validates axis data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem Data item\r\n */\r\n ValueAxis.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n //dataItem.__disabled = false;\r\n dataItem.itemIndex = this._axisItemCount;\r\n this._axisItemCount++;\r\n var renderer = this.renderer;\r\n var value = dataItem.value;\r\n var endValue = dataItem.endValue;\r\n var position = this.valueToPosition(value);\r\n dataItem.position = position;\r\n var endPosition = position;\r\n var fillEndPosition = this.valueToPosition(value + this._step);\r\n if ($type.isNumber(endValue)) {\r\n endPosition = this.valueToPosition(endValue);\r\n fillEndPosition = endPosition;\r\n }\r\n // this point is needed to calculate distance to satisfy minGridDistance\r\n dataItem.point = renderer.positionToPoint(position);\r\n var tick = dataItem.tick;\r\n if (tick && !tick.disabled) {\r\n renderer.updateTickElement(tick, position, endPosition);\r\n }\r\n var grid = dataItem.grid;\r\n if (grid && !grid.disabled) {\r\n renderer.updateGridElement(grid, position, endPosition);\r\n }\r\n var label = dataItem.label;\r\n if (label && !label.disabled) {\r\n renderer.updateLabelElement(label, position, endPosition);\r\n }\r\n var fill = dataItem.axisFill;\r\n if (fill && !fill.disabled) {\r\n renderer.updateFillElement(fill, position, fillEndPosition);\r\n if (!dataItem.isRange) {\r\n this.fillRule(dataItem);\r\n }\r\n }\r\n if (dataItem.bullet) {\r\n renderer.updateBullet(dataItem.bullet, position, endPosition);\r\n }\r\n var mask = dataItem.mask;\r\n if (mask) {\r\n renderer.updateFillElement(mask, position, fillEndPosition);\r\n }\r\n };\r\n /**\r\n * Formats the value according to axis' own [[NumberFormatter]].\r\n *\r\n * @param value Source value\r\n * @return Formatted value\r\n */\r\n ValueAxis.prototype.formatLabel = function (value) {\r\n if (this.adjustLabelPrecision && value != 0) {\r\n return this.numberFormatter.format(value, undefined, this._stepDecimalPlaces);\r\n }\r\n else {\r\n return this.numberFormatter.format(value);\r\n }\r\n };\r\n Object.defineProperty(ValueAxis.prototype, \"basePoint\", {\r\n /**\r\n * Coordinates of the actual axis start.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Base point\r\n */\r\n get: function () {\r\n var baseValue = this.baseValue;\r\n var position = this.valueToPosition(baseValue);\r\n var basePoint = this.renderer.positionToPoint(position);\r\n return basePoint;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"baseValue\", {\r\n /**\r\n * @return base value\r\n */\r\n get: function () {\r\n var baseValue = this._baseValue;\r\n if (this.logarithmic) {\r\n baseValue = this.min;\r\n }\r\n if (!this._adapterO) {\r\n return baseValue;\r\n }\r\n else {\r\n return this._adapterO.apply(\"baseValue\", baseValue);\r\n }\r\n },\r\n /**\r\n * A base value.\r\n *\r\n * This is a threshold value that will divide \"positive\" and \"negative\"\r\n * value ranges.\r\n *\r\n * Other scale-related functionality also depend on base value. E.g. stacks,\r\n * value-dependent coloring, etc.\r\n *\r\n * @param value Base value\r\n */\r\n set: function (value) {\r\n this._baseValue = value;\r\n this.invalidateLayout();\r\n this.invalidateSeries();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts a numeric value to relative position on axis\r\n *\r\n * An alias to `valueToPosition()`.\r\n *\r\n * @param value Value\r\n * @return Position\r\n */\r\n ValueAxis.prototype.anyToPosition = function (value) {\r\n return this.valueToPosition(value);\r\n };\r\n /**\r\n * Converts a numeric value to orientation point (x, y, angle) on axis\r\n *\r\n * @param value Value\r\n * @return Orientation point\r\n */\r\n ValueAxis.prototype.valueToPoint = function (value) {\r\n var position = this.valueToPosition(value);\r\n var point = this.renderer.positionToPoint(position);\r\n var angle = this.renderer.positionToAngle(position);\r\n return { x: point.x, y: point.y, angle: angle };\r\n };\r\n /**\r\n * Converts a numeric value to orientation (x, y, angle) point on axis\r\n *\r\n * @param value Value\r\n * @return Orientation point\r\n */\r\n ValueAxis.prototype.anyToPoint = function (value) {\r\n return this.valueToPoint(value);\r\n };\r\n /**\r\n * Converts a numeric value to relative position on axis.\r\n *\r\n * @param value Value\r\n * @return relative position\r\n */\r\n ValueAxis.prototype.valueToPosition = function (value) {\r\n if ($type.isNumber(value)) {\r\n // todo: think if possible to take previous value and do not go through all previous breaks\r\n var min_1 = this.min;\r\n var max_1 = this.max;\r\n if ($type.isNumber(min_1) && $type.isNumber(max_1)) {\r\n var difference = this._difference;\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks && axisBreaks.length > 0) {\r\n $iter.eachContinue(axisBreaks.iterator(), function (axisBreak) {\r\n var startValue = axisBreak.adjustedStartValue;\r\n var endValue = axisBreak.adjustedEndValue;\r\n if ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n if (value < startValue) {\r\n return false;\r\n }\r\n if ($math.intersect({ start: startValue, end: endValue }, { start: min_1, end: max_1 })) { // todo: check this once and set some flag in axisBreak\r\n startValue = Math.max(startValue, min_1);\r\n endValue = Math.min(endValue, max_1);\r\n var breakSize = axisBreak.breakSize;\r\n // value to the right of break end\r\n if (value > endValue) {\r\n min_1 += (endValue - startValue) * (1 - breakSize); // todo: maybe this can be done differently?\r\n }\r\n // value to the left of break start\r\n else if (value < startValue) {\r\n }\r\n // value within break\r\n else {\r\n value = startValue + (value - startValue) * breakSize;\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n var position = void 0;\r\n if (!this.logarithmic) {\r\n position = (value - min_1) / difference;\r\n }\r\n else {\r\n var treatZeroAs = this.treatZeroAs;\r\n if ($type.isNumber(treatZeroAs)) {\r\n if (value <= treatZeroAs) {\r\n value = treatZeroAs;\r\n }\r\n }\r\n position = (Math.log(value) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) / ((Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E));\r\n }\r\n //position = $math.round(position, 10);\r\n return position;\r\n }\r\n }\r\n return 0;\r\n };\r\n /**\r\n * When fontSize of fontFamily changes we need to hard-invalidate all Labels of this container to position them properly.\r\n */\r\n ValueAxis.prototype.invalidateLabels = function () {\r\n _super.prototype.invalidateLabels.call(this);\r\n if (this.dataItems) {\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.value = undefined;\r\n });\r\n this.invalidate();\r\n }\r\n };\r\n /**\r\n * Converts an relative position to a corresponding value within\r\n * axis' scale.\r\n *\r\n * @param position Position (px)\r\n * @return Value\r\n */\r\n ValueAxis.prototype.positionToValue = function (position) {\r\n var min = this.min;\r\n var max = this.max;\r\n if ($type.isNumber(min) && $type.isNumber(max)) {\r\n var difference_1 = max - min; //no need to adjust!\r\n var value_2 = null;\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks) {\r\n // in case we have some axis breaks\r\n if (axisBreaks.length > 0) {\r\n $iter.eachContinue(axisBreaks.iterator(), function (axisBreak) {\r\n var breakStartPosition = axisBreak.startPosition;\r\n var breakEndPosition = axisBreak.endPosition;\r\n var breakStartValue = axisBreak.adjustedStartValue;\r\n var breakEndValue = axisBreak.adjustedEndValue;\r\n if ($type.isNumber(breakStartValue) && $type.isNumber(breakEndValue)) {\r\n if (breakStartValue > max) {\r\n return false;\r\n }\r\n if ($math.intersect({ start: breakStartValue, end: breakEndValue }, { start: min, end: max })) {\r\n breakStartValue = $math.max(breakStartValue, min);\r\n breakEndValue = $math.min(breakEndValue, max);\r\n var breakSize = axisBreak.breakSize;\r\n difference_1 -= (breakEndValue - breakStartValue) * (1 - breakSize);\r\n // position to the right of break end\r\n if (position > breakEndPosition) {\r\n min += (breakEndValue - breakStartValue) * (1 - breakSize);\r\n }\r\n // position to the left of break start\r\n else if (position < breakStartPosition) {\r\n }\r\n // value within break\r\n else {\r\n var breakPosition = (position - breakStartPosition) / (breakEndPosition - breakStartPosition);\r\n value_2 = breakStartValue + breakPosition * (breakEndValue - breakStartValue);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n });\r\n }\r\n }\r\n if (!$type.isNumber(value_2)) {\r\n if (this.logarithmic) {\r\n value_2 = Math.pow(Math.E, (position * ((Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E)) + Math.log(this.min) * Math.LOG10E) / Math.LOG10E);\r\n }\r\n else {\r\n value_2 = position * difference_1 + min;\r\n }\r\n }\r\n return value_2;\r\n }\r\n //}\r\n };\r\n /**\r\n * Converts an X coordinate to a relative value in axis' scale.\r\n *\r\n * @param x X (px)\r\n * @return Value\r\n */\r\n ValueAxis.prototype.xToValue = function (x) {\r\n return this.positionToValue(this.pointToPosition({ x: x, y: 0 }));\r\n };\r\n /**\r\n * Converts an Y coordinate to a relative value in axis' scale.\r\n *\r\n * @param y Y (px)\r\n * @return Value\r\n */\r\n ValueAxis.prototype.yToValue = function (y) {\r\n return this.positionToValue(this.pointToPosition({ x: 0, y: y }));\r\n };\r\n /**\r\n * Converts pixel coordinates to a relative position. (0-1)\r\n *\r\n * @param point Coorinates (px)\r\n * @return Position (0-1)\r\n */\r\n ValueAxis.prototype.pointToPosition = function (point) {\r\n if (this.renderer instanceof AxisRendererY) {\r\n return 1 - this.renderer.pointToPosition(point);\r\n }\r\n else {\r\n return this.renderer.pointToPosition(point);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n ValueAxis.prototype.animateMinMax = function (min, max) {\r\n return this.animate([{ property: \"_minAdjusted\", from: this._minAdjusted, to: min }, { property: \"_maxAdjusted\", from: this._maxAdjusted, to: max }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n };\r\n /**\r\n * Calculates smallest and biggest value for the axis scale.\r\n * @ignore\r\n * @todo Description (review)\r\n */\r\n ValueAxis.prototype.getMinMax = function () {\r\n var _this = this;\r\n this.updateGridCount();\r\n var min = Number.POSITIVE_INFINITY;\r\n var max = Number.NEGATIVE_INFINITY;\r\n // only if min and max are not set from outside, we go through min and max influencers\r\n if (!$type.isNumber(this._minDefined) || !$type.isNumber(this._maxDefined)) {\r\n this.series.each(function (series) {\r\n if (!series.ignoreMinMax) {\r\n // check min\r\n var seriesMin = series.min(_this);\r\n if ($type.isNumber(seriesMin) && (seriesMin < min)) {\r\n min = seriesMin;\r\n }\r\n // check max\r\n var seriesMax = series.max(_this);\r\n if ($type.isNumber(seriesMax) && (seriesMax > max)) {\r\n max = seriesMax;\r\n }\r\n }\r\n });\r\n if (this.includeRangesInMinMax) {\r\n this.axisRanges.each(function (range) {\r\n if (!range.ignoreMinMax) {\r\n var minValue = $math.min(range.value, range.endValue);\r\n var maxValue = $math.max(range.value, range.endValue);\r\n if (minValue < min || !$type.isNumber(min)) {\r\n min = minValue;\r\n }\r\n if (maxValue > max || !$type.isNumber(max)) {\r\n max = maxValue;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n if (this.logarithmic) {\r\n var treatZeroAs = this.treatZeroAs;\r\n if ($type.isNumber(treatZeroAs)) {\r\n if (min <= 0) {\r\n min = treatZeroAs;\r\n }\r\n }\r\n if (min <= 0) {\r\n this.raiseCriticalError(new Error(\"Logarithmic value axis can not have values <= 0.\"), true);\r\n }\r\n }\r\n if (min == 0 && max == 0) {\r\n max = 0.9;\r\n min = -0.9;\r\n }\r\n // if defined from outside\r\n if ($type.isNumber(this._minDefined)) {\r\n min = this._minDefined;\r\n }\r\n if ($type.isNumber(this._maxDefined)) {\r\n max = this._maxDefined;\r\n }\r\n if (this._adapterO) {\r\n min = this._adapterO.apply(\"min\", min);\r\n }\r\n if (this._adapterO) {\r\n max = this._adapterO.apply(\"max\", max);\r\n }\r\n if (!$type.isNumber(min) || !$type.isNumber(max)) {\r\n return;\r\n }\r\n this._minReal = min;\r\n this._maxReal = max;\r\n if (min == Number.POSITIVE_INFINITY) {\r\n min = undefined;\r\n }\r\n if (max == Number.NEGATIVE_INFINITY) {\r\n max = undefined;\r\n }\r\n var dif = this.adjustDifference(min, max); // previously it was max-min, but not worked well\r\n min = this.fixMin(min);\r\n max = this.fixMax(max);\r\n // this happens if starLocation and endLocation are 0.5 and DateAxis has only one date\r\n if (max - min <= 1 / Math.pow(10, 15)) {\r\n if (max - min != 0) {\r\n this._deltaMinMax = (max - min) / 2;\r\n }\r\n else {\r\n // the number by which we need to raise 10 to get difference\r\n var exponent = Math.log(Math.abs(max)) * Math.LOG10E;\r\n // here we find a number which is power of 10 and has the same count of numbers as difference has\r\n var power = Math.pow(10, Math.floor(exponent));\r\n // reduce this number by 10 times\r\n power = power / 10;\r\n this._deltaMinMax = power;\r\n }\r\n min -= this._deltaMinMax;\r\n max += this._deltaMinMax;\r\n }\r\n min -= (max - min) * this.extraMin;\r\n max += (max - min) * this.extraMax;\r\n var strict = this.strictMinMax;\r\n if ($type.isNumber(this._maxDefined)) {\r\n strict = true;\r\n }\r\n var minMaxStep = this.adjustMinMax(min, max, dif, this._gridCount, strict);\r\n min = minMaxStep.min;\r\n max = minMaxStep.max;\r\n dif = max - min; //new\r\n // do it for the second time (importat!)\r\n minMaxStep = this.adjustMinMax(min, max, max - min, this._gridCount, true);\r\n min = minMaxStep.min;\r\n max = minMaxStep.max;\r\n // return min max if strict\r\n if (this.strictMinMax) {\r\n if ($type.isNumber(this._minDefined)) {\r\n min = this._minDefined;\r\n }\r\n else {\r\n min = this._minReal;\r\n }\r\n if ($type.isNumber(this._maxDefined)) {\r\n max = this._maxDefined;\r\n }\r\n else {\r\n max = this._maxReal;\r\n }\r\n if (max - min <= 0.00000001) {\r\n min -= this._deltaMinMax;\r\n max += this._deltaMinMax;\r\n }\r\n min -= (max - min) * this.extraMin;\r\n max += (max - min) * this.extraMax;\r\n }\r\n if (this._adapterO) {\r\n min = this._adapterO.apply(\"min\", min);\r\n }\r\n if (this._adapterO) {\r\n max = this._adapterO.apply(\"max\", max);\r\n }\r\n this._step = minMaxStep.step;\r\n if (!$type.isNumber(min) && !$type.isNumber(max)) {\r\n this.start = 0;\r\n this.end = 1;\r\n this.renderer.labels.each(function (label) {\r\n label.dataItem.text = \"\";\r\n });\r\n }\r\n // checking isNumber is good when all series are hidden\r\n if ((this._minAdjusted != min || this._maxAdjusted != max) && $type.isNumber(min) && $type.isNumber(max)) {\r\n var animation = this._minMaxAnimation;\r\n if (this._extremesChanged && $type.isNumber(this._minAdjusted) && $type.isNumber(this._maxAdjusted) && this.inited) {\r\n if ((animation && !animation.isFinished()) && this._finalMax == max && this._finalMin == min) {\r\n return;\r\n }\r\n else {\r\n this._finalMin = min;\r\n this._finalMax = max;\r\n animation = this.animateMinMax(min, max);\r\n if (animation && !animation.isFinished()) {\r\n animation.events.on(\"animationprogress\", this.validateDataItems, this);\r\n animation.events.on(\"animationended\", function () {\r\n //this.validateDataItems();\r\n _this.series.each(function (series) {\r\n series.validate();\r\n });\r\n _this.validateDataItems();\r\n _this.handleSelectionExtremesChange();\r\n });\r\n this._minMaxAnimation = animation;\r\n }\r\n else {\r\n this.series.each(function (series) {\r\n series.invalidate();\r\n });\r\n }\r\n this.validateDataItems();\r\n this.dispatchImmediately(\"extremeschanged\");\r\n this.handleSelectionExtremesChange();\r\n }\r\n }\r\n else {\r\n if ((animation && !animation.isFinished()) && this._finalMax == max && this._finalMin == min) {\r\n return;\r\n }\r\n else {\r\n this._minAdjusted = min;\r\n this._maxAdjusted = max;\r\n this._finalMin = min;\r\n this._finalMax = max;\r\n this.invalidateDataItems();\r\n this.dispatchImmediately(\"extremeschanged\");\r\n this._saveMinMax(min, max);\r\n }\r\n }\r\n }\r\n this._extremesChanged = false;\r\n this._difference = this.adjustDifference(min, max);\r\n };\r\n /**\r\n * Adjusts the minimum value.\r\n *\r\n * This is a placeholder method for extending classes to override.\r\n *\r\n * For numeric values this does nothing, however for more complex types, like\r\n * dates, it may be necessary to adjust.\r\n *\r\n * @param value Value\r\n * @return Adjusted value\r\n */\r\n ValueAxis.prototype.fixMin = function (value) {\r\n return value;\r\n };\r\n /**\r\n * Adjusts the maximum value.\r\n *\r\n * This is a placeholder method for extending classes to override.\r\n *\r\n * For numeric values this does nothing, however for more complex types, like\r\n * dates, it may be necessary to adjust.\r\n *\r\n * @param value Value\r\n * @return Adjusted value\r\n */\r\n ValueAxis.prototype.fixMax = function (value) {\r\n return value;\r\n };\r\n /**\r\n * Adjusts actual min and max scale values so that the axis starts and ends\r\n * at \"nice\" values, unless `strictMinMax` is set.\r\n *\r\n * The `difference` can be something else than `max - min`, because of the\r\n * axis breaks.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param min [description]\r\n * @param max [description]\r\n * @param difference [description]\r\n * @param gridCount [description]\r\n * @param strictMode [description]\r\n * @return [description]\r\n */\r\n ValueAxis.prototype.adjustMinMax = function (min, max, difference, gridCount, strictMode) {\r\n // will fail if 0\r\n if (gridCount <= 1) {\r\n gridCount = 1;\r\n }\r\n gridCount = Math.round(gridCount);\r\n var initialMin = min;\r\n var initialMax = max;\r\n // in case min and max is the same, use max\r\n if (difference === 0) {\r\n difference = Math.abs(max);\r\n }\r\n // the number by which we need to raise 10 to get difference\r\n var exponent = Math.log(Math.abs(difference)) * Math.LOG10E;\r\n // here we find a number which is power of 10 and has the same count of numbers as difference has\r\n var power = Math.pow(10, Math.floor(exponent));\r\n // reduce this number by 10 times\r\n power = power / 10;\r\n var extra = power;\r\n if (strictMode) {\r\n extra = 0;\r\n }\r\n if (!this.logarithmic) {\r\n // round down min\r\n if (strictMode) {\r\n min = Math.floor(min / power) * power;\r\n // round up max\r\n max = Math.ceil(max / power) * power;\r\n }\r\n else {\r\n min = Math.ceil(min / power) * power - extra;\r\n // round up max\r\n max = Math.floor(max / power) * power + extra;\r\n }\r\n // don't let min go below 0 if real min is >= 0\r\n if (min < 0 && initialMin >= 0) {\r\n min = 0;\r\n }\r\n // don't let max go above 0 if real max is <= 0\r\n if (max > 0 && initialMax <= 0) {\r\n max = 0;\r\n }\r\n }\r\n else {\r\n if (min <= 0) {\r\n //throw Error(\"Logarithmic value axis can not have values <= 0.\");\r\n min = this.baseValue;\r\n }\r\n // @todo: think of a better way or to restrict zooming when no series are selected\r\n if (min == Infinity) {\r\n min = 1;\r\n }\r\n if (max == -Infinity) {\r\n max = 10;\r\n }\r\n if (this.strictMinMax) {\r\n if (this._minDefined > 0) {\r\n min = this._minDefined;\r\n }\r\n else {\r\n min = min;\r\n }\r\n if (this._maxDefined > 0) {\r\n max = max;\r\n }\r\n }\r\n else {\r\n min = Math.pow(10, Math.floor(Math.log(Math.abs(min)) * Math.LOG10E));\r\n max = Math.pow(10, Math.ceil(Math.log(Math.abs(max)) * Math.LOG10E));\r\n }\r\n }\r\n // repeat diff, exponent and power again with rounded values\r\n //difference = this.adjustDifference(min, max);\r\n /*\r\n\r\n if(min > initialMin){\r\n min = initialMin;\r\n }\r\n\r\n if(max < initialMax){\r\n max = initialMax;\r\n }\r\n */\r\n exponent = Math.log(Math.abs(difference)) * Math.LOG10E;\r\n power = Math.pow(10, Math.floor(exponent));\r\n power = power / 10;\r\n // approximate difference between two grid lines\r\n var step = Math.ceil((difference / gridCount) / power) * power;\r\n var stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\r\n // TODO: in v3 I had fixStepE here, ommiting it for a while, need to think about other solution\r\n // the step should divide by 2, 5, and 10.\r\n var stepDivisor = Math.ceil(step / stepPower); // number 0 - 10\r\n if (stepDivisor > 5) {\r\n stepDivisor = 10;\r\n }\r\n else if (stepDivisor <= 5 && stepDivisor > 2) {\r\n stepDivisor = 5;\r\n }\r\n // now get real step\r\n step = Math.ceil(step / (stepPower * stepDivisor)) * stepPower * stepDivisor;\r\n if (this.maxPrecision < Number.MAX_VALUE && step != $math.ceil(step, this.maxPrecision)) {\r\n step = $math.ceil(step, this.maxPrecision);\r\n }\r\n var decCount = 0;\r\n // in case numbers are smaller than 1\r\n if (stepPower < 1) {\r\n // exponent is less then 1 too. Count decimals of exponent\r\n decCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 1;\r\n // round step\r\n step = $math.round(step, decCount);\r\n }\r\n if (!this.logarithmic) {\r\n // final min and max\r\n var minCount = Math.floor(min / step);\r\n min = $math.round(step * minCount, decCount);\r\n var maxCount = void 0;\r\n if (!strictMode) {\r\n maxCount = Math.ceil(max / step);\r\n }\r\n else {\r\n maxCount = Math.floor(max / step);\r\n }\r\n if (maxCount == minCount) {\r\n maxCount++;\r\n }\r\n max = $math.round(step * maxCount, decCount);\r\n if (max < initialMax) {\r\n max = max + step;\r\n }\r\n if (min > initialMin) {\r\n min = min - step;\r\n }\r\n }\r\n return { min: min, max: max, step: step };\r\n };\r\n Object.defineProperty(ValueAxis.prototype, \"min\", {\r\n /**\r\n * @return Min value\r\n */\r\n get: function () {\r\n var min = this._minAdjusted;\r\n if (!$type.isNumber(min)) {\r\n min = this._minDefined;\r\n }\r\n return min;\r\n },\r\n /**\r\n * A minimum value for the axis scale.\r\n *\r\n * This value might be auto-adjusted by the Axis in order to accomodate the\r\n * grid nicely, i.e. plot area is divided by grid in nice equal cells.\r\n *\r\n * The above might be overridden by `strictMinMax` which will force exact\r\n * user-defined min and max values to be used for scale.\r\n *\r\n * @param value Min value\r\n */\r\n set: function (value) {\r\n if (this._minDefined != value) {\r\n this._minDefined = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"minDefined\", {\r\n /**\r\n * Min value as defined by user's code, not auto-calculated.\r\n *\r\n * @readonly\r\n * @return Min value\r\n */\r\n get: function () {\r\n return this._minDefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"maxDefined\", {\r\n /**\r\n * Max value as defined by user's code, not auto-calculated.\r\n *\r\n * @readonly\r\n * @return Man value\r\n */\r\n get: function () {\r\n return this._maxDefined;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"extraMin\", {\r\n /**\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"extraMin\");\r\n },\r\n /**\r\n * Allows relatively adjusting minimum value of the axis' scale.\r\n *\r\n * The value is relative to the actual range of values currently displayed\r\n * on the axis.\r\n *\r\n * E.g.: 0.5 will mean half of the current range. If we have axis displaying\r\n * from 100 to 200, we will now have axis displaying from 50 to 200 because\r\n * we asked to expand minimum value by 50% (0.5).\r\n *\r\n * NOTE: this setting is not compatible with `strictMinMax`.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"extraMin\", value)) {\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"extraMax\", {\r\n /**\r\n * @return Min multiplier\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"extraMax\");\r\n },\r\n /**\r\n * Allows relatively adjusting maximum value of the axis' scale.\r\n *\r\n * The value is relative to the actual range of values currently displayed\r\n * on the axis.\r\n *\r\n * E.g.: 0.5 will mean half of the current range. If we have axis displaying\r\n * from 100 to 200, we will now have axis displaying from 100 to 250 because\r\n * we asked to expand maximum value by 50% (0.5).\r\n *\r\n * NOTE: this setting is not compatible with `strictMinMax`.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"extraMax\", value)) {\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"step\", {\r\n /**\r\n * Current calculated delta in values between two adjacent grid lines (step).\r\n *\r\n * This is a read-only value and cannot be used to set actual step.\r\n *\r\n * @readonly\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/#Setting_the_density_of_the_the_grid_labels} For more information about modifying density of labels\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._step;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"max\", {\r\n /**\r\n * @return Max value\r\n */\r\n get: function () {\r\n var max = this._maxAdjusted;\r\n if (!$type.isNumber(max)) {\r\n max = this._maxDefined;\r\n }\r\n return max;\r\n },\r\n /**\r\n * A maximum value for the axis scale.\r\n *\r\n * This value might be auto-adjusted by the Axis in order to accomodate the\r\n * grid nicely, i.e. plot area is divided by grid in nice equal cells.\r\n *\r\n * The above might be overridden by `strictMinMax` which will force exact\r\n * user-defined min and max values to be used for scale.\r\n *\r\n * @param value Max value\r\n */\r\n set: function (value) {\r\n if (this._maxDefined != value) {\r\n this._maxDefined = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"adjustLabelPrecision\", {\r\n /**\r\n * @return Adjust precision\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"adjustLabelPrecision\");\r\n },\r\n /**\r\n * By default the axis will adjust precision of all numbers to match number\r\n * of decimals in all its labels, e.g.: `1.0`, `1.5`, `2.0`.\r\n *\r\n * To disable set `adjustLabelPrecision` to `false`, to use whatever other\r\n * precision or number format settings are set.\r\n *\r\n * IMPORTANT: This setting will be ignored if your number format uses\r\n * modifiers, e.g. `\"#a\"`.\r\n *\r\n * @default true\r\n * @since 4.9.14\r\n * @param value Adjust precision\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"adjustLabelPrecision\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Used for the Series to register itself as the user of this Axis.\r\n *\r\n * This will also decorate both the Series and Axis with event handlers, used\r\n * to redraw on Axis position/zoom change.\r\n *\r\n * A disposer for those events is returned, so that they can be disposed\r\n * together with Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param series Series\r\n * @return Disposer for events\r\n */\r\n ValueAxis.prototype.registerSeries = function (series) {\r\n return new MultiDisposer([\r\n _super.prototype.registerSeries.call(this, series),\r\n series.events.on(\"extremeschanged\", this.handleExtremesChange, this, false),\r\n series.events.on(\"selectionextremeschanged\", this.handleSelectionExtremesChange, this, false),\r\n this.events.on(\"extremeschanged\", series.invalidate, series, false)\r\n ]);\r\n };\r\n /**\r\n * Perform tasks after Axis zoom.\r\n */\r\n ValueAxis.prototype.handleSelectionExtremesChange = function () {\r\n var _this = this;\r\n var selectionMin;\r\n var selectionMax;\r\n var allHidden = true;\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (!series.ignoreMinMax && !series.isHidden && !series.outOfRange) {\r\n if (series.visible && !series.isHiding) {\r\n allHidden = false;\r\n }\r\n var seriesSelectionMin = series.selectionMin(_this);\r\n var seriesSelectionMax = series.selectionMax(_this);\r\n if ($type.isNumber(seriesSelectionMin)) {\r\n if (!$type.isNumber(selectionMin) || (seriesSelectionMin < selectionMin)) {\r\n selectionMin = seriesSelectionMin;\r\n }\r\n }\r\n // check max\r\n if ($type.isNumber(seriesSelectionMax)) {\r\n if (!$type.isNumber(selectionMax) || (seriesSelectionMax > selectionMax)) {\r\n selectionMax = seriesSelectionMax;\r\n }\r\n }\r\n }\r\n });\r\n if (this.includeRangesInMinMax) {\r\n this.axisRanges.each(function (range) {\r\n if (!range.ignoreMinMax) {\r\n var minValue = $math.min(range.value, range.endValue);\r\n var maxValue = $math.max(range.value, range.endValue);\r\n if (minValue < selectionMin) {\r\n selectionMin = minValue;\r\n }\r\n if (maxValue > selectionMax) {\r\n selectionMax = maxValue;\r\n }\r\n }\r\n });\r\n }\r\n // this is not good, as if date axis is initially zoomed, selection of y axis is reset to 0, 1 at the end of this method\r\n //$iter.each(this.series.iterator(), (series) => {\r\n //\tif (!series.appeared) {\r\n //\t\tallHidden = true;\r\n //\t}\r\n //})\r\n if ($type.isNumber(this._minDefined)) {\r\n if (this.strictMinMax) {\r\n selectionMin = this._minDefined;\r\n }\r\n else {\r\n selectionMin = this.min;\r\n }\r\n }\r\n else if (this.strictMinMax) {\r\n selectionMin = this._minReal;\r\n }\r\n if ($type.isNumber(this._maxDefined)) {\r\n if (this.strictMinMax) {\r\n selectionMax = this._maxDefined;\r\n }\r\n else {\r\n selectionMax = this.max;\r\n }\r\n }\r\n else if (this.strictMinMax) {\r\n selectionMax = this._maxReal;\r\n }\r\n if (selectionMin == selectionMax) {\r\n selectionMin -= this._deltaMinMax;\r\n selectionMax += this._deltaMinMax;\r\n var minMaxStep2 = this.adjustMinMax(selectionMin, selectionMax, 0, this._gridCount, this.strictMinMax);\r\n selectionMin = minMaxStep2.min;\r\n selectionMax = minMaxStep2.max;\r\n }\r\n var dif = this.adjustDifference(selectionMin, selectionMax);\r\n var minMaxStep = this.adjustMinMax(selectionMin, selectionMax, dif, this._gridCount);\r\n selectionMin = minMaxStep.min;\r\n selectionMax = minMaxStep.max;\r\n selectionMin -= (selectionMax - selectionMin) * this.extraMin;\r\n selectionMax += (selectionMax - selectionMin) * this.extraMax;\r\n selectionMin = $math.fitToRange(selectionMin, this.min, this.max);\r\n selectionMax = $math.fitToRange(selectionMax, this.min, this.max);\r\n // do it for the second time !important\r\n dif = this.adjustDifference(selectionMin, selectionMax);\r\n minMaxStep = this.adjustMinMax(selectionMin, selectionMax, dif, this._gridCount, true);\r\n selectionMin = minMaxStep.min;\r\n selectionMax = minMaxStep.max;\r\n if (this.strictMinMax) {\r\n selectionMin = $math.max(selectionMin, this._minDefined);\r\n selectionMax = $math.min(selectionMax, this._maxDefined);\r\n }\r\n var step = minMaxStep.step;\r\n if (this.syncWithAxis) {\r\n minMaxStep = this.syncAxes(selectionMin, selectionMax, step);\r\n selectionMin = minMaxStep.min;\r\n selectionMax = minMaxStep.max;\r\n this.invalidate();\r\n }\r\n step = minMaxStep.step;\r\n // needed because of grouping\r\n this._difference = this.adjustDifference(this.min, this.max);\r\n var start = this.valueToPosition(selectionMin);\r\n var end = this.valueToPosition(selectionMax);\r\n // in case all series are hidden or hiding, full zoomout\r\n if (allHidden && !this.syncWithAxis) {\r\n start = 0;\r\n end = 1;\r\n }\r\n var declination = 0;\r\n if (this.syncWithAxis) {\r\n declination = 5;\r\n this.setCache(selectionMin + \"-\" + selectionMax, step);\r\n }\r\n else {\r\n if (this._step != step || this._minZoomed != selectionMin || this._maxZoomed != selectionMax) {\r\n this._dsc = true;\r\n }\r\n this._step = step;\r\n this._minZoomed = selectionMin;\r\n this._maxZoomed = selectionMax;\r\n }\r\n if (!this.keepSelection) {\r\n this.zoom({ start: start, end: end }, false, false, declination);\r\n }\r\n };\r\n Object.defineProperty(ValueAxis.prototype, \"strictMinMax\", {\r\n /**\r\n * @return Use exact values?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"strictMinMax\");\r\n },\r\n /**\r\n * Indicates whether to blindly use exact `min` and `max` values set by user\r\n * when generating Axis scale.\r\n *\r\n * If not set, the Axis might slightly adjust those values to accomodate a\r\n * better looking grid.\r\n *\r\n * NOTE: if `min` and `max` are not set, setting `strictMinMax` to `true`\r\n * will result in fixing the scale of the axis to actual lowest and highest\r\n * values in the series within currently selected scope.\r\n *\r\n * @default false\r\n * @param value Use exact values?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"strictMinMax\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"logarithmic\", {\r\n /**\r\n * @return Logarithmic scale?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"logarithmic\");\r\n },\r\n /**\r\n * Indicates if this axis should use a logarithmic scale.\r\n *\r\n * Please note that logarithmic axis can **only** accommodate values bigger\r\n * than zero.\r\n *\r\n * Having zero or negative values will result in error and failure of the\r\n * whole chart.\r\n *\r\n * @param value Logarithmic scale?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"logarithmic\", value)) {\r\n this.invalidate();\r\n this.series.each(function (series) {\r\n series.invalidateDataItems();\r\n });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"keepSelection\", {\r\n /**\r\n * @return Preseve zoom after data update?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"keepSelection\");\r\n },\r\n /**\r\n * Indicates if a current selection (zoom) should be kept across data updates.\r\n *\r\n * If your axis is zoomed while chart's data is updated, the axis will try\r\n * to retain the same start and end values.\r\n *\r\n * You can also use this to initially pre-zoom axis:\r\n *\r\n * ```TypeScript\r\n * axis.keepSelection = true;\r\n * axis.start = 0.5;\r\n * axis.end = 0.7;\r\n * ```\r\n * ```JavaScript\r\n * axis.keepSelection = true;\r\n * axis.start = 0.5;\r\n * axis.end = 0.7;\r\n * ```\r\n * ```JSON\r\n * {\r\n * \"xAxes\": [{\r\n * // ...\r\n * \"keepSelection\": true,\r\n * \"start\": 0.5,\r\n * \"end\": 0.7\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * The above will start the chart zoomed from the middle of the actual scope\r\n * to 70%.\r\n *\r\n * @since 4.1.1\r\n * @default false\r\n * @param value Preseve zoom after data update?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"keepSelection\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"includeRangesInMinMax\", {\r\n /**\r\n * @return Include ranges?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"includeRangesInMinMax\");\r\n },\r\n /**\r\n * If set to `true`, values of axis ranges will be included when calculating\r\n * range of values / scale of the [[ValueAxis]].\r\n *\r\n * @default false\r\n * @since 4.4.9\r\n * @param value Include ranges?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"includeRangesInMinMax\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"maxPrecision\", {\r\n /**\r\n * @return max precision\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxPrecision\");\r\n },\r\n /**\r\n * Maximum number of decimals to allow when placing grid lines and labels\r\n * on axis.\r\n *\r\n * Set it to `0` (zero) to force integer-only axis labels.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"maxPrecision\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"extraTooltipPrecision\", {\r\n /**\r\n * @return Extra decimals\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"extraTooltipPrecision\");\r\n },\r\n /**\r\n * This setting allows using bigger precision for numbers displayed in axis\r\n * tooltip.\r\n *\r\n * Please note that this setting indicates additional decimal places to\r\n * automatically-calculated axis number precision.\r\n *\r\n * So if your axis displays numbers like 0.1, 0.2, etc. (one decimal place),\r\n * and you set `extraTooltipPrecision = 1`, tooltips will display numbers\r\n * like 0.12, 0.25, etc. (two decimal places).\r\n *\r\n * @default 0\r\n * @since 4.8.3\r\n * @param value Extra decimals\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"extraTooltipPrecision\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Invalidates axis data items when series extremes change\r\n */\r\n ValueAxis.prototype.handleExtremesChange = function () {\r\n var _this = this;\r\n this._extremesChanged = true;\r\n this.getMinMax();\r\n if (this.ghostLabel) {\r\n var mw_1 = 0;\r\n this.dataItems.each(function (dataItem) {\r\n if (dataItem.label && dataItem.label.pixelWidth > mw_1) {\r\n _this.ghostLabel.text = dataItem.label.currentText;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Returns relative position on axis for series' data item's value.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey ?\r\n * @return X coordinate (px)\r\n */\r\n ValueAxis.prototype.getX = function (dataItem, key, location, stackKey, range) {\r\n return this.renderer.positionToPoint(this.getPositionX(dataItem, key, location, stackKey, range)).x;\r\n };\r\n /**\r\n * Returns the X coordinate for series' data item's value.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey ?\r\n * @return Relative position\r\n */\r\n ValueAxis.prototype.getPositionX = function (dataItem, key, location, stackKey, range) {\r\n var value = dataItem.getWorkingValue(key);\r\n if (!$type.hasValue(stackKey)) {\r\n stackKey = \"valueX\";\r\n }\r\n var stack = dataItem.getValue(stackKey, \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n if (this.logarithmic) {\r\n if (stack > 0) {\r\n value = 0;\r\n }\r\n }\r\n }\r\n var position = this.valueToPosition(value + stack);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns the Y coordinate for series' data item's value.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey Stack ID\r\n * @return Y coordinate (px)\r\n */\r\n ValueAxis.prototype.getY = function (dataItem, key, location, stackKey, range) {\r\n return this.renderer.positionToPoint(this.getPositionY(dataItem, key, location, stackKey, range)).y;\r\n };\r\n /**\r\n * Returns relative position on axis for series' data item's value.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey Stack ID\r\n * @return Relative position\r\n */\r\n ValueAxis.prototype.getPositionY = function (dataItem, key, location, stackKey, range) {\r\n var value = dataItem.getWorkingValue(key);\r\n if (!$type.hasValue(stackKey)) {\r\n stackKey = \"valueY\";\r\n }\r\n var stack = dataItem.getValue(stackKey, \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n if (this.logarithmic) {\r\n if (stack > 0) {\r\n value = 0;\r\n }\r\n }\r\n }\r\n var position = this.valueToPosition(value + stack);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns an angle for series data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey Stack ID\r\n * @param range Range to fit in\r\n * @return Angle\r\n */\r\n ValueAxis.prototype.getAngle = function (dataItem, key, location, stackKey, range) {\r\n var value = dataItem.getWorkingValue(key);\r\n var stack = dataItem.getValue(stackKey, \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n }\r\n var position = this.valueToPosition(value + stack);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return this.positionToAngle(position);\r\n };\r\n /**\r\n * [getAnyRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param start [description]\r\n * @param end [description]\r\n * @param location [description]\r\n * @return [description]\r\n */\r\n ValueAxis.prototype.getAnyRangePath = function (start, end, location) {\r\n var startPosition = this.valueToPosition(start);\r\n var endPosition = this.valueToPosition(end);\r\n return this.getPositionRangePath(startPosition, endPosition); // Base class (Axis) gets range shape from AxisRenderer\r\n };\r\n /**\r\n * Returns text to show in a axis tooltip, based on specific position within\r\n * axis.\r\n *\r\n * The label will be formatted as per [[NumberFormatter]] set for the whole\r\n * chart, or explicitly for this Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position (px)\r\n * @return Label (numeric value)\r\n */\r\n ValueAxis.prototype.getTooltipText = function (position) {\r\n var value = $math.round(this.positionToValue(position), this._stepDecimalPlaces + this.extraTooltipPrecision);\r\n var valueStr = this.tooltip.numberFormatter.format(value);\r\n if (!this._adapterO) {\r\n return valueStr;\r\n }\r\n else {\r\n return this._adapterO.apply(\"getTooltipText\", valueStr);\r\n }\r\n };\r\n /**\r\n * Zooms axis to specific values.\r\n *\r\n * @param startValue Start value\r\n * @param endValue End value\r\n * @param skipRangeEvent Do not invoke events\r\n * @param instantly Do not play zoom animations\r\n */\r\n ValueAxis.prototype.zoomToValues = function (startValue, endValue, skipRangeEvent, instantly) {\r\n var start = (startValue - this.min) / (this.max - this.min);\r\n var end = (endValue - this.min) / (this.max - this.min);\r\n this.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n };\r\n Object.defineProperty(ValueAxis.prototype, \"minZoomed\", {\r\n /**\r\n * A smallest value in axis scale within current zoom.\r\n *\r\n * @return Min zoom value\r\n */\r\n get: function () {\r\n if (!this.syncWithAxis) {\r\n return $math.max(this.min, this._minZoomed);\r\n }\r\n else {\r\n return this._minZoomed;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"maxZoomed\", {\r\n /**\r\n * A biggest value in axis scale within current zoom.\r\n * @return [description]\r\n */\r\n get: function () {\r\n if (!this.syncWithAxis) {\r\n return $math.min(this.max, this._maxZoomed);\r\n }\r\n else {\r\n return this._maxZoomed;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates positioning of Axis breaks after something changes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ValueAxis.prototype.fixAxisBreaks = function () {\r\n var _this = this;\r\n _super.prototype.fixAxisBreaks.call(this);\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks && axisBreaks.length > 0) {\r\n // process breaks\r\n axisBreaks.each(function (axisBreak) {\r\n var startValue = axisBreak.adjustedStartValue;\r\n var endValue = axisBreak.adjustedEndValue;\r\n // break difference\r\n var axisBreakDif = endValue - startValue;\r\n var axisBreakGridCount = Math.ceil(axisBreakDif * axisBreak.breakSize) * _this._gridCount / (_this.max - _this.min);\r\n // calculate min, max and step for axis break\r\n var breakMinMaxStep = _this.adjustMinMax(startValue, endValue, axisBreakDif, axisBreakGridCount, true);\r\n axisBreak.adjustedStep = breakMinMaxStep.step;\r\n axisBreak.adjustedMin = breakMinMaxStep.min;\r\n axisBreak.adjustedMax = breakMinMaxStep.max;\r\n });\r\n }\r\n this._difference = this.adjustDifference(this.min, this.max);\r\n };\r\n /**\r\n * Returns value based on position.\r\n *\r\n * Please note that `position` represents position within axis which may be\r\n * zoomed and not correspond to Cursor's `position`.\r\n *\r\n * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n * @param position Relative position on axis (0-1)\r\n * @return Position label\r\n */\r\n ValueAxis.prototype.getPositionLabel = function (position) {\r\n var value = this.positionToValue(position);\r\n return this.numberFormatter.format(value);\r\n };\r\n /**\r\n * Shows Axis tooltip at specific value\r\n *\r\n * @param value Value\r\n */\r\n ValueAxis.prototype.showTooltipAt = function (value) {\r\n this.showTooltipAtPosition(this.valueToPosition(value));\r\n };\r\n /**\r\n * Copies all properties and related data from a different instance of Axis.\r\n *\r\n * @param source Source Axis\r\n */\r\n ValueAxis.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.min = source.min;\r\n this.max = source.max;\r\n this.calculateTotals = source.calculateTotals;\r\n this._baseValue = source.baseValue;\r\n };\r\n Object.defineProperty(ValueAxis.prototype, \"syncWithAxis\", {\r\n /**\r\n * @return Target axis\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"syncWithAxis\");\r\n },\r\n /**\r\n * Enables syncing of grid with another axis.\r\n *\r\n * To enable, set to a reference of the other `ValueAxis`. This axis will try\r\n * to maintain its scale in such way that its grid matches target axis grid.\r\n *\r\n * IMPORTANT #1: At this stage it's an experimental feature. Use it at your\r\n * own risk, as it may not work in 100% of the scenarios.\r\n *\r\n * IMPORTANT #2: `syncWithAxis` is not compatible with `strictMinMax` and\r\n * `sequencedInterpolation` settings.\r\n *\r\n * IMPORTANT #3: `syncWithAxis` is not compatible with scrollbars. Make sure\r\n * you do not add a scrollbar in the same direction as synced axes. For\r\n * example, if you have vertical synced axes, do not add `scrollbarY` on\r\n * your chart. It will create anomalies when used.\r\n *\r\n * IMPORTANT #4: `syncWithAxis` is not compatible with `XYCursor` if it has\r\n * its `behavior` set to either `zoomY` or `zoomXY`.\r\n *\r\n * @since 4.8.1\r\n * @param axis Target axis\r\n */\r\n set: function (axis) {\r\n var _this = this;\r\n if (this.setPropertyValue(\"syncWithAxis\", axis, true)) {\r\n if (axis) {\r\n this._disposers.push(axis.events.on(\"extremeschanged\", this.handleSelectionExtremesChange, this, false));\r\n this._disposers.push(axis.events.on(\"selectionextremeschanged\", this.handleSelectionExtremesChange, this, false));\r\n this._disposers.push(axis.events.on(\"startendchanged\", this.handleSelectionExtremesChange, this, false));\r\n this.events.on(\"shown\", this.handleSelectionExtremesChange, this, false);\r\n this.events.on(\"maxsizechanged\", function () {\r\n _this.clearCache();\r\n _this._disposers.push(registry.events.once(\"exitframe\", function () {\r\n _this.handleSelectionExtremesChange();\r\n }));\r\n }, this, false);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValueAxis.prototype, \"treatZeroAs\", {\r\n /**\r\n * @return Zero replacement value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"treatZeroAs\");\r\n },\r\n /**\r\n * If set, zero values will be treated as this value.\r\n *\r\n * It is useful if you need to use data with zero-values on a logarithmic\r\n * axis scale.\r\n *\r\n * @since 4.9.34\r\n * @param value Zero replacement value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"treatZeroAs\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Syncs with a target axis.\r\n *\r\n * @param min Min\r\n * @param max Max\r\n * @param step Step\r\n */\r\n ValueAxis.prototype.syncAxes = function (min, max, step) {\r\n var axis = this.syncWithAxis;\r\n if (axis) {\r\n if (!$type.isNumber(min)) {\r\n min = this.min;\r\n }\r\n if (!$type.isNumber(max)) {\r\n max = this.max;\r\n }\r\n if (!$type.isNumber(step)) {\r\n step = this._step;\r\n }\r\n var count = Math.round((axis.maxZoomed - axis.minZoomed) / axis.step);\r\n var currentCount = Math.round((max - min) / step);\r\n if ($type.isNumber(count) && $type.isNumber(currentCount)) {\r\n var synced = false;\r\n var c = 0;\r\n var diff = (max - min) * 0.01;\r\n var omin = min;\r\n var omax = max;\r\n var ostep = step;\r\n while (synced != true) {\r\n synced = this.checkSync(omin, omax, ostep, count);\r\n c++;\r\n if (c > 1000) {\r\n synced = true;\r\n }\r\n if (!synced) {\r\n //omin = min - diff * c;\r\n if (c / 3 == Math.round(c / 3)) {\r\n omin = min - diff * c;\r\n if (min >= 0 && omin < 0) {\r\n omin = 0;\r\n }\r\n }\r\n else {\r\n omax = max + diff * c;\r\n if (omax <= 0 && omax > 0) {\r\n omax = 0;\r\n }\r\n }\r\n var minMaxStep = this.adjustMinMax(omin, omax, omax - omin, this._gridCount, true);\r\n omin = minMaxStep.min;\r\n omax = minMaxStep.max;\r\n ostep = minMaxStep.step;\r\n }\r\n else {\r\n min = omin;\r\n max = omax;\r\n step = ostep;\r\n }\r\n }\r\n }\r\n }\r\n return { min: min, max: max, step: step };\r\n };\r\n /**\r\n * Returns `true` if axis needs to be resunced with some other axis.\r\n */\r\n ValueAxis.prototype.checkSync = function (min, max, step, count) {\r\n var currentCount = (max - min) / step;\r\n for (var i = 1; i < count; i++) {\r\n if ($math.round(currentCount / i, 1) == count || currentCount * i == count) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n ValueAxis.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up axes\r\n if ($type.hasValue(config.syncWithAxis) && $type.isString(config.syncWithAxis)) {\r\n if (this.map.hasKey(config.syncWithAxis)) {\r\n config.syncWithAxis = this.map.getKey(config.syncWithAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[ValueAxis] No axis with id \\\"\" + config.syncWithAxis + \"\\\" found for `syncWithAxis`\");\r\n delete config.xAxis;\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n ValueAxis.prototype._saveMinMax = function (_min, _max) {\r\n };\r\n return ValueAxis;\r\n}(Axis));\r\nexport { ValueAxis };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ValueAxis\"] = ValueAxis;\r\nregistry.registeredClasses[\"ValueAxisDataItem\"] = ValueAxisDataItem;\r\n//# sourceMappingURL=ValueAxis.js.map","/**\r\n * DateAxisBreak includes functionality to add breaks on a [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxisBreak } from \"./ValueAxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to define breaks for [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n *\r\n * @see {@link IDateAxisBreakEvents} for a list of available events\r\n * @see {@link IDateAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar DateAxisBreak = /** @class */ (function (_super) {\r\n __extends(DateAxisBreak, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DateAxisBreak() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DateAxisBreak\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(DateAxisBreak.prototype, \"startDate\", {\r\n /**\r\n * @return Start date\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startDate\");\r\n },\r\n /**\r\n * Starting date for the break.\r\n *\r\n * @param value Start date\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startDate\", value)) {\r\n this.startValue = value.getTime();\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxisBreak.prototype, \"endDate\", {\r\n /**\r\n * @return End date\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endDate\");\r\n },\r\n /**\r\n * Ending date for the break.\r\n *\r\n * @param value End date\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endDate\", value)) {\r\n this.endValue = value.getTime();\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DateAxisBreak;\r\n}(ValueAxisBreak));\r\nexport { DateAxisBreak };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxisBreak\"] = DateAxisBreak;\r\n//# sourceMappingURL=DateAxisBreak.js.map","/**\r\n * DateAxis module\r\n */\r\nimport { __assign, __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxis, ValueAxisDataItem } from \"./ValueAxis\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { DateAxisBreak } from \"./DateAxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $time from \"../../core/utils/Time\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { OrderedListTemplate } from \"../../core/utils/SortedList\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines data item for [[DateAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar DateAxisDataItem = /** @class */ (function (_super) {\r\n __extends(DateAxisDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DateAxisDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DateAxisDataItem\";\r\n _this.applyTheme();\r\n _this.values.date = {};\r\n _this.values.endDate = {};\r\n return _this;\r\n }\r\n Object.defineProperty(DateAxisDataItem.prototype, \"date\", {\r\n /**\r\n * @return Date\r\n */\r\n get: function () {\r\n return this.dates[\"date\"];\r\n },\r\n /**\r\n * Date position of the data item.\r\n *\r\n * @param date Date\r\n */\r\n set: function (date) {\r\n this.setDate(\"date\", date);\r\n this.value = date.getTime();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxisDataItem.prototype, \"endDate\", {\r\n /**\r\n * @return End date\r\n */\r\n get: function () {\r\n return this.dates[\"endDate\"];\r\n },\r\n /**\r\n * End date for data item.\r\n *\r\n * @param date End date\r\n */\r\n set: function (date) {\r\n this.setDate(\"endDate\", date);\r\n this.endValue = date.getTime();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DateAxisDataItem;\r\n}(ValueAxisDataItem));\r\nexport { DateAxisDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to create a date/time-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Time\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Time\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"title\": {\r\n * \"text\": \"Time\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link IDateAxisEvents} for a list of available Events\r\n * @see {@link IDateAxisAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/} got `DateAxis` documention\r\n * @important\r\n */\r\nvar DateAxis = /** @class */ (function (_super) {\r\n __extends(DateAxis, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DateAxis() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this._gapBreaks = false;\r\n /**\r\n * A list of date/time intervals for Date axis.\r\n *\r\n * This define various granularities available for the axis. For example\r\n * if you have an axis spanning an hour, and space for 6 grid lines / labels\r\n * the axis will choose the granularity of 10 minutes, displaying a label\r\n * every 10 minutes.\r\n *\r\n * Default intervals:\r\n *\r\n * ```JSON\r\n * [\r\n * { timeUnit: \"millisecond\", count: 1 },\r\n * { timeUnit: \"millisecond\", count: 5 },\r\n * { timeUnit: \"millisecond\", count: 10 },\r\n * { timeUnit: \"millisecond\", count: 50 },\r\n * { timeUnit: \"millisecond\", count: 100 },\r\n * { timeUnit: \"millisecond\", count: 500 },\r\n * { timeUnit: \"second\", count: 1 },\r\n * { timeUnit: \"second\", count: 5 },\r\n * { timeUnit: \"second\", count: 10 },\r\n * { timeUnit: \"second\", count: 30 },\r\n * { timeUnit: \"minute\", count: 1 },\r\n * { timeUnit: \"minute\", count: 5 },\r\n * { timeUnit: \"minute\", count: 10 },\r\n * { timeUnit: \"minute\", count: 30 },\r\n * { timeUnit: \"hour\", count: 1 },\r\n * { timeUnit: \"hour\", count: 3 },\r\n * { timeUnit: \"hour\", count: 6 },\r\n * { timeUnit: \"hour\", count: 12 },\r\n * { timeUnit: \"day\", count: 1 },\r\n * { timeUnit: \"day\", count: 2 },\r\n * { timeUnit: \"day\", count: 3 },\r\n * { timeUnit: \"day\", count: 4 },\r\n * { timeUnit: \"day\", count: 5 },\r\n * { timeUnit: \"week\", count: 1 },\r\n * { timeUnit: \"month\", count: 1 },\r\n * { timeUnit: \"month\", count: 2 },\r\n * { timeUnit: \"month\", count: 3 },\r\n * { timeUnit: \"month\", count: 6 },\r\n * { timeUnit: \"year\", count: 1 },\r\n * { timeUnit: \"year\", count: 2 },\r\n * { timeUnit: \"year\", count: 5 },\r\n * { timeUnit: \"year\", count: 10 },\r\n * { timeUnit: \"year\", count: 50 },\r\n * { timeUnit: \"year\", count: 100 }\r\n * ]\r\n * ```\r\n */\r\n _this.gridIntervals = new List();\r\n /**\r\n * If data aggregation is enabled by setting Axis' `groupData = true`, the\r\n * chart will try to aggregate data items into grouped data items.\r\n *\r\n * If there are more data items in selected period than `groupCount`, it will\r\n * group data items into bigger period.\r\n *\r\n * For example seconds might be grouped into 10-second aggregate data items.\r\n *\r\n * This setting indicates what group intervals can the chart group to.\r\n *\r\n * Default intervals:\r\n *\r\n * ```JSON\r\n * [\r\n * { timeUnit: \"millisecond\", count: 1},\r\n * { timeUnit: \"millisecond\", count: 10 },\r\n * { timeUnit: \"millisecond\", count: 100 },\r\n * { timeUnit: \"second\", count: 1 },\r\n * { timeUnit: \"second\", count: 10 },\r\n * { timeUnit: \"minute\", count: 1 },\r\n * { timeUnit: \"minute\", count: 10 },\r\n * { timeUnit: \"hour\", count: 1 },\r\n * { timeUnit: \"day\", count: 1 },\r\n * { timeUnit: \"week\", count: 1 },\r\n * { timeUnit: \"month\", count: 1 },\r\n * { timeUnit: \"year\", count: 1 }\r\n * ]\r\n * ```\r\n * `groupData = true` does not work in combination with `skipEmptyPeriods = true`.\r\n *\r\n * @since 4.7.0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n */\r\n _this.groupIntervals = new List();\r\n /**\r\n * A collection of date formats to use when formatting different time units\r\n * on Date/time axis.\r\n *\r\n * Actual defaults will depend on the language locale set for the chart.\r\n *\r\n * To override format for a specific time unit, say days, you need to set\r\n * the appropriate key to a format string. E.g.:\r\n *\r\n * ```TypeScript\r\n * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n * ```\r\n * ```JavaScript\r\n * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"dateFormats\": {\r\n * \"day\": \"MMMM d, yyyy\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link DateFormatter}\r\n */\r\n _this.dateFormats = new Dictionary();\r\n /**\r\n * These formats are applied to labels that are first in a larger unit.\r\n *\r\n * For example, if we have a DateAxis with days on it, the first day of month\r\n * indicates a break in month - a start of the bigger period.\r\n *\r\n * For those labels, `periodChangeDateFormats` are applied instead of\r\n * `dateFormats`.\r\n *\r\n * This allows us implement convenient structures, like instead of:\r\n *\r\n * `Jan 1 - Jan 2 - Jan 3 - ...`\r\n *\r\n * We can have:\r\n *\r\n * `Jan - 1 - 2 - 3 - ...`\r\n *\r\n * This can be disabled by setting `markUnitChange = false`.\r\n */\r\n _this.periodChangeDateFormats = new Dictionary();\r\n /**\r\n * Actual interval (granularity) derived from the actual data.\r\n */\r\n _this._baseIntervalReal = { timeUnit: \"day\", count: 1 };\r\n /**\r\n */\r\n _this._prevSeriesTime = {};\r\n /**\r\n * [_minDifference description]\r\n *\r\n * @todo Description\r\n */\r\n _this._minDifference = {};\r\n /**\r\n * @ignore\r\n */\r\n _this._firstWeekDay = 1;\r\n /**\r\n * A collection of start timestamps to use as axis' min timestamp for\r\n * particular data item item periods.\r\n *\r\n * @since 4.7.0\r\n * @readonly\r\n */\r\n _this.groupMin = {};\r\n /**\r\n * A collection of start timestamps to use as axis' max timestamp for\r\n * particular data item item periods.\r\n *\r\n * @since 4.7.0\r\n * @readonly\r\n */\r\n _this.groupMax = {};\r\n _this._intervalMax = {};\r\n _this._intervalMin = {};\r\n _this.className = \"DateAxis\";\r\n _this.setPropertyValue(\"markUnitChange\", true);\r\n _this.snapTooltip = true;\r\n _this.tooltipPosition = \"pointer\";\r\n _this.setPropertyValue(\"groupData\", false);\r\n _this.groupCount = 200;\r\n _this.events.on(\"parentset\", _this.getDFFormatter, _this, false);\r\n // Translatable defaults are applied in `applyInternalDefaults()`\r\n // ...\r\n // Define default intervals\r\n _this.gridIntervals.pushAll([\r\n { timeUnit: \"millisecond\", count: 1 },\r\n { timeUnit: \"millisecond\", count: 5 },\r\n { timeUnit: \"millisecond\", count: 10 },\r\n { timeUnit: \"millisecond\", count: 50 },\r\n { timeUnit: \"millisecond\", count: 100 },\r\n { timeUnit: \"millisecond\", count: 500 },\r\n { timeUnit: \"second\", count: 1 },\r\n { timeUnit: \"second\", count: 5 },\r\n { timeUnit: \"second\", count: 10 },\r\n { timeUnit: \"second\", count: 30 },\r\n { timeUnit: \"minute\", count: 1 },\r\n { timeUnit: \"minute\", count: 5 },\r\n { timeUnit: \"minute\", count: 10 },\r\n { timeUnit: \"minute\", count: 15 },\r\n { timeUnit: \"minute\", count: 30 },\r\n { timeUnit: \"hour\", count: 1 },\r\n { timeUnit: \"hour\", count: 3 },\r\n { timeUnit: \"hour\", count: 6 },\r\n { timeUnit: \"hour\", count: 12 },\r\n { timeUnit: \"day\", count: 1 },\r\n { timeUnit: \"day\", count: 2 },\r\n { timeUnit: \"day\", count: 3 },\r\n { timeUnit: \"day\", count: 4 },\r\n { timeUnit: \"day\", count: 5 },\r\n { timeUnit: \"week\", count: 1 },\r\n { timeUnit: \"month\", count: 1 },\r\n { timeUnit: \"month\", count: 2 },\r\n { timeUnit: \"month\", count: 3 },\r\n { timeUnit: \"month\", count: 6 },\r\n { timeUnit: \"year\", count: 1 },\r\n { timeUnit: \"year\", count: 2 },\r\n { timeUnit: \"year\", count: 5 },\r\n { timeUnit: \"year\", count: 10 },\r\n { timeUnit: \"year\", count: 50 },\r\n { timeUnit: \"year\", count: 100 },\r\n { timeUnit: \"year\", count: 200 },\r\n { timeUnit: \"year\", count: 500 },\r\n { timeUnit: \"year\", count: 1000 },\r\n { timeUnit: \"year\", count: 2000 },\r\n { timeUnit: \"year\", count: 5000 },\r\n { timeUnit: \"year\", count: 10000 },\r\n { timeUnit: \"year\", count: 100000 }\r\n ]);\r\n _this.groupIntervals.pushAll([\r\n { timeUnit: \"millisecond\", count: 1 },\r\n { timeUnit: \"millisecond\", count: 10 },\r\n { timeUnit: \"millisecond\", count: 100 },\r\n { timeUnit: \"second\", count: 1 },\r\n { timeUnit: \"second\", count: 10 },\r\n { timeUnit: \"minute\", count: 1 },\r\n { timeUnit: \"minute\", count: 10 },\r\n { timeUnit: \"hour\", count: 1 },\r\n { timeUnit: \"day\", count: 1 },\r\n { timeUnit: \"week\", count: 1 },\r\n { timeUnit: \"month\", count: 1 },\r\n { timeUnit: \"year\", count: 1 }\r\n ]);\r\n // Set field name\r\n _this.axisFieldName = \"date\";\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * A function which applies fills to axis cells.\r\n *\r\n * Default function fills every second fill. You can set this to a function\r\n * that follows some other logic.\r\n *\r\n * Function should accept a [[DateAxisDataItem]] and modify its `axisFill`\r\n * property accordingly.\r\n */\r\n DateAxis.prototype.fillRule = function (dataItem) {\r\n var value = dataItem.value;\r\n var axis = dataItem.component;\r\n var gridInterval = axis._gridInterval;\r\n var gridDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n if (Math.round((value - axis.min) / gridDuration) / 2 == Math.round(Math.round((value - axis.min) / gridDuration) / 2)) {\r\n dataItem.axisFill.__disabled = true;\r\n }\r\n else {\r\n dataItem.axisFill.__disabled = false;\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n DateAxis.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Set default date formats\r\n if (!this.dateFormats.hasKey(\"millisecond\")) {\r\n this.dateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"second\")) {\r\n this.dateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"minute\")) {\r\n this.dateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"hour\")) {\r\n this.dateFormats.setKey(\"hour\", this.language.translate(\"_date_hour\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"day\")) {\r\n this.dateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"week\")) {\r\n this.dateFormats.setKey(\"week\", this.language.translate(\"_date_day\")); // not a mistake\r\n }\r\n if (!this.dateFormats.hasKey(\"month\")) {\r\n this.dateFormats.setKey(\"month\", this.language.translate(\"_date_month\"));\r\n }\r\n if (!this.dateFormats.hasKey(\"year\")) {\r\n this.dateFormats.setKey(\"year\", this.language.translate(\"_date_year\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"millisecond\")) {\r\n this.periodChangeDateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"second\")) {\r\n this.periodChangeDateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"minute\")) {\r\n this.periodChangeDateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"hour\")) {\r\n this.periodChangeDateFormats.setKey(\"hour\", this.language.translate(\"_date_day\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"day\")) {\r\n this.periodChangeDateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"week\")) {\r\n this.periodChangeDateFormats.setKey(\"week\", this.language.translate(\"_date_day\"));\r\n }\r\n if (!this.periodChangeDateFormats.hasKey(\"month\")) {\r\n this.periodChangeDateFormats.setKey(\"month\", this.language.translate(\"_date_month\") + \" \" + this.language.translate(\"_date_year\"));\r\n }\r\n };\r\n /**\r\n * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n DateAxis.prototype.createDataItem = function () {\r\n return new DateAxisDataItem();\r\n };\r\n /**\r\n * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n *\r\n * @return Axis break\r\n */\r\n DateAxis.prototype.createAxisBreak = function () {\r\n return new DateAxisBreak();\r\n };\r\n /**\r\n * Validates Axis' data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.validateDataItems = function () {\r\n // allows to keep selection of the same size\r\n var start = this.start;\r\n var end = this.end;\r\n var baseDuration = this.baseDuration;\r\n var periodCount = (this.max - this.min) / baseDuration;\r\n this._firstWeekDay = this.getFirstWeekDay();\r\n this.getDFFormatter();\r\n _super.prototype.validateDataItems.call(this);\r\n var mainBaseDuration = $time.getDuration(this.mainBaseInterval.timeUnit, this.mainBaseInterval.count);\r\n this.maxZoomFactor = Math.max(1, (this.max - this.min) / mainBaseDuration);\r\n this._deltaMinMax = this.baseDuration / 2;\r\n // allows to keep selection of the same size\r\n var newPeriodCount = (this.max - this.min) / baseDuration;\r\n start = start + (end - start) * (1 - periodCount / newPeriodCount);\r\n this.zoom({ start: start, end: end }, false, true); // added instantlyto solve zoomout problem when we have axes gaps. @todo: check how this affects maxZoomFactor\r\n };\r\n /**\r\n * Handles process after zoom.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Does nothing?\r\n */\r\n DateAxis.prototype.handleSelectionExtremesChange = function () {\r\n };\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.getIntervalMax = function (interval) {\r\n return this._intervalMax[interval.timeUnit + interval.count];\r\n };\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.getIntervalMin = function (interval) {\r\n return this._intervalMin[interval.timeUnit + interval.count];\r\n };\r\n /**\r\n * Calculates all positions, related to axis as per current zoom.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.calculateZoom = function () {\r\n var _this = this;\r\n _super.prototype.calculateZoom.call(this);\r\n var difference = this.adjustDifference(this._minZoomed, this._maxZoomed);\r\n var dataSetChanged = false;\r\n // if data has to be grouped, choose interval and set dataset\r\n if (this.groupData && $type.hasValue(difference)) {\r\n var mainBaseInterval = this.mainBaseInterval;\r\n var min = this.getIntervalMin(mainBaseInterval);\r\n var max = this.getIntervalMax(mainBaseInterval);\r\n var selectionMin = min + (max - min) * this.start;\r\n var selectionMax = min + (max - min) * this.end;\r\n var diff = this.adjustDifference(selectionMin, selectionMax);\r\n var modifiedDifference = diff + (this.startLocation + (1 - this.endLocation)) * this.baseDuration;\r\n var groupInterval = void 0;\r\n if (this.groupInterval) {\r\n groupInterval = __assign({}, this.groupInterval);\r\n }\r\n else {\r\n groupInterval = this.chooseInterval(0, modifiedDifference, this.groupCount, this.groupIntervals);\r\n if ($time.getDuration(groupInterval.timeUnit, groupInterval.count) < $time.getDuration(mainBaseInterval.timeUnit, mainBaseInterval.count)) {\r\n groupInterval = __assign({}, mainBaseInterval);\r\n }\r\n }\r\n this._groupInterval = groupInterval;\r\n var newId = groupInterval.timeUnit + groupInterval.count;\r\n if (this._currentDataSetId != newId) {\r\n this._currentDataSetId = newId;\r\n this.dispatch(\"groupperiodchanged\");\r\n }\r\n this.series.each(function (series) {\r\n if (series.baseAxis == _this) {\r\n if (series.setDataSet(_this._currentDataSetId)) {\r\n dataSetChanged = true;\r\n }\r\n }\r\n });\r\n }\r\n var gridInterval = this.chooseInterval(0, difference, this._gridCount);\r\n if ($time.getDuration(gridInterval.timeUnit, gridInterval.count) < this.baseDuration) {\r\n gridInterval = __assign({}, this.baseInterval);\r\n }\r\n this._gridInterval = gridInterval;\r\n this._nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n // the following is needed to avoid grid flickering while scrolling\r\n this._intervalDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n this._gridDate = $time.round(new Date(this.minZoomed - $time.getDuration(gridInterval.timeUnit, gridInterval.count)), gridInterval.timeUnit, gridInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min), this._df.timezoneMinutes, this._df.timezone);\r\n // tell series start/end\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (series.baseAxis == _this) {\r\n var field_1 = series.getAxisField(_this);\r\n var minZoomed = $time.round(new Date(_this._minZoomed + _this.baseDuration * 0.05), _this.baseInterval.timeUnit, _this.baseInterval.count, _this._firstWeekDay, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone).getTime();\r\n var minZoomedStr = minZoomed.toString();\r\n var startDataItem = series.dataItemsByAxis.getKey(_this.uid).getKey(minZoomedStr + series.currentDataSetId);\r\n var startIndex = 0;\r\n if (_this.start != 0) {\r\n if (startDataItem) {\r\n startDataItem = _this.findFirst(startDataItem, minZoomed, field_1);\r\n startIndex = startDataItem.index;\r\n }\r\n else {\r\n startIndex = series.dataItems.findClosestIndex(_this._minZoomed, function (x) { return x[field_1]; }, \"left\");\r\n }\r\n }\r\n // 1 millisecond is removed so that if only first item is selected, it would not count in the second.\r\n var baseInterval = _this.baseInterval;\r\n var maxZoomed = $time.add($time.round(new Date(_this._maxZoomed), baseInterval.timeUnit, baseInterval.count, _this._firstWeekDay, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone), baseInterval.timeUnit, baseInterval.count, _this._df.utc).getTime();\r\n var maxZoomedStr = maxZoomed.toString();\r\n var endDataItem = series.dataItemsByAxis.getKey(_this.uid).getKey(maxZoomedStr + series.currentDataSetId);\r\n var endIndex = series.dataItems.length;\r\n if (_this.end != 1) {\r\n if (endDataItem) {\r\n endIndex = endDataItem.index;\r\n }\r\n else {\r\n maxZoomed -= 1;\r\n endIndex = series.dataItems.findClosestIndex(maxZoomed, function (x) { return x[field_1]; }, \"right\");\r\n // not good - if end is in the gap, indexes go like 5,4,3,4,2,1\r\n //if (endIndex < series.dataItems.length) {\r\n endIndex++;\r\n //}\r\n }\r\n }\r\n if (series.max(_this) < minZoomed) {\r\n series.startIndex = series.dataItems.length;\r\n series.endIndex = series.dataItems.length;\r\n series.outOfRange = true;\r\n }\r\n else if (series.min(_this) > maxZoomed) {\r\n series.startIndex = 0;\r\n series.endIndex = 0;\r\n series.outOfRange = true;\r\n }\r\n else {\r\n series.outOfRange = false;\r\n series.startIndex = startIndex;\r\n series.endIndex = endIndex;\r\n }\r\n //\tconsole.log(series.name, startIndex, endIndex);\r\n if (!dataSetChanged && series.dataRangeInvalid) {\r\n series.validateDataRange();\r\n }\r\n }\r\n });\r\n };\r\n DateAxis.prototype.findFirst = function (dataItem, time, key) {\r\n var index = dataItem.index;\r\n if (index > 0) {\r\n var series = dataItem.component;\r\n var previousDataItem = series.dataItems.getIndex(index - 1);\r\n var previousDate = previousDataItem[key];\r\n if (!previousDate || previousDate.getTime() < time) {\r\n return dataItem;\r\n }\r\n else {\r\n return this.findFirst(previousDataItem, time, key);\r\n }\r\n }\r\n else {\r\n return dataItem;\r\n }\r\n };\r\n /**\r\n * (Re)validates data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.validateData = function () {\r\n _super.prototype.validateData.call(this);\r\n if (!$type.isNumber(this.baseInterval.count)) {\r\n this.baseInterval.count = 1;\r\n }\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"minDifference\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n var _this = this;\r\n var minDifference = Number.MAX_VALUE;\r\n this.series.each(function (series) {\r\n if (minDifference > _this._minDifference[series.uid]) {\r\n minDifference = _this._minDifference[series.uid];\r\n }\r\n });\r\n if (minDifference == Number.MAX_VALUE || minDifference == 0) {\r\n minDifference = $time.getDuration(\"day\");\r\n }\r\n return minDifference;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [dataChangeUpdate description]\r\n *\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n DateAxis.prototype.seriesDataChangeUpdate = function (series) {\r\n this._minDifference[series.uid] = Number.MAX_VALUE;\r\n };\r\n /**\r\n * [postProcessSeriesDataItems description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n DateAxis.prototype.postProcessSeriesDataItems = function (series) {\r\n var _this = this;\r\n this._firstWeekDay = this.getFirstWeekDay();\r\n if (series) {\r\n this.seriesGroupUpdate(series);\r\n }\r\n else {\r\n this.series.each(function (series) {\r\n _this.seriesGroupUpdate(series);\r\n });\r\n }\r\n this.addEmptyUnitsBreaks();\r\n };\r\n DateAxis.prototype.seriesGroupUpdate = function (series) {\r\n var _this = this;\r\n if (JSON.stringify(series._baseInterval[this.uid]) != JSON.stringify(this.mainBaseInterval)) {\r\n series._baseInterval[this.uid] = this.mainBaseInterval;\r\n series.mainDataSet.each(function (dataItem) {\r\n _this.postProcessSeriesDataItem(dataItem);\r\n });\r\n if (this.groupData) {\r\n this.groupSeriesData(series);\r\n }\r\n }\r\n };\r\n /**\r\n * Calculates series group data.\r\n *\r\n * @param series Series\r\n * @ignore\r\n */\r\n DateAxis.prototype.groupSeriesData = function (series) {\r\n var _this = this;\r\n if (series.baseAxis == this && series.dataItems.length > 0 && !series.dataGrouped) {\r\n series.bulletsContainer.removeChildren();\r\n // make array of intervals which will be used;\r\n var intervals_1 = [];\r\n var mainBaseInterval = this.mainBaseInterval;\r\n var mainIntervalDuration_1 = $time.getDuration(mainBaseInterval.timeUnit, mainBaseInterval.count);\r\n this.groupIntervals.each(function (interval) {\r\n var intervalDuration = $time.getDuration(interval.timeUnit, interval.count);\r\n if ((intervalDuration > mainIntervalDuration_1 && intervalDuration < (_this.max - _this.min)) || _this.groupInterval) {\r\n intervals_1.push(interval);\r\n }\r\n });\r\n if (series._dataSets) {\r\n series._dataSets.each(function (key, dataItems) {\r\n dataItems.each(function (dataItem) {\r\n dataItem.dispose();\r\n });\r\n dataItems.clear();\r\n });\r\n series._dataSets.clear();\r\n }\r\n series.dataGrouped = true;\r\n $array.each(intervals_1, function (interval) {\r\n //let mainBaseInterval = this._mainBaseInterval;\r\n var key = \"date\" + _this.axisLetter;\r\n // create data set\r\n var dataSetId = interval.timeUnit + interval.count;\r\n // todo: check where this clone goes\r\n var dataSet = new OrderedListTemplate(series.mainDataSet.template.clone());\r\n series.dataSets.setKey(dataSetId, dataSet);\r\n var dataItems = series.mainDataSet;\r\n var previousTime = Number.NEGATIVE_INFINITY;\r\n var i = 0;\r\n var newDataItem;\r\n var dataFields = [];\r\n $object.each(series.dataFields, function (dfkey, df) {\r\n var dfk = dfkey;\r\n if (dfk != key && dfk.indexOf(\"Show\") == -1) {\r\n dataFields.push(dfk);\r\n }\r\n });\r\n var roundedDate;\r\n dataItems.each(function (dataItem) {\r\n var date = dataItem.getDate(key);\r\n if (date) {\r\n var time = date.getTime();\r\n roundedDate = $time.round(new Date(time), interval.timeUnit, interval.count, _this._df.firstDayOfWeek, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone);\r\n var currentTime = roundedDate.getTime();\r\n // changed period\t\t\t\t\t\t\t\t\r\n if (previousTime < currentTime) {\r\n if (newDataItem && series._adapterO) {\r\n $array.each(dataFields, function (vkey) {\r\n newDataItem.values[vkey].value = series._adapterO.apply(\"groupDataItem\", {\r\n dataItem: newDataItem,\r\n interval: interval,\r\n dataField: vkey,\r\n date: roundedDate,\r\n value: newDataItem.values[vkey].value\r\n }).value;\r\n newDataItem.values[vkey].workingValue = newDataItem.values[vkey].value;\r\n });\r\n }\r\n newDataItem = dataSet.create();\r\n newDataItem.dataContext = {};\r\n newDataItem.setWorkingLocation(\"dateX\", series.dataItems.template.locations.dateX, 0);\r\n newDataItem.setWorkingLocation(\"openDateX\", series.dataItems.template.locations.openDateX, 0);\r\n newDataItem.setWorkingLocation(\"dateY\", series.dataItems.template.locations.dateY, 0);\r\n newDataItem.setWorkingLocation(\"openDateY\", series.dataItems.template.locations.openDateY, 0);\r\n newDataItem.component = series;\r\n // other Dates?\r\n newDataItem.setDate(key, roundedDate);\r\n newDataItem._index = i;\r\n i++;\r\n $array.each(dataFields, function (vkey) {\r\n //let groupFieldName = vkey + \"Group\";\r\n var dvalues = dataItem.values[vkey];\r\n if (dvalues) {\r\n var value = dvalues.value;\r\n if (series._adapterO) {\r\n value = series._adapterO.apply(\"groupValue\", {\r\n dataItem: dataItem,\r\n interval: interval,\r\n dataField: vkey,\r\n date: roundedDate,\r\n value: value\r\n }).value;\r\n }\r\n var values = newDataItem.values[vkey];\r\n if ($type.isNumber(value)) {\r\n values.value = value;\r\n values.workingValue = value;\r\n values.open = value;\r\n values.close = value;\r\n values.low = value;\r\n values.high = value;\r\n values.sum = value;\r\n values.average = value;\r\n values.count = 1;\r\n }\r\n else {\r\n values.count = 0;\r\n }\r\n }\r\n });\r\n _this.postProcessSeriesDataItem(newDataItem, interval);\r\n $object.each(series.propertyFields, function (key, fieldValue) {\r\n var f = key;\r\n var value = dataItem.properties[key];\r\n if ($type.hasValue(value)) {\r\n newDataItem.hasProperties = true;\r\n newDataItem.setProperty(f, value);\r\n }\r\n });\r\n newDataItem.groupDataItems = [dataItem];\r\n previousTime = currentTime;\r\n }\r\n else {\r\n if (newDataItem) {\r\n $array.each(dataFields, function (vkey) {\r\n var groupFieldName = series.groupFields[vkey];\r\n var dvalues = dataItem.values[vkey];\r\n if (dvalues) {\r\n var value = dvalues.value;\r\n if (series._adapterO) {\r\n value = series._adapterO.apply(\"groupValue\", {\r\n dataItem: dataItem,\r\n interval: interval,\r\n dataField: vkey,\r\n date: roundedDate,\r\n value: value\r\n }).value;\r\n }\r\n if ($type.isNumber(value)) {\r\n var values = newDataItem.values[vkey];\r\n if (!$type.isNumber(values.open)) {\r\n values.open = value;\r\n }\r\n values.close = value;\r\n if (values.low > value || !$type.isNumber(values.low)) {\r\n values.low = value;\r\n }\r\n if (values.high < value || !$type.isNumber(values.high)) {\r\n values.high = value;\r\n }\r\n if ($type.isNumber(values.sum)) {\r\n values.sum += value;\r\n }\r\n else {\r\n values.sum = value;\r\n }\r\n values.count++;\r\n values.average = values.sum / values.count;\r\n if ($type.isNumber(values[groupFieldName])) {\r\n values.value = values[groupFieldName];\r\n values.workingValue = values.value;\r\n }\r\n }\r\n }\r\n });\r\n $utils.copyProperties(dataItem.properties, newDataItem.properties);\r\n $object.each(series.propertyFields, function (key, fieldValue) {\r\n var f = key;\r\n var value = dataItem.properties[key];\r\n if ($type.hasValue(value)) {\r\n newDataItem.hasProperties = true;\r\n newDataItem.setProperty(f, value);\r\n }\r\n });\r\n newDataItem.groupDataItems.push(dataItem);\r\n }\r\n }\r\n }\r\n if (newDataItem) {\r\n $utils.copyProperties(dataItem.dataContext, newDataItem.dataContext);\r\n }\r\n });\r\n if (newDataItem && series._adapterO) {\r\n $array.each(dataFields, function (vkey) {\r\n newDataItem.values[vkey].value = series._adapterO.apply(\"groupDataItem\", {\r\n dataItem: newDataItem,\r\n interval: interval,\r\n dataField: vkey,\r\n date: roundedDate,\r\n value: newDataItem.values[vkey].value\r\n }).value;\r\n newDataItem.values[vkey].workingValue = newDataItem.values[vkey].value;\r\n });\r\n }\r\n });\r\n this.calculateZoom();\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.getDFFormatter = function () {\r\n this._df = this.dateFormatter;\r\n };\r\n /**\r\n * [postProcessSeriesDataItem description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem Data item\r\n */\r\n DateAxis.prototype.postProcessSeriesDataItem = function (dataItem, interval) {\r\n var _this = this;\r\n // we need to do this for all series data items not only added recently, as baseInterval might change\r\n var intervalID = \"\";\r\n if (interval) {\r\n intervalID = interval.timeUnit + interval.count;\r\n }\r\n else {\r\n interval = this.mainBaseInterval;\r\n }\r\n var series = dataItem.component;\r\n var dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n $object.each(dataItem.dates, function (key) {\r\n var date = dataItem.getDate(key);\r\n var time = date.getTime();\r\n var startDate = $time.round(new Date(time), interval.timeUnit, interval.count, _this._firstWeekDay, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone);\r\n var startTime = startDate.getTime();\r\n var endDate = $time.add(new Date(startTime), interval.timeUnit, interval.count, _this._df.utc);\r\n dataItem.setCalculatedValue(key, startTime, \"open\");\r\n dataItem.setCalculatedValue(key, endDate.getTime(), \"close\");\r\n dataItemsByAxis.setKey(startTime + intervalID, dataItem);\r\n });\r\n };\r\n /**\r\n * Collapses empty stretches of date/time scale by creating [[AxisBreak]]\r\n * elements for them.\r\n *\r\n * Can be used to automatically remove strethes without data, like weekends.\r\n *\r\n * No, need to call this manually. It will automatically be done if\r\n * `skipEmptyPeriods = true`.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.addEmptyUnitsBreaks = function () {\r\n var _this = this;\r\n if (this.skipEmptyPeriods && $type.isNumber(this.min) && $type.isNumber(this.max)) {\r\n var timeUnit = this.baseInterval.timeUnit;\r\n var count = this.baseInterval.count;\r\n if (this._axisBreaks) {\r\n this._axisBreaks.clear(); // TODO: what about breaks added by user?\r\n }\r\n var date = $time.round(new Date(this.min), timeUnit, count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n var axisBreak = void 0;\r\n var _loop_1 = function () {\r\n $time.add(date, timeUnit, count, this_1._df.utc);\r\n var startTime = date.getTime();\r\n var startTimeStr = startTime.toString();\r\n var hasData = $iter.contains(this_1.series.iterator(), function (series) {\r\n return !!series.dataItemsByAxis.getKey(_this.uid).getKey(startTimeStr + series.currentDataSetId);\r\n });\r\n // open break if not yet opened\r\n if (!hasData) {\r\n if (!axisBreak) {\r\n axisBreak = this_1.axisBreaks.create();\r\n axisBreak.startDate = new Date(startTime);\r\n this_1._gapBreaks = true;\r\n }\r\n }\r\n else {\r\n // close if already opened\r\n if (axisBreak) {\r\n // close at end time minus one millisecond\r\n axisBreak.endDate = new Date(startTime - 1);\r\n axisBreak = undefined;\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n while (date.getTime() < this.max - this.baseDuration) {\r\n _loop_1();\r\n }\r\n }\r\n };\r\n /**\r\n * Updates positioning of Axis breaks after something changes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.fixAxisBreaks = function () {\r\n var _this = this;\r\n _super.prototype.fixAxisBreaks.call(this);\r\n var axisBreaks = this._axisBreaks;\r\n if (axisBreaks) {\r\n if (axisBreaks.length > 0) {\r\n // process breaks\r\n axisBreaks.each(function (axisBreak) {\r\n var breakGridCount = Math.ceil(_this._gridCount * (Math.min(_this.end, axisBreak.endPosition) - Math.max(_this.start, axisBreak.startPosition)) / (_this.end - _this.start));\r\n axisBreak.gridInterval = _this.chooseInterval(0, axisBreak.adjustedEndValue - axisBreak.adjustedStartValue, breakGridCount);\r\n var gridDate = $time.round(new Date(axisBreak.adjustedStartValue), axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, _this._firstWeekDay, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone);\r\n if (gridDate.getTime() > axisBreak.startDate.getTime()) {\r\n $time.add(gridDate, axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, _this._df.utc);\r\n }\r\n axisBreak.gridDate = gridDate;\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.getFirstWeekDay = function () {\r\n if (this._df) {\r\n return this._df.firstDayOfWeek;\r\n }\r\n return 1;\r\n };\r\n /**\r\n * [getGridDate description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param date [description]\r\n * @param intervalCount [description]\r\n * @return [description]\r\n */\r\n DateAxis.prototype.getGridDate = function (date, intervalCount) {\r\n var timeUnit = this._gridInterval.timeUnit;\r\n var realIntervalCount = this._gridInterval.count;\r\n // round date\r\n $time.round(date, timeUnit, 1, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n var prevTimestamp = date.getTime();\r\n var newDate = $time.copy(date);\r\n // modify date by adding intervalcount\r\n var timestamp = $time.add(newDate, timeUnit, intervalCount, this._df.utc).getTime();\r\n // if it's axis break, get first rounded date which is not in a break\r\n var axisBreak = this.isInBreak(timestamp);\r\n if (axisBreak && axisBreak.endDate) {\r\n newDate = new Date(axisBreak.endDate.getTime());\r\n $time.round(newDate, timeUnit, realIntervalCount, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n if (newDate.getTime() < axisBreak.endDate.getTime()) {\r\n $time.add(newDate, timeUnit, realIntervalCount, this._df.utc);\r\n }\r\n timestamp = newDate.getTime();\r\n }\r\n // get duration between grid lines with break duration removed\r\n var durationBreaksRemoved = this.adjustDifference(prevTimestamp, timestamp);\r\n // calculate how many time units fit to this duration\r\n var countBreaksRemoved = Math.round(durationBreaksRemoved / $time.getDuration(timeUnit));\r\n // if less units fit, add one and repeat\r\n if (countBreaksRemoved < realIntervalCount) {\r\n return this.getGridDate(date, intervalCount + realIntervalCount);\r\n }\r\n return newDate;\r\n };\r\n /**\r\n * [getBreaklessDate description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param axisBreak [description]\r\n * @param timeUnit [description]\r\n * @param count [description]\r\n * @return [description]\r\n */\r\n DateAxis.prototype.getBreaklessDate = function (axisBreak, timeUnit, count) {\r\n var date = new Date(axisBreak.endValue);\r\n $time.round(date, timeUnit, count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n $time.add(date, timeUnit, count, this._df.utc);\r\n var timestamp = date.getTime();\r\n axisBreak = this.isInBreak(timestamp);\r\n if (axisBreak) {\r\n return this.getBreaklessDate(axisBreak, timeUnit, count);\r\n }\r\n return date;\r\n };\r\n /**\r\n * (Re)validates all Axis elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n */\r\n DateAxis.prototype.validateAxisElements = function () {\r\n var _this = this;\r\n if ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n this.calculateZoom();\r\n // first regular items\r\n var timestamp = this._gridDate.getTime();\r\n var timeUnit = this._gridInterval.timeUnit;\r\n var intervalCount = this._gridInterval.count;\r\n var prevGridDate = $time.copy(this._gridDate);\r\n var dataItemsIterator_1 = this._dataItemsIterator;\r\n this.resetIterators();\r\n var _loop_2 = function () {\r\n var date = this_2.getGridDate($time.copy(prevGridDate), intervalCount);\r\n timestamp = date.getTime();\r\n var endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n endDate = $time.add(endDate, timeUnit, intervalCount, this_2._df.utc);\r\n var format = this_2.dateFormats.getKey(timeUnit);\r\n if (this_2.markUnitChange && prevGridDate) {\r\n if ($time.checkChange(date, prevGridDate, this_2._nextGridUnit, this_2._df.utc)) {\r\n if (timeUnit !== \"year\") {\r\n format = this_2.periodChangeDateFormats.getKey(timeUnit);\r\n }\r\n }\r\n }\r\n var text = this_2._df.format(date, format);\r\n var dataItem = dataItemsIterator_1.find(function (x) { return x.text === text; });\r\n if (dataItem.__disabled) {\r\n dataItem.__disabled = false;\r\n }\r\n this_2.appendDataItem(dataItem);\r\n dataItem.axisBreak = undefined;\r\n dataItem.date = date;\r\n dataItem.endDate = endDate;\r\n dataItem.text = text;\r\n this_2.validateDataElement(dataItem);\r\n prevGridDate = date;\r\n };\r\n var this_2 = this;\r\n while (timestamp <= this._maxZoomed) {\r\n _loop_2();\r\n }\r\n // breaks later\r\n var renderer_1 = this.renderer;\r\n if (this._axisBreaks) {\r\n $iter.each(this._axisBreaks.iterator(), function (axisBreak) {\r\n if (axisBreak.breakSize > 0) {\r\n var timeUnit_1 = axisBreak.gridInterval.timeUnit;\r\n var intervalCount_1 = axisBreak.gridInterval.count;\r\n // only add grid if gap is bigger then minGridDistance\r\n if ($math.getDistance(axisBreak.startPoint, axisBreak.endPoint) > renderer_1.minGridDistance * 4) {\r\n var timestamp_1 = axisBreak.gridDate.getTime();\r\n var prevGridDate_1;\r\n var count = 0;\r\n var _loop_3 = function () {\r\n var date = $time.copy(axisBreak.gridDate);\r\n timestamp_1 = $time.add(date, timeUnit_1, intervalCount_1 * count, _this._df.utc).getTime();\r\n count++;\r\n if (timestamp_1 > axisBreak.adjustedStartValue && timestamp_1 < axisBreak.adjustedEndValue) {\r\n var endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n endDate = $time.add(endDate, timeUnit_1, intervalCount_1, _this._df.utc);\r\n var format = _this.dateFormats.getKey(timeUnit_1);\r\n if (_this.markUnitChange && prevGridDate_1) {\r\n if ($time.checkChange(date, prevGridDate_1, _this._nextGridUnit, _this._df.utc)) {\r\n if (timeUnit_1 !== \"year\") {\r\n format = _this.periodChangeDateFormats.getKey(timeUnit_1);\r\n }\r\n }\r\n }\r\n var text_1 = _this._df.format(date, format);\r\n var dataItem = dataItemsIterator_1.find(function (x) { return x.text === text_1; });\r\n if (dataItem.__disabled) {\r\n dataItem.__disabled = false;\r\n }\r\n //this.processDataItem(dataItem);\r\n _this.appendDataItem(dataItem);\r\n dataItem.axisBreak = axisBreak;\r\n axisBreak.dataItems.moveValue(dataItem);\r\n dataItem.date = date;\r\n dataItem.endDate = endDate;\r\n dataItem.text = text_1;\r\n prevGridDate_1 = date;\r\n _this.validateDataElement(dataItem);\r\n }\r\n };\r\n while (timestamp_1 <= axisBreak.adjustedMax) {\r\n _loop_3();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Validates Axis data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n DateAxis.prototype.validateDataElement = function (dataItem) {\r\n dataItem.itemIndex = this._axisItemCount;\r\n this._axisItemCount++;\r\n if ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n var renderer = this.renderer;\r\n var timestamp = dataItem.value;\r\n var endTimestamp = dataItem.endValue;\r\n if (!$type.isNumber(endTimestamp)) {\r\n endTimestamp = timestamp;\r\n }\r\n var position = this.valueToPosition(timestamp);\r\n var endPosition = this.valueToPosition(endTimestamp);\r\n var fillEndPosition = endPosition;\r\n if (!dataItem.isRange && this._gridInterval.count > this.baseInterval.count) {\r\n endPosition = position + (endPosition - position) / (this._gridInterval.count / this.baseInterval.count);\r\n }\r\n dataItem.position = position;\r\n var tick = dataItem.tick;\r\n if (tick && !tick.disabled) {\r\n renderer.updateTickElement(tick, position, endPosition);\r\n }\r\n var grid = dataItem.grid;\r\n if (grid && !grid.disabled) {\r\n renderer.updateGridElement(grid, position, endPosition);\r\n }\r\n var fill = dataItem.axisFill;\r\n if (fill && !fill.disabled) {\r\n renderer.updateFillElement(fill, position, fillEndPosition);\r\n if (!dataItem.isRange) {\r\n this.fillRule(dataItem);\r\n }\r\n }\r\n var mask = dataItem.mask;\r\n if (mask) {\r\n renderer.updateFillElement(mask, position, endPosition);\r\n }\r\n if (dataItem.bullet) {\r\n renderer.updateBullet(dataItem.bullet, position, endPosition);\r\n }\r\n var label = dataItem.label;\r\n if (label && !label.disabled) {\r\n var location_1 = label.location;\r\n if (location_1 == 0) {\r\n if (this._gridInterval.count == 1 && this._gridInterval.timeUnit != \"week\" && !dataItem.isRange) {\r\n location_1 = 0.5;\r\n }\r\n else {\r\n location_1 = 0;\r\n }\r\n }\r\n renderer.updateLabelElement(label, position, endPosition, location_1);\r\n }\r\n }\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"baseDuration\", {\r\n /**\r\n * A duration in milliseconds of the `baseInterval`.\r\n *\r\n * @return Duration (ms)\r\n */\r\n get: function () {\r\n return $time.getDuration(this.baseInterval.timeUnit, this.baseInterval.count);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adjusts min/max values.\r\n *\r\n * @ignore Exclude from docs.\r\n * @todo Description (review)\r\n * @param min Min timestamp\r\n * @param max Max timestamp\r\n * @return Adjusted min/max step\r\n */\r\n DateAxis.prototype.adjustMinMax = function (min, max) {\r\n return { min: min, max: max, step: this.baseDuration };\r\n };\r\n /**\r\n * Adjusts the minimum timestamp as per cell start location.\r\n *\r\n * @param value Value\r\n * @return Adjusted value\r\n */\r\n DateAxis.prototype.fixMin = function (value) {\r\n // like this because months are not equal\r\n var interval = this.baseInterval;\r\n var startTime = $time.round(new Date(value), interval.timeUnit, interval.count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone).getTime();\r\n var endTime = $time.add(new Date(startTime), interval.timeUnit, interval.count, this._df.utc).getTime();\r\n return startTime + (endTime - startTime) * this.startLocation;\r\n };\r\n /**\r\n * Adjusts the maximum timestamp as per cell start location.\r\n *\r\n * @param value Value\r\n * @return Adjusted value\r\n */\r\n DateAxis.prototype.fixMax = function (value) {\r\n // like this because months are not equal\r\n var interval = this.baseInterval;\r\n var startTime = $time.round(new Date(value), interval.timeUnit, interval.count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone).getTime();\r\n var endTime = $time.add(new Date(startTime), interval.timeUnit, interval.count, this._df.utc).getTime();\r\n return startTime + (endTime - startTime) * this.endLocation;\r\n };\r\n /**\r\n * [chooseInterval description]\r\n *\r\n * @ignore Exclude from docs.\r\n * @todo Description\r\n * @param index [description]\r\n * @param duration [description]\r\n * @param gridCount [description]\r\n * @return [description]\r\n */\r\n DateAxis.prototype.chooseInterval = function (index, duration, gridCount, intervals) {\r\n if (!intervals) {\r\n intervals = this.gridIntervals;\r\n }\r\n var gridInterval = intervals.getIndex(index);\r\n var intervalDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n var lastIndex = intervals.length - 1;\r\n if (index >= lastIndex) {\r\n return __assign({}, intervals.getIndex(lastIndex));\r\n }\r\n var count = Math.ceil(duration / intervalDuration);\r\n if (duration < intervalDuration && index > 0) {\r\n return __assign({}, intervals.getIndex(index - 1));\r\n }\r\n if (count <= gridCount) {\r\n return __assign({}, intervals.getIndex(index));\r\n }\r\n else {\r\n if (index + 1 < intervals.length) {\r\n return this.chooseInterval(index + 1, duration, gridCount, intervals);\r\n }\r\n else {\r\n return __assign({}, intervals.getIndex(index));\r\n }\r\n }\r\n };\r\n /**\r\n * Formats the value according to axis' own [[DateFormatter]].\r\n *\r\n * @param value Source value\r\n * @return Formatted value\r\n */\r\n DateAxis.prototype.formatLabel = function (value) {\r\n return this._df.format(value);\r\n };\r\n /**\r\n * Converts a Date to an asbolute pixel position within Axis.\r\n *\r\n * @param date Date\r\n * @return Position (px)\r\n */\r\n DateAxis.prototype.dateToPosition = function (date) {\r\n return this.valueToPosition(date.getTime());\r\n };\r\n /**\r\n * Converts a numeric timestamp or a `Date` to a relative position on axis.\r\n *\r\n * @param date Date or a timestamp\r\n * @return Relative position\r\n */\r\n DateAxis.prototype.anyToPosition = function (date) {\r\n if (date instanceof Date) {\r\n return this.dateToPosition(date);\r\n }\r\n else {\r\n return this.valueToPosition(date);\r\n }\r\n };\r\n /**\r\n * Converts date to orientation point (x, y, angle) on axis\r\n *\r\n * @param date Date\r\n * @return IOrientationPoint\r\n */\r\n DateAxis.prototype.dateToPoint = function (date) {\r\n var position = this.dateToPosition(date);\r\n var point = this.renderer.positionToPoint(position);\r\n var angle = this.renderer.positionToAngle(position);\r\n return { x: point.x, y: point.y, angle: angle };\r\n };\r\n /**\r\n * Converts a numeric value to orientation (x, y, angle) point on axis\r\n *\r\n * @param value Value\r\n * @return Orientation point\r\n */\r\n DateAxis.prototype.anyToPoint = function (date) {\r\n if (date instanceof Date) {\r\n return this.dateToPoint(date);\r\n }\r\n else {\r\n return this.valueToPoint(date);\r\n }\r\n };\r\n /**\r\n * Converts pixel position within Axis to a corresponding Date.\r\n *\r\n * @param position Position (px)\r\n * @return Date\r\n */\r\n DateAxis.prototype.positionToDate = function (position) {\r\n return new Date(this.positionToValue(position));\r\n };\r\n /**\r\n * Returns the relative position on axis for series' data item's value.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @return Relative position\r\n */\r\n DateAxis.prototype.getPositionX = function (dataItem, key, location, stackKey, range) {\r\n var value = this.getTimeByLocation(dataItem, key, location);\r\n //let stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n }\r\n var position = this.valueToPosition(value);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns relative position on axis for series' data item's value.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @return Relative position\r\n */\r\n DateAxis.prototype.getPositionY = function (dataItem, key, location, stackKey, range) {\r\n var value = this.getTimeByLocation(dataItem, key, location);\r\n var stack = dataItem.getValue(\"valueX\", \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n }\r\n var position = this.valueToPosition(value + stack);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns an angle for series data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Data field to get value from\r\n * @param location Location (0-1)\r\n * @param stackKey Stack ID\r\n * @param range Range to fit in\r\n * @return Angle\r\n */\r\n DateAxis.prototype.getAngle = function (dataItem, key, location, stackKey, range) {\r\n var value = this.getTimeByLocation(dataItem, key, location);\r\n var stack = dataItem.getValue(stackKey, \"stack\");\r\n if (!$type.isNumber(value)) {\r\n value = this.baseValue;\r\n }\r\n var position = this.valueToPosition(value + stack);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return this.positionToAngle(position);\r\n };\r\n /**\r\n * [getTimeByLocation description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem [description]\r\n * @param key [description]\r\n * @param location [description]\r\n * @return [description]\r\n */\r\n DateAxis.prototype.getTimeByLocation = function (dataItem, key, location) {\r\n if (!$type.hasValue(key)) {\r\n return;\r\n }\r\n if (!$type.isNumber(location)) {\r\n location = dataItem.workingLocations[key];\r\n if (!$type.isNumber(location)) {\r\n location = 0;\r\n }\r\n }\r\n var startTime = dataItem.values[key][\"open\"];\r\n var endTime = dataItem.values[key][\"close\"];\r\n var workingValue = dataItem.values[key].workingValue;\r\n var value = dataItem.values[key].value;\r\n var difference = value - workingValue;\r\n startTime -= difference;\r\n endTime -= difference;\r\n if ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n return startTime + (endTime - startTime) * location;\r\n }\r\n };\r\n /**\r\n * Processes a related series' data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem Data item\r\n */\r\n DateAxis.prototype.processSeriesDataItem = function (dataItem, axisLetter) {\r\n var series = dataItem.component;\r\n var time;\r\n var date = dataItem[\"date\" + axisLetter];\r\n if ($type.isNumber(this.timezoneOffset)) {\r\n date.setTime(date.getTime() + (date.getTimezoneOffset() - this.timezoneOffset) * 60000);\r\n dataItem.setValue(\"date\" + axisLetter, date.getTime(), 0);\r\n }\r\n else if ($type.hasValue(this.timezone)) {\r\n date = $time.setTimezone(date, this.timezone);\r\n dataItem.setValue(\"date\" + axisLetter, date.getTime(), 0);\r\n dataItem[\"date\" + axisLetter] = date;\r\n }\r\n if (date) {\r\n time = date.getTime();\r\n }\r\n else {\r\n return;\r\n }\r\n var openDate = dataItem[\"openDate\" + axisLetter];\r\n var prevSeriesTime = this._prevSeriesTime[series.uid];\r\n var openTime;\r\n if (openDate) {\r\n openTime = openDate.getTime();\r\n }\r\n if ($type.isNumber(openTime)) {\r\n var difference = Math.abs(time - openTime);\r\n if (this._minDifference[series.uid] > difference) {\r\n this._minDifference[series.uid] = difference;\r\n }\r\n }\r\n var differece = time - prevSeriesTime;\r\n if (differece > 0) {\r\n if (this._minDifference[series.uid] > differece) {\r\n this._minDifference[series.uid] = differece;\r\n }\r\n }\r\n this._prevSeriesTime[series.uid] = time;\r\n if (series._baseInterval[this.uid]) {\r\n this.postProcessSeriesDataItem(dataItem);\r\n }\r\n };\r\n /**\r\n * [updateAxisBySeries description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n DateAxis.prototype.updateAxisBySeries = function () {\r\n _super.prototype.updateAxisBySeries.call(this);\r\n var baseInterval = this.chooseInterval(0, this.minDifference, 1);\r\n if (this.minDifference >= $time.getDuration(\"day\", 27) && baseInterval.timeUnit == \"week\") {\r\n baseInterval.timeUnit = \"month\";\r\n baseInterval.count = 1;\r\n }\r\n if (baseInterval.timeUnit == \"month\") {\r\n if (this.minDifference >= $time.getDuration(\"day\", 29 * 2) && baseInterval.count == 1) {\r\n baseInterval.count = 2;\r\n }\r\n if (this.minDifference >= $time.getDuration(\"day\", 29 * 3) && baseInterval.count == 2) {\r\n baseInterval.count = 3;\r\n }\r\n if (this.minDifference >= $time.getDuration(\"day\", 29 * 6) && baseInterval.count == 5) {\r\n baseInterval.count = 6;\r\n }\r\n }\r\n // handle daylight saving\r\n if (this.minDifference >= $time.getDuration(\"hour\", 23) && baseInterval.timeUnit == \"hour\") {\r\n baseInterval.timeUnit = \"day\";\r\n baseInterval.count = 1;\r\n }\r\n if (this.minDifference >= $time.getDuration(\"week\", 1) - $time.getDuration(\"hour\", 1) && baseInterval.timeUnit == \"day\") {\r\n baseInterval.timeUnit = \"week\";\r\n baseInterval.count = 1;\r\n }\r\n if (this.minDifference >= $time.getDuration(\"year\", 1) - $time.getDuration(\"day\", 1.01) && baseInterval.timeUnit == \"month\") {\r\n baseInterval.timeUnit = \"year\";\r\n baseInterval.count = 1;\r\n }\r\n this._baseIntervalReal = baseInterval;\r\n this._mainBaseInterval = baseInterval;\r\n // no need to invalidate\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"baseInterval\", {\r\n /**\r\n * @return Base interval\r\n */\r\n get: function () {\r\n if (this._groupInterval) {\r\n return this._groupInterval;\r\n }\r\n else if (this._baseInterval) {\r\n return this._baseInterval;\r\n }\r\n else {\r\n return this._baseIntervalReal;\r\n }\r\n },\r\n /**\r\n * A base interval (granularity) of data.\r\n *\r\n * Used to indicate what are the base units of your data.\r\n *\r\n * For example, if you have a data set that has a data point every 5 minutes,\r\n * you may want to set this to `{ timeUnit: \"minute\", count: 5 }`.\r\n *\r\n * If not set, the Axis will try to determine the setting by its own, looking\r\n * at actual data.\r\n *\r\n * For best results, try to follow these values for `count`:\r\n *\r\n * When unit is \"month\", use 12 / count = round number\r\n * When unit is \"hour\", use 24 / count = round number\r\n * When unit is \"second\" and \"minute\", use 60 / count = round number\r\n *\r\n * @param timeInterval base interval\r\n */\r\n set: function (timeInterval) {\r\n if (JSON.stringify(this._baseInterval) != JSON.stringify(timeInterval)) {\r\n this._baseInterval = timeInterval;\r\n this._mainBaseInterval = timeInterval;\r\n if (!$type.isNumber(timeInterval.count)) {\r\n timeInterval.count = 1;\r\n }\r\n this.invalidate();\r\n this.postProcessSeriesDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"mainBaseInterval\", {\r\n /**\r\n * Indicates granularity of the data of source (unaggregated) data.\r\n *\r\n * @since 4.7.0\r\n * @return Granularity of the main data set\r\n */\r\n get: function () {\r\n if (this._baseInterval) {\r\n return this._baseInterval;\r\n }\r\n else if (this._mainBaseInterval) {\r\n return this._mainBaseInterval;\r\n }\r\n else {\r\n return this._baseIntervalReal;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"skipEmptyPeriods\", {\r\n /**\r\n * @return Remove empty stretches of time?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"skipEmptyPeriods\");\r\n },\r\n /**\r\n * If enabled, axis will automatically collapse empty (without data points)\r\n * periods of time, i.e. weekends.\r\n *\r\n * An \"empty\" period is considered a stretch of time in the length of current\r\n * `baseInterval` without a single data point in it.\r\n *\r\n * For each such empty period, axis will automatically create an\r\n * [[AxisBreak]]. By default they will be invisible. You can still configure\r\n * them by accessing `axis.breaks.template`.\r\n *\r\n * [More info about breaks](https://www.amcharts.com/docs/v4/concepts/axes/#Breaks).\r\n *\r\n * Important notes:\r\n * * If you set this property to `true`, you can not add your custom axis breaks to this axis anymore.\r\n * * Using this feature affects performance. Use only if you need it.\r\n * * Setting this to `true` will reset appearance of breaks. If you want to modify appearance, do it *after* you set `skipEmptyPeriods`.\r\n * * Some axis label overlapping might happen.\r\n * * This setting is not compatible with `groupData = true`.\r\n *\r\n * @default false\r\n * @param value Remove empty stretches of time?\r\n */\r\n set: function (value) {\r\n if (value) {\r\n var breakTemplate = this.axisBreaks.template;\r\n breakTemplate.startLine.disabled = true;\r\n breakTemplate.endLine.disabled = true;\r\n breakTemplate.fillShape.disabled = true;\r\n breakTemplate.breakSize = 0;\r\n }\r\n else {\r\n if (this._gapBreaks) {\r\n this.axisBreaks.clear();\r\n this._gapBreaks = false;\r\n }\r\n }\r\n if (this.setPropertyValue(\"skipEmptyPeriods\", value)) {\r\n this.invalidate();\r\n this.postProcessSeriesDataItems();\r\n this.invalidateSeries();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"tooltipDateFormat\", {\r\n /**\r\n * @return Date format\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipDateFormat\");\r\n },\r\n /**\r\n * A special date format to apply axis tooltips.\r\n *\r\n * Will use same format as for labels, if not set.\r\n *\r\n * @param value Date format\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipDateFormat\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"markUnitChange\", {\r\n /**\r\n * @return Use different format for period beginning?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"markUnitChange\");\r\n },\r\n /**\r\n * Use `periodChangeDateFormats` to apply different formats to the first\r\n * label in bigger time unit.\r\n *\r\n * @default true\r\n * @param value Use different format for period beginning?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"markUnitChange\", value)) {\r\n this.invalidateData();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns text to show in a tooltip, based on specific relative position\r\n * within axis.\r\n *\r\n * The label will be formatted as per [[DateFormatter]] set for the whole\r\n * chart, or explicitly for this Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position\r\n * @return Label (formatted date)\r\n */\r\n DateAxis.prototype.getTooltipText = function (position) {\r\n var text;\r\n var date = this.positionToDate(position);\r\n date = $time.round(date, this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min), this._df.timezoneMinutes, this._df.timezone);\r\n this.tooltipDate = date;\r\n if ($type.hasValue(this.tooltipDateFormat)) {\r\n text = this._df.format(date, this.tooltipDateFormat, [\"day\", \"month\", \"week\", \"year\"].indexOf(this.baseInterval.timeUnit) == -1);\r\n }\r\n else {\r\n var dateFormat = this.dateFormats.getKey(this.baseInterval.timeUnit);\r\n if (dateFormat) {\r\n text = this._df.format(date, dateFormat);\r\n }\r\n else {\r\n text = this.getPositionLabel(position);\r\n }\r\n }\r\n if (!this._adapterO) {\r\n return text;\r\n }\r\n else {\r\n return this._adapterO.apply(\"getTooltipText\", text);\r\n }\r\n };\r\n /**\r\n * Takes an absolute position within axis and adjust it to a specific position within base interval. (cell)\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Source position\r\n * @param location Location in the cell\r\n * @return Adjusted position\r\n */\r\n DateAxis.prototype.roundPosition = function (position, location, axisLocation) {\r\n var baseInterval = this.baseInterval;\r\n var timeUnit = baseInterval.timeUnit;\r\n var count = baseInterval.count;\r\n var date = this.positionToDate(position);\r\n $time.round(date, timeUnit, count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n if (location > 0) {\r\n $time.add(date, timeUnit, location * count, this._df.utc);\r\n }\r\n if (axisLocation > 0 && axisLocation < 1) {\r\n date.setTime(date.getTime() + this.baseDuration * axisLocation);\r\n }\r\n if (this.isInBreak(date.getTime())) {\r\n while (date.getTime() < this.max) {\r\n $time.add(date, timeUnit, count, this._df.utc);\r\n if (!this.isInBreak(date.getTime())) {\r\n break;\r\n }\r\n }\r\n }\r\n return this.dateToPosition(date);\r\n };\r\n /**\r\n * Returns an relative position of the start of the cell (period), that specific position value falls into.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param position Relative position\r\n * @return Cell start relative position\r\n */\r\n DateAxis.prototype.getCellStartPosition = function (position) {\r\n return this.roundPosition(position, 0);\r\n };\r\n /**\r\n * Returns an relative position of the end of the cell (period), that specific position value falls into.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param position Relative position\r\n * @return Cell end relative position\r\n */\r\n DateAxis.prototype.getCellEndPosition = function (position) {\r\n return this.roundPosition(position, 1);\r\n //return this.dateToPosition($time.add(this.positionToDate(this.roundPosition(position, 1)), this.baseInterval.timeUnit, this.baseInterval.count));\r\n };\r\n /**\r\n * Returns a Series data item that corresponds to the specific pixel position\r\n * of the Axis.\r\n *\r\n * If `findNearest` (third parameter) is set to `true`, the method will try\r\n * to locate nearest available data item if none is found directly under\r\n * `position`.\r\n *\r\n * @param series Series\r\n * @param position Position (px)\r\n * @param findNearest Should axis try to find nearest tooltip if there is no data item at exact position\r\n * @return Data item\r\n */\r\n DateAxis.prototype.getSeriesDataItem = function (series, position, findNearest) {\r\n var value = this.positionToValue(position);\r\n var location = 0.5;\r\n if (this.axisLetter == \"Y\") {\r\n location = series.dataItems.template.locations.dateY;\r\n }\r\n else {\r\n location = series.dataItems.template.locations.dateX;\r\n }\r\n var deltaValue = value - location * this.baseDuration;\r\n var date = $time.round(new Date(value), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n var nextDate = $time.round(new Date(value + this.baseDuration), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n if (nextDate.getTime() > date.getTime()) {\r\n if (Math.abs(nextDate.getTime() - deltaValue) < Math.abs(deltaValue - date.getTime())) {\r\n date = nextDate;\r\n }\r\n }\r\n var dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n var dataItem = dataItemsByAxis.getKey(date.getTime() + series.currentDataSetId);\r\n // todo: alternatively we can find closiest here\r\n if (!dataItem && findNearest) {\r\n var key_1;\r\n if (this.axisLetter == \"Y\") {\r\n key_1 = \"dateY\";\r\n }\r\n else {\r\n key_1 = \"dateX\";\r\n }\r\n dataItem = series.dataItems.getIndex(series.dataItems.findClosestIndex(date.getTime(), function (x) {\r\n if (x[key_1]) {\r\n return x[key_1].getTime();\r\n }\r\n else {\r\n return -Infinity;\r\n }\r\n }, \"any\"));\r\n }\r\n return dataItem;\r\n };\r\n /**\r\n * Returns a formatted date based on position in axis scale.\r\n *\r\n * Please note that `position` represents position within axis which may be\r\n * zoomed and not correspond to Cursor's `position`.\r\n *\r\n * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n * @param position Relative position on axis (0-1)\r\n * @return Position label\r\n */\r\n DateAxis.prototype.getPositionLabel = function (position) {\r\n // @todo Better format recognition\r\n var date = this.positionToDate(position);\r\n return this._df.format(date, this.getCurrentLabelFormat());\r\n };\r\n /**\r\n * Returns label date format based on currently used time units\r\n *\r\n * @return Format\r\n */\r\n DateAxis.prototype.getCurrentLabelFormat = function () {\r\n return this.dateFormats.getKey(this._gridInterval ? this._gridInterval.timeUnit : \"day\");\r\n };\r\n /**\r\n * Initializes an Axis renderer.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n DateAxis.prototype.initRenderer = function () {\r\n _super.prototype.initRenderer.call(this);\r\n var renderer = this.renderer;\r\n if (renderer) {\r\n // Set defaults\r\n renderer.ticks.template.location = 0;\r\n renderer.grid.template.location = 0;\r\n renderer.labels.template.location = 0;\r\n renderer.baseGrid.disabled = true;\r\n }\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"basePoint\", {\r\n /**\r\n * Coordinates of the actual axis start.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Base point\r\n */\r\n get: function () {\r\n return { x: 0, y: 0 };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.animateMinMax = function (min, max) {\r\n var _this = this;\r\n var animation = this.animate([{ property: \"_minAdjusted\", from: this._minAdjusted, to: min }, { property: \"_maxAdjusted\", from: this._maxAdjusted, to: max }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n animation.events.on(\"animationprogress\", function () {\r\n _this.dispatch(\"extremeschanged\");\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Invalidates axis data items when series extremes change\r\n */\r\n DateAxis.prototype.handleExtremesChange = function () {\r\n _super.prototype.handleExtremesChange.call(this);\r\n if (this.groupData) {\r\n var id = this.baseInterval.timeUnit + this.baseInterval.count;\r\n this.groupMin[id] = this._finalMin;\r\n this.groupMax[id] = this._finalMax;\r\n }\r\n };\r\n /**\r\n * Zooms axis to specific Dates.\r\n *\r\n * @param startDate Start date\r\n * @param endValue End date\r\n * @param skipRangeEvent Do not invoke events\r\n * @param instantly Do not play zoom animations\r\n */\r\n DateAxis.prototype.zoomToDates = function (startDate, endDate, skipRangeEvent, instantly, adjust) {\r\n startDate = this._df.parse(startDate);\r\n endDate = this._df.parse(endDate);\r\n this.zoomToValues(startDate.getTime(), endDate.getTime(), skipRangeEvent, instantly, adjust);\r\n };\r\n /**\r\n * Zooms axis to specific values.\r\n *\r\n * @param startValue Start value\r\n * @param endValue End value\r\n * @param skipRangeEvent Do not invoke events\r\n * @param instantly Do not play zoom animations\r\n */\r\n DateAxis.prototype.zoomToValues = function (startValue, endValue, skipRangeEvent, instantly, adjust) {\r\n var _this = this;\r\n if (!this.groupData) {\r\n //let start: number = (startValue - this.min) / (this.max - this.min);\r\n //let end: number = (endValue - this.min) / (this.max - this.min);\r\n var start = this.valueToPosition(startValue);\r\n var end = this.valueToPosition(endValue);\r\n this.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n }\r\n else {\r\n var difference = this.adjustDifference(startValue, endValue);\r\n var isEnd = false;\r\n if (endValue == this.max) {\r\n isEnd = true;\r\n }\r\n var isStart = false;\r\n if (startValue == this.min) {\r\n isStart = true;\r\n }\r\n if ($type.hasValue(difference)) {\r\n var mainBaseInterval = this.mainBaseInterval;\r\n var groupInterval_1 = this.chooseInterval(0, difference, this.groupCount, this.groupIntervals);\r\n if ((groupInterval_1.timeUnit == mainBaseInterval.timeUnit && groupInterval_1.count < mainBaseInterval.count) || $time.getDuration(groupInterval_1.timeUnit, 1) < $time.getDuration(mainBaseInterval.timeUnit, 1)) {\r\n groupInterval_1 = __assign({}, mainBaseInterval);\r\n }\r\n var id = groupInterval_1.timeUnit + groupInterval_1.count;\r\n var min_1 = this.groupMin[id];\r\n var max_1 = this.groupMax[id];\r\n if (!$type.isNumber(min_1) || !$type.isNumber(max_1)) {\r\n min_1 = Number.POSITIVE_INFINITY;\r\n max_1 = Number.NEGATIVE_INFINITY;\r\n this.series.each(function (series) {\r\n var seriesMin = series.min(_this);\r\n var seriesMax = series.max(_this);\r\n if (series._dataSets) {\r\n var ds = series._dataSets.getKey(groupInterval_1.timeUnit + groupInterval_1.count);\r\n if (ds) {\r\n var mindi = ds.getIndex(0);\r\n var maxdi = ds.getIndex(ds.length - 1);\r\n if (mindi) {\r\n if (series.xAxis == _this) {\r\n seriesMin = mindi.dateX.getTime();\r\n }\r\n else if (series.yAxis == _this) {\r\n seriesMin = mindi.dateY.getTime();\r\n }\r\n }\r\n if (maxdi) {\r\n if (series.xAxis == _this) {\r\n seriesMax = maxdi.dateX.getTime();\r\n }\r\n else if (series.yAxis == _this) {\r\n seriesMax = maxdi.dateY.getTime();\r\n }\r\n }\r\n }\r\n }\r\n seriesMax = $time.round($time.add(new Date(seriesMax), groupInterval_1.timeUnit, 1, _this._df.utc), groupInterval_1.timeUnit, 1, _this._df.firstDayOfWeek, _this._df.utc, undefined, _this._df.timezoneMinutes, _this._df.timezone).getTime();\r\n if (seriesMin < min_1) {\r\n min_1 = seriesMin;\r\n }\r\n if (seriesMax > max_1) {\r\n max_1 = seriesMax;\r\n }\r\n });\r\n this.groupMin[id] = min_1;\r\n this.groupMax[id] = max_1;\r\n }\r\n startValue = $math.fitToRange(startValue, min_1, max_1);\r\n endValue = $math.fitToRange(endValue, min_1, max_1);\r\n if (adjust) {\r\n if (isEnd) {\r\n startValue = endValue - difference;\r\n startValue = $math.fitToRange(startValue, min_1, max_1);\r\n }\r\n if (isStart) {\r\n endValue = startValue + difference;\r\n endValue = $math.fitToRange(endValue, min_1, max_1);\r\n }\r\n }\r\n var start = (startValue - min_1) / (max_1 - min_1);\r\n var end = (endValue - min_1) / (max_1 - min_1);\r\n this.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n }\r\n }\r\n };\r\n /**\r\n * Adds `baseInterval` to \"as is\" fields.\r\n *\r\n * @param field Field name\r\n * @return Assign as is?\r\n */\r\n DateAxis.prototype.asIs = function (field) {\r\n return field == \"baseInterval\" || _super.prototype.asIs.call(this, field);\r\n };\r\n /**\r\n * Copies all properties and related data from a different instance of Axis.\r\n *\r\n * @param source Source Axis\r\n */\r\n DateAxis.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n _super.prototype.copyFrom.call(this, source);\r\n this.dateFormats = source.dateFormats;\r\n this.periodChangeDateFormats = source.periodChangeDateFormats;\r\n this.groupIntervals.clear();\r\n source.groupIntervals.each(function (interval) {\r\n _this.groupIntervals.push(__assign({}, interval));\r\n });\r\n this.gridIntervals.clear();\r\n source.gridIntervals.each(function (interval) {\r\n _this.gridIntervals.push(__assign({}, interval));\r\n });\r\n if (source._baseInterval) {\r\n this.baseInterval = source._baseInterval;\r\n }\r\n };\r\n /**\r\n * Shows Axis tooltip at specific relative position within Axis. (0-1)\r\n *\r\n * @param position Position (0-1)\r\n * @param local or global position\r\n */\r\n DateAxis.prototype.showTooltipAtPosition = function (position, local) {\r\n var _this = this;\r\n if (!local) {\r\n position = this.toAxisPosition(position);\r\n }\r\n if (this.snapTooltip) {\r\n // rounding is not good, pen/aac4e7f66f019d36b2447f050c600c13 (no last tootltip shown)\r\n var actualDate = this.positionToDate(position); //$time.round(this.positionToDate(position), this.baseInterval.timeUnit, 1, this.getFirstWeekDay(), this.dateFormatter.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n var actualTime_1 = actualDate.getTime();\r\n var closestDate_1;\r\n this.series.each(function (series) {\r\n if (series.baseAxis == _this) {\r\n var dataItem = _this.getSeriesDataItem(series, position, true);\r\n if (dataItem) {\r\n var date = void 0;\r\n if (series.xAxis == _this) {\r\n date = dataItem.dateX;\r\n }\r\n if (series.yAxis == _this) {\r\n date = dataItem.dateY;\r\n }\r\n if (!closestDate_1) {\r\n closestDate_1 = date;\r\n }\r\n else {\r\n if (Math.abs(closestDate_1.getTime() - actualTime_1) > Math.abs(date.getTime() - actualTime_1)) {\r\n closestDate_1 = date;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n if (closestDate_1) {\r\n var closestTime_1 = closestDate_1.getTime();\r\n closestDate_1 = $time.round(new Date(closestTime_1), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, undefined, this._df.timezoneMinutes, this._df.timezone);\r\n closestTime_1 = closestDate_1.getTime();\r\n var tooltipLocation = this.renderer.tooltipLocation;\r\n if (tooltipLocation == 0) {\r\n tooltipLocation = 0.0001;\r\n }\r\n closestDate_1 = new Date(closestDate_1.getTime() + this.baseDuration * tooltipLocation);\r\n position = this.dateToPosition(closestDate_1);\r\n if (this.chart.cursor && this.chart.cursor.snapToSeries) {\r\n //void\r\n }\r\n else {\r\n this.series.each(function (series) {\r\n var dataItem = series.dataItemsByAxis.getKey(_this.uid).getKey(closestTime_1 + series.currentDataSetId);\r\n var point = series.showTooltipAtDataItem(dataItem);\r\n if (point) {\r\n _this.chart._seriesPoints.push({ series: series, point: point });\r\n }\r\n else {\r\n // check, otherwise column tooltip will be hidden\r\n if (series.tooltipText || series.tooltipHTML) {\r\n series.hideTooltip();\r\n }\r\n }\r\n });\r\n }\r\n //this.chart.sortSeriesTooltips(seriesPoints);\r\n }\r\n }\r\n _super.prototype.showTooltipAtPosition.call(this, position, true);\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"snapTooltip\", {\r\n /**\r\n * @return Should snap?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"snapTooltip\");\r\n },\r\n /**\r\n * Should the nearest tooltip be shown if no data item is found on the\r\n * current cursor position.\r\n *\r\n * @default true\r\n * @param value Should snap?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"snapTooltip\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"groupData\", {\r\n /**\r\n * @return Group data points?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"groupData\");\r\n },\r\n /**\r\n * Indicates if data should be aggregated to composide data items if there\r\n * are more data items in selected range than `groupCount`.\r\n *\r\n * Grouping will occur automatically, based on current selection range, and\r\n * will change dynamically when user zooms in/out the chart.\r\n *\r\n * NOTE: This works only if [[DateAxis]] is base axis of an [[XYSeries]].\r\n *\r\n * The related [[XYSeries]] also needs to be set up to take advantage of, by\r\n * setting its [`groupFields`](https://www.amcharts.com/docs/v4/reference/xyseries/#groupFields_property).\r\n *\r\n * The group intervals to aggregate data to is defined by `groupIntervals`\r\n * property.\r\n *\r\n * ```TypeScript\r\n * let dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n * dateAxis.groupData = true;\r\n *\r\n * let valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n *\r\n * let series = chart.series.push(new am4charts.LineSeries());\r\n * series.dataFields.dateX = \"date\";\r\n * series.dataFields.valueY = \"value\";\r\n * series.groupFields.valueY = \"average\";\r\n * ```\r\n * ```JavaScript\r\n * var dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n * dateAxis.groupData = true;\r\n *\r\n * var valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n *\r\n * var series = chart.series.push(new am4charts.LineSeries());\r\n * series.dataFields.dateX = \"date\";\r\n * series.dataFields.valueY = \"value\";\r\n * series.groupFields.valueY = \"average\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"groupData\": true\r\n * }],\r\n * \"yAxes\": [{\r\n * \"type\": \"ValueAxis\"\r\n * }],\r\n * \"series\": [{\r\n * \"type\": \"LineSeries\",\r\n * \"dataFields\": {\r\n * \"dateX\": \"date\",\r\n * \"valueY\": \"value\"\r\n * },\r\n * \"groupFields\": {\r\n * \"valueY\": \"average\"\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @default false\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n * @since 4.7.0\r\n * @param value Group data points?\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this.setPropertyValue(\"groupData\", value)) {\r\n this.series.each(function (series) {\r\n series.setDataSet(\"\");\r\n if (value && !series.dataGrouped && series.inited) {\r\n series._baseInterval[_this.uid] = _this.mainBaseInterval;\r\n _this.groupSeriesData(series);\r\n }\r\n });\r\n this._currentDataSetId = \"\";\r\n this._groupInterval = undefined;\r\n this.invalidate();\r\n this.invalidateSeries();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"groupInterval\", {\r\n /**\r\n * @return Interval\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"groupInterval\");\r\n },\r\n /**\r\n * Disables automatic selection of data grouping intervals and always uses\r\n * `groupInterval` if set. Works only if `groupData = true`.\r\n *\r\n * @since 4.9.24\r\n * @param value Interval\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"groupInterval\", value)) {\r\n this.invalidate();\r\n this.invalidateSeries();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"groupCount\", {\r\n /**\r\n * @return Number of data items\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"groupCount\");\r\n },\r\n /**\r\n * Indicates threshold of data items in selected range at which to start\r\n * aggregating data items if `groupData = true`.\r\n *\r\n * @default 200\r\n * @since 4.7.0\r\n * @param value Number of data items\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"groupCount\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"timezoneOffset\", {\r\n /**\r\n * @todo Timezone offset in minutes\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"timezoneOffset\");\r\n },\r\n /**\r\n * If set will recalculate all timestamps in data by applying specific offset\r\n * in minutes.\r\n *\r\n * IMPORTANT: do not set `timezoneOffset` on both `DateAxis` and `dateFormatter`. It\r\n * will skew your results by applying offset twice.\r\n *\r\n * @since 4.8.5\r\n * @param value Time zone offset in minutes\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"timezoneOffset\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"timezone\", {\r\n /**\r\n * @return Timezone\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"timezone\");\r\n },\r\n /**\r\n * If set will recalculate all timestamps in data to specific named timezone,\r\n * e.g. `\"America/Vancouver\"`, `\"Australia/Sydney\"`, `\"UTC\"`, etc.\r\n *\r\n * IMPORTANT: it is no longer recommended to use this setting. Please\r\n * set`timezone` on `dateFormatter`.\r\n *\r\n * @deprecated\r\n * @since 4.10.1\r\n * @param value Time zone\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"timezone\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateAxis.prototype, \"gridInterval\", {\r\n /**\r\n * Current grid interval.\r\n *\r\n * @return Grid interval\r\n */\r\n get: function () {\r\n return this._gridInterval;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n DateAxis.prototype.makeGap = function (dataItem, previous) {\r\n var series = dataItem.component;\r\n if (dataItem && previous) {\r\n if (!series.connect && $type.isNumber(series.autoGapCount)) {\r\n if (series.baseAxis == this) {\r\n var date = dataItem.dates[\"date\" + this.axisLetter];\r\n var prevDate = previous.dates[\"date\" + this.axisLetter];\r\n if (date && prevDate) {\r\n var time = date.getTime();\r\n var prevTime = prevDate.getTime();\r\n if (time - prevTime > series.autoGapCount * this.baseDuration) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(DateAxis.prototype, \"baseValue\", {\r\n /**\r\n * @return base value\r\n */\r\n get: function () {\r\n return this.min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DateAxis.prototype._saveMinMax = function (min, max) {\r\n var groupInterval = this.groupInterval;\r\n if (!groupInterval) {\r\n groupInterval = this.mainBaseInterval;\r\n }\r\n var id = groupInterval.timeUnit + groupInterval.count;\r\n this._intervalMin[id] = min;\r\n this._intervalMax[id] = max;\r\n };\r\n return DateAxis;\r\n}(ValueAxis));\r\nexport { DateAxis };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxis\"] = DateAxis;\r\nregistry.registeredClasses[\"DateAxisDataItem\"] = DateAxisDataItem;\r\n//# sourceMappingURL=DateAxis.js.map","/**\r\n * Module, defining Axis Renderer for vertical axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { WavedRectangle } from \"../../core/elements/WavedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A renderer for horizontal axis.\r\n *\r\n * @see {@link IAxisRendererEvents} for a list of available events\r\n * @see {@link IAxisRendererAdapters} for a list of available Adapters\r\n */\r\nvar AxisRendererX = /** @class */ (function (_super) {\r\n __extends(AxisRendererX, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererX() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"AxisRendererX\";\r\n _this.minGridDistance = 120;\r\n _this.opposite = false;\r\n _this.rotation = 0;\r\n _this.width = percent(100);\r\n _this.labels.template.horizontalCenter = \"middle\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererX.prototype.setAxis = function (axis) {\r\n _super.prototype.setAxis.call(this, axis);\r\n axis.layout = \"vertical\";\r\n };\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererX.prototype.updateGridContainer = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n var gridContainer = this.gridContainer;\r\n gridContainer.x = axis.pixelX;\r\n gridContainer.width = axis.axisLength;\r\n }\r\n };\r\n /**\r\n * Called when rendered is attached to an Axis, as well as a property of\r\n * Axis that might affect the appearance is updated.\r\n *\r\n * E.g. `axis.opposite`, `axis.inside`, etc.\r\n *\r\n * This method is called **before** draw, so that any related setting\r\n * changed in this method can be changed.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererX.prototype.processRenderer = function () {\r\n _super.prototype.processRenderer.call(this);\r\n // can not do this in init, as axis is set later\r\n var axis = this.axis;\r\n if (axis) {\r\n if (!(axis.width instanceof Percent)) {\r\n axis.width = percent(100);\r\n }\r\n // @todo Is thi sneeded?\r\n $utils.used(this.line);\r\n var title = axis.title;\r\n title.rotation = 0;\r\n title.align = \"center\";\r\n if (this.opposite) {\r\n this.line.toFront();\r\n title.toBack();\r\n }\r\n else {\r\n title.toFront();\r\n this.toBack();\r\n this.line.toBack();\r\n }\r\n }\r\n };\r\n /**\r\n * Updates some of the Axis tooltip's visual properties, related to\r\n * rendering of the Axis.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererX.prototype.updateTooltip = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n var bigNum = 1000;\r\n var bbx = this.line.pixelX;\r\n var bby = this.line.pixelY;\r\n var bbw = this.axisLength;\r\n var bbh = bigNum;\r\n // top\r\n if (this.opposite) {\r\n if (!this.inside) {\r\n bby = -bigNum;\r\n bbh = bigNum;\r\n }\r\n }\r\n // bottom\r\n else {\r\n if (this.inside) {\r\n bby = -bigNum;\r\n bbh = bigNum;\r\n }\r\n }\r\n this.axis.updateTooltip(\"vertical\", { x: bbx, y: bby, width: bbw, height: bbh });\r\n }\r\n };\r\n /**\r\n * Updates and positions a label element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param label Label element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRendererX.prototype.updateLabelElement = function (label, position, endPosition, location) {\r\n if (!$type.hasValue(location)) {\r\n location = label.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n label.isMeasured = !label.inside;\r\n var deltaY = 0;\r\n var verticalCenter;\r\n var maxHeight = this.gridContainer.maxHeight;\r\n if (this.opposite) {\r\n if (label.inside) {\r\n verticalCenter = \"top\";\r\n if (label.valign == \"bottom\") {\r\n deltaY = maxHeight;\r\n verticalCenter = \"bottom\";\r\n }\r\n if (label.valign == \"middle\") {\r\n deltaY = maxHeight / 2;\r\n verticalCenter = \"middle\";\r\n }\r\n }\r\n else {\r\n verticalCenter = \"bottom\";\r\n }\r\n point.y = deltaY;\r\n }\r\n else {\r\n if (label.inside) {\r\n verticalCenter = \"bottom\";\r\n if (label.valign == \"top\") {\r\n deltaY = -maxHeight;\r\n verticalCenter = \"top\";\r\n }\r\n if (label.valign == \"middle\") {\r\n deltaY = -maxHeight / 2;\r\n verticalCenter = \"middle\";\r\n }\r\n }\r\n else {\r\n verticalCenter = \"top\";\r\n }\r\n point.y += deltaY;\r\n }\r\n if (label.rotation == 0) {\r\n // Apply fuzzy logic to verticalCenter only if labels are not rotated\r\n label.verticalCenter = verticalCenter;\r\n }\r\n this.positionItem(label, point);\r\n this.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n };\r\n Object.defineProperty(AxisRendererX.prototype, \"axisLength\", {\r\n /**\r\n * Returns actual length of the Axis, in pixels.\r\n *\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n var axis = this.axis;\r\n return (axis.measuredWidth - axis.pixelPaddingRight - axis.pixelPaddingLeft) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position on axis to point coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @param position2 Position (0-1) Position on the second axis\r\n * @return Point\r\n */\r\n AxisRendererX.prototype.positionToPoint = function (position, position2) {\r\n return { x: this.positionToCoordinate(position), y: 0 };\r\n };\r\n /**\r\n * Converts a point at specific coordinates to a relative position (0-1)\r\n * on the axis.\r\n *\r\n * @param point Point\r\n * @return Position (0-1)\r\n */\r\n AxisRendererX.prototype.pointToPosition = function (point) {\r\n return this.coordinateToPosition(point.x, point.y);\r\n };\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition Starting position\r\n * @param endPosition End position\r\n * @return SVG path\r\n */\r\n AxisRendererX.prototype.getPositionRangePath = function (startPosition, endPosition) {\r\n var x1 = $math.fitToRange(this.positionToCoordinate(startPosition), 0, this.axisLength);\r\n var x2 = $math.fitToRange(this.positionToCoordinate(endPosition), 0, this.axisLength);\r\n var w = Math.abs(x2 - x1);\r\n var h = this.getHeight();\r\n var x = Math.min(x1, x2);\r\n var y = 0;\r\n return $path.rectToPath({\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }, true);\r\n };\r\n /**\r\n * Updates and positions an axis break element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Break element\r\n */\r\n AxisRendererX.prototype.updateBreakElement = function (axisBreak) {\r\n _super.prototype.updateBreakElement.call(this, axisBreak);\r\n var startLine = axisBreak.startLine;\r\n var endLine = axisBreak.endLine;\r\n var fillShape = axisBreak.fillShape;\r\n var startPoint = axisBreak.startPoint;\r\n var endPoint = axisBreak.endPoint;\r\n var y1 = axisBreak.pixelMarginLeft;\r\n var y2 = this.getHeight() - axisBreak.pixelMarginTop - axisBreak.pixelMarginBottom;\r\n startPoint.x = $math.fitToRange(startPoint.x, -1, this.axisLength + 1);\r\n endPoint.x = $math.fitToRange(endPoint.x, -1, this.axisLength + 1);\r\n if (startPoint.x == endPoint.x && (startPoint.x < 0 || startPoint.x > this.axisLength)) {\r\n axisBreak.fillShape.__disabled = true;\r\n }\r\n else {\r\n axisBreak.fillShape.__disabled = false;\r\n }\r\n startLine.y = y1;\r\n startLine.width = 0;\r\n startLine.height = y2;\r\n endLine.y = y1;\r\n endLine.width = 0;\r\n endLine.height = y2;\r\n fillShape.height = y2;\r\n fillShape.width = Math.abs(endPoint.x - startPoint.x);\r\n fillShape.y = y1;\r\n fillShape.x = startPoint.x;\r\n };\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererX.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n //point.x = $utils.spritePointToSprite({x:point.x, y:0}, this, this.gridContainer).x;\r\n grid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.getHeight() });\r\n this.positionItem(grid, point);\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions a tick element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param tick Tick element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererX.prototype.updateTickElement = function (tick, position, endPosition) {\r\n position = position + (endPosition - position) * tick.location;\r\n var point = this.positionToPoint(position);\r\n var tickLength = tick.length;\r\n point.y = $utils.spritePointToSprite({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y;\r\n if (this.opposite) {\r\n tickLength *= (tick.inside ? 1 : -1);\r\n }\r\n else {\r\n tickLength *= (tick.inside ? -1 : 1);\r\n }\r\n tick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: tickLength });\r\n this.positionItem(tick, point);\r\n this.toggleVisibility(tick, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions the axis line element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererX.prototype.updateAxisLine = function () {\r\n this.line.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.axisLength, y: 0 });\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererX.prototype.updateBaseGridElement = function () {\r\n _super.prototype.updateBaseGridElement.call(this);\r\n var axis = this.axis;\r\n var h = this.getHeight();\r\n var w = this.axisLength;\r\n var baseGrid = this.baseGrid;\r\n var x = axis.basePoint.x;\r\n if (x < -0.2 || x > w + 0.2) {\r\n baseGrid.hide(0);\r\n }\r\n else {\r\n var y = $utils.spritePointToSprite({ x: 0, y: 0 }, this.gridContainer, baseGrid.parent).y;\r\n baseGrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: h });\r\n baseGrid.moveTo({ x: x, y: y });\r\n baseGrid.show(0);\r\n }\r\n };\r\n /**\r\n * Creates visual elements for and axis break.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Axis break\r\n */\r\n AxisRendererX.prototype.createBreakSprites = function (axisBreak) {\r\n axisBreak.startLine = new WavedLine();\r\n axisBreak.endLine = new WavedLine();\r\n var wavedRectangle = new WavedRectangle();\r\n wavedRectangle.setWavedSides(false, true, false, true);\r\n axisBreak.fillShape = wavedRectangle;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererX.prototype.toAxisPosition = function (value) {\r\n var inversedPosition = value;\r\n var axis = this.axis;\r\n if (axis) {\r\n var relativePositionSprite = axis.relativePositionSprite;\r\n var x = axis.pixelX;\r\n if (relativePositionSprite) {\r\n x = $utils.spritePointToSprite({ x: this.pixelX, y: 0 }, this.parent, relativePositionSprite).x;\r\n }\r\n else {\r\n relativePositionSprite = axis.parent;\r\n }\r\n if (relativePositionSprite) {\r\n var relativeX = x / relativePositionSprite.innerWidth;\r\n var relativeWidth = axis.axisLength / relativePositionSprite.innerWidth;\r\n return (inversedPosition - relativeX) / relativeWidth;\r\n }\r\n }\r\n return value;\r\n };\r\n /**\r\n * Updates and positions axis bullets.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet AxisBullet element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererX.prototype.updateBullet = function (bullet, position, endPosition) {\r\n var location = 0.5;\r\n if (bullet instanceof AxisBullet) {\r\n location = bullet.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n point.y = $utils.spritePointToSprite({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y;\r\n this.positionItem(bullet, point);\r\n this.toggleVisibility(bullet, position, 0, 1);\r\n };\r\n return AxisRendererX;\r\n}(AxisRenderer));\r\nexport { AxisRendererX };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererX\"] = AxisRendererX;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Put labels inside plot area.\r\n * Disable first and last labels.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof AxisRendererX) {\r\n var state = target.states.create(stateId);\r\n state.properties.inside = true;\r\n state.properties.maxLabelPosition = 0.9;\r\n state.properties.minLabelPosition = 0.1;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Disable labels altogather on very small charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof AxisRendererX) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=AxisRendererX.js.map","/**\r\n * A module which defines functionality related to Category Axis Break.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Base class to define \"breaks\" in axes\r\n * @see {@link ICategoryAxisBreakEvents} for a list of available events\r\n * @see {@link ICategoryAxisBreakAdapters} for a list of available Adapters\r\n */\r\nvar CategoryAxisBreak = /** @class */ (function (_super) {\r\n __extends(CategoryAxisBreak, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CategoryAxisBreak() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CategoryAxisBreak\";\r\n _this.properties.startLocation = 0.5;\r\n _this.properties.endLocation = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"startPosition\", {\r\n /**\r\n * Pixel position of the break's start.\r\n *\r\n * @return Position (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n return this.axis.indexToPosition(this.adjustedStartValue, this.startLocation);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"endPosition\", {\r\n /**\r\n * Pixel position of the break's end.\r\n *\r\n * @return Position (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n return this.axis.indexToPosition(this.adjustedEndValue, this.endLocation);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"startCategory\", {\r\n /**\r\n * @return Start category\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startCategory\");\r\n },\r\n /**\r\n * A category break starts on.\r\n *\r\n * @param value Start category\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startCategory\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"endCategory\", {\r\n /**\r\n * @return End category\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endCategory\");\r\n },\r\n /**\r\n * A category break ends on.\r\n *\r\n * @param value End category\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endCategory\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"startValue\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n var category = this.getPropertyValue(\"startCategory\");\r\n if (category) {\r\n return this.axis.categoryToIndex(category);\r\n }\r\n else {\r\n return this.getPropertyValue(\"startValue\");\r\n }\r\n },\r\n /**\r\n * An index of start category.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startValue\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"endValue\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n var category = this.getPropertyValue(\"endCategory\");\r\n if (category) {\r\n return this.axis.categoryToIndex(category);\r\n }\r\n else {\r\n return this.getPropertyValue(\"endValue\");\r\n }\r\n },\r\n /**\r\n * An index of end category or a end value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endValue\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"startLocation\", {\r\n /**\r\n * @return Break start location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startLocation\");\r\n },\r\n /**\r\n * Indicates where within starting category break should begin.\r\n *\r\n * Values range from `0` (start) to `1` (end), with default being `0.5` (middle).\r\n *\r\n * E.g. if you want to a break to fully encompass start and end categories,\r\n * you should set `startLocation = 0` and `endLocation = 1`.\r\n *\r\n * @since 4.9.17\r\n * @default 0.5\r\n * @param value Break start location\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startLocation\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBreak.prototype, \"endLocation\", {\r\n /**\r\n * @return Break end location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endLocation\");\r\n },\r\n /**\r\n * Indicates where within ending category break should end.\r\n *\r\n * Values range from `0` (start) to `1` (end), with default being `0.5` (middle).\r\n *\r\n * E.g. if you want to a break to fully encompass start and end categories,\r\n * you should set `startLocation = 0` and `endLocation = 1`.\r\n *\r\n * @since 4.9.17\r\n * @default 0.5\r\n * @param value Break end location\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endLocation\", value)) {\r\n if (this.axis) {\r\n this.axis.invalidateDataItems();\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CategoryAxisBreak;\r\n}(AxisBreak));\r\nexport { CategoryAxisBreak };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxisBreak\"] = CategoryAxisBreak;\r\n//# sourceMappingURL=CategoryAxisBreak.js.map","/**\r\n * Category axis module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Axis, AxisDataItem } from \"./Axis\";\r\nimport { AxisRendererX } from \"./AxisRendererX\";\r\nimport { AxisRendererY } from \"./AxisRendererY\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { CategoryAxisBreak } from \"./CategoryAxisBreak\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[CategoryAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar CategoryAxisDataItem = /** @class */ (function (_super) {\r\n __extends(CategoryAxisDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CategoryAxisDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.seriesDataItems = {};\r\n _this.className = \"CategoryAxisDataItem\";\r\n _this.text = \"{category}\";\r\n _this.locations.category = 0;\r\n _this.locations.endCategory = 1;\r\n _this.deltaPosition = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(CategoryAxisDataItem.prototype, \"category\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n if (this._adapterO) {\r\n if (this._adapterO.isEnabled(\"category\")) {\r\n return this._adapterO.apply(\"category\", this.properties.category);\r\n }\r\n }\r\n return this.properties.category;\r\n },\r\n /**\r\n * Category.\r\n *\r\n * @param value Category\r\n */\r\n set: function (value) {\r\n var oldCategory = this.properties.category;\r\n this.setProperty(\"category\", value);\r\n if ($type.hasValue(oldCategory) && oldCategory != value) {\r\n if (this.component) {\r\n this.component.validateDataElement(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisDataItem.prototype, \"endCategory\", {\r\n /**\r\n * @return End category\r\n */\r\n get: function () {\r\n return this.properties.endCategory;\r\n },\r\n /**\r\n * End category.\r\n *\r\n * Used for items that span several categories, like [[CategoryAxisBreak]].\r\n *\r\n * @param value End category\r\n */\r\n set: function (value) {\r\n this.setProperty(\"endCategory\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisDataItem.prototype, \"deltaPosition\", {\r\n get: function () {\r\n return this.properties.deltaCoordinate;\r\n },\r\n set: function (value) {\r\n if (value != this.properties.deltaCoordinate) {\r\n this.setProperty(\"deltaCoordinate\", value);\r\n if (this.component) {\r\n this.component.invalidateDataItems();\r\n this.component.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CategoryAxisDataItem;\r\n}(AxisDataItem));\r\nexport { CategoryAxisDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to create a category-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"CategoryAxis\",\r\n * \"title\": {\r\n * \"text\": \"Clients\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link ICategoryAxisEvents} for a list of available Events\r\n * @see {@link ICategoryAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar CategoryAxis = /** @class */ (function (_super) {\r\n __extends(CategoryAxis, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CategoryAxis() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A collection that holds Axis' data items sorted by each category.\r\n */\r\n _this.dataItemsByCategory = new Dictionary();\r\n _this.className = \"CategoryAxis\";\r\n // Set field name\r\n _this.axisFieldName = \"category\";\r\n _this._lastDataItem = _this.createDataItem();\r\n _this._lastDataItem.component = _this;\r\n _this._disposers.push(_this._lastDataItem);\r\n // Apply theme\r\n _this.applyTheme();\r\n var dataItemsByCategory = _this.dataItemsByCategory;\r\n _this.addDisposer(_this.mainDataSet.events.on(\"removed\", function (event) {\r\n dataItemsByCategory.removeKey(event.oldValue.category);\r\n }));\r\n return _this;\r\n }\r\n /**\r\n * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n CategoryAxis.prototype.createDataItem = function () {\r\n return new CategoryAxisDataItem();\r\n };\r\n /**\r\n * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n *\r\n * @return Axis break\r\n */\r\n CategoryAxis.prototype.createAxisBreak = function () {\r\n return new CategoryAxisBreak();\r\n };\r\n /**\r\n * Processes a related series' data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem Data item\r\n */\r\n CategoryAxis.prototype.processSeriesDataItem = function (dataItem, axisLetter) {\r\n _super.prototype.processSeriesDataItem.call(this, dataItem, axisLetter);\r\n var category = dataItem[\"category\" + this.axisLetter];\r\n if ($type.hasValue(category)) {\r\n var categoryAxisDataItem = this.dataItemsByCategory.getKey(category);\r\n if (categoryAxisDataItem) {\r\n var seriesId = dataItem.component.uid;\r\n var seriesDataItems = categoryAxisDataItem.seriesDataItems[seriesId];\r\n if (!seriesDataItems) {\r\n seriesDataItems = [];\r\n categoryAxisDataItem.seriesDataItems[seriesId] = seriesDataItems;\r\n }\r\n seriesDataItems.push(dataItem);\r\n }\r\n }\r\n else {\r\n dataItem.component.dataItems.remove(dataItem);\r\n }\r\n };\r\n /**\r\n * Validates the data range.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n */\r\n CategoryAxis.prototype.validateDataRange = function () {\r\n var _this = this;\r\n _super.prototype.validateDataRange.call(this);\r\n $iter.each(this._series.iterator(), function (series) {\r\n if ((series.xAxis instanceof CategoryAxis) && (series.yAxis instanceof CategoryAxis)) {\r\n series.invalidateDataRange();\r\n }\r\n else {\r\n var startIndex = _this.positionToIndex(_this.start);\r\n var endIndex = _this.positionToIndex(_this.end);\r\n if (endIndex >= _this.dataItems.length) {\r\n endIndex--;\r\n }\r\n var seriesId = series.uid;\r\n var minIndex = void 0;\r\n var maxIndex = void 0;\r\n for (var i = startIndex; i <= endIndex; i++) {\r\n var axisDataItem = _this.dataItems.getIndex(i);\r\n if (axisDataItem) {\r\n var seriesDataItems = axisDataItem.seriesDataItems[seriesId];\r\n if (seriesDataItems) {\r\n for (var i_1 = 0; i_1 < seriesDataItems.length; i_1++) {\r\n var seriesDataItem = seriesDataItems[i_1];\r\n if (seriesDataItem) {\r\n var index = seriesDataItem.index;\r\n if (!$type.isNumber(minIndex) || index < minIndex) {\r\n minIndex = index;\r\n }\r\n if (!$type.isNumber(maxIndex) || index > maxIndex) {\r\n maxIndex = index;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if ($type.isNumber(minIndex)) {\r\n series.startIndex = minIndex;\r\n }\r\n else {\r\n series.start = _this.start;\r\n }\r\n if ($type.isNumber(maxIndex)) {\r\n series.endIndex = maxIndex + 1;\r\n }\r\n else {\r\n series.end = _this.end;\r\n }\r\n // range might not change, but axis breaks might.\r\n if (_this._axisBreaks && _this._axisBreaks.length > 0) {\r\n series.invalidateDataRange();\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Validates the whole axis. Causes it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n */\r\n CategoryAxis.prototype.validate = function () {\r\n var _this = this;\r\n _super.prototype.validate.call(this);\r\n var dataCount = this.dataItems.length;\r\n var startIndex = $math.fitToRange(Math.floor(this.start * dataCount - 1), 0, dataCount);\r\n var endIndex = $math.fitToRange(Math.ceil(this.end * dataCount), 0, dataCount);\r\n if (this.renderer.invalid) {\r\n this.renderer.validate();\r\n }\r\n // find frequency at which we'll show items\r\n var maxCount = this.renderer.axisLength / Math.max(this.renderer.minGridDistance, 1 / Number.MAX_SAFE_INTEGER);\r\n var frequency = Math.min(this.dataItems.length, Math.ceil((endIndex - startIndex) / maxCount));\r\n this._startIndex = Math.floor(startIndex / frequency) * frequency;\r\n this._endIndex = Math.ceil(this.end * dataCount);\r\n this.fixAxisBreaks();\r\n if (this._startIndex == this._endIndex) {\r\n this._endIndex++;\r\n }\r\n this._frequency = frequency;\r\n if (this.axisLength <= 0) {\r\n return;\r\n }\r\n this.maxZoomFactor = this.dataItems.length;\r\n if (this.dataItems.length <= 0) {\r\n this.maxZoomFactor = 1;\r\n }\r\n this.resetIterators();\r\n // it's important to use protected variables here, as getters will return 0 - length\r\n // TODO use iterator instead\r\n // @ todo: not solved cat axis item fading\r\n startIndex = $math.max(0, this._startIndex - this._frequency);\r\n endIndex = $math.min(this.dataItems.length, this._endIndex + this._frequency);\r\n var itemIndex = 0;\r\n for (var i = 0; i < startIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n dataItem.__disabled = true;\r\n }\r\n for (var i = endIndex, len = this.dataItems.length; i < len; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n dataItem.__disabled = true;\r\n }\r\n for (var i = startIndex; i < endIndex; i++) {\r\n if (i < this.dataItems.length) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (i / this._frequency == Math.round(i / this._frequency)) {\r\n var axisBreak = this.isInBreak(i);\r\n if (!axisBreak) {\r\n this.appendDataItem(dataItem);\r\n this.validateDataElement(dataItem, itemIndex);\r\n }\r\n itemIndex++;\r\n }\r\n else {\r\n //previously we disabled all before, but this is better for cpu\r\n //this.validateDataElement(dataItem, itemIndex); // helps to solve shrinking // not good - creates all items\r\n dataItem.__disabled = true;\r\n }\r\n }\r\n }\r\n this.appendDataItem(this._lastDataItem);\r\n this.validateDataElement(this._lastDataItem, itemIndex + 1, this.dataItems.length);\r\n if (this._axisBreaks) {\r\n var axisBreaks = this._axisBreaks;\r\n axisBreaks.each(function (axisBreak) {\r\n var adjustedStartValue = axisBreak.adjustedStartValue;\r\n var adjustedEndValue = axisBreak.adjustedEndValue;\r\n if ($math.intersect({ start: adjustedStartValue, end: adjustedEndValue }, { start: _this._startIndex, end: _this._endIndex })) {\r\n for (var b = adjustedStartValue; b <= adjustedEndValue; b++) {\r\n var dataItem = _this.dataItems.getIndex(b);\r\n dataItem.__disabled = true;\r\n }\r\n var frequency_1 = $math.fitToRange(Math.ceil(_this._frequency / axisBreak.breakSize), 1, adjustedEndValue - adjustedStartValue);\r\n var itemIndex_1 = 0;\r\n if (axisBreak.breakSize > 0) {\r\n // TODO use iterator instead\r\n for (var b = adjustedStartValue; b <= adjustedEndValue; b = b + frequency_1) {\r\n var dataItem = _this.dataItems.getIndex(b);\r\n dataItem.__disabled = false;\r\n _this.appendDataItem(dataItem);\r\n _this.validateDataElement(dataItem, itemIndex_1);\r\n itemIndex_1++;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.validateBreaks();\r\n this.validateAxisRanges();\r\n this.ghostLabel.invalidate(); // solves font issue\r\n this.renderer.invalidateLayout();\r\n };\r\n /**\r\n * [validateDataElement description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem [description]\r\n * @param itemIndex [description]\r\n */\r\n CategoryAxis.prototype.validateDataElement = function (dataItem, itemIndex, index) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n dataItem.itemIndex = this._axisItemCount;\r\n this._axisItemCount++;\r\n //dataItem.__disabled = false;\r\n var renderer = this.renderer;\r\n if (!$type.isNumber(index)) {\r\n index = this.categoryToIndex(dataItem.category);\r\n }\r\n var endIndex = this.categoryToIndex(dataItem.endCategory);\r\n if (!$type.isNumber(endIndex)) {\r\n endIndex = index;\r\n }\r\n var position = this.indexToPosition(index, dataItem.locations.category);\r\n var endPosition = this.indexToPosition(endIndex, dataItem.locations.endCategory);\r\n dataItem.position = position;\r\n var fillEndIndex;\r\n var fillPosition;\r\n var fillEndPosition;\r\n if (dataItem.isRange) {\r\n fillEndIndex = endIndex;\r\n fillPosition = this.indexToPosition(index, dataItem.locations.category);\r\n fillEndPosition = this.indexToPosition(fillEndIndex, dataItem.locations.endCategory);\r\n }\r\n dataItem.point = renderer.positionToPoint(position);\r\n var tick = dataItem.tick;\r\n if (tick && !tick.disabled) {\r\n renderer.updateTickElement(tick, position, endPosition);\r\n }\r\n var grid = dataItem.grid;\r\n if (grid && !grid.disabled) {\r\n renderer.updateGridElement(grid, position, endPosition);\r\n }\r\n var label = dataItem.label;\r\n if (label && !label.disabled) {\r\n // theorethically this might result problems if category text changes, the range text won't change. But otherwise range.label.text = \"custom text\" won't work, which is not intuitive.\r\n if (!dataItem.isRange || label.text == undefined) {\r\n dataItem.text = dataItem.text;\r\n }\r\n renderer.updateLabelElement(label, position, endPosition);\r\n if ((renderer instanceof AxisRendererY && dataItem.label.measuredWidth > this.ghostLabel.measuredWidth) || (renderer instanceof AxisRendererX && dataItem.label.measuredHeight > this.ghostLabel.measuredHeight)) {\r\n if (dataItem.label.html) {\r\n this.ghostLabel.html = dataItem.label.currentText;\r\n }\r\n else {\r\n this.ghostLabel.text = dataItem.label.currentText;\r\n }\r\n }\r\n }\r\n var fill = dataItem.axisFill;\r\n if (fill && !fill.disabled) {\r\n if (!dataItem.isRange) {\r\n fillEndIndex = index + this._frequency;\r\n fillPosition = this.indexToPosition(index, fill.location);\r\n fillEndPosition = this.indexToPosition(fillEndIndex, fill.location);\r\n }\r\n renderer.updateFillElement(fill, fillPosition, fillEndPosition);\r\n if (!dataItem.isRange) {\r\n this.fillRule(dataItem, itemIndex);\r\n }\r\n }\r\n if (dataItem.bullet) {\r\n renderer.updateBullet(dataItem.bullet, position, endPosition);\r\n }\r\n var mask = dataItem.mask;\r\n if (mask) {\r\n renderer.updateFillElement(mask, fillPosition, fillEndPosition);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n CategoryAxis.prototype.disposeData = function () {\r\n this.dataItemsByCategory.clear();\r\n _super.prototype.disposeData.call(this);\r\n };\r\n /**\r\n * Processes the axis data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n * @param dataContext The raw data that corresponds to this data item\r\n */\r\n CategoryAxis.prototype.processDataItem = function (dataItem, dataContext) {\r\n if (dataItem) {\r\n // creat a collection for fast access\r\n _super.prototype.processDataItem.call(this, dataItem, dataContext);\r\n // check if such category already exists\r\n //let existingDataItem: CategoryAxisDataItem = this.dataItemsByCategory.getKey(dataItem.category);\r\n //if (existingDataItem && existingDataItem != dataItem) {\r\n //\tthis.dataItems.remove(existingDataItem);\r\n //}\r\n if ($type.hasValue(dataItem.category)) {\r\n this.dataItemsByCategory.setKey(dataItem.category, dataItem);\r\n }\r\n }\r\n };\r\n CategoryAxis.prototype.getDataItem = function (dataContext) {\r\n var category = (dataContext[this.dataFields.category]);\r\n if ($type.hasValue(category)) {\r\n var dataItem = this.dataItemsByCategory.getKey(category);\r\n if (dataItem) {\r\n return dataItem;\r\n }\r\n else {\r\n return this.dataItems.create();\r\n }\r\n }\r\n };\r\n /**\r\n * Converts a category index to an actual screen coordinate on the axis.\r\n *\r\n * `location` identifies relative location within category. 0 - beginning,\r\n * 0.5 - middle, 1 - end, and anything inbetween.\r\n *\r\n * @param index Index\r\n * @param location Location (0-1)\r\n * @return Position (px)\r\n */\r\n CategoryAxis.prototype.indexToPosition = function (index, location) {\r\n if (!$type.isNumber(location)) {\r\n location = 0.5;\r\n }\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var difference = this.adjustDifference(startIndex, endIndex);\r\n var startLocation = this.startLocation;\r\n var endLocation = this.endLocation;\r\n difference -= startLocation;\r\n difference -= (1 - endLocation);\r\n if (this._axisBreaks) {\r\n var axisBreaks = this._axisBreaks;\r\n $iter.eachContinue(axisBreaks.iterator(), function (axisBreak) {\r\n var breakStartIndex = axisBreak.adjustedStartValue;\r\n var breakEndIndex = axisBreak.adjustedEndValue;\r\n if (index < startIndex || !$type.isNumber(breakStartIndex) || !$type.isNumber(breakEndIndex)) {\r\n return false;\r\n }\r\n if ($math.intersect({ start: breakStartIndex, end: breakEndIndex }, { start: startIndex, end: endIndex })) {\r\n breakStartIndex = Math.max(startIndex, breakStartIndex);\r\n breakEndIndex = Math.min(endIndex, breakEndIndex);\r\n var breakSize = axisBreak.breakSize;\r\n // value to the right of break end\r\n if (index > breakEndIndex) {\r\n startIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n }\r\n // value to the left of break start\r\n else if (index < breakStartIndex) {\r\n }\r\n // value within break\r\n else {\r\n index = breakStartIndex + (index - breakStartIndex) * breakSize;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n var deltaPosition = 0;\r\n var dataItem = this.dataItems.getIndex(index);\r\n if (dataItem) {\r\n deltaPosition = dataItem.deltaPosition;\r\n }\r\n return $math.round(deltaPosition + (index + location - startLocation - startIndex) / difference, 5);\r\n };\r\n /**\r\n * Converts a string category name to relative position on axis.\r\n *\r\n * `location` identifies relative location within category. 0 - beginning,\r\n * 0.5 - middle, 1 - end, and anything inbetween.\r\n *\r\n * @param category Category name\r\n * @param location Location (0-1)\r\n * @return Position\r\n */\r\n CategoryAxis.prototype.categoryToPosition = function (category, location) {\r\n var index = this.categoryToIndex(category);\r\n return this.indexToPosition(index, location);\r\n };\r\n /**\r\n * Converts a string category name to a orientation point (x, y, angle) on axis\r\n *\r\n * `location` identifies relative location within category. 0 - beginning,\r\n * 0.5 - middle, 1 - end, and anything inbetween.\r\n * @param category Category name\r\n * @param location Location (0-1)\r\n * @return Orientation point\r\n */\r\n CategoryAxis.prototype.categoryToPoint = function (category, location) {\r\n var position = this.categoryToPosition(category, location);\r\n var point = this.renderer.positionToPoint(position);\r\n var angle = this.renderer.positionToAngle(position);\r\n return { x: point.x, y: point.y, angle: angle };\r\n };\r\n /**\r\n * Converts a string category name to a orientation point (x, y, angle) on axis\r\n *\r\n * `location` identifies relative location within category. 0 - beginning,\r\n * 0.5 - middle, 1 - end, and anything inbetween.\r\n * @param category Category name\r\n * @param location Location (0-1)\r\n * @return Orientation point\r\n */\r\n CategoryAxis.prototype.anyToPoint = function (category, location) {\r\n return this.categoryToPoint(category, location);\r\n };\r\n /**\r\n * Converts a string category name to relative position on axis.\r\n *\r\n * An alias to `categoryToPosition()`.\r\n *\r\n * @param category Category name\r\n * @param location Location (0-1)\r\n * @return Relative position\r\n */\r\n CategoryAxis.prototype.anyToPosition = function (category, location) {\r\n return this.categoryToPosition(category, location);\r\n };\r\n /**\r\n * Converts named category to an index of data item it corresponds to.\r\n *\r\n * @param category Category\r\n * @return Data item index\r\n */\r\n CategoryAxis.prototype.categoryToIndex = function (category) {\r\n if ($type.hasValue(category)) {\r\n var dataItem = this.dataItemsByCategory.getKey(category);\r\n if (dataItem) {\r\n return dataItem.index;\r\n }\r\n }\r\n };\r\n /**\r\n * Zooms the axis to specific named ctaegories.\r\n *\r\n * @param startCategory Start category\r\n * @param endCategory End category\r\n */\r\n CategoryAxis.prototype.zoomToCategories = function (startCategory, endCategory) {\r\n this.zoomToIndexes(this.categoryToIndex(startCategory), this.categoryToIndex(endCategory) + 1);\r\n };\r\n /**\r\n * [getAnyRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param start [description]\r\n * @param end [description]\r\n * @param startLocation [description]\r\n * @param endLocation [description]\r\n * @return [description]\r\n */\r\n CategoryAxis.prototype.getAnyRangePath = function (start, end, startLocation, endLocation) {\r\n var startPos = this.categoryToPosition(start, startLocation);\r\n var endPos = this.categoryToPosition(end, endLocation);\r\n return this.getPositionRangePath(startPos, endPos); // Base class (Axis) gets range shape from AxisRenderer\r\n };\r\n /**\r\n * Takes an absolute position (px) within axis and adjust it to a specific\r\n * `location` within category it corresponds to.\r\n *\r\n * @param position Source position (px)\r\n * @param location Location within category (0-1)\r\n * @return Adjusted position (px)\r\n */\r\n CategoryAxis.prototype.roundPosition = function (position, location) {\r\n var index = this.positionToIndex(position);\r\n return this.indexToPosition(index, location);\r\n };\r\n /**\r\n * Finds and returns first series data item with specific category\r\n * @param series Target series\r\n * @param category Category\r\n * @return XYSeriesDataItem data item\r\n */\r\n CategoryAxis.prototype.getFirstSeriesDataItem = function (series, category) {\r\n for (var i = 0; i < series.dataItems.length; i++) {\r\n var dataItem = series.dataItems.getIndex(i);\r\n if (series.xAxis == this) {\r\n if (dataItem.categoryX == category) {\r\n return dataItem;\r\n }\r\n }\r\n if (series.yAxis == this) {\r\n if (dataItem.categoryY == category) {\r\n return dataItem;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Finds and returns last series data item with specific category.\r\n * @param series Target series\r\n * @param category Category\r\n * @return XYSeriesDataItem data item\r\n */\r\n CategoryAxis.prototype.getLastSeriesDataItem = function (series, category) {\r\n for (var i = series.dataItems.length - 1; i >= 0; i--) {\r\n var dataItem = series.dataItems.getIndex(i);\r\n if (series.xAxis == this) {\r\n if (dataItem.categoryX == category) {\r\n return dataItem;\r\n }\r\n }\r\n if (series.yAxis == this) {\r\n if (dataItem.categoryY == category) {\r\n return dataItem;\r\n }\r\n }\r\n }\r\n };\r\n // todo: optimize\r\n CategoryAxis.prototype.getSeriesDataItemByCategory = function (category, series) {\r\n var _this = this;\r\n var seriesDataItem;\r\n series.dataItems.each(function (dataItem) {\r\n if (series.xAxis == _this) {\r\n if (dataItem.categoryX == category) {\r\n seriesDataItem = dataItem;\r\n }\r\n }\r\n else if (series.yAxis == _this) {\r\n if (dataItem.categoryY == category) {\r\n seriesDataItem = dataItem;\r\n }\r\n }\r\n });\r\n return seriesDataItem;\r\n };\r\n /**\r\n * Returns a data item from Series that corresponds to a specific absolute\r\n * position on the Axis.\r\n *\r\n * @param series Target series\r\n * @param position Position (px)\r\n * @return XYSeriesDataItem data item\r\n */\r\n CategoryAxis.prototype.getSeriesDataItem = function (series, position, findNearest) {\r\n var _this = this;\r\n if ($type.isNumber(position)) {\r\n var index_1 = this.positionToIndex(position);\r\n if (index_1 >= this.dataItems.length) {\r\n index_1--;\r\n }\r\n var dataItem = this.dataItems.getIndex(index_1);\r\n if (dataItem) {\r\n var category_1 = dataItem.category;\r\n var sdi_1;\r\n var seriesDataItem = series.dataItems.getIndex(index_1);\r\n if (seriesDataItem) {\r\n if (series.xAxis == this) {\r\n if (seriesDataItem.categoryX == category_1) {\r\n return seriesDataItem;\r\n }\r\n }\r\n if (series.yAxis == this) {\r\n if (seriesDataItem.categoryY == category_1) {\r\n return seriesDataItem;\r\n }\r\n }\r\n }\r\n series.dataItems.each(function (dataItem) {\r\n if (series.xAxis == _this) {\r\n if (dataItem.categoryX == category_1) {\r\n if (!sdi_1) {\r\n sdi_1 = dataItem;\r\n }\r\n if (Math.abs(index_1 - sdi_1.index) > Math.abs(index_1 - dataItem.index)) {\r\n sdi_1 = dataItem;\r\n }\r\n }\r\n }\r\n if (series.yAxis == _this) {\r\n if (dataItem.categoryY == category_1) {\r\n if (!sdi_1) {\r\n sdi_1 = dataItem;\r\n }\r\n if (Math.abs(index_1 - sdi_1.index) > Math.abs(index_1 - dataItem.index)) {\r\n sdi_1 = dataItem;\r\n }\r\n }\r\n }\r\n });\r\n //@todo\r\n if (findNearest) {\r\n }\r\n return sdi_1;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the X coordinate for series' data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Category\r\n * @param location Location (0-1)\r\n * @return X coordinate (px)\r\n */\r\n CategoryAxis.prototype.getX = function (dataItem, key, location, stackKey, range) {\r\n var position = this.getPositionX(dataItem, key, location, stackKey, range);\r\n if ($type.isNaN(position)) {\r\n return this.basePoint.x;\r\n }\r\n else {\r\n return this.renderer.positionToPoint(position).x;\r\n }\r\n };\r\n /**\r\n * Returns relative position on axis for series' data item.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Category\r\n * @param location Location (0-1)\r\n * @return Relative position\r\n */\r\n CategoryAxis.prototype.getPositionX = function (dataItem, key, location, stackKey, range) {\r\n var position;\r\n if ($type.hasValue(key)) {\r\n position = this.categoryToPosition(dataItem.categories[key], location);\r\n }\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns the Y coordinate for series' data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Category\r\n * @param location Location (0-1)\r\n * @return Y coordinate (px)\r\n */\r\n CategoryAxis.prototype.getY = function (dataItem, key, location, stackKey, range) {\r\n var position = this.getPositionY(dataItem, key, location, stackKey, range);\r\n if ($type.isNaN(position)) {\r\n return this.basePoint.y;\r\n }\r\n else {\r\n return this.renderer.positionToPoint(position).y;\r\n }\r\n };\r\n /**\r\n * Returns relative position on axis for series' data item.\r\n *\r\n * @since 4.5.14\r\n * @param dataItem Data item\r\n * @param key Category\r\n * @param location Location (0-1)\r\n * @return Relative position\r\n */\r\n CategoryAxis.prototype.getPositionY = function (dataItem, key, location, stackKey, range) {\r\n var position;\r\n if ($type.hasValue(key)) {\r\n position = this.categoryToPosition(dataItem.categories[key], location);\r\n }\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return position;\r\n };\r\n /**\r\n * Returns an angle for series data item.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param dataItem Data item\r\n * @param key Category\r\n * @param location Location (0-1)\r\n * @param stackKey Stack key (?)\r\n * @param range Range to fit in\r\n * @return Angle\r\n */\r\n CategoryAxis.prototype.getAngle = function (dataItem, key, location, stackKey, range) {\r\n var position = this.categoryToPosition(dataItem.categories[key], location);\r\n if (range) {\r\n position = $math.fitToRange(position, range.start, range.end);\r\n }\r\n return this.positionToAngle(position);\r\n };\r\n /**\r\n * Returns an absolute pixel coordinate of the start of the cell (category),\r\n * that specific position value falls into.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param position Position (px)\r\n * @return Cell start position (px)\r\n */\r\n CategoryAxis.prototype.getCellStartPosition = function (position) {\r\n return this.roundPosition(position, 0);\r\n };\r\n /**\r\n * Returns an absolute pixel coordinate of the end of the cell (category),\r\n * that specific position value falls into.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param position Position (px)\r\n * @return Cell end position (px)\r\n */\r\n CategoryAxis.prototype.getCellEndPosition = function (position) {\r\n return this.roundPosition(position, 1);\r\n };\r\n /**\r\n * Returns text to show in a category tooltip, based on specific position\r\n * within axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position (px)\r\n * @return Label (category)\r\n */\r\n CategoryAxis.prototype.getTooltipText = function (position) {\r\n var dataItem = this.dataItems.getIndex(this.positionToIndex(position));\r\n if (dataItem) {\r\n this.tooltipDataItem = dataItem;\r\n this.tooltip.dataItem = dataItem;\r\n if (this.tooltipText) {\r\n return this.tooltipText;\r\n }\r\n if (!this._adapterO) {\r\n return dataItem.category;\r\n }\r\n else {\r\n return this._adapterO.apply(\"getTooltipText\", dataItem.category);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns an index of the category that corresponds to specific pixel\r\n * position within axis.\r\n *\r\n * @param position Position (px)\r\n * @return Category index\r\n */\r\n CategoryAxis.prototype.positionToIndex = function (position) {\r\n position = $math.round(position, 10);\r\n if (position < 0) {\r\n position = 0;\r\n }\r\n if (position > 1) {\r\n position = 1;\r\n }\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var difference = endIndex - startIndex - this.startLocation - (1 - this.endLocation);\r\n position += 1 / difference * this.startLocation;\r\n var index = null;\r\n if (this._axisBreaks) {\r\n var axisBreaks = this._axisBreaks;\r\n // in case we have some axis breaks\r\n $iter.eachContinue(axisBreaks.iterator(), function (axisBreak) {\r\n var breakStartPosition = axisBreak.startPosition;\r\n var breakEndPosition = axisBreak.endPosition;\r\n var breakStartIndex = axisBreak.adjustedStartValue;\r\n var breakEndIndex = axisBreak.adjustedEndValue;\r\n breakStartIndex = $math.max(breakStartIndex, startIndex);\r\n breakEndIndex = $math.min(breakEndIndex, endIndex);\r\n var breakSize = axisBreak.breakSize;\r\n difference -= (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n // position to the right of break end\r\n if (position > breakEndPosition) {\r\n startIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n }\r\n // position to the left of break start\r\n else if (position < breakStartPosition) {\r\n }\r\n // value within break\r\n else {\r\n var breakPosition = (position - breakStartPosition) / (breakEndPosition - breakStartPosition);\r\n index = breakStartIndex + Math.round(breakPosition * (breakEndIndex - breakStartIndex));\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n if (!$type.isNumber(index)) {\r\n index = Math.floor(position * difference + startIndex);\r\n }\r\n if (index >= this.dataItems.length) {\r\n index = this.dataItems.length - 1;\r\n }\r\n // not good, when panning out of bounds, each time one less item gets selected\r\n //if (index >= endIndex) {\r\n //\tindex--;\r\n //}\r\n return index;\r\n };\r\n /**\r\n * Returns category based on position.\r\n *\r\n * Please note that `position` represents position within axis which may be\r\n * zoomed and not correspond to Cursor's `position`.\r\n *\r\n * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n *\r\n * This is a synonim of `getPositionLabel()` implemented here for consistentcy.\r\n *\r\n * @since 4.3.8\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n * @param position Relative position on axis (0-1)\r\n * @return Position label\r\n */\r\n CategoryAxis.prototype.positionToCategory = function (position) {\r\n return this.getPositionLabel(position);\r\n };\r\n /**\r\n * Returns category based on position.\r\n *\r\n * Please note that `position` represents position within axis which may be\r\n * zoomed and not correspond to Cursor's `position`.\r\n *\r\n * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n * @param position Relative position on axis (0-1)\r\n * @return Position label\r\n */\r\n CategoryAxis.prototype.getPositionLabel = function (position) {\r\n var dataItem = this.dataItems.getIndex(this.positionToIndex(position));\r\n if (dataItem) {\r\n return dataItem.category;\r\n }\r\n };\r\n Object.defineProperty(CategoryAxis.prototype, \"basePoint\", {\r\n /**\r\n * Coordinates of the actual axis start.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Base point\r\n */\r\n get: function () {\r\n // This makes base grid to be drawn at the end of the axis and adds extra\r\n // grid which we need to nicely close the chart.\r\n return this.renderer.positionToPoint(1);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initializes Axis' renderer.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n CategoryAxis.prototype.initRenderer = function () {\r\n _super.prototype.initRenderer.call(this);\r\n var renderer = this.renderer;\r\n renderer.baseGrid.disabled = true;\r\n };\r\n Object.defineProperty(CategoryAxis.prototype, \"frequency\", {\r\n /**\r\n * Current frequency of labels of the axis.\r\n *\r\n * Normally it would be 1, but when labels start to be hidden due\r\n * to `minGridDistance` this read-only property will increase.\r\n *\r\n * @readonly\r\n * @since 4.2.0\r\n * @return Label frequency\r\n */\r\n get: function () {\r\n return this._frequency;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxis.prototype, \"sortBySeries\", {\r\n /**\r\n * @return Sort categories?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"sortBySeries\");\r\n },\r\n /**\r\n * If set to a reference of [[ColumnSeries]] the categories will be sorted\r\n * by actual values.\r\n *\r\n * The categories are ordered in descending order (from highest values to\r\n * lowest). To reverse the order, use axis renderer's `inversed` setting.\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * categoryAxis.sortBySeries = series;\r\n * categoryAxis.renderer.inversed = true;\r\n * ```\r\n * ```JavaScript\r\n * categoryAxis.sortBySeries = series;\r\n * categoryAxis.renderer.inversed = true;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * // ...\r\n * \"sortBySeries\": \"s1\",\r\n * \"renderer\": {\r\n * // ...\r\n * \"inversed\": true\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @since 4.8.7\r\n * @param value Sort categories?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"sortBySeries\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n CategoryAxis.prototype.processConfig = function (config) {\r\n if (config) {\r\n if ($type.hasValue(config.sortBySeries) && $type.isString(config.sortBySeries)) {\r\n if (this.map.hasKey(config.sortBySeries)) {\r\n config.sortBySeries = this.map.getKey(config.sortBySeries);\r\n }\r\n else {\r\n this.addDelayedMap(\"sortBySeries\", config.sortBySeries);\r\n delete config.sortBySeries;\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return CategoryAxis;\r\n}(Axis));\r\nexport { CategoryAxis };\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxis\"] = CategoryAxis;\r\nregistry.registeredClasses[\"CategoryAxisDataItem\"] = CategoryAxisDataItem;\r\n//# sourceMappingURL=CategoryAxis.js.map","/**\r\n * XY series module.\r\n */\r\nimport { __extends, __values } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Series, SeriesDataItem } from \"./Series\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $time from \"../../core/utils/Time\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport { options } from \"../../core/Options\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[XYSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar XYSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(XYSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"XYSeriesDataItem\";\r\n _this.values.customValue = {};\r\n _this.values.valueX = { stack: 0 };\r\n _this.values.valueY = { stack: 0 };\r\n _this.values.openValueX = {};\r\n _this.values.openValueY = {};\r\n _this.values.dateX = {};\r\n _this.values.dateY = {};\r\n _this.values.openDateX = {};\r\n _this.values.openDateY = {};\r\n _this.setLocation(\"dateX\", 0.5, 0);\r\n _this.setLocation(\"dateY\", 0.5, 0);\r\n _this.setLocation(\"categoryX\", 0.5, 0);\r\n _this.setLocation(\"categoryY\", 0.5, 0);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"valueX\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.valueX.value;\r\n },\r\n /**\r\n * Item's numeric value on X value axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"valueX\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"customValue\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.customValue.value;\r\n },\r\n /**\r\n * Item's custom numeric value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"customValue\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"valueY\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.valueY.value;\r\n },\r\n /**\r\n * Item's numeric value on Y value axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"valueY\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"dateX\", {\r\n /**\r\n * @return Date\r\n */\r\n get: function () {\r\n return this.getDate(\"dateX\");\r\n },\r\n /**\r\n * Item's date value on X date-based axis.\r\n *\r\n * @param date Date\r\n */\r\n set: function (date) {\r\n this.setDate(\"dateX\", date);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"dateY\", {\r\n /**\r\n * @return Date\r\n */\r\n get: function () {\r\n return this.getDate(\"dateY\");\r\n },\r\n /**\r\n * Item's date value on Y date-based axis.\r\n *\r\n * @param date Date\r\n */\r\n set: function (date) {\r\n this.setDate(\"dateY\", date);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"categoryX\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n return this.categories.categoryX;\r\n },\r\n /**\r\n * Item's category on X category axis.\r\n *\r\n * @param category Category\r\n */\r\n set: function (category) {\r\n this.setCategory(\"categoryX\", category);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"categoryY\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n return this.categories.categoryY;\r\n },\r\n /**\r\n * Item's category on Y category axis.\r\n *\r\n * @param category Category\r\n */\r\n set: function (category) {\r\n this.setCategory(\"categoryY\", category);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openValueX\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.openValueX.value;\r\n },\r\n /**\r\n * Item's open numeric value on X value axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"openValueX\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openValueY\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.openValueY.value;\r\n },\r\n /**\r\n * Item's open numeric value on Y value axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"openValueY\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openDateX\", {\r\n /**\r\n * @return Date\r\n */\r\n get: function () {\r\n return this.getDate(\"openDateX\");\r\n },\r\n /**\r\n * Item's open date value on X date-based axis.\r\n *\r\n * @param date Date\r\n */\r\n set: function (date) {\r\n this.setDate(\"openDateX\", date);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openDateY\", {\r\n /**\r\n * @return Date\r\n */\r\n get: function () {\r\n return this.getDate(\"openDateY\");\r\n },\r\n /**\r\n * Item's open date value on Y date-based axis.\r\n *\r\n * @param date Date\r\n */\r\n set: function (date) {\r\n this.setDate(\"openDateY\", date);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openCategoryX\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n return this.categories.openCategoryX;\r\n },\r\n /**\r\n * Item's open category on X category axis.\r\n *\r\n * @param category Category\r\n */\r\n set: function (category) {\r\n this.setCategory(\"openCategoryX\", category);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeriesDataItem.prototype, \"openCategoryY\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n return this.categories.openCategoryY;\r\n },\r\n /**\r\n * Item's open category on Y category axis.\r\n *\r\n * @param category Category\r\n */\r\n set: function (category) {\r\n this.setCategory(\"openCategoryY\", category);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Return smallest value out of all item's value fields.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fields Fields to check in\r\n * @param working Include working (temporary) values\r\n * @param stackValue If item is in a stack, the value item starts as\r\n * @return Value\r\n */\r\n XYSeriesDataItem.prototype.getMin = function (fields, working, stackValue) {\r\n var _this = this;\r\n //if (this.visible) { // dumped because of non smooth zooming\r\n var min;\r\n if (!$type.isNumber(stackValue)) {\r\n stackValue = 0;\r\n }\r\n $array.each(fields, function (field) {\r\n var value;\r\n if (working) {\r\n value = _this.getWorkingValue(field);\r\n }\r\n else {\r\n value = _this.getValue(field);\r\n }\r\n value += stackValue;\r\n if (value < min || !$type.isNumber(min)) {\r\n min = value;\r\n }\r\n });\r\n return min;\r\n //}\r\n };\r\n /**\r\n * Return biggest value out of all item's value fields.\r\n *\r\n * @ignore Exclude from docs\r\n * @param fields Fields to check in\r\n * @param working Include working (temporary) values\r\n * @param stackValue If item is in a stack, the value item starts as\r\n * @return Value\r\n */\r\n XYSeriesDataItem.prototype.getMax = function (fields, working, stackValue) {\r\n var _this = this;\r\n //if (this.visible) { // dumped because of non smooth zooming\r\n var max;\r\n if (!$type.isNumber(stackValue)) {\r\n stackValue = 0;\r\n }\r\n $array.each(fields, function (field) {\r\n var value;\r\n if (working) {\r\n value = _this.getWorkingValue(field);\r\n }\r\n else {\r\n value = _this.getValue(field);\r\n }\r\n value += stackValue;\r\n if (value > max || !$type.isNumber(max)) {\r\n max = value;\r\n }\r\n });\r\n return max;\r\n //}\r\n };\r\n return XYSeriesDataItem;\r\n}(SeriesDataItem));\r\nexport { XYSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines Series for [[XYChart]].\r\n *\r\n * @see {@link IXYSeriesEvents} for a list of available Events\r\n * @see {@link IXYSeriesAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar XYSeries = /** @class */ (function (_super) {\r\n __extends(XYSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYSeries() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Indicates which of the series' `dataFields` to calculate aggregate values\r\n * for.\r\n *\r\n * Available data fields for all [[XYSeries]] are:\r\n * `valueX`, `valueY`, `openValueX`, and `openValueY`.\r\n *\r\n * [[CandlestickSeries]] adds:\r\n * `lowValueX`, `lowValueY`, `highValueX`, and `highValueY`.\r\n *\r\n * Available options:\r\n * `\"open\"`, `\"close\"`, `\"low\"`, `\"high\"`, `\"average\"`, `\"sum\"`.\r\n *\r\n * Defaults are as follows:\r\n * * `valueX`: `\"close\"`\r\n * * `valueY`: `\"close\"`\r\n * * `openValueX`: `\"open\"`\r\n * * `openValueY`: `\"open\"`\r\n * * `lowValueX`: `\"low\"`\r\n * * `lowValueY`: `\"low\"`\r\n * * `highValueX`: `\"high\"`\r\n * * `highValueY`: `\"high\"`\r\n *\r\n * Is required only if data being plotted on a `DateAxis` and\r\n * its `groupData` is set to `true`.\r\n *\r\n * ```TypeScript\r\n * let dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n * dateAxis.groupData = true;\r\n *\r\n * let valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n *\r\n * let series = chart.series.push(new am4charts.LineSeries());\r\n * series.dataFields.dateX = \"date\";\r\n * series.dataFields.valueY = \"value\";\r\n * series.groupFields.valueY = \"average\";\r\n * ```\r\n * ```JavaScript\r\n * var dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n * dateAxis.groupData = true;\r\n *\r\n * var valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n *\r\n * var series = chart.series.push(new am4charts.LineSeries());\r\n * series.dataFields.dateX = \"date\";\r\n * series.dataFields.valueY = \"value\";\r\n * series.groupFields.valueY = \"average\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"groupData\": true\r\n * }],\r\n * \"yAxes\": [{\r\n * \"type\": \"ValueAxis\"\r\n * }],\r\n * \"series\": [{\r\n * \"type\": \"LineSeries\",\r\n * \"dataFields\": {\r\n * \"dateX\": \"date\",\r\n * \"valueY\": \"value\"\r\n * },\r\n * \"groupFields\": {\r\n * \"valueY\": \"average\"\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * The above setup will ensure, that if there are many data items within\r\n * selected range, they will be grouped into aggregated data points, using\r\n * average value of all the values.\r\n *\r\n * For example if we have 2 years worth of daily data (~700 data items), when\r\n * fully zoomed out, the chart would show ~100 data items instead: one for\r\n * each week in those two years.\r\n *\r\n * Grouping will occur automatically, based on current selection range, and\r\n * will change dynamically when user zooms in/out the chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n * @since 4.7.0\r\n */\r\n _this.groupFields = {};\r\n /**\r\n * X axis the series is attached to.\r\n */\r\n _this._xAxis = new MutableValueDisposer();\r\n /**\r\n * Y axis the series is attached to.\r\n */\r\n _this._yAxis = new MutableValueDisposer();\r\n /**\r\n * [_xValueFields description]\r\n *\r\n * @todo Description\r\n */\r\n _this._xValueFields = [];\r\n /**\r\n * [_yValueFields description]\r\n *\r\n * @todo Description\r\n */\r\n _this._yValueFields = [];\r\n /**\r\n * @ignore\r\n */\r\n _this._baseInterval = {};\r\n /**\r\n * @ignore\r\n */\r\n _this.dataGrouped = false;\r\n /**\r\n * @ignore\r\n */\r\n _this.usesShowFields = false;\r\n /**\r\n * @ignore\r\n */\r\n _this._dataSetChanged = false;\r\n _this._maxxX = 100000;\r\n _this._maxxY = 100000;\r\n _this._propertiesChanged = false;\r\n /**\r\n * @ignore\r\n */\r\n _this.outOfRange = false;\r\n _this.className = \"XYSeries\";\r\n _this.isMeasured = false;\r\n _this.groupFields.valueX = \"close\";\r\n _this.groupFields.valueY = \"close\";\r\n _this.groupFields.customValue = \"close\";\r\n _this.groupFields.openValueX = \"open\";\r\n _this.groupFields.openValueY = \"open\";\r\n _this.cursorTooltipEnabled = true;\r\n _this.cursorHoverEnabled = true;\r\n _this.excludeFromTotal = false;\r\n _this.mainContainer.mask = new Sprite();\r\n _this.mainContainer.mask.setElement(_this.paper.add(\"path\"));\r\n _this.stacked = false;\r\n _this.snapTooltip = false;\r\n _this._showBullets = false;\r\n _this.tooltip.pointerOrientation = \"horizontal\";\r\n _this.properties.stackToNegative = true;\r\n _this.hideTooltipWhileZooming = true;\r\n _this.setPropertyValue(\"maskBullets\", true);\r\n _this.tooltip.events.on(\"hidden\", function () {\r\n _this.returnBulletDefaultState();\r\n }, undefined, false);\r\n _this._disposers.push(_this._xAxis);\r\n _this._disposers.push(_this._yAxis);\r\n _this.observe(visualProperties, function () {\r\n if (_this.inited) {\r\n _this._propertiesChanged = true;\r\n if (_this.legendDataItem) {\r\n _this.legendDataItem.childrenCreated = false;\r\n }\r\n if (_this.chart && _this.chart.legend) {\r\n _this.chart.legend.invalidateDataItems();\r\n }\r\n _this.invalidate();\r\n }\r\n }, undefined, false);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n XYSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"X/Y Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n XYSeries.prototype.createDataItem = function () {\r\n return new XYSeriesDataItem();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.resetExtremes = function () {\r\n this._tmin.clear();\r\n this._tmax.clear();\r\n this._smin.clear();\r\n this._smax.clear();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.dataChangeUpdate = function () {\r\n this.dataGrouped = false;\r\n this._baseInterval = {};\r\n this._currentDataSetId = \"\";\r\n this.resetExtremes();\r\n if (this.xAxis) {\r\n this.xAxis.seriesDataChangeUpdate(this);\r\n }\r\n if (this.yAxis) {\r\n this.yAxis.seriesDataChangeUpdate(this);\r\n }\r\n };\r\n /**\r\n * (Re)validates the series' data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.validateData = function () {\r\n this._baseInterval = {};\r\n var dataFields = this.dataFields;\r\n if (dataFields.valueYShow || dataFields.openValueXShow || dataFields.openValueXShow || dataFields.openValueYShow) {\r\n this.usesShowFields = true;\r\n }\r\n else {\r\n this.usesShowFields = false;\r\n }\r\n this.defineFields();\r\n if (this.data.length > 0) {\r\n this.dataChangeUpdate();\r\n }\r\n _super.prototype.validateData.call(this);\r\n this.updateItemReaderText();\r\n if (this.chart) {\r\n if (!$type.hasValue(this.dataFields[this._xField]) || !$type.hasValue(this.dataFields[this._yField])) {\r\n throw Error(\"Data fields for series \\\"\" + (this.name ? this.name : this.uid) + \"\\\" are not properly defined.\");\r\n }\r\n }\r\n // 4.7.21 solves 51540\r\n if (this.inited && this.isHidden) {\r\n this.hide(0);\r\n }\r\n this.dataGrouped = false;\r\n };\r\n /**\r\n * Processes data item.\r\n *\r\n * @param dataItem Data item\r\n * @param dataContext Raw data\r\n * @param index Index of the data item\r\n */\r\n XYSeries.prototype.processDataItem = function (dataItem, dataContext) {\r\n try {\r\n _super.prototype.processDataItem.call(this, dataItem, dataContext);\r\n this.xAxis.processSeriesDataItem(dataItem, \"X\");\r\n this.yAxis.processSeriesDataItem(dataItem, \"Y\");\r\n this.setInitialWorkingValues(dataItem);\r\n }\r\n catch (e) {\r\n if (this._chart) {\r\n this._chart.raiseCriticalError(e);\r\n }\r\n }\r\n };\r\n /**\r\n *\r\n * When validating raw data, instead of processing data item, we update it\r\n *\r\n * @ignore Exclude from docs\r\n * @param item\r\n */\r\n XYSeries.prototype.updateDataItem = function (dataItem) {\r\n _super.prototype.updateDataItem.call(this, dataItem);\r\n //dataItem.events.disable();\r\n this.xAxis.processSeriesDataItem(dataItem, \"X\");\r\n this.yAxis.processSeriesDataItem(dataItem, \"Y\");\r\n //dataItem.events.enable();\t\t\r\n };\r\n /**\r\n * Inits data item's working values.\r\n *\r\n * @param dataItem Data item\r\n * @param index Data item's index\r\n */\r\n XYSeries.prototype.setInitialWorkingValues = function (dataItem) {\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis) {\r\n var dataItemsX = this.dataItemsByAxis.getKey(xAxis.uid);\r\n if (dataItemsX) {\r\n dataItemsX.clear();\r\n }\r\n if (xAxis instanceof CategoryAxis) {\r\n this.clearCatAxis(xAxis);\r\n }\r\n }\r\n if (yAxis) {\r\n var dataItemsY = this.dataItemsByAxis.getKey(yAxis.uid);\r\n if (dataItemsY) {\r\n dataItemsY.clear();\r\n }\r\n if (yAxis instanceof CategoryAxis) {\r\n this.clearCatAxis(yAxis);\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.clearCatAxis = function (axis) {\r\n var uid = this.uid;\r\n axis.dataItems.each(function (dataItem) {\r\n if (dataItem.seriesDataItems[uid]) {\r\n dataItem.seriesDataItems[uid] = [];\r\n }\r\n });\r\n };\r\n /**\r\n * Sets up which data fields to use for data access.\r\n */\r\n XYSeries.prototype.defineFields = function () {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis && yAxis) {\r\n var xAxisFieldName = xAxis.axisFieldName;\r\n var xField = (xAxisFieldName + \"X\");\r\n var xOpenField = (\"open\" + $utils.capitalize(xAxisFieldName) + \"X\");\r\n var yAxisFieldName = yAxis.axisFieldName;\r\n var yField = (yAxisFieldName + \"Y\");\r\n var yOpenField = (\"open\" + $utils.capitalize(yAxisFieldName) + \"Y\");\r\n this._xField = xField;\r\n this._yField = yField;\r\n if (this.dataFields[xOpenField]) {\r\n this._xOpenField = xOpenField;\r\n }\r\n if (this.dataFields[yOpenField]) {\r\n this._yOpenField = yOpenField;\r\n }\r\n if (!this.dataFields[yOpenField] && this.baseAxis == yAxis) {\r\n this._yOpenField = yField;\r\n }\r\n if (!this.dataFields[xOpenField] && this.baseAxis == xAxis) {\r\n this._xOpenField = xField;\r\n }\r\n if (this.stacked && this.baseAxis == xAxis) {\r\n this._xOpenField = xField;\r\n }\r\n if (this.stacked && this.baseAxis == yAxis) {\r\n this._yOpenField = yField;\r\n }\r\n if ((xAxis instanceof CategoryAxis) && (yAxis instanceof CategoryAxis)) {\r\n if (!this._yOpenField) {\r\n this._yOpenField = yField;\r\n }\r\n }\r\n this._xValueFields = [];\r\n this._yValueFields = [];\r\n this.addValueField(xAxis, this._xValueFields, this._xField);\r\n this.addValueField(xAxis, this._xValueFields, this._xOpenField);\r\n this.addValueField(yAxis, this._yValueFields, this._yField);\r\n this.addValueField(yAxis, this._yValueFields, this._yOpenField);\r\n }\r\n };\r\n /**\r\n * [axis description]\r\n *\r\n * @todo Description\r\n * @param axis Axis\r\n * @param fields Fields (?)\r\n * @param field Field\r\n */\r\n XYSeries.prototype.addValueField = function (axis, fields, field) {\r\n if (axis instanceof ValueAxis) {\r\n if ($type.hasValue(this.dataFields[field]) && fields.indexOf(field) == -1) {\r\n fields.push(field);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets category field from the category axis.\r\n *\r\n * User might set field for category axis only, but not for series. In such\r\n * case, we take field value from axis and set it for series.\r\n *\r\n * @param field Field\r\n * @param axis Axis\r\n */\r\n XYSeries.prototype.setCategoryAxisField = function (field, axis) {\r\n if (!$type.hasValue(this.dataFields[field])) {\r\n this.dataFields[field] = axis.dataFields.category;\r\n }\r\n };\r\n /**\r\n * Sets date field from the date axis.\r\n *\r\n * User might set field for category axis only, but not for series. In such\r\n * case, we take field value from axis and set it for series.\r\n *\r\n * @param field Field\r\n * @param axis Axis\r\n */\r\n XYSeries.prototype.setDateAxisField = function (field, axis) {\r\n if (!$type.hasValue(this.dataFields[field])) {\r\n this.dataFields[field] = axis.dataFields.date;\r\n }\r\n };\r\n /**\r\n * Performs after-draw tasks, e.g. creates masks.\r\n */\r\n XYSeries.prototype.afterDraw = function () {\r\n _super.prototype.afterDraw.call(this);\r\n this.createMask();\r\n };\r\n /**\r\n * Create a mask for the series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.createMask = function () {\r\n // this mask from which we cut out ranges. does not work well if ranges overlap.\r\n if (this.mainContainer.mask) {\r\n var path_1 = this.getMaskPath();\r\n // @todo: this approach won't work well on circluar or other non x/y axes\r\n $iter.each(this.axisRanges.iterator(), function (range) {\r\n if (range.axisFill.fillPath) {\r\n range.axisFill.validate();\r\n path_1 += range.axisFill.fillPath;\r\n }\r\n });\r\n this.mainContainer.mask.path = path_1;\r\n }\r\n };\r\n /**\r\n * Returns an SVG path to use as series mask.\r\n *\r\n * @return SVG path\r\n */\r\n XYSeries.prototype.getMaskPath = function () {\r\n if (this.xAxis && this.yAxis) {\r\n return $path.rectToPath({\r\n x: 0,\r\n y: 0,\r\n width: this.xAxis.axisLength,\r\n height: this.yAxis.axisLength\r\n });\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Returns axis data field to use.\r\n *\r\n * @param axis Axis\r\n * @return Field name\r\n */\r\n XYSeries.prototype.getAxisField = function (axis) {\r\n if (axis == this.xAxis) {\r\n return this.xField;\r\n }\r\n if (axis == this.yAxis) {\r\n return this.yField;\r\n }\r\n };\r\n /**\r\n * Validates data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.validateDataItems = function () {\r\n var chart = this.chart;\r\n if (chart) {\r\n this._maxxX = $math.max(100000, chart.plotContainer.maxWidth * 2);\r\n this._maxxY = $math.max(100000, chart.plotContainer.maxHeight * 2);\r\n }\r\n // this helps date axis to check which baseInterval we should use\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis && yAxis) {\r\n xAxis.updateAxisBySeries();\r\n yAxis.updateAxisBySeries();\r\n }\r\n _super.prototype.validateDataItems.call(this);\r\n if (xAxis && yAxis) {\r\n xAxis.postProcessSeriesDataItems(this);\r\n yAxis.postProcessSeriesDataItems(this);\r\n }\r\n };\r\n /**\r\n * Validates data range.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.validateDataRange = function () {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis && yAxis) {\r\n if (xAxis.dataRangeInvalid) {\r\n xAxis.validateDataRange();\r\n }\r\n if (yAxis.dataRangeInvalid) {\r\n yAxis.validateDataRange();\r\n }\r\n }\r\n _super.prototype.validateDataRange.call(this);\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.validate = function () {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis && yAxis) {\r\n if (xAxis.invalid) {\r\n xAxis.validate();\r\n }\r\n if (yAxis.invalid) {\r\n yAxis.validate();\r\n }\r\n this.y = yAxis.pixelY;\r\n this.x = xAxis.pixelX;\r\n this._showBullets = true;\r\n var minBulletDistance = this.minBulletDistance;\r\n if ($type.isNumber(minBulletDistance)) {\r\n if (this.baseAxis.axisLength / (this.endIndex - this.startIndex) < minBulletDistance) {\r\n this._showBullets = false;\r\n }\r\n }\r\n }\r\n this.updateTooltip();\r\n if ((xAxis instanceof DateAxis && xAxis.groupData && !this.dataGrouped) || (yAxis instanceof DateAxis && yAxis.groupData && !this.dataGrouped)) {\r\n return;\r\n }\r\n _super.prototype.validate.call(this);\r\n var chart = this.chart;\r\n var maskBullets = this.maskBullets;\r\n if (chart && maskBullets) {\r\n if (chart.className == \"XYChart\") {\r\n if (chart.leftAxesContainer.layout == \"vertical\" || chart.rightAxesContainer.layout == \"vertical\") {\r\n if (this.yAxis) {\r\n this.bulletsContainer.mask = this.yAxis.renderer.gridContainer;\r\n }\r\n else {\r\n this.bulletsContainer.mask = undefined;\r\n }\r\n }\r\n if (chart.topAxesContainer.layout == \"horizontal\" || chart.bottomAxesContainer.layout == \"horizontal\") {\r\n if (this.xAxis) {\r\n this.bulletsContainer.mask = this.xAxis.renderer.gridContainer;\r\n }\r\n else {\r\n this.bulletsContainer.mask = undefined;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"xAxis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n if (this.chart) {\r\n if (!this._xAxis.get()) {\r\n var axis = this.chart.xAxes.getIndex(0);\r\n if (!axis) {\r\n throw Error(\"There are no X axes on chart.\");\r\n }\r\n this.xAxis = axis;\r\n }\r\n return this._xAxis.get();\r\n }\r\n },\r\n /**\r\n * X axis the series is attached to.\r\n *\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n this.setXAxis(axis);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n XYSeries.prototype.setXAxis = function (axis) {\r\n var oldAxis = this._xAxis.get();\r\n if (oldAxis != axis) {\r\n if (oldAxis) {\r\n this.dataItemsByAxis.removeKey(oldAxis.uid);\r\n // TODO why is this here ?\r\n this._xAxis.dispose();\r\n // temp @todo: why it is not disposed?\r\n oldAxis.series.removeValue(this);\r\n }\r\n this._xAxis.set(axis, axis.registerSeries(this));\r\n this.dataItemsByAxis.setKey(axis.uid, new Dictionary());\r\n this.invalidateData();\r\n }\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"yAxis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n if (this.chart) {\r\n if (!this._yAxis.get()) {\r\n var axis = this.chart.yAxes.getIndex(0);\r\n if (!axis) {\r\n throw Error(\"There are no Y axes on chart.\");\r\n }\r\n this.yAxis = axis;\r\n }\r\n return this._yAxis.get();\r\n }\r\n },\r\n /**\r\n * Y axis the series is attached to.\r\n *\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n this.setYAxis(axis);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n XYSeries.prototype.setYAxis = function (axis) {\r\n var oldAxis = this._yAxis.get();\r\n if (oldAxis != axis) {\r\n if (oldAxis) {\r\n this.dataItemsByAxis.removeKey(oldAxis.uid);\r\n // TODO why is this here ?\r\n this._yAxis.dispose();\r\n // temp @todo: why it is not disposed?\r\n oldAxis.series.removeValue(this);\r\n }\r\n this._yAxis.set(axis, axis.registerSeries(this));\r\n if (axis.chart instanceof XYChart) {\r\n axis.chart.handleYAxisSet(this);\r\n }\r\n this.dataItemsByAxis.setKey(axis.uid, new Dictionary());\r\n this.invalidateData();\r\n }\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"baseAxis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (!this._baseAxis && xAxis && yAxis) {\r\n if (yAxis instanceof DateAxis) {\r\n this._baseAxis = yAxis;\r\n }\r\n if (xAxis instanceof DateAxis) {\r\n this._baseAxis = xAxis;\r\n }\r\n if (yAxis instanceof CategoryAxis) {\r\n this._baseAxis = yAxis;\r\n }\r\n if (xAxis instanceof CategoryAxis) {\r\n this._baseAxis = xAxis;\r\n }\r\n if (!this._baseAxis) {\r\n this._baseAxis = xAxis;\r\n }\r\n }\r\n return this._baseAxis;\r\n },\r\n /**\r\n * The main (base) axis.\r\n *\r\n * This is the axis that series fills will go to, or grow animations will\r\n * happen from.\r\n *\r\n * @param value Axis\r\n */\r\n set: function (value) {\r\n if (this._baseAxis != value) {\r\n this._baseAxis = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds one or several (array) of data items to the existing data.\r\n *\r\n * @param rawDataItem One or many raw data item objects\r\n */\r\n XYSeries.prototype.addData = function (rawDataItem, removeCount, skipRaw) {\r\n _super.prototype.addData.call(this, rawDataItem, removeCount, skipRaw);\r\n var scrollbarSeries = this.scrollbarSeries;\r\n if (scrollbarSeries) {\r\n this.scrollbarSeries.addData(rawDataItem, removeCount, true);\r\n this.scrollbarSeries._parseDataFrom = this._parseDataFrom;\r\n }\r\n };\r\n XYSeries.prototype.setData = function (value) {\r\n _super.prototype.setData.call(this, value);\r\n if (this.scrollbarSeries) {\r\n this.scrollbarSeries.setData(value);\r\n }\r\n };\r\n /**\r\n * Makes the chart use particular data set.\r\n *\r\n * If `id` is not provided or there is no such data set, main data will be\r\n * used.\r\n *\r\n * @ignore\r\n * @since 4.7.0\r\n * @param id Data set id\r\n */\r\n XYSeries.prototype.setDataSet = function (id) {\r\n var changed = _super.prototype.setDataSet.call(this, id);\r\n if (changed) {\r\n this._dataSetChanged = true;\r\n var dataItems = this.dataItems;\r\n this.resetExtremes();\r\n if (dataItems && dataItems.length > 0) {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n this._prevStartIndex = undefined;\r\n this._prevEndIndex = undefined;\r\n this._startIndex = undefined;\r\n this._endIndex = undefined;\r\n if (!this.appeared) {\r\n this.processValues(false); // this will slow down!\r\n }\r\n if (xAxis instanceof DateAxis && xAxis == this.baseAxis) {\r\n this._tmin.setKey(xAxis.uid, dataItems.getIndex(0).dateX.getTime());\r\n this._tmax.setKey(xAxis.uid, dataItems.getIndex(dataItems.length - 1).dateX.getTime());\r\n this.dispatch(\"extremeschanged\");\r\n }\r\n if (yAxis instanceof DateAxis && yAxis == this.baseAxis) {\r\n this._tmin.setKey(yAxis.uid, dataItems.getIndex(0).dateY.getTime());\r\n this._tmax.setKey(yAxis.uid, dataItems.getIndex(dataItems.length - 1).dateY.getTime());\r\n this.dispatch(\"extremeschanged\");\r\n }\r\n }\r\n }\r\n return changed;\r\n };\r\n /**\r\n * Processes values after data items' were added.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItems Data items\r\n */\r\n XYSeries.prototype.processValues = function (working) {\r\n _super.prototype.processValues.call(this, working);\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (!xAxis || !yAxis) {\r\n return;\r\n }\r\n var dataItems = this.dataItems;\r\n var minX = Infinity;\r\n var maxX = -Infinity;\r\n var minY = Infinity;\r\n var maxY = -Infinity;\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var workingStartIndex = startIndex;\r\n var workingEndIndex = endIndex;\r\n if (!working) {\r\n startIndex = 0;\r\n endIndex = this.dataItems.length;\r\n }\r\n for (var i = startIndex; i < endIndex; i++) {\r\n var dataItem = dataItems.getIndex(i);\r\n this.getStackValue(dataItem, working);\r\n var stackX = dataItem.getValue(\"valueX\", \"stack\");\r\n var stackY = dataItem.getValue(\"valueY\", \"stack\");\r\n if (!working) {\r\n stackX = dataItem.getValue(\"valueX\", \"stackTrue\");\r\n stackY = dataItem.getValue(\"valueY\", \"stackTrue\");\r\n }\r\n minX = $math.min(dataItem.getMin(this._xValueFields, working, stackX), minX);\r\n minY = $math.min(dataItem.getMin(this._yValueFields, working, stackY), minY);\r\n maxX = $math.max(dataItem.getMax(this._xValueFields, working, stackX), maxX);\r\n maxY = $math.max(dataItem.getMax(this._yValueFields, working, stackY), maxY);\r\n // if it's stacked, pay attention to stack value\r\n if (this.stacked) {\r\n if (this.baseAxis == xAxis) {\r\n if (stackY < minY) {\r\n minY = stackY;\r\n }\r\n if (stackY > maxY) {\r\n maxY = stackY;\r\n }\r\n }\r\n if (this.baseAxis == yAxis) {\r\n if (stackX < minX) {\r\n minX = stackX;\r\n }\r\n if (stackX > maxX) {\r\n maxX = stackX;\r\n }\r\n }\r\n }\r\n }\r\n // this is mainly for value axis to calculate total and perecent.total of each series category\r\n xAxis.processSeriesDataItems();\r\n yAxis.processSeriesDataItems();\r\n var xAxisId = xAxis.uid;\r\n var yAxisId = yAxis.uid;\r\n if (this.xAxis instanceof ValueAxis && (minX == Infinity || maxX == -Infinity)) {\r\n this._smin.setKey(xAxisId, undefined);\r\n this._smax.setKey(xAxisId, undefined);\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n return;\r\n }\r\n if (this.yAxis instanceof ValueAxis && (minY == Infinity || maxY == -Infinity)) {\r\n this._smin.setKey(yAxisId, undefined);\r\n this._smax.setKey(yAxisId, undefined);\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n return;\r\n }\r\n if (!working) {\r\n if (this._tmin.getKey(xAxisId) != minX || this._tmax.getKey(xAxisId) != maxX || this._tmin.getKey(yAxisId) != minY || this._tmax.getKey(yAxisId) != maxY) {\r\n this._tmin.setKey(xAxisId, minX);\r\n this._tmax.setKey(xAxisId, maxX);\r\n this._tmin.setKey(yAxisId, minY);\r\n this._tmax.setKey(yAxisId, maxY);\r\n var stackedSeries = this.stackedSeries;\r\n if (stackedSeries) {\r\n if (stackedSeries.isDisposed()) {\r\n this.stackedSeries = undefined;\r\n }\r\n else {\r\n stackedSeries.processValues(false);\r\n }\r\n }\r\n this.dispatchImmediately(\"extremeschanged\");\r\n }\r\n }\r\n if (startIndex != workingStartIndex || endIndex != workingEndIndex) {\r\n minX = Infinity;\r\n maxX = -Infinity;\r\n minY = Infinity;\r\n maxY = -Infinity;\r\n for (var i = workingStartIndex; i < workingEndIndex; i++) {\r\n var dataItem = dataItems.getIndex(i);\r\n this.getStackValue(dataItem, working);\r\n var stackX = dataItem.getValue(\"valueX\", \"stack\");\r\n var stackY = dataItem.getValue(\"valueY\", \"stack\");\r\n if (!working) {\r\n stackX = dataItem.getValue(\"valueX\", \"stackTrue\");\r\n stackY = dataItem.getValue(\"valueY\", \"stackTrue\");\r\n }\r\n minX = $math.min(dataItem.getMin(this._xValueFields, working, stackX), minX);\r\n minY = $math.min(dataItem.getMin(this._yValueFields, working, stackY), minY);\r\n maxX = $math.max(dataItem.getMax(this._xValueFields, working, stackX), maxX);\r\n maxY = $math.max(dataItem.getMax(this._yValueFields, working, stackY), maxY);\r\n // if it's stacked, pay attention to stack value\r\n if (this.stacked) {\r\n if (this.baseAxis == xAxis) {\r\n if (stackY < minY) {\r\n minY = stackY;\r\n }\r\n if (stackY > maxY) {\r\n maxY = stackY;\r\n }\r\n }\r\n if (this.baseAxis == yAxis) {\r\n if (stackX < minX) {\r\n minX = stackX;\r\n }\r\n if (stackX > maxX) {\r\n maxX = stackX;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (this.xAxis instanceof ValueAxis && (minX == Infinity || maxX == -Infinity)) {\r\n this._smin.setKey(xAxisId, undefined);\r\n this._smax.setKey(xAxisId, undefined);\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n return;\r\n }\r\n if (this.yAxis instanceof ValueAxis && (minY == Infinity || maxY == -Infinity)) {\r\n this._smin.setKey(yAxisId, undefined);\r\n this._smax.setKey(yAxisId, undefined);\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n return;\r\n }\r\n if (this._smin.getKey(xAxisId) != minX || this._smax.getKey(xAxisId) != maxX || this._smin.getKey(yAxisId) != minY || this._smax.getKey(yAxisId) != maxY) {\r\n this._smin.setKey(xAxisId, minX);\r\n this._smax.setKey(xAxisId, maxX);\r\n this._smin.setKey(yAxisId, minY);\r\n this._smax.setKey(yAxisId, maxY);\r\n if (this.appeared || this.start != 0 || this.end != 1 || this.dataItems != this.mainDataSet) {\r\n /// new, helps to handle issues with change percent\r\n var changed = false;\r\n if (yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n var tmin = this._tmin.getKey(yAxisId);\r\n if (!$type.isNumber(tmin) || ((this.usesShowFields || this._dataSetChanged || (xAxis instanceof DateAxis && xAxis.groupData && this.isShowing)) && minY < tmin) || (this.stackedSeries && !this.isHidden && !working)) {\r\n this._tmin.setKey(yAxisId, minY);\r\n changed = true;\r\n }\r\n var tmax = this._tmax.getKey(yAxisId);\r\n if (!$type.isNumber(tmax) || ((this.usesShowFields || this._dataSetChanged || (xAxis instanceof DateAxis && xAxis.groupData && this.isShowing)) && maxY > tmax) || (this.stackedSeries && !this.isHidden && !working)) {\r\n this._tmax.setKey(yAxisId, maxY);\r\n changed = true;\r\n }\r\n }\r\n if (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis)) {\r\n var tmin = this._tmin.getKey(xAxisId);\r\n if (!$type.isNumber(tmin) || ((this.usesShowFields || this._dataSetChanged || (yAxis instanceof DateAxis && yAxis.groupData && this.isShowing)) && minX < tmin) || (this.stackedSeries && !this.isHidden && !working)) {\r\n this._tmin.setKey(xAxisId, minX);\r\n changed = true;\r\n }\r\n var tmax = this._tmax.getKey(xAxisId);\r\n if (!$type.isNumber(tmax) || ((this.usesShowFields || this._dataSetChanged || (yAxis instanceof DateAxis && yAxis.groupData && this.isShowing)) && maxX > tmax) || (this.stackedSeries && !this.isHidden && !working)) {\r\n this._tmax.setKey(xAxisId, maxX);\r\n changed = true;\r\n }\r\n }\r\n if (changed) {\r\n this.dispatchImmediately(\"extremeschanged\");\r\n }\r\n if (this.start == 0 && this.end == 1) {\r\n // yes, its ok. otherwise min/max won't be updated when zooming out\r\n this._dataSetChanged = false;\r\n }\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n }\r\n }\r\n if (!working && this.stacked) {\r\n this.processValues(true);\r\n }\r\n };\r\n /**\r\n * Hides element's [[Tooltip]].\r\n *\r\n * @see {@link Tooltip}\r\n */\r\n XYSeries.prototype.hideTooltip = function (duration) {\r\n _super.prototype.hideTooltip.call(this, duration);\r\n this.returnBulletDefaultState();\r\n this._prevTooltipDataItem = undefined;\r\n };\r\n /**\r\n * Shows series tooltip at specific position.\r\n *\r\n * @param xPosition X\r\n * @param yPosition Y\r\n */\r\n XYSeries.prototype.showTooltipAtPosition = function (xPosition, yPosition) {\r\n var dataItem;\r\n if (this.visible && !this.isHiding && !this.isShowing) {\r\n var xAxis = this._xAxis.get();\r\n var yAxis = this._yAxis.get();\r\n if (xAxis == this.baseAxis) {\r\n dataItem = xAxis.getSeriesDataItem(this, xAxis.toAxisPosition(xPosition), this.snapTooltip);\r\n }\r\n if (yAxis == this.baseAxis) {\r\n dataItem = yAxis.getSeriesDataItem(this, yAxis.toAxisPosition(yPosition), this.snapTooltip);\r\n }\r\n var point = this.showTooltipAtDataItem(dataItem);\r\n if (point) {\r\n return point;\r\n }\r\n // so that if tooltip is shown on columns or bullets for it not to be hidden\r\n if (!this.tooltipText && !this.tooltipHTML) {\r\n return;\r\n }\r\n }\r\n this.hideTooltip();\r\n };\r\n XYSeries.prototype.getAdjustedXLocation = function (dataItem, field, bulletLocationX) {\r\n return dataItem.locations[field];\r\n };\r\n XYSeries.prototype.getAdjustedYLocation = function (dataItem, field, bulletLocationY) {\r\n return dataItem.locations[field];\r\n };\r\n /**\r\n * Shows series tooltip at specific dataItem.\r\n *\r\n * @param dataItem\r\n */\r\n XYSeries.prototype.showTooltipAtDataItem = function (dataItem) {\r\n var e_1, _a;\r\n var cursor = this.chart.cursor;\r\n if (cursor && cursor.hideSeriesTooltipsOnSelection && cursor.selection.visible && cursor.downPoint) {\r\n this.hideTooltip();\r\n return;\r\n }\r\n this.returnBulletDefaultState(dataItem);\r\n if (dataItem && dataItem.visible) {\r\n this.updateLegendValue(dataItem);\r\n if (this.cursorTooltipEnabled) {\r\n this.tooltipDataItem = dataItem;\r\n // todo: add tooltipXField and tooltipYField.\r\n var tooltipXField = this.tooltipXField;\r\n var tooltipYField = this.tooltipYField;\r\n if ($type.hasValue(dataItem[tooltipXField]) && $type.hasValue(dataItem[tooltipYField])) {\r\n var tooltipPoint = this.getPoint(dataItem, tooltipXField, tooltipYField, this.getAdjustedXLocation(dataItem, tooltipXField), this.getAdjustedYLocation(dataItem, tooltipYField));\r\n if (tooltipPoint) {\r\n if (this.chart.className == \"XYChart\" && (tooltipPoint.y < -1 || tooltipPoint.y > this.yAxis.pixelHeight + 1 || tooltipPoint.x < -1 || tooltipPoint.x > this.xAxis.pixelWidth + 1)) {\r\n // void\r\n }\r\n else {\r\n this.tooltipX = tooltipPoint.x;\r\n this.tooltipY = tooltipPoint.y;\r\n if (this._prevTooltipDataItem != dataItem) {\r\n this.dispatchImmediately(\"tooltipshownat\", {\r\n type: \"tooltipshownat\",\r\n target: this,\r\n dataItem: dataItem\r\n });\r\n this._prevTooltipDataItem = dataItem;\r\n }\r\n if (this.cursorHoverEnabled) {\r\n try {\r\n for (var _b = __values(dataItem.sprites), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var sprite = _c.value;\r\n if (!sprite.parent.visible || sprite.isHidden || sprite.__disabled || sprite.disabled || sprite.isHiding) {\r\n }\r\n else {\r\n if (!sprite.interactions.isRealHover) {\r\n sprite.dispatchImmediately(\"over\");\r\n sprite.interactions.isRealHover = true;\r\n }\r\n sprite.isHover = true;\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n if (this.showTooltip()) {\r\n return $utils.spritePointToSvg({ x: tooltipPoint.x, y: tooltipPoint.y }, this);\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.updateLegendValue(dataItem, true);\r\n }\r\n };\r\n /**\r\n * Returns default state to bullets when tooltip is shown at some other data\r\n * item or hidden\r\n */\r\n XYSeries.prototype.returnBulletDefaultState = function (dataItem) {\r\n var e_2, _a;\r\n if (this._prevTooltipDataItem && this._prevTooltipDataItem != dataItem) {\r\n try {\r\n for (var _b = __values(this._prevTooltipDataItem.sprites), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var sprite = _c.value;\r\n if (!sprite.isDisposed()) {\r\n var fireEvent = sprite.interactions.isRealHover;\r\n sprite.isHover = false;\r\n if (fireEvent) {\r\n sprite.dispatchImmediately(\"out\");\r\n }\r\n }\r\n else {\r\n this._prevTooltipDataItem = undefined;\r\n }\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n }\r\n };\r\n XYSeries.prototype.shouldCreateBullet = function (dataItem, bulletTemplate) {\r\n // use series xField/yField if bullet doesn't have fields set\r\n var xField = bulletTemplate.xField;\r\n if (!$type.hasValue(xField)) {\r\n xField = this.xField;\r\n }\r\n var yField = bulletTemplate.yField;\r\n if (!$type.hasValue(yField)) {\r\n yField = this.yField;\r\n }\r\n if ((this.xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (this.yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n return false;\r\n }\r\n if (bulletTemplate.disabled) {\r\n var disabledField = bulletTemplate.propertyFields.disabled;\r\n var dataContext = dataItem.dataContext;\r\n if (dataContext && dataContext[disabledField] === false) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.updateTooltip = function () {\r\n if (!this.hideTooltipWhileZooming && this.tooltip && !this.tooltip.isHidden && !this.isHiding && !this.isHidden && this.tooltipDataItem) {\r\n this.showTooltipAtDataItem(this.tooltipDataItem);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYSeries.prototype.positionBullet = function (bullet) {\r\n _super.prototype.positionBullet.call(this, bullet);\r\n var dataItem = bullet.dataItem;\r\n // use series xField/yField if bullet doesn't have fields set\r\n var xField = bullet.xField;\r\n if (!$type.hasValue(xField)) {\r\n xField = this.xField;\r\n }\r\n var yField = bullet.yField;\r\n if (!$type.hasValue(yField)) {\r\n yField = this.yField;\r\n }\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if ((xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n bullet.visible = false;\r\n }\r\n else {\r\n var bulletLocationX = this.getBulletLocationX(bullet, xField);\r\n var bulletLocationY = this.getBulletLocationY(bullet, yField);\r\n var point = this.getPoint(dataItem, xField, yField, bulletLocationX, bulletLocationY);\r\n if (point) {\r\n var xOpenField = this.xOpenField;\r\n var yOpenField = this.yOpenField;\r\n var positionX = void 0;\r\n var positionY = void 0;\r\n if (xAxis instanceof DateAxis) {\r\n if (!$type.isNumber(bulletLocationX)) {\r\n bulletLocationX = 0;\r\n }\r\n var openValue = void 0;\r\n var closeValue = dataItem.getWorkingValue(xField);\r\n if (!xOpenField) {\r\n if (xAxis == this.baseAxis) {\r\n openValue = xAxis.baseValue;\r\n }\r\n }\r\n else {\r\n openValue = dataItem.getWorkingValue(xOpenField);\r\n }\r\n if (!$type.isNumber(openValue)) {\r\n openValue = closeValue;\r\n }\r\n var stack = dataItem.getValue(\"valueX\", \"stack\");\r\n openValue += stack;\r\n closeValue += stack;\r\n if (openValue == closeValue) {\r\n var baseInterval = xAxis.baseInterval;\r\n var dateFormatter = xAxis.dateFormatter;\r\n openValue = $time.round(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.firstDayOfWeek, dateFormatter.utc, undefined, dateFormatter.timezoneMinutes, dateFormatter.timezone).getTime();\r\n closeValue = $time.add(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.utc).getTime();\r\n }\r\n var middleValue = void 0;\r\n if (xAxis == this.baseAxis) {\r\n middleValue = openValue + (closeValue - openValue) * bulletLocationX;\r\n }\r\n else {\r\n middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationX);\r\n }\r\n positionX = xAxis.valueToPosition(middleValue);\r\n }\r\n else if (xAxis instanceof ValueAxis) {\r\n if (!$type.isNumber(bulletLocationX)) {\r\n bulletLocationX = 0;\r\n }\r\n var openValue = void 0;\r\n var closeValue = dataItem.getWorkingValue(xField);\r\n if (!xOpenField) {\r\n openValue = xAxis.baseValue;\r\n }\r\n else {\r\n openValue = dataItem.getWorkingValue(xOpenField);\r\n }\r\n var stack = dataItem.getValue(\"valueX\", \"stack\");\r\n openValue += stack;\r\n closeValue += stack;\r\n var middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationX);\r\n positionX = xAxis.valueToPosition(middleValue);\r\n }\r\n else if (xAxis instanceof CategoryAxis) {\r\n var rightLocation = this.getAdjustedXLocation(dataItem, xField, bullet.locationX);\r\n var leftLocation = this.getAdjustedXLocation(dataItem, xOpenField, bullet.locationX);\r\n positionX = xAxis.categoryToPosition(dataItem[xField], rightLocation);\r\n var openPositionX = void 0;\r\n if (xOpenField) {\r\n openPositionX = xAxis.categoryToPosition(dataItem[xOpenField], leftLocation);\r\n }\r\n if (!$type.isNumber(openPositionX)) {\r\n openPositionX = 1;\r\n }\r\n positionX = openPositionX + (positionX - openPositionX) * bulletLocationX;\r\n }\r\n if (yAxis instanceof DateAxis) {\r\n if (!$type.isNumber(bulletLocationY)) {\r\n bulletLocationY = 0;\r\n }\r\n var openValue = void 0;\r\n var closeValue = dataItem.getWorkingValue(yField);\r\n if (!yOpenField) {\r\n if (yAxis == this.baseAxis) {\r\n openValue = yAxis.baseValue;\r\n }\r\n }\r\n else {\r\n openValue = dataItem.getWorkingValue(yOpenField);\r\n }\r\n if (!$type.isNumber(openValue)) {\r\n openValue = closeValue;\r\n }\r\n var stack = dataItem.getValue(\"valueY\", \"stack\");\r\n openValue += stack;\r\n closeValue += stack;\r\n if (openValue == closeValue) {\r\n var baseInterval = yAxis.baseInterval;\r\n var dateFormatter = yAxis.dateFormatter;\r\n openValue = $time.round(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.firstDayOfWeek, dateFormatter.utc, undefined, dateFormatter.timezoneMinutes, dateFormatter.timezone).getTime();\r\n closeValue = $time.add(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.utc).getTime();\r\n }\r\n var middleValue = void 0;\r\n if (yAxis == this.baseAxis) {\r\n middleValue = openValue + (closeValue - openValue) * bulletLocationY;\r\n }\r\n else {\r\n middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationY);\r\n }\r\n positionY = yAxis.valueToPosition(middleValue);\r\n }\r\n else if (yAxis instanceof ValueAxis) {\r\n if (!$type.isNumber(bulletLocationY)) {\r\n bulletLocationY = 0;\r\n }\r\n var openValue = void 0;\r\n var closeValue = dataItem.getWorkingValue(yField);\r\n if (!yOpenField) {\r\n openValue = yAxis.baseValue;\r\n }\r\n else {\r\n openValue = dataItem.getWorkingValue(yOpenField);\r\n }\r\n var stack = dataItem.getValue(\"valueY\", \"stack\");\r\n openValue += stack;\r\n closeValue += stack;\r\n var middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationY);\r\n positionY = yAxis.valueToPosition(middleValue);\r\n }\r\n else if (yAxis instanceof CategoryAxis) {\r\n positionY = yAxis.categoryToPosition(dataItem[yField], bulletLocationY);\r\n var topLocation = this.getAdjustedYLocation(dataItem, yField, bullet.locationY);\r\n var bottomLocation = this.getAdjustedYLocation(dataItem, yOpenField, bullet.locationY);\r\n positionY = yAxis.categoryToPosition(dataItem[yField], topLocation);\r\n var openPositionY = void 0;\r\n if (yOpenField) {\r\n openPositionY = yAxis.categoryToPosition(dataItem[yOpenField], bottomLocation);\r\n }\r\n if (!$type.isNumber(openPositionY)) {\r\n openPositionY = 1;\r\n }\r\n positionY = openPositionY + (positionY - openPositionY) * bulletLocationY;\r\n }\r\n bullet.visible = true;\r\n this.positionBulletReal(bullet, positionX, positionY);\r\n }\r\n else {\r\n bullet.visible = false;\r\n }\r\n }\r\n };\r\n XYSeries.prototype.positionBulletReal = function (bullet, positionX, positionY) {\r\n bullet.x = this.xAxis.renderer.positionToPoint(positionX, positionY).x;\r\n bullet.y = this.yAxis.renderer.positionToPoint(positionY, positionX).y;\r\n };\r\n /**\r\n * returns bullet x location\r\n * @ignore\r\n */\r\n XYSeries.prototype.getBulletLocationX = function (bullet, field) {\r\n var bulletLocation = bullet.locationX;\r\n var dataItem = bullet.dataItem;\r\n if (!$type.isNumber(bulletLocation)) {\r\n bulletLocation = dataItem.workingLocations[field];\r\n }\r\n return bulletLocation;\r\n };\r\n /**\r\n * Returns bullet x location\r\n * @ignore\r\n */\r\n XYSeries.prototype.getBulletLocationY = function (bullet, field) {\r\n var bulletLocation = bullet.locationY;\r\n var dataItem = bullet.dataItem;\r\n if (!$type.isNumber(bulletLocation)) {\r\n bulletLocation = dataItem.workingLocations[field];\r\n }\r\n return bulletLocation;\r\n };\r\n /**\r\n * This method must be called if you update Series' data fields that might\r\n * affect stacking of the series.\r\n *\r\n * Since individual `dataField` changes are not being monitored, you need\r\n * todo it manually for changes to take affect.\r\n *\r\n * @since 4.7.21\r\n */\r\n XYSeries.prototype.updateStacking = function () {\r\n var _this = this;\r\n this.invalidateDataItems();\r\n if (this.chart) {\r\n this.chart.series.each(function (series) {\r\n if (series.baseAxis == _this.baseAxis) {\r\n series.stackedSeries = undefined;\r\n series.invalidateDataItems();\r\n series.invalidateProcessedData();\r\n }\r\n });\r\n }\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"stacked\", {\r\n /**\r\n * @return Can be stacked?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"stacked\");\r\n },\r\n /**\r\n * Can items from this series be included into stacks?\r\n *\r\n * Note: proper stacking is only possible if series have the same number\r\n * of data items. To ensure this, don't set data directly on series\r\n * but do this on chart instead.\r\n *\r\n * @default false\r\n * @param stacked Can be stacked?\r\n */\r\n set: function (stacked) {\r\n if (this.setPropertyValue(\"stacked\", stacked, true)) {\r\n this.updateStacking();\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (!stacked) {\r\n var field_1;\r\n if (xAxis != this.baseAxis && xAxis instanceof ValueAxis) {\r\n field_1 = this.xField;\r\n }\r\n if (yAxis != this.baseAxis && yAxis instanceof ValueAxis) {\r\n field_1 = this.yField;\r\n }\r\n if (field_1) {\r\n this.dataItems.each(function (dataItem) {\r\n dataItem.setCalculatedValue(field_1, 0, \"stack\");\r\n dataItem.setCalculatedValue(field_1, 0, \"stackTrue\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"snapTooltip\", {\r\n /**\r\n * @return Should snap?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"snapTooltip\");\r\n },\r\n /**\r\n * Should the nearest tooltip be shown if no data item is found on the\r\n * current cursor position? In order this to work, you should set snapTooltip = false on the series baseAxis.\r\n *\r\n * @default false\r\n * @param value Should snap?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"snapTooltip\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Shows hidden series.\r\n *\r\n * @param duration Duration of reveal animation (ms)\r\n * @return Animation\r\n */\r\n XYSeries.prototype.show = function (duration) {\r\n var _this = this;\r\n if (this.isHidden) {\r\n if (this.appeared && this.xAxis instanceof DateAxis && this.xAxis.groupData) {\r\n this._tmin.setKey(this.yAxis.uid, undefined);\r\n this._tmax.setKey(this.yAxis.uid, undefined);\r\n }\r\n if (this.appeared && this.yAxis instanceof DateAxis && this.yAxis.groupData) {\r\n this._tmin.setKey(this.xAxis.uid, undefined);\r\n this._tmax.setKey(this.xAxis.uid, undefined);\r\n }\r\n }\r\n var fields;\r\n if (this.xAxis instanceof ValueAxis && this.xAxis != this.baseAxis) {\r\n fields = this._xValueFields;\r\n }\r\n if (this.yAxis instanceof ValueAxis && this.yAxis != this.baseAxis) {\r\n fields = this._yValueFields;\r\n }\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var delay = 0;\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n if (!options.animationsEnabled) {\r\n interpolationDuration = 0;\r\n }\r\n var anim;\r\n $iter.each($iter.indexed(this.dataItems.iterator()), function (a) {\r\n var i = a[0];\r\n var dataItem = a[1];\r\n var realDuration = interpolationDuration;\r\n if (i < _this.startIndex - 10 || i > _this.endIndex + 10) {\r\n realDuration = 0;\r\n delay = 0;\r\n }\r\n if (_this.sequencedInterpolation && realDuration > 0) {\r\n delay = _this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n }\r\n anim = dataItem.show(realDuration, delay, fields);\r\n });\r\n // other data sets\r\n this.dataSets.each(function (key, dataSet) {\r\n if (dataSet != _this.dataItems) {\r\n dataSet.each(function (dataItem) {\r\n dataItem.events.disable();\r\n dataItem.show(0, 0, fields);\r\n dataItem.events.enable();\r\n });\r\n }\r\n });\r\n if (this.mainDataSet != this.dataItems) {\r\n this.mainDataSet.each(function (dataItem) {\r\n dataItem.events.disable();\r\n dataItem.show(0, 0, fields);\r\n dataItem.events.enable();\r\n });\r\n }\r\n var animation = _super.prototype.show.call(this, duration);\r\n if (anim && !anim.isFinished()) {\r\n animation = anim;\r\n }\r\n if (this.hidden) {\r\n this.dispatchImmediately(\"selectionextremeschanged\");\r\n this.hidden = false;\r\n }\r\n return animation;\r\n };\r\n /**\r\n * Hides series.\r\n *\r\n * @param duration Duration of hiding animation (ms)\r\n * @return Animation\r\n */\r\n XYSeries.prototype.hide = function (duration) {\r\n var _this = this;\r\n var fields;\r\n var value;\r\n var xAxis = this.xAxis;\r\n if (xAxis instanceof ValueAxis && xAxis != this.baseAxis) {\r\n fields = this._xValueFields;\r\n // animate to zero if 0 is within zoomMin/zoomMax\r\n if (this.stacked || (xAxis.minZoomed < xAxis.baseValue && xAxis.maxZoomed > xAxis.baseValue) || this.stackedSeries) {\r\n value = xAxis.baseValue;\r\n }\r\n else {\r\n value = xAxis.min;\r\n }\r\n }\r\n var yAxis = this.yAxis;\r\n if (yAxis instanceof ValueAxis && yAxis != this.baseAxis) {\r\n fields = this._yValueFields;\r\n // animate to zero if 0 is within zoomMin/zoomMax\r\n if (this.stacked || (yAxis.minZoomed < yAxis.baseValue && yAxis.maxZoomed > yAxis.baseValue) || this.stackedSeries) {\r\n value = yAxis.baseValue;\r\n }\r\n else {\r\n value = yAxis.min;\r\n }\r\n }\r\n //if ($type.hasValue(fields)) {\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var interpolationDuration = this.hiddenState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n if (!options.animationsEnabled) {\r\n interpolationDuration = 0;\r\n }\r\n var delay = 0;\r\n var anim;\r\n $iter.each($iter.indexed(this.dataItems.iterator()), function (a) {\r\n var i = a[0];\r\n var dataItem = a[1];\r\n var realDuration = interpolationDuration;\r\n if (i < _this.startIndex - 10 || i > _this.endIndex + 10) {\r\n realDuration = 0;\r\n }\r\n if (realDuration == 0) {\r\n dataItem.hide(0, 0, value, fields);\r\n }\r\n else {\r\n if (_this.sequencedInterpolation && realDuration > 0) {\r\n delay = _this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n }\r\n anim = dataItem.hide(realDuration, delay, value, fields);\r\n }\r\n });\r\n // other data sets\r\n this.dataSets.each(function (key, dataSet) {\r\n if (dataSet != _this.dataItems) {\r\n dataSet.each(function (dataItem) {\r\n dataItem.events.disable();\r\n dataItem.hide(0, 0, value, fields);\r\n dataItem.events.enable();\r\n });\r\n }\r\n });\r\n if (this.mainDataSet != this.dataItems) {\r\n this.mainDataSet.each(function (dataItem) {\r\n dataItem.events.disable();\r\n dataItem.hide(0, 0, value, fields);\r\n dataItem.events.enable();\r\n });\r\n }\r\n var animation = _super.prototype.hide.call(this, interpolationDuration);\r\n if (animation && !animation.isFinished()) {\r\n animation.delay(delay);\r\n }\r\n if (anim && !anim.isFinished()) {\r\n animation = anim;\r\n }\r\n if (this.appeared) {\r\n this.dispatch(\"selectionextremeschanged\");\r\n }\r\n // helps to avoid flicker. otherwise columns will show up at full size and only on next frame will animate from 0\r\n this.validateDataElements();\r\n //}\r\n return animation;\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYSeries.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n _super.prototype.handleDataItemWorkingValueChange.call(this, dataItem, name);\r\n // to calculate stack values\r\n var axisSeries = this.baseAxis.series;\r\n $iter.each(axisSeries.iterator(), function (series) {\r\n if (series.stacked || series.stackedSeries) {\r\n series.invalidateProcessedData();\r\n }\r\n });\r\n };\r\n /**\r\n * [getStackValue description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param dataItem Data item\r\n */\r\n XYSeries.prototype.getStackValue = function (dataItem, working) {\r\n // todo: here wer stack x and y values only. question is - what should we do with other values, like openX, openY?\r\n // if this series is not stacked or new stack begins, return.\r\n var _this = this;\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (!this.stacked || !xAxis || !yAxis) {\r\n return;\r\n }\r\n else {\r\n // it might seem that it's better to go through base axis series, but we do not maintain the same order as in chart.series there.\r\n var chart = this.chart;\r\n var index = chart.series.indexOf(this);\r\n var field_2;\r\n if (xAxis != this.baseAxis && xAxis instanceof ValueAxis) {\r\n field_2 = this.xField;\r\n }\r\n if (yAxis != this.baseAxis && yAxis instanceof ValueAxis) {\r\n field_2 = this.yField;\r\n }\r\n if (!field_2) {\r\n return;\r\n }\r\n //this is good for removing series, otherwise stack values will remain the same and chart won't pay atention when adding/removing series\t\t\t\r\n dataItem.setCalculatedValue(field_2, 0, \"stack\");\r\n dataItem.setCalculatedValue(field_2, 0, \"stackTrue\");\r\n $iter.eachContinue(chart.series.range(0, index).backwards().iterator(), function (prevSeries) {\r\n // stacking is only possible if both axes are the same\r\n if (prevSeries.xAxis == xAxis && prevSeries.yAxis == yAxis && prevSeries.className == _this.className) {\r\n // saving value\r\n prevSeries.stackedSeries = _this;\r\n var prevDataItem = prevSeries.dataItems.getIndex(dataItem.index); // indexes should match\r\n if (prevDataItem && prevDataItem.hasValue(_this._xValueFields) && prevDataItem.hasValue(_this._yValueFields)) {\r\n var value = dataItem.getValue(field_2);\r\n var prevValue = void 0;\r\n var prevStack = prevDataItem.getValue(field_2, \"stackTrue\");\r\n if (prevStack == null) {\r\n prevStack = 0;\r\n }\r\n var prevRealValue = prevDataItem.getValue(field_2) + prevStack;\r\n prevValue = prevDataItem.getWorkingValue(field_2) + prevDataItem.getValue(field_2, \"stack\");\r\n if (_this.stackToNegative) {\r\n if ((value >= 0 && prevRealValue >= 0) || (value < 0 && prevRealValue < 0)) {\r\n dataItem.setCalculatedValue(field_2, prevValue, \"stack\");\r\n dataItem.setCalculatedValue(field_2, prevRealValue, \"stackTrue\");\r\n return false;\r\n }\r\n else if (!prevSeries.stacked) {\r\n return false;\r\n }\r\n }\r\n else {\r\n dataItem.setCalculatedValue(field_2, prevValue, \"stack\");\r\n dataItem.setCalculatedValue(field_2, prevRealValue, \"stackTrue\");\r\n return false;\r\n }\r\n }\r\n else if (!prevSeries.stacked) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"stackToNegative\", {\r\n /**\r\n * @return Stack to base line\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"stackToNegative\");\r\n },\r\n /**\r\n * This setting indicates how negative values are treated in stacked stacked\r\n * series.\r\n *\r\n * If set to `true` (default), negative values will stack on the base line.\r\n *\r\n * If set to `false`, negative value will stack in relation to the previous\r\n * value in the stack.\r\n *\r\n * @since 4.9.34\r\n * @param value Stack to base line\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"stackToNegative\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"xField\", {\r\n /**\r\n * [xField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._xField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"yField\", {\r\n /**\r\n * [yField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._yField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"xOpenField\", {\r\n /**\r\n * [xOpenField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._xOpenField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"yOpenField\", {\r\n /**\r\n * [yOpenField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this._yOpenField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"tooltipXField\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n if (this._tooltipXField) {\r\n return this._tooltipXField;\r\n }\r\n return this._xField;\r\n },\r\n /**\r\n * [tooltipXField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this._tooltipXField = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"tooltipYField\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\n get: function () {\r\n if (this._tooltipYField) {\r\n return this._tooltipYField;\r\n }\r\n return this._yField;\r\n },\r\n /**\r\n * [tooltipYField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this._tooltipYField = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns lowest value in the series for the specific axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n * @return value\r\n */\r\n XYSeries.prototype.min = function (axis) {\r\n return this._tmin.getKey(axis.uid);\r\n };\r\n /**\r\n * Returns highest value in the series for the specific axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n * @return value\r\n */\r\n XYSeries.prototype.max = function (axis) {\r\n return this._tmax.getKey(axis.uid);\r\n };\r\n /**\r\n * Returns lowest value in the series for the specific axis within current\r\n * selection.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n * @return value\r\n */\r\n XYSeries.prototype.selectionMin = function (axis) {\r\n var value = this._smin.getKey(axis.uid);\r\n // not good, because bad if there are no items with values in selection\r\n //if (!$type.isNumber(value)) {\r\n //value = this.min(axis);\r\n //}\t\t\r\n return value;\r\n };\r\n /**\r\n * Returns highest value in the series for the specific axis within current\r\n * selection.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n * @return value\r\n */\r\n XYSeries.prototype.selectionMax = function (axis) {\r\n var value = this._smax.getKey(axis.uid);\r\n // not good, because bad if there are no items with values in selection\r\n //if (!$type.isNumber(value)) {\r\n //value = this.max(axis);\r\n //}\r\n return value;\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n XYSeries.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up base axes\r\n if ($type.hasValue(config.baseAxis) && $type.isString(config.baseAxis)) {\r\n if (this.map.hasKey(config.baseAxis)) {\r\n config.baseAxis = this.map.getKey(config.baseAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.baseAxis + \"\\\" found for `baseAxis`.\");\r\n delete config.baseAxis;\r\n }\r\n }\r\n // Set up axes\r\n if ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n if (this.map.hasKey(config.xAxis)) {\r\n config.xAxis = this.map.getKey(config.xAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`.\");\r\n delete config.xAxis;\r\n }\r\n }\r\n if ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n if (this.map.hasKey(config.yAxis)) {\r\n config.yAxis = this.map.getKey(config.yAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`.\");\r\n delete config.yAxis;\r\n }\r\n }\r\n // Set up axis ranges\r\n if ($type.hasValue(config.axisRanges) && $type.isArray(config.axisRanges)) {\r\n for (var i = 0, len = config.axisRanges.length; i < len; i++) {\r\n var range = config.axisRanges[i];\r\n if (!$type.hasValue(range.type)) {\r\n range.type = \"AxisDataItem\";\r\n }\r\n if ($type.hasValue(range.axis) && $type.isString(range.axis) && this.map.hasKey(range.axis)) {\r\n range.component = this.map.getKey(range.axis);\r\n }\r\n else if ($type.hasValue(range.component) && $type.isString(range.component) && this.map.hasKey(range.component)) {\r\n range.component = this.map.getKey(range.component);\r\n }\r\n }\r\n }\r\n // Parse date fields based on the series fields\r\n if (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n this.processingErrors.push(\"`dataFields` is not set for series [\" + (this.name || \"unnamed\") + \"]\");\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n *\r\n * @param dataItem Data item\r\n * @param xKey Name of X data field\r\n * @param yKey Name of Y data field\r\n * @param locationX X location\r\n * @param locationY Y location\r\n * @param stackKeyX ?\r\n * @param stackKeyY ?\r\n * @returns Coordinates\r\n */\r\n XYSeries.prototype.getPoint = function (dataItem, xKey, yKey, locationX, locationY, stackKeyX, stackKeyY) {\r\n if (this.xAxis && this.yAxis) {\r\n var x = this.xAxis.getX(dataItem, xKey, locationX);\r\n var y = this.yAxis.getY(dataItem, yKey, locationY);\r\n x = $math.fitToRange(x, -this._maxxX, this._maxxX); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n y = $math.fitToRange(y, -this._maxxY, this._maxxY); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n return { x: x, y: y };\r\n }\r\n };\r\n /**\r\n * Updates item reader text based on the type and set up of axis.\r\n */\r\n XYSeries.prototype.updateItemReaderText = function () {\r\n // We do not want to overwrite this if `itemReaderText` was changed by\r\n // user code.\r\n if (this._itemReaderTextChanged) {\r\n return;\r\n }\r\n var text = \"\";\r\n $object.each(this.dataFields, function (key, val) {\r\n text += \"{\" + key + \"} \";\r\n });\r\n this.itemReaderText = text;\r\n this._itemReaderTextChanged = false;\r\n };\r\n Object.defineProperty(XYSeries.prototype, \"cursorTooltipEnabled\", {\r\n /**\r\n * @return Display tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cursorTooltipEnabled\");\r\n },\r\n /**\r\n * Indicates if series should display a tooltip for chart's cursor.\r\n *\r\n * If set to `true` (default), the tooltips set for all series item's\r\n * elements like columns and bullets will be automatically shown\r\n * when [[XYCursor]] passes over category/date, even if its not hovered\r\n * directly over the item.\r\n *\r\n * Set this to `false` to disable such behavior and display item-specific\r\n * tooltips only when hovered directly over them\r\n *\r\n * @default true\r\n * @param value Display tooltip?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cursorTooltipEnabled\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"cursorHoverEnabled\", {\r\n /**\r\n * @return Hover enabled?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cursorHoverEnabled\");\r\n },\r\n /**\r\n * Indicates if series should apply hover state on bullets/columns/etc when\r\n * cursor is over the data item.\r\n *\r\n * If set to `true` (default) and chart cursor is enabled on th chart,\r\n * hovering over date/category will trigger hover states on related Series\r\n * items like bullets and columns.\r\n *\r\n * @default true\r\n * @since 4.2.2\r\n * @param value Hover enabled?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cursorHoverEnabled\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"excludeFromTotal\", {\r\n /**\r\n * @return Exclude from totals?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"excludeFromTotal\");\r\n },\r\n /**\r\n * Indicates if series' values should be excluded when calculating totals.\r\n *\r\n * @default false\r\n * @since 4.4.9\r\n * @param value Exclude from totals?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"excludeFromTotal\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"hideTooltipWhileZooming\", {\r\n /**\r\n * @return Hide tooltip while zooming?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hideTooltipWhileZooming\");\r\n },\r\n /**\r\n * Indicates if series' tooltip should be hidden while series axis range is\r\n * animating (zooming).\r\n *\r\n * @default true\r\n * @since 4.7.16\r\n * @param value Hide tooltip while zooming?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"hideTooltipWhileZooming\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYSeries.prototype, \"maskBullets\", {\r\n /**\r\n * @return Mask bullets?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maskBullets\");\r\n },\r\n /**\r\n * Indicates if series' bullets should be masked.\r\n *\r\n * @default true\r\n * @since 4.7.17\r\n * @param value Mask bullets?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maskBullets\", value);\r\n var chart = this.chart;\r\n if (chart) {\r\n if (value) {\r\n this.bulletsContainer.parent = chart.bulletsContainer;\r\n }\r\n else {\r\n this.bulletsContainer.parent = chart.axisBulletsContainer;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n XYSeries.prototype.copyFrom = function (source) {\r\n this.groupFields = $utils.copyProperties(source.groupFields, {});\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n XYSeries.prototype.dispose = function () {\r\n if (this.scrollbarSeries) {\r\n this.scrollbarSeries.dispose();\r\n }\r\n _super.prototype.dispose.call(this);\r\n };\r\n return XYSeries;\r\n}(Series));\r\nexport { XYSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYSeries\"] = XYSeries;\r\nregistry.registeredClasses[\"XYSeriesDataItem\"] = XYSeriesDataItem;\r\n//# sourceMappingURL=XYSeries.js.map","/**\r\n * A module with functionality for buildin a scrollbar with an XY graph in it.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar } from \"../../core/elements/Scrollbar\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { DesaturateFilter } from \"../../core/rendering/filters/DesaturateFilter\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { options } from \"../../core/Options\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A special version of the Scrollbar that has an XY chart in it.\r\n *\r\n * Used mainly as an advanced scrollbar with a preview for other XY charts.\r\n *\r\n * However, can be used as standalone element.\r\n *\r\n * @see {@link IXYChartScrollbarEvents} for a list of available events\r\n * @see {@link IXYChartScrollbarAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar XYChartScrollbar = /** @class */ (function (_super) {\r\n __extends(XYChartScrollbar, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYChartScrollbar() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A chart element Scrollbar is for.\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n _this.className = \"XYChartScrollbar\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.padding(0, 0, 0, 0);\r\n var scrollbarChart = _this.createChild(XYChart);\r\n scrollbarChart.shouldClone = false;\r\n scrollbarChart.margin(0, 0, 0, 0);\r\n scrollbarChart.padding(0, 0, 0, 0);\r\n scrollbarChart.interactionsEnabled = false;\r\n _this._scrollbarChart = scrollbarChart;\r\n if (!$utils.isIE()) {\r\n var filter = new DesaturateFilter();\r\n filter.filterUnits = \"userSpaceOnUse\";\r\n scrollbarChart.plotContainer.filters.push(filter);\r\n }\r\n _this._disposers.push(_this._scrollbarChart);\r\n _this.minHeight = 60;\r\n _this.minWidth = 60;\r\n var unselectedOverlay = _this.createChild(Sprite);\r\n unselectedOverlay.shouldClone = false;\r\n unselectedOverlay.setElement(_this.paper.add(\"path\"));\r\n unselectedOverlay.fill = interfaceColors.getFor(\"background\");\r\n unselectedOverlay.fillOpacity = 0.8;\r\n unselectedOverlay.interactionsEnabled = false;\r\n unselectedOverlay.isMeasured = false;\r\n unselectedOverlay.toBack();\r\n _this._unselectedOverlay = unselectedOverlay;\r\n _this._disposers.push(_this._unselectedOverlay);\r\n scrollbarChart.toBack();\r\n _this.background.cornerRadius(0, 0, 0, 0);\r\n var thumbBackground = _this.thumb.background;\r\n thumbBackground.cornerRadius(0, 0, 0, 0);\r\n thumbBackground.fillOpacity = 0;\r\n thumbBackground.fill = interfaceColors.getFor(\"background\");\r\n var hoverState = thumbBackground.states.getKey(\"hover\");\r\n if (hoverState) {\r\n hoverState.properties.fillOpacity = 0.2;\r\n }\r\n var downState = thumbBackground.states.getKey(\"down\");\r\n if (downState) {\r\n downState.properties.fillOpacity = 0.4;\r\n }\r\n _this._disposers.push(_this._chart);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(XYChartScrollbar.prototype, \"series\", {\r\n /**\r\n * A list of series that are used to draw graph(s) on the scrollbar.\r\n *\r\n * @readonly\r\n * @return Series\r\n */\r\n get: function () {\r\n if (!this._series) {\r\n this._series = new List();\r\n this._disposers.push(this._series.events.on(\"inserted\", this.handleSeriesAdded, this, false));\r\n this._disposers.push(this._series.events.on(\"removed\", this.handleSeriesRemoved, this, false));\r\n }\r\n return this._series;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Decorates a new series when they are pushed into a `series` list.\r\n *\r\n * @param event Event\r\n */\r\n XYChartScrollbar.prototype.handleSeriesAdded = function (event) {\r\n var _this = this;\r\n var sourceSeries = event.newValue;\r\n if (!sourceSeries.xAxis || !sourceSeries.yAxis) {\r\n return;\r\n }\r\n var scrollbarChart = this.scrollbarChart;\r\n scrollbarChart.zoomOutButton.disabled = true;\r\n this.chart = sourceSeries.chart;\r\n scrollbarChart.dateFormatter.inputDateFormat = this.chart.dateFormatter.inputDateFormat;\r\n // Ensure that scrollbar chart shares the same locale as parent chart\r\n scrollbarChart.language.locale = this.chart.language.locale;\r\n var addXAxis = true;\r\n var addYAxis = true;\r\n // check if we haven't added clone of x or y axis before\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (series != sourceSeries) {\r\n if (series.xAxis == sourceSeries.xAxis && _this.scrollbarChart.xAxes.length > 0) {\r\n addXAxis = false;\r\n }\r\n if (series.yAxis == sourceSeries.yAxis && _this.scrollbarChart.yAxes.length > 0) {\r\n addYAxis = false;\r\n }\r\n }\r\n });\r\n sourceSeries.events.on(\"beforedisposed\", function () {\r\n _this.series.removeValue(sourceSeries);\r\n });\r\n var interfaceColors = new InterfaceColorSet();\r\n var series = sourceSeries.clone();\r\n if (options.onlyShowOnViewport || options.queue) {\r\n this.addDisposer(this.chart.events.on(\"removedfromqueue\", function () {\r\n scrollbarChart.invalidateData();\r\n }));\r\n }\r\n if ($utils.isIE()) {\r\n series.stroke = color(\"#aaaaaa\");\r\n series.fill = series.stroke;\r\n series.propertyFields.fill = undefined;\r\n series.propertyFields.stroke = undefined;\r\n }\r\n sourceSeries.scrollbarSeries = series;\r\n if (addXAxis) {\r\n var xAxis = sourceSeries.xAxis.clone();\r\n scrollbarChart.xAxes.moveValue(xAxis);\r\n xAxis.title.disabled = true;\r\n xAxis.rangeChangeDuration = 0;\r\n //xAxis.id = sourceSeries.uid;\r\n var renderer = xAxis.renderer;\r\n renderer.ticks.template.disabled = true;\r\n renderer.inside = true;\r\n renderer.labels.template.inside = true;\r\n renderer.line.strokeOpacity = 0;\r\n renderer.minLabelPosition = 0.02;\r\n renderer.maxLabelPosition = 0.98;\r\n renderer.line.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.baseGrid.disabled = true;\r\n renderer.grid.template.strokeOpacity = 0.05;\r\n renderer.minWidth = undefined;\r\n renderer.minHeight = undefined;\r\n renderer.padding(0, 0, 0, 0);\r\n renderer.chart = scrollbarChart;\r\n renderer.margin(0, 0, 0, 0);\r\n xAxis.width = percent(100);\r\n var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\r\n xAxis.maxZoomCount = undefined;\r\n xAxis.minZoomCount = undefined;\r\n if (xAxis instanceof DateAxis) {\r\n var vAxis_1 = xAxis;\r\n var sourceAxis = sourceSeries.xAxis;\r\n vAxis_1.groupCount = sourceAxis.groupCount * 5;\r\n vAxis_1.min = undefined;\r\n vAxis_1.max = undefined;\r\n this._disposers.push(vAxis_1.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_1.clonedFrom.minDefined)) {\r\n vAxis_1.min = vAxis_1.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_1.clonedFrom.maxDefined)) {\r\n vAxis_1.max = vAxis_1.clonedFrom.maxDefined;\r\n }\r\n }, undefined, false));\r\n }\r\n else if (xAxis instanceof ValueAxis) {\r\n var vAxis_2 = xAxis;\r\n vAxis_2.min = undefined;\r\n vAxis_2.max = undefined;\r\n if (!$type.isNumber(vAxis_2.clonedFrom.minDefined)) {\r\n vAxis_2.min = undefined;\r\n }\r\n if (!$type.isNumber(vAxis_2.clonedFrom.maxDefined)) {\r\n vAxis_2.max = undefined;\r\n }\r\n this._disposers.push(vAxis_2.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_2.clonedFrom.minDefined)) {\r\n vAxis_2.min = vAxis_2.clonedFrom.min;\r\n }\r\n if ($type.isNumber(vAxis_2.clonedFrom.maxDefined)) {\r\n vAxis_2.max = vAxis_2.clonedFrom.max;\r\n }\r\n }, undefined, false));\r\n }\r\n series.xAxis = xAxis;\r\n }\r\n else {\r\n this.scrollbarChart.xAxes.each(function (xAxis) {\r\n if (xAxis.clonedFrom == sourceSeries.xAxis) {\r\n series.xAxis = xAxis;\r\n }\r\n });\r\n }\r\n if (addYAxis) {\r\n var yAxis = sourceSeries.yAxis.clone();\r\n scrollbarChart.yAxes.moveValue(yAxis);\r\n yAxis.title.disabled = true;\r\n yAxis.rangeChangeDuration = 0;\r\n var renderer = yAxis.renderer;\r\n renderer.ticks.template.disabled = true;\r\n renderer.inside = true;\r\n renderer.labels.template.inside = true;\r\n renderer.line.strokeOpacity = 0;\r\n renderer.minLabelPosition = 0.02;\r\n renderer.maxLabelPosition = 0.98;\r\n renderer.line.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.grid.template.stroke = interfaceColors.getFor(\"background\");\r\n renderer.baseGrid.disabled = true;\r\n renderer.grid.template.strokeOpacity = 0.05;\r\n renderer.minWidth = undefined;\r\n renderer.minHeight = undefined;\r\n renderer.chart = scrollbarChart;\r\n renderer.padding(0, 0, 0, 0);\r\n renderer.margin(0, 0, 0, 0);\r\n yAxis.height = percent(100);\r\n var labelsTemplate = renderer.labels.template;\r\n labelsTemplate.fillOpacity = 0.5;\r\n series.yAxis = yAxis;\r\n yAxis.maxZoomCount = undefined;\r\n yAxis.minZoomCount = undefined;\r\n if (yAxis instanceof DateAxis) {\r\n var vAxis_3 = yAxis;\r\n vAxis_3.min = undefined;\r\n vAxis_3.max = undefined;\r\n var sourceAxis = sourceSeries.yAxis;\r\n yAxis.groupCount = sourceAxis.groupCount * 5;\r\n this._disposers.push(vAxis_3.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_3.clonedFrom.minDefined)) {\r\n vAxis_3.min = vAxis_3.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_3.clonedFrom.maxDefined)) {\r\n vAxis_3.max = vAxis_3.clonedFrom.maxDefined;\r\n }\r\n }));\r\n }\r\n else if (yAxis instanceof ValueAxis) {\r\n var vAxis_4 = yAxis;\r\n vAxis_4.min = undefined;\r\n vAxis_4.max = undefined;\r\n if (!$type.isNumber(vAxis_4.clonedFrom.minDefined)) {\r\n vAxis_4.min = undefined;\r\n }\r\n if (!$type.isNumber(vAxis_4.clonedFrom.maxDefined)) {\r\n vAxis_4.max = undefined;\r\n }\r\n this._disposers.push(vAxis_4.clonedFrom.events.on(\"extremeschanged\", function () {\r\n if ($type.isNumber(vAxis_4.clonedFrom.minDefined)) {\r\n vAxis_4.min = vAxis_4.clonedFrom.minDefined;\r\n }\r\n if ($type.isNumber(vAxis_4.clonedFrom.maxDefined)) {\r\n vAxis_4.max = vAxis_4.clonedFrom.maxDefined;\r\n }\r\n }));\r\n }\r\n }\r\n else {\r\n this.scrollbarChart.yAxes.each(function (yAxis) {\r\n if (yAxis.clonedFrom == sourceSeries.yAxis) {\r\n series.yAxis = yAxis;\r\n }\r\n });\r\n }\r\n series.rangeChangeDuration = 0;\r\n series.interpolationDuration = 0;\r\n series.defaultState.transitionDuration = 0;\r\n series.showOnInit = false;\r\n this._disposers.push(series.events.on(\"validated\", this.zoomOutAxes, this, false));\r\n // data might be set drectly on series\r\n this._disposers.push(sourceSeries.events.on(\"datavalidated\", function () {\r\n if (series.data != sourceSeries.data) { // data setter doesn't check this\r\n series.data = sourceSeries.data;\r\n }\r\n }, undefined, false));\r\n series.defaultState.properties.visible = true;\r\n scrollbarChart.series.push(series);\r\n this.updateByOrientation();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChartScrollbar.prototype.updateByOrientation = function () {\r\n var _this = this;\r\n if (this._scrollbarChart) {\r\n $iter.each(this._scrollbarChart.xAxes.iterator(), function (xAxis) {\r\n var renderer = xAxis.renderer;\r\n if (_this.orientation == \"vertical\") {\r\n renderer.grid.template.disabled = true;\r\n renderer.labels.template.disabled = true;\r\n renderer.minGridDistance = 10;\r\n }\r\n else {\r\n renderer.grid.template.disabled = false;\r\n renderer.labels.template.disabled = false;\r\n renderer.minGridDistance = xAxis.clonedFrom.renderer.minGridDistance;\r\n }\r\n });\r\n $iter.each(this._scrollbarChart.yAxes.iterator(), function (yAxis) {\r\n var renderer = yAxis.renderer;\r\n if (_this.orientation == \"horizontal\") {\r\n renderer.grid.template.disabled = true;\r\n renderer.labels.template.disabled = true;\r\n renderer.minGridDistance = 10;\r\n }\r\n else {\r\n renderer.grid.template.disabled = false;\r\n renderer.labels.template.disabled = false;\r\n renderer.minGridDistance = yAxis.clonedFrom.renderer.minGridDistance;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Cleans up after series are removed from Scrollbar.\r\n *\r\n * @param event Event\r\n */\r\n XYChartScrollbar.prototype.handleSeriesRemoved = function (event) {\r\n var sourceSeries = event.oldValue;\r\n var scrollbarChart = this.scrollbarChart;\r\n scrollbarChart.series.each(function (series) {\r\n if (series && series.clonedFrom == sourceSeries) {\r\n scrollbarChart.series.removeValue(series);\r\n }\r\n });\r\n if (scrollbarChart.series.length == 0) {\r\n scrollbarChart.xAxes.clear();\r\n scrollbarChart.yAxes.clear();\r\n }\r\n try {\r\n sourceSeries.events.off(\"validated\", this.zoomOutAxes, this);\r\n }\r\n catch (err) {\r\n }\r\n };\r\n Object.defineProperty(XYChartScrollbar.prototype, \"scrollbarChart\", {\r\n /**\r\n * A chart element that is used to display graphs in the Scrollbar.\r\n *\r\n * This is not the same as `chart`. It's a totally independent instance of\r\n * [[XYChart]] with separate config, series, etc.\r\n *\r\n * It can be configured just like any other [[XYChart]].\r\n *\r\n * @readonly\r\n * @return Scrollbar's internal chart\r\n */\r\n get: function () {\r\n return this._scrollbarChart;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChartScrollbar.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * A chart that Scrollbar belongs to.\r\n *\r\n * @param chart Chart\r\n */\r\n set: function (chart) {\r\n if (this._chart.get() !== chart) {\r\n this._chart.set(chart, chart.events.on(\"datavalidated\", this.handleDataChanged, this, false));\r\n this.handleDataChanged();\r\n this._scrollbarChart.dataProvider = chart; // this makes scrollbar chart do not validate data untill charts' data is validated\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChartScrollbar.prototype, \"unselectedOverlay\", {\r\n /**\r\n * A [[Sprite]] object representing overlay that is used to dim area of the\r\n * scrollbar that is currently not selected.\r\n *\r\n * Use its `fillOpacity` to set opacity of the fill, with `0` (zero)\r\n * completely disabling the dimming, and `1` making unselected area completely\r\n * blank.\r\n *\r\n * @since 4.6.1\r\n * @readonly\r\n * @return Unselected area curtain element\r\n */\r\n get: function () {\r\n return this._unselectedOverlay;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates Scrollbar's internal chart's data when the main chart's data\r\n * changes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChartScrollbar.prototype.handleDataChanged = function () {\r\n if (this.chart.data != this.scrollbarChart.data) {\r\n this.scrollbarChart.data = this.chart.data;\r\n }\r\n else {\r\n // add data is handled in XYChart\r\n // invalidating all data caused the problem: https://github.com/amcharts/amcharts4/issues/2096\r\n this.scrollbarChart.invalidateRawData();\r\n }\r\n };\r\n /**\r\n * Zooms out all axes on the internal chart.\r\n */\r\n XYChartScrollbar.prototype.zoomOutAxes = function () {\r\n var scrollbarChart = this.scrollbarChart;\r\n $iter.each(scrollbarChart.xAxes.iterator(), function (x) {\r\n x.zoom({ start: 0, end: 1 }, true, true);\r\n });\r\n $iter.each(scrollbarChart.yAxes.iterator(), function (y) {\r\n y.zoom({ start: 0, end: 1 }, true, true);\r\n });\r\n };\r\n /**\r\n * Updates scrollbar thumb.\r\n *\r\n * @ignore\r\n */\r\n XYChartScrollbar.prototype.updateThumb = function (dispatchEvents) {\r\n if (dispatchEvents === void 0) { dispatchEvents = true; }\r\n _super.prototype.updateThumb.call(this, dispatchEvents);\r\n if (this._unselectedOverlay) {\r\n var thumb = this.thumb;\r\n var x = thumb.pixelX || 0;\r\n var y = thumb.pixelY || 0;\r\n var w = thumb.pixelWidth || 0;\r\n var h = thumb.pixelHeight || 0;\r\n var path = \"\";\r\n if (this.orientation == \"horizontal\") {\r\n path = $path.rectToPath({\r\n x: -1,\r\n y: 0,\r\n width: x,\r\n height: h\r\n });\r\n path += $path.rectToPath({\r\n x: x + w,\r\n y: 0,\r\n width: (this.pixelWidth || 0) - x - w,\r\n height: h\r\n });\r\n }\r\n else {\r\n path = $path.rectToPath({\r\n x: 0,\r\n y: 0,\r\n width: w,\r\n height: y\r\n });\r\n path += $path.rectToPath({\r\n x: 0,\r\n y: y + h,\r\n width: w,\r\n height: (this.pixelHeight || 0) - y - h\r\n });\r\n }\r\n this._unselectedOverlay.path = path;\r\n }\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n XYChartScrollbar.prototype.processConfig = function (config) {\r\n if (config) {\r\n if ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n for (var i = 0, len = config.series.length; i < len; i++) {\r\n var series = config.series[i];\r\n if ($type.hasValue(series) && $type.isString(series)) {\r\n if (this.map.hasKey(series)) {\r\n config.series[i] = this.map.getKey(series);\r\n }\r\n else {\r\n throw Error(\"XYChartScrollbar error: Series with id `\" + series + \"` does not exist.\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return XYChartScrollbar;\r\n}(Scrollbar));\r\nexport { XYChartScrollbar };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChartScrollbar\"] = XYChartScrollbar;\r\n//# sourceMappingURL=XYChartScrollbar.js.map","/**\r\n * XY Chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SerialChart, SerialChartDataItem } from \"./SerialChart\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { List, ListDisposer } from \"../../core/utils/List\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { AxisRendererX } from \"../axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../axes/AxisRendererY\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { ZoomOutButton } from \"../../core/elements/ZoomOutButton\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { XYChartScrollbar } from \"../elements/XYChartScrollbar\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[XYChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar XYChartDataItem = /** @class */ (function (_super) {\r\n __extends(XYChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"XYChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return XYChartDataItem;\r\n}(SerialChartDataItem));\r\nexport { XYChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates an XY chart, and any derivative chart, like Serial, Date-based, etc.\r\n *\r\n * Basically this is a chart type, that is used to display any chart\r\n * information in a square plot area.\r\n *\r\n * The horizontal and vertical scale is determined by the type of Axis.\r\n *\r\n * The plot types are determined by type of Series.\r\n *\r\n * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * let series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"XYChart\");\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * var series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Category axis\r\n * \t\"xAxes\": [{\r\n * \t\t\"type\": \"CategoryAxis\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Value axis\r\n * \t\"yAxes\": [{\r\n * \t\t\"type\": \"ValueAxis\"\r\n * \t}],\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"ColumnSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"categoryX\": \"country\",\r\n * \t\t\t\"valueY\": \"visits\"\r\n * \t\t},\r\n * \t\t\"name\": \"Web Traffic\"\r\n * \t}],\r\n *\r\n * \t// Cursor\r\n * \t\"cursor\": {},\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"USA\",\r\n * \t\t\"visits\": 3025\r\n * \t}, {\r\n * \t\t\"country\": \"China\",\r\n * \t\t\"visits\": 1882\r\n * \t}, {\r\n * \t\t\"country\": \"Japan\",\r\n * \t\t\"visits\": 1809\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"XYChart\");\r\n * ```\r\n *\r\n *\r\n * @see {@link IXYChartEvents} for a list of available Events\r\n * @see {@link IXYChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/} for documentation\r\n * @important\r\n */\r\nvar XYChart = /** @class */ (function (_super) {\r\n __extends(XYChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Defines the type of horizontal axis rederer.\r\n */\r\n _this._axisRendererX = AxisRendererX;\r\n /**\r\n * Defines the type of vertical axis rederer.\r\n */\r\n _this._axisRendererY = AxisRendererY;\r\n /**\r\n * @ignore\r\n */\r\n _this._seriesPoints = [];\r\n _this.className = \"XYChart\";\r\n // Set defaults\r\n //this.margin(10, 10, 10, 10);\r\n _this.maskBullets = true;\r\n _this.arrangeTooltips = true;\r\n // Create main chart container\r\n var chartContainer = _this.chartContainer;\r\n chartContainer.layout = \"vertical\";\r\n _this.padding(15, 15, 15, 15);\r\n // Create top axes container\r\n var topAxesCont = chartContainer.createChild(Container);\r\n topAxesCont.shouldClone = false;\r\n topAxesCont.layout = \"vertical\";\r\n topAxesCont.width = percent(100);\r\n topAxesCont.zIndex = 1;\r\n _this.topAxesContainer = topAxesCont;\r\n // Create vertical axes and plot area container\r\n // Plot area and vertical axes share the whole width of the chart,\r\n // so we need to put then into a separate container so that layouting\r\n // engine takes care of the positioning\r\n var yAxesAndPlotCont = chartContainer.createChild(Container);\r\n yAxesAndPlotCont.shouldClone = false;\r\n yAxesAndPlotCont.layout = \"horizontal\";\r\n yAxesAndPlotCont.width = percent(100);\r\n yAxesAndPlotCont.height = percent(100);\r\n yAxesAndPlotCont.zIndex = 0;\r\n _this.yAxesAndPlotContainer = yAxesAndPlotCont;\r\n // Create a container for bottom axes\r\n var bottomAxesCont = chartContainer.createChild(Container);\r\n bottomAxesCont.shouldClone = false;\r\n bottomAxesCont.width = percent(100);\r\n bottomAxesCont.layout = \"vertical\";\r\n bottomAxesCont.zIndex = 1;\r\n _this.bottomAxesContainer = bottomAxesCont;\r\n // Create a container for left-side axes\r\n var leftAxesCont = yAxesAndPlotCont.createChild(Container);\r\n leftAxesCont.shouldClone = false;\r\n leftAxesCont.layout = \"horizontal\";\r\n leftAxesCont.height = percent(100);\r\n leftAxesCont.contentAlign = \"right\";\r\n leftAxesCont.events.on(\"transformed\", _this.updateXAxesMargins, _this, false);\r\n leftAxesCont.zIndex = 1;\r\n _this.leftAxesContainer = leftAxesCont;\r\n // Create a container for plot area\r\n var plotCont = yAxesAndPlotCont.createChild(Container);\r\n plotCont.shouldClone = false;\r\n plotCont.height = percent(100);\r\n plotCont.width = percent(100);\r\n // Create transparend background for plot container so that hover works\r\n // on all of it\r\n plotCont.background.fillOpacity = 0;\r\n _this.plotContainer = plotCont;\r\n // must go below plot container\r\n _this.mouseWheelBehavior = \"none\";\r\n _this._cursorContainer = plotCont;\r\n // Create a container for right-side axes\r\n var rightAxesCont = yAxesAndPlotCont.createChild(Container);\r\n rightAxesCont.shouldClone = false;\r\n rightAxesCont.layout = \"horizontal\";\r\n rightAxesCont.height = percent(100);\r\n rightAxesCont.zIndex = 1;\r\n rightAxesCont.events.on(\"transformed\", _this.updateXAxesMargins, _this, false);\r\n _this.rightAxesContainer = rightAxesCont;\r\n _this.seriesContainer.parent = plotCont;\r\n _this.bulletsContainer.parent = plotCont;\r\n var zoomOutButton = plotCont.createChild(ZoomOutButton);\r\n zoomOutButton.shouldClone = false;\r\n zoomOutButton.align = \"right\";\r\n zoomOutButton.valign = \"top\";\r\n zoomOutButton.zIndex = Number.MAX_SAFE_INTEGER;\r\n zoomOutButton.marginTop = 5;\r\n zoomOutButton.marginRight = 5;\r\n zoomOutButton.hide(0);\r\n _this.zoomOutButton = zoomOutButton;\r\n // Create a container for bullets\r\n var axisBulletsContainer = _this.plotContainer.createChild(Container);\r\n axisBulletsContainer.shouldClone = false;\r\n axisBulletsContainer.width = percent(100);\r\n axisBulletsContainer.height = percent(100);\r\n axisBulletsContainer.isMeasured = false;\r\n axisBulletsContainer.zIndex = 4;\r\n axisBulletsContainer.layout = \"none\";\r\n _this.axisBulletsContainer = axisBulletsContainer;\r\n _this._bulletMask = _this.plotContainer;\r\n _this.events.on(\"beforedatavalidated\", function () {\r\n _this.series.each(function (series) {\r\n series.dataGrouped = false;\r\n series._baseInterval = {};\r\n });\r\n }, _this, false);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n XYChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n this.zoomOutButton.exportable = false;\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"X/Y chart\");\r\n }\r\n };\r\n /**\r\n * Draws the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n this.seriesContainer.toFront();\r\n this.bulletsContainer.toFront();\r\n if (this.maskBullets) {\r\n this.bulletsContainer.mask = this._bulletMask;\r\n }\r\n this.updateSeriesLegend();\r\n };\r\n /**\r\n * Triggers a redrawing of all chart's series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.updatePlotElements = function () {\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.invalidate();\r\n });\r\n };\r\n /**\r\n * Triggers data (re)validation which in turn can cause a redraw of the\r\n * whole chart or just aprticular series / elements.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.validateData = function () {\r\n // tell axes that data changed\r\n if (this._parseDataFrom == 0) {\r\n $iter.each(this.xAxes.iterator(), function (axis) {\r\n axis.dataChangeUpdate();\r\n });\r\n $iter.each(this.yAxes.iterator(), function (axis) {\r\n axis.dataChangeUpdate();\r\n });\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.dataChangeUpdate();\r\n });\r\n }\r\n _super.prototype.validateData.call(this);\r\n };\r\n /**\r\n * Updates margins for horizontal axes based on settings and available space.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.updateXAxesMargins = function () {\r\n var leftAxesWidth = this.leftAxesContainer.measuredWidth;\r\n var rightAxesWidth = this.rightAxesContainer.measuredWidth;\r\n var bottomAxesCont = this.bottomAxesContainer;\r\n if (bottomAxesCont.paddingLeft != leftAxesWidth || bottomAxesCont.paddingRight != rightAxesWidth) {\r\n bottomAxesCont.paddingLeft = leftAxesWidth;\r\n bottomAxesCont.paddingRight = rightAxesWidth;\r\n }\r\n var topAxesCont = this.topAxesContainer;\r\n if (topAxesCont.paddingLeft != leftAxesWidth || topAxesCont.paddingRight != rightAxesWidth) {\r\n topAxesCont.paddingLeft = leftAxesWidth;\r\n topAxesCont.paddingRight = rightAxesWidth;\r\n }\r\n };\r\n /**\r\n * Triggers a re-initialization of this element.\r\n *\r\n * Will result in complete redrawing of the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.reinit = function () {\r\n _super.prototype.reinit.call(this);\r\n this.series.each(function (series) {\r\n series.appeared = false;\r\n });\r\n };\r\n /**\r\n * Triggers an update on the horizontal axis when one of its properties\r\n * change.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event An event object\r\n */\r\n XYChart.prototype.handleXAxisChange = function (event) {\r\n this.updateXAxis(event.target);\r\n };\r\n /**\r\n * Triggers an update on the vertical axis when one of its properties\r\n * change.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event An event object\r\n */\r\n XYChart.prototype.handleYAxisChange = function (event) {\r\n this.updateYAxis(event.target);\r\n };\r\n /**\r\n * Sets up a new horizontal (X) axis when it is added to the chart.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Axis insert event\r\n */\r\n XYChart.prototype.processXAxis = function (event) {\r\n var axis = event.newValue;\r\n axis.chart = this;\r\n if (!axis.renderer) {\r\n axis.renderer = new this._axisRendererX();\r\n axis.renderer.observe([\"opposite\", \"inside\", \"inversed\", \"minGridDistance\"], this.handleXAxisChange, this, false);\r\n }\r\n axis.axisLetter = \"X\";\r\n axis.events.on(\"startendchanged\", this.handleXAxisRangeChange, this, false);\r\n //axis.events.on(\"endchanged\", this.handleXAxisRangeChange, this, false);\r\n // Although axis does not use data directly, we set dataProvider here\r\n // (but not add to chart data users) to hold up rendering before data\r\n // is parsed (system handles this)\r\n axis.dataProvider = this;\r\n this.updateXAxis(axis.renderer);\r\n this.processAxis(axis);\r\n };\r\n /**\r\n * Sets up a new vertical (Y) axis when it is added to the chart.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Axis insert event\r\n */\r\n XYChart.prototype.processYAxis = function (event) {\r\n var axis = event.newValue;\r\n axis.chart = this;\r\n if (!axis.renderer) {\r\n axis.renderer = new this._axisRendererY();\r\n axis.renderer.observe([\"opposite\", \"inside\", \"inversed\", \"minGridDistance\"], this.handleYAxisChange, this, false);\r\n }\r\n axis.axisLetter = \"Y\";\r\n axis.events.on(\"startendchanged\", this.handleYAxisRangeChange, this, false);\r\n //axis.events.on(\"endchanged\", this.handleYAxisRangeChange, this, false);\r\n // Although axis does not use data directly, we set dataProvider here\r\n // (but not add to chart data users) to hold up rendering before data\r\n // is parsed (system handles this)\r\n axis.dataProvider = this;\r\n this.updateYAxis(axis.renderer);\r\n this.processAxis(axis);\r\n };\r\n /**\r\n * Updates horizontal (X) scrollbar and other horizontal axis whenever axis'\r\n * value range changes.\r\n */\r\n XYChart.prototype.handleXAxisRangeChange = function () {\r\n var range = this.getCommonAxisRange(this.xAxes);\r\n if (this.scrollbarX) {\r\n this.zoomAxes(this.xAxes, range, true);\r\n }\r\n this.toggleZoomOutButton();\r\n this.updateScrollbar(this.scrollbarX, range);\r\n };\r\n /**\r\n * Shows or hides the Zoom Out button depending on whether the chart is fully\r\n * zoomed out or not.\r\n */\r\n XYChart.prototype.toggleZoomOutButton = function () {\r\n if (this.zoomOutButton) {\r\n var show_1 = false;\r\n $iter.eachContinue(this.xAxes.iterator(), function (axis) {\r\n if (axis.toggleZoomOutButton) {\r\n if (axis.maxZoomCount > 0) {\r\n var minZoomFactor = axis.maxZoomFactor / axis.maxZoomCount;\r\n if ($math.round(axis.end - axis.start, 3) < 1 / minZoomFactor) {\r\n show_1 = true;\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($math.round(axis.start, 3) > 0 || $math.round(axis.end, 3) < 1) {\r\n show_1 = true;\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n $iter.eachContinue(this.yAxes.iterator(), function (axis) {\r\n if (axis.toggleZoomOutButton) {\r\n if (axis.maxZoomCount > 0) {\r\n var minZoomFactor = axis.maxZoomFactor / axis.maxZoomCount;\r\n if ($math.round(axis.end - axis.start, 3) < 1 / minZoomFactor) {\r\n show_1 = true;\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($math.round(axis.start, 3) > 0 || $math.round(axis.end, 3) < 1) {\r\n show_1 = true;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n });\r\n if (!this.seriesAppeared) {\r\n show_1 = false;\r\n }\r\n if (show_1) {\r\n this.zoomOutButton.show();\r\n }\r\n else {\r\n this.zoomOutButton.hide();\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n * moved this check to a separate method so that we could override it in TreeMapSeries\r\n */\r\n XYChart.prototype.seriesAppeared = function () {\r\n var appeared = false;\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (!series.appeared) {\r\n appeared = false;\r\n return false;\r\n }\r\n });\r\n return appeared;\r\n };\r\n /**\r\n * Updates vertical (Y) scrollbar and other horizontal axis whenever axis'\r\n * value range changes.\r\n */\r\n XYChart.prototype.handleYAxisRangeChange = function () {\r\n var range = this.getCommonAxisRange(this.yAxes);\r\n if (this.scrollbarY) {\r\n this.zoomAxes(this.yAxes, range, true);\r\n }\r\n this.toggleZoomOutButton();\r\n this.updateScrollbar(this.scrollbarY, range);\r\n };\r\n /**\r\n * Updates a relative scrollbar whenever data range of the axis changes.\r\n *\r\n * @param scrollbar Scrollbar instance\r\n * @param range New data (values) range of the axis\r\n */\r\n XYChart.prototype.updateScrollbar = function (scrollbar, range) {\r\n if (scrollbar) {\r\n scrollbar.skipRangeEvents();\r\n scrollbar.start = range.start;\r\n scrollbar.end = range.end;\r\n }\r\n };\r\n /**\r\n * Returns a common range of values between a list of axes.\r\n *\r\n * This is used to synchronize the zoom between multiple axes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axes A list of axes\r\n * @return Common value range\r\n */\r\n XYChart.prototype.getCommonAxisRange = function (axes) {\r\n var start;\r\n var end;\r\n axes.each(function (axis) {\r\n if (!axis.zoomable || (axis instanceof ValueAxis && axis.syncWithAxis)) {\r\n }\r\n else {\r\n var axisStart = axis.start;\r\n var axisEnd = axis.end;\r\n if (axis.renderer.inversed) {\r\n axisStart = 1 - axis.end;\r\n axisEnd = 1 - axis.start;\r\n }\r\n if (!$type.isNumber(start) || (axisStart < start)) {\r\n start = axisStart;\r\n }\r\n if (!$type.isNumber(end) || (axisEnd > end)) {\r\n end = axisEnd;\r\n }\r\n }\r\n });\r\n return { start: start, end: end };\r\n };\r\n /**\r\n * Triggers (re)rendering of the horizontal (X) axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n */\r\n XYChart.prototype.updateXAxis = function (renderer) {\r\n var axis = renderer.axis;\r\n if (renderer.opposite) {\r\n axis.parent = this.topAxesContainer;\r\n axis.toFront();\r\n }\r\n else {\r\n axis.parent = this.bottomAxesContainer;\r\n axis.toBack();\r\n }\r\n if (axis.renderer) {\r\n axis.renderer.processRenderer();\r\n }\r\n };\r\n /**\r\n * Triggers (re)rendering of the vertical (Y) axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n */\r\n XYChart.prototype.updateYAxis = function (renderer) {\r\n var axis = renderer.axis;\r\n if (renderer.opposite) {\r\n axis.parent = this.rightAxesContainer;\r\n axis.toBack();\r\n }\r\n else {\r\n axis.parent = this.leftAxesContainer;\r\n axis.toFront();\r\n }\r\n if (axis.renderer) {\r\n axis.renderer.processRenderer();\r\n }\r\n };\r\n /**\r\n * Decorates an Axis for use with this chart, e.g. sets proper renderer\r\n * and containers for placement.\r\n *\r\n * @param axis Axis\r\n */\r\n XYChart.prototype.processAxis = function (axis) {\r\n var _this = this;\r\n // Value axis does not use data directly, only category axis does\r\n if (axis instanceof CategoryAxis) {\r\n this._dataUsers.moveValue(axis);\r\n }\r\n var renderer = axis.renderer;\r\n renderer.gridContainer.parent = this.plotContainer;\r\n renderer.gridContainer.toBack();\r\n renderer.breakContainer.parent = this.plotContainer;\r\n renderer.breakContainer.toFront();\r\n renderer.breakContainer.zIndex = 10;\r\n axis.addDisposer(new Disposer(function () {\r\n _this.dataUsers.removeValue(axis);\r\n }));\r\n renderer.bulletsContainer.parent = this.axisBulletsContainer;\r\n this._disposers.push(axis.events.on(\"positionchanged\", function () {\r\n var point = $utils.spritePointToSprite({ x: 0, y: 0 }, axis, _this.axisBulletsContainer);\r\n if (axis.renderer instanceof AxisRendererY) {\r\n renderer.bulletsContainer.y = point.y;\r\n }\r\n if (axis.renderer instanceof AxisRendererX) {\r\n renderer.bulletsContainer.x = point.x;\r\n }\r\n }, undefined, false));\r\n this.plotContainer.events.on(\"maxsizechanged\", function () {\r\n if (_this.inited) {\r\n axis.invalidateDataItems();\r\n _this.updateSeriesMasks();\r\n }\r\n }, axis, false);\r\n };\r\n /**\r\n * This is done because for some reason IE doesn't change mask if path of a\r\n * mask changes.\r\n */\r\n XYChart.prototype.updateSeriesMasks = function () {\r\n if ($utils.isIE()) {\r\n this.series.each(function (series) {\r\n var mask = series.mainContainer.mask;\r\n series.mainContainer.mask = undefined;\r\n series.mainContainer.mask = mask;\r\n });\r\n }\r\n };\r\n XYChart.prototype.handleSeriesRemoved = function (event) {\r\n var series = event.oldValue;\r\n if (series) {\r\n if (series.xAxis) {\r\n series.xAxis.series.removeValue(series);\r\n series.xAxis.invalidateProcessedData();\r\n }\r\n if (series.yAxis) {\r\n series.yAxis.series.removeValue(series);\r\n series.yAxis.invalidateProcessedData();\r\n }\r\n // otherwise extremes won't change\r\n this.series.each(function (series) {\r\n series.resetExtremes();\r\n });\r\n }\r\n _super.prototype.handleSeriesRemoved.call(this, event);\r\n };\r\n Object.defineProperty(XYChart.prototype, \"xAxes\", {\r\n /**\r\n * A list of horizontal (X) axes.\r\n *\r\n * @return List of axes\r\n */\r\n get: function () {\r\n if (!this._xAxes) {\r\n this._xAxes = new List();\r\n this._xAxes.events.on(\"inserted\", this.processXAxis, this, false);\r\n this._xAxes.events.on(\"removed\", this.handleAxisRemoval, this, false);\r\n this._disposers.push(new ListDisposer(this._xAxes, false));\r\n }\r\n return this._xAxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.handleAxisRemoval = function (event) {\r\n var axis = event.oldValue;\r\n this.dataUsers.removeValue(axis); // need to remove, as it might not be disposed\r\n if (axis.autoDispose) {\r\n axis.dispose();\r\n }\r\n };\r\n Object.defineProperty(XYChart.prototype, \"yAxes\", {\r\n /**\r\n * A list of vertical (Y) axes.\r\n *\r\n * @return List of axes\r\n */\r\n get: function () {\r\n if (!this._yAxes) {\r\n this._yAxes = new List();\r\n this._yAxes.events.on(\"inserted\", this.processYAxis, this, false);\r\n this._yAxes.events.on(\"removed\", this.handleAxisRemoval, this, false);\r\n this._disposers.push(new ListDisposer(this._yAxes, false));\r\n }\r\n return this._yAxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Decorates a new [[XYSeries]] object with required parameters when it is\r\n * added to the chart.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n XYChart.prototype.handleSeriesAdded = function (event) {\r\n try {\r\n _super.prototype.handleSeriesAdded.call(this, event);\r\n var series = event.newValue;\r\n if (this.xAxes.length == 0 || this.yAxes.length == 0) {\r\n registry.removeFromInvalidComponents(series);\r\n series.dataInvalid = false;\r\n }\r\n $utils.used(series.xAxis); // this is enough to get axis, handled in getter\r\n $utils.used(series.yAxis); // this is enough to get axis, handled in getter\r\n series.maskBullets = series.maskBullets;\r\n if (series.fill == undefined) {\r\n if (this.patterns) {\r\n if (!$type.hasValue(series.stroke)) {\r\n series.stroke = this.colors.next();\r\n }\r\n series.fill = this.patterns.next();\r\n if ($type.hasValue(series.fillOpacity)) {\r\n series.fill.backgroundOpacity = series.fillOpacity;\r\n }\r\n if (series.stroke instanceof Color) {\r\n series.fill.stroke = series.stroke;\r\n series.fill.fill = series.stroke;\r\n }\r\n }\r\n else {\r\n series.fill = this.colors.next();\r\n }\r\n }\r\n if (!$type.hasValue(series.stroke)) {\r\n series.stroke = series.fill;\r\n }\r\n }\r\n catch (e) {\r\n this.raiseCriticalError(e);\r\n }\r\n };\r\n Object.defineProperty(XYChart.prototype, \"cursor\", {\r\n /**\r\n * @return Cursor\r\n */\r\n get: function () {\r\n return this._cursor;\r\n },\r\n /**\r\n * Chart's [[Cursor]].\r\n *\r\n * @param cursor Cursor\r\n */\r\n set: function (cursor) {\r\n if (this._cursor != cursor) {\r\n if (this._cursor) {\r\n this.removeDispose(this._cursor);\r\n }\r\n this._cursor = cursor;\r\n if (cursor) {\r\n // TODO this is wrong, fix it\r\n this._disposers.push(cursor);\r\n cursor.chart = this;\r\n cursor.shouldClone = false;\r\n cursor.parent = this._cursorContainer;\r\n cursor.events.on(\"cursorpositionchanged\", this.handleCursorPositionChange, this, false);\r\n cursor.events.on(\"zoomstarted\", this.handleCursorZoomStart, this, false);\r\n cursor.events.on(\"zoomended\", this.handleCursorZoomEnd, this, false);\r\n cursor.events.on(\"panstarted\", this.handleCursorPanStart, this, false);\r\n cursor.events.on(\"panning\", this.handleCursorPanning, this, false);\r\n cursor.events.on(\"panended\", this.handleCursorPanEnd, this, false);\r\n cursor.events.on(\"behaviorcanceled\", this.handleCursorCanceled, this, false);\r\n cursor.events.on(\"hidden\", this.handleHideCursor, this, false);\r\n cursor.zIndex = Number.MAX_SAFE_INTEGER - 1;\r\n if (this.tapToActivate) {\r\n // We need this in order to setup cursor properly\r\n this.setTapToActivate(this.tapToActivate);\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Performs tasks when the cursor's position changes, e.g. shows proper\r\n * tooltips on axes and series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.handleCursorPositionChange = function () {\r\n var cursor = this.cursor;\r\n if (cursor.visible && !cursor.isHiding) {\r\n var xPosition_1 = this.cursor.xPosition;\r\n var yPosition_1 = this.cursor.yPosition;\r\n this.showSeriesTooltip({\r\n x: xPosition_1,\r\n y: yPosition_1\r\n });\r\n var exceptAxes_1 = [];\r\n var snapToSeries = cursor.snapToSeries;\r\n if (snapToSeries && !cursor.downPoint) {\r\n if (snapToSeries instanceof XYSeries) {\r\n snapToSeries = [snapToSeries];\r\n }\r\n var dataItems_1 = [];\r\n $array.each(snapToSeries, function (snpSeries) {\r\n if (!snpSeries.isHidden && !snpSeries.isHiding) {\r\n var xAxis = snpSeries.xAxis;\r\n var yAxis = snpSeries.yAxis;\r\n if (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis) && yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n snpSeries.dataItems.each(function (dataItem) {\r\n dataItems_1.push(dataItem);\r\n });\r\n $array.move(exceptAxes_1, snpSeries.yAxis);\r\n $array.move(exceptAxes_1, snpSeries.xAxis);\r\n }\r\n else {\r\n if (snpSeries.baseAxis == snpSeries.xAxis) {\r\n $array.move(exceptAxes_1, snpSeries.yAxis);\r\n dataItems_1.push(xAxis.getSeriesDataItem(snpSeries, xAxis.toAxisPosition(xPosition_1), true));\r\n }\r\n if (snpSeries.baseAxis == snpSeries.yAxis) {\r\n $array.move(exceptAxes_1, snpSeries.xAxis);\r\n dataItems_1.push(yAxis.getSeriesDataItem(snpSeries, yAxis.toAxisPosition(yPosition_1), true));\r\n }\r\n }\r\n }\r\n });\r\n var closestDataItem_1 = this.getClosest(dataItems_1, xPosition_1, yPosition_1);\r\n if (closestDataItem_1) {\r\n this.series.each(function (series) {\r\n var closestSeries = closestDataItem_1.component;\r\n if (series != closestSeries) {\r\n series.hideTooltip();\r\n if (series.xAxis != closestSeries.xAxis) {\r\n series.xAxis.hideTooltip();\r\n exceptAxes_1.push(series.xAxis);\r\n }\r\n if (series.yAxis != closestSeries.yAxis) {\r\n series.yAxis.hideTooltip();\r\n exceptAxes_1.push(series.yAxis);\r\n }\r\n }\r\n });\r\n closestDataItem_1.component.showTooltipAtDataItem(closestDataItem_1);\r\n cursor.handleSnap(closestDataItem_1.component);\r\n }\r\n }\r\n //}\r\n this._seriesPoints = [];\r\n if (this._cursorXPosition != xPosition_1) {\r\n this.showAxisTooltip(this.xAxes, xPosition_1, exceptAxes_1);\r\n }\r\n if (this._cursorYPosition != yPosition_1) {\r\n this.showAxisTooltip(this.yAxes, yPosition_1, exceptAxes_1);\r\n }\r\n if (this.arrangeTooltips) {\r\n this.sortSeriesTooltips(this._seriesPoints);\r\n }\r\n if (this.legend) {\r\n this.legend.afterDraw();\r\n }\r\n }\r\n };\r\n /**\r\n * Finds closest data item to position out of the array of items.\r\n *\r\n * @since 4.9.29\r\n * @param dataItems Array of items\r\n * @param xPosition X position\r\n * @param yPosition Y position\r\n * @return Data item\r\n */\r\n XYChart.prototype.getClosest = function (dataItems, xPosition, yPosition) {\r\n var minDistance = Infinity;\r\n var closestDataItem;\r\n $array.eachContinue(dataItems, function (dataItem) {\r\n if (dataItem) {\r\n var xAxis = dataItem.component.xAxis;\r\n var yAxis = dataItem.component.yAxis;\r\n var xPos = xAxis.positionToCoordinate(xAxis.toGlobalPosition(xAxis.toAxisPosition(xPosition)));\r\n var yPos = yAxis.positionToCoordinate(yAxis.toGlobalPosition(yAxis.toAxisPosition(yPosition)));\r\n var xField = dataItem.component.xField;\r\n var yField = dataItem.component.yField;\r\n if (xAxis instanceof ValueAxis && !$type.isNumber(dataItem.getValue(xField))) {\r\n return true;\r\n }\r\n if (yAxis instanceof ValueAxis && !$type.isNumber(dataItem.getValue(yField))) {\r\n return true;\r\n }\r\n var dxPosition = xAxis.positionToCoordinate(xAxis.toGlobalPosition(xAxis.getPositionX(dataItem, xField, dataItem.locations[xField], \"valueX\")));\r\n var dyPosition = yAxis.positionToCoordinate(yAxis.toGlobalPosition(yAxis.getPositionY(dataItem, yField, dataItem.locations[yField], \"valueY\")));\r\n var distance = Math.sqrt(Math.pow(xPos - dxPosition, 2) + Math.pow(yPos - dyPosition, 2));\r\n if (distance < minDistance) {\r\n minDistance = distance;\r\n closestDataItem = dataItem;\r\n }\r\n return true;\r\n }\r\n });\r\n return closestDataItem;\r\n };\r\n /**\r\n * Hides all cursor-related tooltips when the cursor itself is hidden.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.handleHideCursor = function () {\r\n this.hideObjectTooltip(this.xAxes);\r\n this.hideObjectTooltip(this.yAxes);\r\n this.hideObjectTooltip(this.series);\r\n this._cursorXPosition = undefined;\r\n this._cursorYPosition = undefined;\r\n this.updateSeriesLegend();\r\n };\r\n /**\r\n * Updates values for each series' legend item.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart.prototype.updateSeriesLegend = function () {\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.updateLegendValue();\r\n });\r\n };\r\n /**\r\n * Hides a tooltip for a list of objects.\r\n *\r\n * @ignore Exclude from docs\r\n * @param sprites A list of sprites to hide tooltip for\r\n */\r\n XYChart.prototype.hideObjectTooltip = function (sprites) {\r\n $iter.each(sprites.iterator(), function (sprite) {\r\n if (sprite.cursorTooltipEnabled) {\r\n sprite.hideTooltip(0);\r\n }\r\n });\r\n };\r\n /**\r\n * Shows a tooltip for all chart's series, using specific coordinates as a\r\n * reference point.\r\n *\r\n * The tooltip might be shown at different coordinates depending on the\r\n * actual data point's position, overlapping with other tooltips, etc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Reference point\r\n */\r\n XYChart.prototype.showSeriesTooltip = function (position) {\r\n var _this = this;\r\n if (!position) {\r\n this.series.each(function (series) {\r\n series.hideTooltip();\r\n });\r\n return;\r\n }\r\n var seriesPoints = [];\r\n this.series.each(function (series) {\r\n //if (series.tooltipText || series.tooltipHTML) { // not good, bullets are not hovered then\r\n if ((series.xAxis instanceof DateAxis && series.xAxis.snapTooltip) || (series.yAxis instanceof DateAxis && series.yAxis.snapTooltip)) {\r\n // void\r\n }\r\n else {\r\n var point = series.showTooltipAtPosition(position.x, position.y);\r\n if (point) {\r\n series.tooltip.setBounds($utils.spriteRectToSvg({ x: 0, y: 0, width: _this.pixelWidth, height: _this.pixelHeight }, _this));\r\n seriesPoints.push({ series: series, point: point });\r\n }\r\n }\r\n //}\r\n });\r\n if (this.arrangeTooltips) {\r\n this.sortSeriesTooltips(seriesPoints);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.sortSeriesTooltips = function (seriesPoints) {\r\n if (seriesPoints.length > 0) {\r\n var cursor_1 = this.cursor;\r\n if (cursor_1 && $type.isNumber(cursor_1.maxTooltipDistance)) {\r\n var cursorPoint_1 = $utils.spritePointToSvg({ x: cursor_1.point.x, y: cursor_1.point.y }, cursor_1);\r\n var nearestSeries_1;\r\n var nearestPoint_1;\r\n var smallestDistance_1 = Infinity;\r\n $array.each(seriesPoints, function (seriesPoint) {\r\n var series = seriesPoint.series;\r\n var fixedPoint = seriesPoint.point;\r\n if (fixedPoint) {\r\n var point = { x: fixedPoint.x, y: fixedPoint.y };\r\n var distance = Math.abs($math.getDistance(point, cursorPoint_1));\r\n if (distance < smallestDistance_1) {\r\n nearestPoint_1 = point;\r\n smallestDistance_1 = distance;\r\n nearestSeries_1 = series;\r\n }\r\n }\r\n });\r\n var newSeriesPoints_1 = [];\r\n if (nearestSeries_1) {\r\n $array.each(seriesPoints, function (seriesPoint) {\r\n if (Math.abs($math.getDistance(seriesPoint.point, nearestPoint_1)) <= Math.abs(cursor_1.maxTooltipDistance)) {\r\n newSeriesPoints_1.push({ series: seriesPoint.series, point: seriesPoint.point });\r\n }\r\n else {\r\n var tooltipDataItem = seriesPoint.series.tooltipDataItem;\r\n if (tooltipDataItem) {\r\n $array.each(tooltipDataItem.sprites, function (sprite) {\r\n sprite.isHover = false;\r\n sprite.handleOutReal(); // to avoid flicker\r\n });\r\n }\r\n seriesPoint.series.hideTooltip(0);\r\n }\r\n });\r\n if (cursor_1.maxTooltipDistance < 0) {\r\n if (newSeriesPoints_1.length > 0) {\r\n $array.each(newSeriesPoints_1, function (np) {\r\n if (nearestSeries_1 != np.series) {\r\n np.series.hideTooltip(0);\r\n }\r\n });\r\n }\r\n newSeriesPoints_1 = [{ series: nearestSeries_1, point: nearestPoint_1 }];\r\n }\r\n }\r\n seriesPoints = newSeriesPoints_1;\r\n }\r\n var topLeft_1 = $utils.spritePointToSvg({ x: -0.5, y: -0.5 }, this.plotContainer);\r\n var bottomRight_1 = $utils.spritePointToSvg({ x: this.plotContainer.pixelWidth + 0.5, y: this.plotContainer.pixelHeight + 0.5 }, this.plotContainer);\r\n var sum_1 = 0;\r\n var filteredSeriesPoints_1 = [];\r\n $array.each(seriesPoints, function (seriesPoint) {\r\n var point = seriesPoint.point;\r\n if (point && $math.isInRectangle(point, { x: topLeft_1.x, y: topLeft_1.y, width: bottomRight_1.x - topLeft_1.x, height: bottomRight_1.y - topLeft_1.y })) {\r\n filteredSeriesPoints_1.push({ point: point, series: seriesPoint.series });\r\n sum_1 += point.y;\r\n }\r\n });\r\n seriesPoints = filteredSeriesPoints_1;\r\n var firstSeries = this.series.getIndex(0);\r\n var inversed = false;\r\n if (firstSeries && firstSeries.yAxis && firstSeries.yAxis.renderer.inversed) {\r\n inversed = true;\r\n }\r\n if (inversed) {\r\n seriesPoints.sort(function (a, b) { return $number.order(a.point.y, b.point.y); });\r\n }\r\n else {\r\n seriesPoints.sort(function (a, b) { return $number.order(b.point.y, a.point.y); });\r\n seriesPoints.reverse();\r\n }\r\n var averageY = sum_1 / seriesPoints.length;\r\n var maxY = $utils.svgPointToDocument({ x: 0, y: 0 }, this.svgContainer.SVGContainer).y;\r\n if (seriesPoints.length > 0) {\r\n var top_1 = topLeft_1.y;\r\n var bottom = bottomRight_1.y;\r\n // TODO is this needed ?\r\n $utils.spritePointToDocument({ x: 0, y: top_1 }, this);\r\n var dropped = false;\r\n if (averageY > top_1 + (bottom - top_1) / 2) {\r\n var nextHeight = bottom;\r\n for (var i = seriesPoints.length - 1; i >= 0; i--) {\r\n var series = seriesPoints[i].series;\r\n var tooltip = series.tooltip;\r\n var pointY = seriesPoints[i].point.y;\r\n tooltip.setBounds({ x: 0, y: -maxY, width: this.pixelWidth, height: nextHeight + maxY });\r\n if (tooltip.invalid) {\r\n tooltip.validate();\r\n }\r\n tooltip.toBack();\r\n nextHeight = $utils.spritePointToSvg({ x: 0, y: tooltip.label.pixelY - tooltip.pixelY + pointY - tooltip.pixelMarginTop }, tooltip).y;\r\n if (nextHeight < -maxY) {\r\n dropped = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (averageY <= top_1 + (bottom - top_1) / 2 || dropped) {\r\n var nextY = top_1;\r\n for (var i = 0, len = seriesPoints.length; i < len; i++) {\r\n var series = seriesPoints[i].series;\r\n var pointY = seriesPoints[i].point.y;\r\n var tooltip = series.tooltip;\r\n tooltip.setBounds({ x: 0, y: nextY, width: this.pixelWidth, height: bottom });\r\n if (tooltip.invalid) {\r\n tooltip.validate();\r\n }\r\n tooltip.toBack();\r\n nextY = $utils.spritePointToSvg({ x: 0, y: tooltip.label.pixelY + tooltip.label.measuredHeight - tooltip.pixelY + pointY + tooltip.pixelMarginBottom }, tooltip).y;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Shows tooltips for a list of axes at specific position.\r\n *\r\n * Position might be X coordinate for horizontal axes, and Y coordinate for\r\n * vertical axes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axes List of axes to show tooltip on\r\n * @param position Position (px)\r\n */\r\n XYChart.prototype.showAxisTooltip = function (axes, position, except) {\r\n var _this = this;\r\n $iter.each(axes.iterator(), function (axis) {\r\n if (!except || except.indexOf(axis) == -1) {\r\n if (_this.dataItems.length > 0 || axis.dataItems.length > 0) {\r\n axis.showTooltipAtPosition(position);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Recalculates the value range for the axis taking into account zoom level & inversed.\r\n *\r\n * @param axis Axis\r\n * @param range Range\r\n * @return Modified range\r\n */\r\n XYChart.prototype.getUpdatedRange = function (axis, range) {\r\n if (!axis) {\r\n return;\r\n }\r\n var start;\r\n var end;\r\n var inversed = axis.renderer.inversed;\r\n if (inversed) {\r\n $math.invertRange(range);\r\n start = 1 - axis.end;\r\n end = 1 - axis.start;\r\n }\r\n else {\r\n start = axis.start;\r\n end = axis.end;\r\n }\r\n var difference = end - start;\r\n return {\r\n start: start + range.start * difference,\r\n end: start + range.end * difference\r\n };\r\n };\r\n /**\r\n * Performs zoom and other operations when user finishes zooming using chart\r\n * cursor, e.g. zooms axes.\r\n *\r\n * @param event Cursor's event\r\n */\r\n XYChart.prototype.handleCursorZoomEnd = function (event) {\r\n var cursor = this.cursor;\r\n var behavior = cursor.behavior;\r\n if (behavior == \"zoomX\" || behavior == \"zoomXY\") {\r\n var xRange = cursor.xRange;\r\n if (xRange && this.xAxes.length > 0) {\r\n xRange = this.getUpdatedRange(this.xAxes.getIndex(0), xRange);\r\n xRange.priority = \"start\";\r\n this.zoomAxes(this.xAxes, xRange);\r\n }\r\n }\r\n if (behavior == \"zoomY\" || behavior == \"zoomXY\") {\r\n var yRange = cursor.yRange;\r\n if (yRange && this.yAxes.length > 0) {\r\n yRange = this.getUpdatedRange(this.yAxes.getIndex(0), yRange);\r\n yRange.priority = \"start\";\r\n this.zoomAxes(this.yAxes, yRange);\r\n }\r\n }\r\n this.handleHideCursor();\r\n };\r\n /**\r\n * Performs zoom and other operations when user is panning chart plot using chart cursor.\r\n *\r\n * @param event Cursor's event\r\n */\r\n XYChart.prototype.handleCursorPanStart = function (event) {\r\n var xAxis = this.xAxes.getIndex(0);\r\n if (xAxis) {\r\n this._panStartXRange = { start: xAxis.start, end: xAxis.end };\r\n if (xAxis.renderer.inversed) {\r\n this._panStartXRange = $math.invertRange(this._panStartXRange);\r\n }\r\n }\r\n var yAxis = this.yAxes.getIndex(0);\r\n if (yAxis) {\r\n this._panStartYRange = { start: yAxis.start, end: yAxis.end };\r\n if (yAxis.renderer.inversed) {\r\n this._panStartYRange = $math.invertRange(this._panStartYRange);\r\n }\r\n }\r\n };\r\n /**\r\n * Performs zoom and other operations when user ends panning\r\n *\r\n * @param event Cursor's event\r\n */\r\n XYChart.prototype.handleCursorPanEnd = function (event) {\r\n var cursor = this.cursor;\r\n var behavior = cursor.behavior;\r\n if (this._panEndXRange && (behavior == \"panX\" || behavior == \"panXY\")) {\r\n var panEndRange = this._panEndXRange;\r\n var panStartRange = this._panStartXRange;\r\n var delta = 0;\r\n if (panEndRange.start < 0) {\r\n delta = panEndRange.start;\r\n }\r\n if (panStartRange.end > 1) {\r\n if (panEndRange.end > panStartRange.end) {\r\n delta = panEndRange.end - panStartRange.end;\r\n }\r\n }\r\n else if (panEndRange.end > 1) {\r\n delta = panEndRange.end - 1;\r\n }\r\n this.zoomAxes(this.xAxes, { start: panEndRange.start - delta, end: panEndRange.end - delta }, false, cursor.snapOnPan);\r\n this._panEndXRange = undefined;\r\n this._panStartXRange = undefined;\r\n }\r\n if (this._panEndYRange && (behavior == \"panY\" || behavior == \"panXY\")) {\r\n var panEndRange = this._panEndYRange;\r\n var delta = 0;\r\n if (panEndRange.start < 0) {\r\n delta = panEndRange.start;\r\n }\r\n if (panEndRange.end > 1) {\r\n delta = panEndRange.end - 1;\r\n }\r\n this.zoomAxes(this.yAxes, { start: panEndRange.start - delta, end: panEndRange.end - delta }, false, cursor.snapOnPan);\r\n this._panEndYRange = undefined;\r\n this._panStartYRange = undefined;\r\n }\r\n };\r\n XYChart.prototype.handleCursorCanceled = function () {\r\n this._panEndXRange = undefined;\r\n this._panStartXRange = undefined;\r\n };\r\n /**\r\n * Performs zoom and other operations when user is panning chart plot using chart cursor.\r\n *\r\n * @param event Cursor's event\r\n */\r\n XYChart.prototype.handleCursorPanning = function (event) {\r\n var cursor = this.cursor;\r\n var behavior = cursor.behavior;\r\n var maxPanOut = cursor.maxPanOut;\r\n if (this._panStartXRange && (behavior == \"panX\" || behavior == \"panXY\")) {\r\n var panStartRange = this._panStartXRange;\r\n var range = cursor.xRange;\r\n var axisRange = this.getCommonAxisRange(this.xAxes);\r\n var difference = (panStartRange.end - panStartRange.start);\r\n var delta = range.start * (axisRange.end - axisRange.start);\r\n var newStart = Math.max(-maxPanOut, delta + panStartRange.start);\r\n var newEnd = Math.min(delta + panStartRange.end, 1 + maxPanOut);\r\n if (newStart <= 0) {\r\n newEnd = newStart + difference;\r\n }\r\n if (newEnd >= 1) {\r\n newStart = newEnd - difference;\r\n }\r\n var newRange = {\r\n start: newStart,\r\n end: newEnd\r\n };\r\n this._panEndXRange = newRange;\r\n this.zoomAxes(this.xAxes, newRange, false, false, cursor.maxPanOut);\r\n }\r\n if (this._panStartYRange && (behavior == \"panY\" || behavior == \"panXY\")) {\r\n var panStartRange = this._panStartYRange;\r\n var range = cursor.yRange;\r\n var axisRange = this.getCommonAxisRange(this.yAxes);\r\n var difference = panStartRange.end - panStartRange.start;\r\n var delta = range.start * (axisRange.end - axisRange.start);\r\n var newStart = Math.max(-maxPanOut, delta + panStartRange.start);\r\n var newEnd = Math.min(delta + panStartRange.end, 1 + maxPanOut);\r\n if (newStart <= 0) {\r\n newEnd = newStart + difference;\r\n }\r\n if (newEnd >= 1) {\r\n newStart = newEnd - difference;\r\n }\r\n var newRange = {\r\n start: newStart,\r\n end: newEnd\r\n };\r\n this._panEndYRange = newRange;\r\n this.zoomAxes(this.yAxes, newRange, false, false, cursor.maxPanOut);\r\n }\r\n this.handleHideCursor();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.handleYAxisSet = function (series) {\r\n };\r\n /**\r\n * Performs zoom and other operations when user starts zooming using chart\r\n * cursor, e.g. zooms axes.\r\n *\r\n * @param event Cursor's event\r\n */\r\n XYChart.prototype.handleCursorZoomStart = function (event) {\r\n // Nothing here\r\n // This method is here only as a \"placeholder\" for extending classes to\r\n // override if necessary\r\n };\r\n Object.defineProperty(XYChart.prototype, \"scrollbarX\", {\r\n /**\r\n * @return Scrollbar\r\n */\r\n get: function () {\r\n return this._scrollbarX;\r\n },\r\n /**\r\n * Horizontal (X) scrollbar.\r\n *\r\n * @param scrollbar Scrollbar\r\n */\r\n set: function (scrollbar) {\r\n var _this = this;\r\n if (this._scrollbarX) {\r\n this.removeDispose(this._scrollbarX);\r\n }\r\n this._scrollbarX = scrollbar;\r\n if (scrollbar) {\r\n this._disposers.push(scrollbar);\r\n scrollbar.parent = this.topAxesContainer;\r\n scrollbar.shouldClone = false;\r\n scrollbar.startGrip.exportable = false;\r\n scrollbar.endGrip.exportable = false;\r\n scrollbar.toBack();\r\n scrollbar.orientation = \"horizontal\";\r\n scrollbar.events.on(\"rangechanged\", this.handleXScrollbarChange, this, false);\r\n this.events.on(\"datavalidated\", function () { return scrollbar.updateThumb(false); }, this, false);\r\n // accessibility related\r\n scrollbar.adapter.add(\"positionValue\", function (arg) {\r\n var xAxis = _this.xAxes.getIndex(0);\r\n if (xAxis) {\r\n arg.value = xAxis.getPositionLabel(xAxis.renderer.inversed\r\n ? 1 - arg.position\r\n : arg.position);\r\n }\r\n return arg;\r\n });\r\n scrollbar.adapter.add(\"positionValueDirection\", function (arg) {\r\n var xAxis = _this.xAxes.getIndex(0);\r\n if (xAxis) {\r\n arg.flipped = xAxis.renderer.inversed;\r\n }\r\n return arg;\r\n });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart.prototype, \"scrollbarY\", {\r\n /**\r\n * @return Scrollbar\r\n */\r\n get: function () {\r\n return this._scrollbarY;\r\n },\r\n /**\r\n * Vertical (Y) scrollbar.\r\n *\r\n * @param scrollbar Scrollbar\r\n */\r\n set: function (scrollbar) {\r\n var _this = this;\r\n if (this._scrollbarY) {\r\n this.removeDispose(this._scrollbarY);\r\n }\r\n this._scrollbarY = scrollbar;\r\n if (scrollbar) {\r\n this._disposers.push(scrollbar);\r\n scrollbar.parent = this.rightAxesContainer;\r\n scrollbar.startGrip.exportable = false;\r\n scrollbar.shouldClone = false;\r\n scrollbar.endGrip.exportable = false;\r\n scrollbar.toFront();\r\n scrollbar.orientation = \"vertical\";\r\n scrollbar.events.on(\"rangechanged\", this.handleYScrollbarChange, this, false);\r\n this.events.on(\"datavalidated\", function () { return scrollbar.updateThumb(false); }, this, false);\r\n // accessibility related\r\n scrollbar.adapter.add(\"positionValue\", function (arg) {\r\n var yAxis = _this.yAxes.getIndex(0);\r\n if (yAxis) {\r\n arg.value = yAxis.getPositionLabel(yAxis.renderer.inversed ? arg.position : 1 - arg.position);\r\n }\r\n return arg;\r\n });\r\n scrollbar.adapter.add(\"positionValueDirection\", function (arg) {\r\n var yAxis = _this.yAxes.getIndex(0);\r\n if (yAxis) {\r\n arg.flipped = !yAxis.renderer.inversed;\r\n }\r\n return arg;\r\n });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Zooms axes affected by the horizontal (X) scrollbar when the selection\r\n * on it changes.\r\n *\r\n * @param event Scrollbar range change event\r\n */\r\n XYChart.prototype.handleXScrollbarChange = function (event) {\r\n if (this.inited) {\r\n var scrollbar = event.target;\r\n var range = scrollbar.range;\r\n if (range.start == 0) {\r\n range.priority = \"start\";\r\n }\r\n if (range.end == 1) {\r\n range.priority = \"end\";\r\n }\r\n range = this.zoomAxes(this.xAxes, range);\r\n scrollbar.fixRange(range);\r\n }\r\n };\r\n /**\r\n * Zooms axes affected by the vertical (Y) scrollbar when the selection\r\n * on it changes.\r\n *\r\n * @param event Scrollbar range change event\r\n */\r\n XYChart.prototype.handleYScrollbarChange = function (event) {\r\n if (this.inited) {\r\n var scrollbar = event.target;\r\n var range = scrollbar.range;\r\n if (range.end == 1) {\r\n range.priority = \"end\";\r\n }\r\n if (range.start == 0) {\r\n range.priority = \"start\";\r\n }\r\n range = this.zoomAxes(this.yAxes, range);\r\n scrollbar.fixRange(range);\r\n }\r\n };\r\n /**\r\n * Zooms axes that are affected by to specific relative range.\r\n *\r\n * @param axes List of axes to zoom\r\n * @param range Range of values to zoom to (0-1)\r\n * @param instantly If set to `true` will skip zooming animation\r\n * @return Recalculated range that is common to all involved axes\r\n */\r\n XYChart.prototype.zoomAxes = function (axes, range, instantly, round, declination, stop) {\r\n var realRange = { start: 0, end: 1 };\r\n this.showSeriesTooltip(); // hides\r\n var originalRange = range;\r\n if (!this.dataInvalid) {\r\n $iter.each(axes.iterator(), function (axis) {\r\n var maxZoomFactor = axis.maxZoomFactor;\r\n if ($type.isNumber(axis.minZoomCount)) {\r\n maxZoomFactor = maxZoomFactor / axis.minZoomCount;\r\n }\r\n if (stop && 1 / (range.end - range.start) >= maxZoomFactor) {\r\n // void\r\n }\r\n else {\r\n if (axis.zoomable) {\r\n if (axis.renderer.inversed) {\r\n range = $math.invertRange(originalRange);\r\n }\r\n else {\r\n range = originalRange;\r\n }\r\n axis.hideTooltip(0);\r\n if (round) {\r\n //let diff = range.end - range.start;\r\n if (axis instanceof CategoryAxis) {\r\n var cellWidth = axis.getCellEndPosition(0) - axis.getCellStartPosition(0);\r\n range.start = axis.roundPosition(range.start + cellWidth / 2 - (axis.startLocation) * cellWidth, axis.startLocation);\r\n range.end = axis.roundPosition(range.end - cellWidth / 2 + (1 - axis.endLocation) * cellWidth, axis.endLocation);\r\n }\r\n else {\r\n var d = 0.0001;\r\n range.start = axis.roundPosition(range.start + d, 0, axis.startLocation);\r\n range.end = axis.roundPosition(range.end + d, 0, axis.endLocation);\r\n }\r\n }\r\n var axisRange = axis.zoom(range, instantly, instantly, declination);\r\n if (axis.renderer.inversed) {\r\n axisRange = $math.invertRange(axisRange);\r\n }\r\n realRange = axisRange;\r\n }\r\n }\r\n });\r\n }\r\n return realRange;\r\n };\r\n Object.defineProperty(XYChart.prototype, \"maskBullets\", {\r\n /**\r\n * @return Mask bullet container?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maskBullets\");\r\n },\r\n /**\r\n * Indicates if bullet container is masked.\r\n *\r\n * If it is set to `true`, any bullets that do not fit into bullet container\r\n * will be clipped off. Settting to `false` will allow bullets to \"spill out\"\r\n * of the plot area so they are not cut off.\r\n *\r\n * @param value Mask bullet container?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"maskBullets\", value, true) && this.bulletsContainer) {\r\n if (value) {\r\n this.bulletsContainer.mask = this._bulletMask;\r\n }\r\n else {\r\n this.bulletsContainer.mask = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart.prototype, \"arrangeTooltips\", {\r\n /**\r\n * @return Arrange tooltips?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"arrangeTooltips\");\r\n },\r\n /**\r\n * Indicates if chart should arrange series tooltips so that they would not\r\n * overlap.\r\n *\r\n * If set to `true` (default), the chart will adjust vertical positions of\r\n * all simultaneously shown tooltips to avoid overlapping.\r\n *\r\n * However, if you have a vertically-arranged chart, it might not make sense,\r\n * because tooltips would most probably not be aligned horizontally. In this\r\n * case it would probably be a good idea to set this setting to `false`.\r\n *\r\n * @default true\r\n * @param value Arrange tooltips?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"arrangeTooltips\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles mouse wheel event.\r\n *\r\n * @param event Original event\r\n */\r\n XYChart.prototype.handleWheel = function (event) {\r\n var plotContainer = this.plotContainer;\r\n var svgPoint = $utils.documentPointToSvg(event.point, this.htmlContainer, this.svgContainer.cssScale);\r\n var plotPoint = $utils.svgPointToSprite(svgPoint, plotContainer);\r\n var shift = event.shift.y;\r\n this.handleWheelReal(shift, this.mouseWheelBehavior, plotPoint);\r\n };\r\n /**\r\n * Handles mouse wheel event.\r\n *\r\n * @param event Original event\r\n */\r\n XYChart.prototype.handleHorizontalWheel = function (event) {\r\n var plotContainer = this.plotContainer;\r\n var svgPoint = $utils.documentPointToSvg(event.point, this.htmlContainer, this.svgContainer.cssScale);\r\n var plotPoint = $utils.svgPointToSprite(svgPoint, plotContainer);\r\n this.handleWheelReal(event.shift.x, this.horizontalMouseWheelBehavior, plotPoint);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.handleWheelReal = function (shift, mouseWheelBehavior, plotPoint) {\r\n if (shift != 0) {\r\n var plotContainer = this.plotContainer;\r\n var rangeX = this.getCommonAxisRange(this.xAxes);\r\n var rangeY = this.getCommonAxisRange(this.yAxes);\r\n var shiftStep = .1;\r\n var maxPanOut = 0;\r\n if (mouseWheelBehavior == \"panX\" || mouseWheelBehavior == \"panXY\") {\r\n var xAxis = this.xAxes.getIndex(0);\r\n var round = false;\r\n var singleItemStep = shiftStep;\r\n if (xAxis instanceof CategoryAxis) {\r\n singleItemStep = .5 / ((rangeX.end - rangeX.start) * xAxis.dataItems.length);\r\n round = true;\r\n }\r\n shiftStep = Math.max(0.2, singleItemStep);\r\n var differenceX = rangeX.end - rangeX.start;\r\n var newStartX = Math.max(-maxPanOut, rangeX.start + shiftStep * shift / 100 * (rangeX.end - rangeX.start));\r\n var newEndX = Math.min(rangeX.end + shiftStep * shift / 100 * (rangeX.end - rangeX.start), 1 + maxPanOut);\r\n if (newStartX <= 0) {\r\n newEndX = newStartX + differenceX;\r\n }\r\n if (newEndX >= 1) {\r\n newStartX = newEndX - differenceX;\r\n }\r\n this.zoomAxes(this.xAxes, { start: newStartX, end: newEndX }, undefined, round);\r\n }\r\n if (mouseWheelBehavior == \"panY\" || mouseWheelBehavior == \"panXY\") {\r\n var yAxis = this.yAxes.getIndex(0);\r\n var singleItemStep = shiftStep;\r\n var round = false;\r\n if (yAxis instanceof CategoryAxis) {\r\n singleItemStep = .5 / ((rangeX.end - rangeX.start) * yAxis.dataItems.length);\r\n round = true;\r\n }\r\n shiftStep = Math.max(0.2, singleItemStep);\r\n shift *= -1;\r\n var differenceY = rangeY.end - rangeY.start;\r\n var newStartY = Math.max(-maxPanOut, rangeY.start + shiftStep * shift / 100 * (rangeY.end - rangeY.start));\r\n var newEndY = Math.min(rangeY.end + shiftStep * shift / 100 * (rangeY.end - rangeY.start), 1 + maxPanOut);\r\n if (newStartY <= 0) {\r\n newEndY = newStartY + differenceY;\r\n }\r\n if (newEndY >= 1) {\r\n newStartY = newEndY - differenceY;\r\n }\r\n this.zoomAxes(this.yAxes, { start: newStartY, end: newEndY }, undefined, round);\r\n }\r\n if (mouseWheelBehavior == \"zoomX\" || mouseWheelBehavior == \"zoomXY\") {\r\n var locationX = plotPoint.x / plotContainer.maxWidth;\r\n var location2X = this.xAxes.getIndex(0).toAxisPosition(locationX);\r\n var newStartX = Math.max(-maxPanOut, rangeX.start - shiftStep * (rangeX.end - rangeX.start) * shift / 100 * locationX);\r\n newStartX = Math.min(newStartX, location2X);\r\n var newEndX = Math.min(rangeX.end + shiftStep * (rangeX.end - rangeX.start) * shift / 100 * (1 - locationX), 1 + maxPanOut);\r\n newEndX = Math.max(newEndX, location2X);\r\n this.zoomAxes(this.xAxes, { start: newStartX, end: newEndX }, undefined);\r\n }\r\n if (mouseWheelBehavior == \"zoomY\" || mouseWheelBehavior == \"zoomXY\") {\r\n var locationY = plotPoint.y / plotContainer.maxHeight;\r\n var location2Y = this.yAxes.getIndex(0).toAxisPosition(locationY);\r\n var newStartY = Math.max(-maxPanOut, rangeY.start - shiftStep * (rangeY.end - rangeY.start) * shift / 100 * (1 - locationY));\r\n newStartY = Math.min(newStartY, location2Y);\r\n var newEndY = Math.min(rangeY.end + shiftStep * shift / 100 * locationY * (rangeY.end - rangeY.start), 1 + maxPanOut);\r\n newEndY = Math.max(newEndY, location2Y);\r\n this.zoomAxes(this.yAxes, { start: newStartY, end: newEndY }, undefined);\r\n }\r\n }\r\n };\r\n Object.defineProperty(XYChart.prototype, \"mouseWheelBehavior\", {\r\n /**\r\n * @return Mouse wheel behavior\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"mouseWheelBehavior\");\r\n },\r\n /**\r\n * Specifies action for when mouse wheel is used when over the chart.\r\n *\r\n * Options: Options: `\"zoomX\"`, `\"zoomY\"`, `\"zoomXY\"`, `\"panX\"`, `\"panY\"`,`\"panXY\"`, `\"none\"` (default).\r\n *\r\n * You can control sensitivity of wheel zooming via `mouseOptions`.\r\n *\r\n * @default \"none\"\r\n * @see {@link https://www.amcharts.com/docs/v4/reference/sprite/#mouseOptions_property} More information about `mouseOptions`\r\n * @param mouse wheel behavior\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"mouseWheelBehavior\", value)) {\r\n if (value != \"none\") {\r\n this._mouseWheelDisposer = this.plotContainer.events.on(\"wheel\", this.handleWheel, this, false);\r\n this._disposers.push(this._mouseWheelDisposer);\r\n }\r\n else {\r\n if (this._mouseWheelDisposer) {\r\n this.plotContainer.wheelable = false;\r\n this.plotContainer.hoverable = false;\r\n this._mouseWheelDisposer.dispose();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart.prototype, \"horizontalMouseWheelBehavior\", {\r\n /**\r\n * @return Horizontal mouse wheel behavior\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"horizontalMouseWheelBehavior\");\r\n },\r\n /**\r\n * Specifies action for when horizontal mouse wheel is used when over the chart.\r\n *\r\n * Options: Options: `\"zoomX\"`, `\"zoomY\"`, `\"zoomXY\"`, `\"panX\"`, `\"panY\"`, `\"panXY\"`, `\"none\"` (default).\r\n *\r\n * @default \"none\"\r\n * @see {@link https://www.amcharts.com/docs/v4/reference/sprite/#mouseOptions_property} More information about `mouseOptions`\r\n * @param mouse wheel behavior\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"horizontalMouseWheelBehavior\", value)) {\r\n if (value != \"none\") {\r\n this._mouseWheelDisposer2 = this.plotContainer.events.on(\"wheel\", this.handleHorizontalWheel, this, false);\r\n this._disposers.push(this._mouseWheelDisposer2);\r\n }\r\n else {\r\n if (this._mouseWheelDisposer2) {\r\n this.plotContainer.wheelable = false;\r\n this.plotContainer.hoverable = false;\r\n this._mouseWheelDisposer2.dispose();\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * This function is called by the [[DataSource]]'s `dateFields` adapater\r\n * so that particular chart types can popuplate this setting with their\r\n * own type-specific data fields so they are parsed properly.\r\n *\r\n * @param fields Array of date fields\r\n * @return Array of date fields populated with chart's date fields\r\n */\r\n XYChart.prototype.dataSourceDateFields = function (fields) {\r\n var _this = this;\r\n // Process parent\r\n fields = _super.prototype.dataSourceDateFields.call(this, fields);\r\n // Check if we have any series with date-fields\r\n $iter.each(this.series.iterator(), function (series) {\r\n fields = _this.populateDataSourceFields(fields, series.dataFields, [\"dateX\", \"dateY\", \"openDateX\", \"openDateY\"]);\r\n });\r\n return fields;\r\n };\r\n /**\r\n * This function is called by the [[DataSource]]'s `numberFields` adapater\r\n * so that particular chart types can popuplate this setting with their\r\n * own type-specific data fields so they are parsed properly.\r\n *\r\n * @param value Array of number fields\r\n * @return Array of number fields populated with chart's number fields\r\n */\r\n XYChart.prototype.dataSourceNumberFields = function (fields) {\r\n var _this = this;\r\n fields = _super.prototype.dataSourceDateFields.call(this, fields);\r\n // Check if we have any series with date-fields\r\n $iter.each(this.series.iterator(), function (series) {\r\n fields = _this.populateDataSourceFields(fields, series.dataFields, [\"valueX\", \"valueY\", \"openValueX\", \"openValueY\"]);\r\n });\r\n return fields;\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n XYChart.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Save axis ranges for later processing\r\n var xAxes = [];\r\n var yAxes = [];\r\n // Set up axes\r\n if ($type.hasValue(config.xAxes) && $type.isArray(config.xAxes)) {\r\n for (var i = 0, len = config.xAxes.length; i < len; i++) {\r\n if (!config.xAxes[i].type) {\r\n throw Error(\"[XYChart error] No type set for xAxes[\" + i + \"].\");\r\n }\r\n else if ($type.hasValue(config.xAxes[i][\"axisRanges\"])) {\r\n // Maybe convert string dates?\r\n for (var x = 0, len_1 = config.xAxes[i][\"axisRanges\"].length; x < len_1; x++) {\r\n var range = config.xAxes[i][\"axisRanges\"][x];\r\n if ($type.hasValue(range.date) && $type.isString(range.date)) {\r\n range.date = this.dateFormatter.parse(range.date);\r\n }\r\n if ($type.hasValue(range.endDate) && $type.isString(range.endDate)) {\r\n range.endDate = this.dateFormatter.parse(range.endDate);\r\n }\r\n }\r\n xAxes.push({\r\n axisRanges: config.xAxes[i][\"axisRanges\"],\r\n index: i\r\n });\r\n delete (config.xAxes[i][\"axisRanges\"]);\r\n }\r\n }\r\n }\r\n if ($type.hasValue(config.yAxes) && $type.isArray(config.yAxes)) {\r\n for (var i = 0, len = config.yAxes.length; i < len; i++) {\r\n if (!config.yAxes[i].type) {\r\n throw Error(\"[XYChart error] No type set for yAxes[\" + i + \"].\");\r\n }\r\n else if ($type.hasValue(config.yAxes[i][\"axisRanges\"])) {\r\n // Maybe convert string dates?\r\n for (var x = 0, len_2 = config.yAxes[i][\"axisRanges\"].length; x < len_2; x++) {\r\n var range = config.yAxes[i][\"axisRanges\"][x];\r\n if ($type.hasValue(range.date) && $type.isString(range.date)) {\r\n range.date = this.dateFormatter.parse(range.date);\r\n }\r\n if ($type.hasValue(range.endDate) && $type.isString(range.endDate)) {\r\n range.endDate = this.dateFormatter.parse(range.endDate);\r\n }\r\n }\r\n yAxes.push({\r\n axisRanges: config.yAxes[i][\"axisRanges\"],\r\n index: i\r\n });\r\n delete (config.yAxes[i][\"axisRanges\"]);\r\n }\r\n }\r\n }\r\n // Set up series\r\n if ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n for (var i = 0, len = config.series.length; i < len; i++) {\r\n config.series[i].type = config.series[i].type || \"LineSeries\";\r\n }\r\n }\r\n // Set up cursor\r\n if ($type.hasValue(config.cursor) && !$type.hasValue(config.cursor.type)) {\r\n config.cursor.type = \"XYCursor\";\r\n }\r\n // Set up scrollbars\r\n if ($type.hasValue(config.scrollbarX) && !$type.hasValue(config.scrollbarX.type)) {\r\n config.scrollbarX.type = \"Scrollbar\";\r\n }\r\n if ($type.hasValue(config.scrollbarY) && !$type.hasValue(config.scrollbarY.type)) {\r\n config.scrollbarY.type = \"Scrollbar\";\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n // Finish up with ranges.\r\n // We need to do this here because series are processed last in JSON\r\n // config. Therefore their respective objects are not yet are available\r\n // when axis (and respectively their ranges) are being processed.\r\n if (yAxes.length) {\r\n for (var i = 0, len = yAxes.length; i < len; i++) {\r\n this.yAxes.getIndex(yAxes[i].index).config = {\r\n axisRanges: yAxes[i].axisRanges\r\n };\r\n }\r\n }\r\n if (xAxes.length) {\r\n for (var i = 0, len = xAxes.length; i < len; i++) {\r\n this.xAxes.getIndex(xAxes[i].index).config = {\r\n axisRanges: xAxes[i].axisRanges\r\n };\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n XYChart.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Must come last\r\n else if (a == \"scrollbarX\") {\r\n return 1;\r\n }\r\n else if (b == \"scrollbarX\") {\r\n return -1;\r\n }\r\n else if (a == \"scrollbarY\") {\r\n return 1;\r\n }\r\n else if (b == \"scrollbarY\") {\r\n return -1;\r\n }\r\n else if (a == \"cursor\") {\r\n return 1;\r\n }\r\n else if (b == \"cursor\") {\r\n return -1;\r\n }\r\n else if (a == \"series\") {\r\n return 1;\r\n }\r\n else if (b == \"series\") {\r\n return -1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n /**\r\n * Creates a new Series of type suitable for this chart.\r\n *\r\n * @return New series\r\n */\r\n XYChart.prototype.createSeries = function () {\r\n return new XYSeries();\r\n };\r\n Object.defineProperty(XYChart.prototype, \"zoomOutButton\", {\r\n /**\r\n * @return Zoom out button\r\n */\r\n get: function () {\r\n return this._zoomOutButton;\r\n },\r\n /**\r\n * A [[Button]] element that is used for zooming out the chart.\r\n *\r\n * This button appears only when chart is zoomed in, and disappears\r\n * autoamatically when it is zoome dout.\r\n *\r\n * @param button Zoom out button\r\n */\r\n set: function (button) {\r\n var _this = this;\r\n this._zoomOutButton = button;\r\n if (button) {\r\n button.events.on(\"hit\", function () {\r\n _this.zoomAxes(_this.xAxes, { start: 0, end: 1 });\r\n _this.zoomAxes(_this.yAxes, { start: 0, end: 1 });\r\n }, undefined, false);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all parameters from another [[XYChart]].\r\n *\r\n * @param source Source XYChart\r\n */\r\n XYChart.prototype.copyFrom = function (source) {\r\n var _this = this;\r\n source.xAxes.each(function (axis) {\r\n var a = _this.xAxes.push(axis.clone());\r\n a.chart = _this;\r\n a.renderer.chart = _this;\r\n });\r\n source.yAxes.each(function (axis) {\r\n var a = _this.yAxes.push(axis.clone());\r\n a.renderer.chart = _this;\r\n a.chart = _this;\r\n });\r\n //this.xAxes.copyFrom(source.xAxes);\r\n //this.yAxes.copyFrom(source.yAxes);\r\n _super.prototype.copyFrom.call(this, source);\r\n //this.zoomOutButton.copyFrom(source.zoomOutButton);\r\n if (source.cursor) {\r\n this.cursor = source.cursor.clone();\r\n }\r\n if (source.scrollbarX) {\r\n this.scrollbarX = source.scrollbarX.clone();\r\n }\r\n if (source.scrollbarY) {\r\n this.scrollbarY = source.scrollbarY.clone();\r\n }\r\n //@todo copy all container properties\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n var scrollbarX = this.scrollbarX;\r\n if (scrollbarX && scrollbarX instanceof XYChartScrollbar) {\r\n scrollbarX.scrollbarChart.disposeData();\r\n }\r\n var scrollbarY = this.scrollbarY;\r\n if (scrollbarY && scrollbarY instanceof XYChartScrollbar) {\r\n scrollbarY.scrollbarChart.disposeData();\r\n }\r\n this.xAxes.each(function (axis) {\r\n if (axis instanceof CategoryAxis) {\r\n axis.disposeData();\r\n }\r\n });\r\n this.yAxes.each(function (axis) {\r\n if (axis instanceof CategoryAxis) {\r\n axis.disposeData();\r\n }\r\n });\r\n };\r\n /**\r\n * Adds one or several (array) of data items to the existing data.\r\n *\r\n * @param rawDataItem One or many raw data item objects\r\n */\r\n XYChart.prototype.addData = function (rawDataItem, removeCount) {\r\n if (this.scrollbarX instanceof XYChartScrollbar) {\r\n this.addScrollbarData(this.scrollbarX, removeCount);\r\n }\r\n if (this.scrollbarY instanceof XYChartScrollbar) {\r\n this.addScrollbarData(this.scrollbarY, removeCount);\r\n }\r\n _super.prototype.addData.call(this, rawDataItem, removeCount);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.addScrollbarData = function (scrollbar, removeCount) {\r\n var chart = scrollbar.scrollbarChart;\r\n chart._parseDataFrom = chart.data.length;\r\n chart.invalidateData();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n XYChart.prototype.removeScrollbarData = function (scrollbar, removeCount) {\r\n var chart = scrollbar.scrollbarChart;\r\n if ($type.isNumber(removeCount)) {\r\n while (removeCount > 0) {\r\n var dataItem = this.dataItems.getIndex(0);\r\n if (dataItem) {\r\n chart.dataItems.remove(dataItem);\r\n }\r\n chart.dataUsers.each(function (dataUser) {\r\n var dataItem = dataUser.dataItems.getIndex(0);\r\n if (dataItem) {\r\n dataUser.dataItems.remove(dataItem);\r\n }\r\n });\r\n chart._parseDataFrom--;\r\n removeCount--;\r\n }\r\n chart.invalidateData();\r\n }\r\n };\r\n /**\r\n * Removes elements from the beginning of data\r\n *\r\n * @param count number of elements to remove\r\n */\r\n XYChart.prototype.removeData = function (count) {\r\n if (this.scrollbarX instanceof XYChartScrollbar) {\r\n this.removeScrollbarData(this.scrollbarX, count);\r\n }\r\n if (this.scrollbarY instanceof XYChartScrollbar) {\r\n this.removeScrollbarData(this.scrollbarY, count);\r\n }\r\n _super.prototype.removeData.call(this, count);\r\n };\r\n /**\r\n * @param value Tap to activate?\r\n */\r\n XYChart.prototype.setTapToActivate = function (value) {\r\n _super.prototype.setTapToActivate.call(this, value);\r\n if (this.cursor) {\r\n this.cursor.interactions.isTouchProtected = value;\r\n this.plotContainer.interactions.isTouchProtected = value;\r\n }\r\n };\r\n XYChart.prototype.handleTapToActivate = function () {\r\n _super.prototype.handleTapToActivate.call(this);\r\n if (this.cursor) {\r\n this.cursor.interactions.isTouchProtected = false;\r\n this.plotContainer.interactions.isTouchProtected = false;\r\n }\r\n };\r\n XYChart.prototype.handleTapToActivateDeactivation = function () {\r\n _super.prototype.handleTapToActivateDeactivation.call(this);\r\n if (this.cursor) {\r\n this.cursor.interactions.isTouchProtected = true;\r\n this.plotContainer.interactions.isTouchProtected = true;\r\n }\r\n };\r\n return XYChart;\r\n}(SerialChart));\r\nexport { XYChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChart\"] = XYChart;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Remove horizontal scrollbar on narrow charts.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.maybeXS,\r\n state: function (target, stateId) {\r\n if (target instanceof XYChart && target.scrollbarX) {\r\n var state = target.states.create(stateId);\r\n var sbstate = target.scrollbarX.states.create(stateId);\r\n sbstate.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove vertical scrollbar on short charts.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.maybeXS,\r\n state: function (target, stateId) {\r\n if (target instanceof XYChart && target.scrollbarY) {\r\n var state = target.states.create(stateId);\r\n var sbstate = target.scrollbarY.states.create(stateId);\r\n sbstate.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=XYChart.js.map","/**\r\n * Line series segment module.\r\n * @todo Add description about what this is\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents a line series segment.\r\n *\r\n * A line segment can be used to apply different properties to a part of the\r\n * line series, between two data points.\r\n *\r\n * @see {@link ILineSeriesSegmentEvents} for a list of available events\r\n * @see {@link ILineSeriesSegmentAdapters} for a list of available Adapters\r\n * @todo Example\r\n */\r\nvar LineSeriesSegment = /** @class */ (function (_super) {\r\n __extends(LineSeriesSegment, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LineSeriesSegment() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"LineSeriesSegment\";\r\n // Set defaults\r\n _this.isMeasured = false;\r\n _this.interactionsEnabled = false;\r\n _this.layout = \"none\";\r\n // Create fill element\r\n var fillSprite = _this.createChild(Sprite);\r\n _this.fillSprite = fillSprite;\r\n fillSprite.shouldClone = false;\r\n fillSprite.setElement(_this.paper.add(\"path\"));\r\n fillSprite.isMeasured = false;\r\n _this._disposers.push(fillSprite);\r\n // Create line element\r\n var strokeSprite = _this.createChild(Sprite);\r\n _this.strokeSprite = strokeSprite;\r\n strokeSprite.shouldClone = false;\r\n strokeSprite.fill = color();\r\n strokeSprite.setElement(_this.paper.add(\"path\"));\r\n strokeSprite.isMeasured = false;\r\n _this._disposers.push(strokeSprite);\r\n return _this;\r\n }\r\n /**\r\n * Draws the series segment.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points Points to connect\r\n * @param closePoints ?\r\n * @param smoothnessX Horizontal bezier setting (?)\r\n * @param smoothnessY Vertical bezier setting (?)\r\n */\r\n LineSeriesSegment.prototype.drawSegment = function (points, closePoints, smoothnessX, smoothnessY) {\r\n if (!this.disabled) {\r\n if (points.length > 0 && closePoints.length > 0 && $type.isNumber(points[0].x) && $type.isNumber(points[0].y)) {\r\n // first moveTo helps to avoid Chrome straight line in the mask bug.\r\n var path = $path.moveTo({ x: points[0].x - 0.2, y: points[0].y - 0.2 }) + $path.moveTo(points[0]);\r\n var series = this.series;\r\n if (series.smoothing == \"bezier\") {\r\n path += new $smoothing.Tension(smoothnessX, smoothnessY).smooth(points);\r\n }\r\n else if (series.smoothing == \"monotoneX\") {\r\n path += new $smoothing.MonotoneX({ closed: false }).smooth(points);\r\n }\r\n else if (series.smoothing == \"monotoneY\") {\r\n path += new $smoothing.MonotoneY({ closed: false }).smooth(points);\r\n }\r\n if (this.strokeOpacity == 0 || this.strokeSprite.strokeOpacity == 0) {\r\n // like this and not if != 0, otherwise ranges stroke won't be drawn.\r\n }\r\n else {\r\n this.strokeSprite.path = path;\r\n }\r\n if (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n if ($type.isNumber(closePoints[0].x) && $type.isNumber(closePoints[0].y)) {\r\n path += $path.lineTo(closePoints[0]);\r\n if (series.smoothing == \"bezier\") {\r\n path += new $smoothing.Tension(smoothnessX, smoothnessY).smooth(closePoints);\r\n }\r\n else if (series.smoothing == \"monotoneX\") {\r\n path += new $smoothing.MonotoneX({ closed: false }).smooth(closePoints);\r\n }\r\n else if (series.smoothing == \"monotoneY\") {\r\n path += new $smoothing.MonotoneY({ closed: false }).smooth(closePoints);\r\n }\r\n path += $path.lineTo(points[0]);\r\n path += $path.closePath();\r\n this.fillSprite.path = path;\r\n }\r\n }\r\n }\r\n else {\r\n this.fillSprite.path = \"\";\r\n this.strokeSprite.path = \"\";\r\n }\r\n }\r\n };\r\n /**\r\n * Copies properties from a [[Sprite]] to both line and fill elements.\r\n *\r\n * @param source Source [[Sprite]] to copy properties from\r\n */\r\n LineSeriesSegment.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n var lineElement = this.strokeSprite;\r\n $object.copyProperties(source, lineElement.properties, visualProperties);\r\n lineElement.events.copyFrom(source.strokeSprite.events);\r\n lineElement.fillOpacity = 0;\r\n var fillElement = this.fillSprite;\r\n $object.copyProperties(source, fillElement.properties, visualProperties);\r\n fillElement.events.copyFrom(source.fillSprite.events);\r\n fillElement.strokeOpacity = 0;\r\n };\r\n return LineSeriesSegment;\r\n}(Container));\r\nexport { LineSeriesSegment };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LineSeriesSegment\"] = LineSeriesSegment;\r\n//# sourceMappingURL=LineSeriesSegment.js.map","/**\r\n * DurationAxis module\r\n */\r\nimport { __extends, __values } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxis, ValueAxisDataItem } from \"./ValueAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines data item for [[DurationAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar DurationAxisDataItem = /** @class */ (function (_super) {\r\n __extends(DurationAxisDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DurationAxisDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"DurationAxisDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return DurationAxisDataItem;\r\n}(ValueAxisDataItem));\r\nexport { DurationAxisDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Used to create an axis that shows time durations.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.DurationAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Time\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.DurationAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Time\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DurationAxis\",\r\n * \"title\": {\r\n * \"text\": \"Time\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} for mor information about duration formatters.\r\n * @see {@link IDurationAxisEvents} for a list of available Events\r\n * @see {@link IDurationAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar DurationAxis = /** @class */ (function (_super) {\r\n __extends(DurationAxis, _super);\r\n /**\r\n * Constructor\r\n */\r\n function DurationAxis() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A base unit (granularity) of data.\r\n *\r\n * Used to indicate what are the base units of your data.\r\n */\r\n _this._baseUnit = \"second\";\r\n _this.className = \"DurationAxis\";\r\n _this.setPropertyValue(\"maxZoomFactor\", 1000000);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Formats the value according to axis' own [[DurationFormatter]].\r\n *\r\n * @param value Source value\r\n * @return Formatted value\r\n */\r\n DurationAxis.prototype.formatLabel = function (value, format) {\r\n return this.durationFormatter.format(value, format || this.axisDurationFormat);\r\n };\r\n /**\r\n * Adjusts actual min and max scale values so that the axis starts and ends\r\n * at \"nice\" values, unless `strictMinMax` is set.\r\n *\r\n * The `difference` can be something else than `max - min`, because of the\r\n * axis breaks.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param min [description]\r\n * @param max [description]\r\n * @param difference [description]\r\n * @param gridCount [description]\r\n * @param strictMode [description]\r\n * @return [description]\r\n */\r\n DurationAxis.prototype.adjustMinMax = function (min, max, difference, gridCount, strictMode) {\r\n var e_1, _a;\r\n var minMaxStep;\r\n var timeUnit = this.baseUnit;\r\n // we don't allow to go to smaller units, setting so to avoid invalidation\r\n this.setPropertyValue(\"maxPrecision\", 0);\r\n if (timeUnit == \"millisecond\" || timeUnit == \"second\" || timeUnit == \"minute\" || timeUnit == \"hour\") {\r\n // will fail if 0\r\n if (gridCount <= 1) {\r\n gridCount = 1;\r\n }\r\n gridCount = Math.round(gridCount);\r\n var initialMin = min;\r\n var initialMax = max;\r\n // in case min and max is the same, use max\r\n if (difference === 0) {\r\n difference = Math.abs(max);\r\n }\r\n var step = difference / gridCount;\r\n var divisors = [60, 30, 20, 15, 10, 2, 1];\r\n var realDivisor = 1;\r\n if (timeUnit == \"hour\") {\r\n divisors = [24, 12, 6, 4, 2, 1];\r\n }\r\n try {\r\n for (var divisors_1 = __values(divisors), divisors_1_1 = divisors_1.next(); !divisors_1_1.done; divisors_1_1 = divisors_1.next()) {\r\n var divisor = divisors_1_1.value;\r\n if (difference / divisor > gridCount) {\r\n realDivisor = divisor;\r\n break;\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (divisors_1_1 && !divisors_1_1.done && (_a = divisors_1.return)) _a.call(divisors_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n var count = Math.ceil(((max - min) / realDivisor) / gridCount);\r\n var exponent = Math.log(Math.abs(count)) * Math.LOG10E;\r\n var power = Math.pow(10, Math.floor(exponent)) / 10;\r\n var reducedCount = count / power;\r\n // find closest to divisor\r\n var closest = $math.closest(divisors, reducedCount);\r\n count = closest * power;\r\n step = realDivisor * count;\r\n // TODO can this be removed ?\r\n this.durationFormatter.getValueUnit(step, this.baseUnit);\r\n min = Math.floor(min / step) * step;\r\n max = Math.ceil(max / step) * step;\r\n if (strictMode) {\r\n min -= step;\r\n if (min < 0 && initialMin >= 0) {\r\n min = 0;\r\n }\r\n max += step;\r\n if (max > 0 && initialMax <= 0) {\r\n max = 0;\r\n }\r\n }\r\n minMaxStep = { min: min, max: max, step: step };\r\n }\r\n else {\r\n minMaxStep = _super.prototype.adjustMinMax.call(this, min, max, difference, gridCount, strictMode);\r\n }\r\n // choose duration formatter based on step\r\n this.axisDurationFormat = this.durationFormatter.getFormat(minMaxStep.step, minMaxStep.max, this.baseUnit);\r\n return minMaxStep;\r\n };\r\n Object.defineProperty(DurationAxis.prototype, \"tooltipDurationFormat\", {\r\n /**\r\n * @return Duration format for axis labels\r\n */\r\n get: function () {\r\n return this._tooltipDurationFormat;\r\n },\r\n /**\r\n * A special duration format to apply axis tooltips.\r\n *\r\n * Will use same format as for labels, if not set.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} for mor information.\r\n * @param value Duration format for axis labels\r\n */\r\n set: function (value) {\r\n this._tooltipDurationFormat = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns text to show in a axis tooltip, based on specific position within\r\n * axis.\r\n *\r\n * The label will be formatted as per [[NumberFormatter]] set for the whole\r\n * chart, or explicitly for this Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position (px)\r\n * @return Label (numeric value)\r\n */\r\n DurationAxis.prototype.getTooltipText = function (position) {\r\n var value = $math.round(this.positionToValue(position), this._stepDecimalPlaces);\r\n var valueStr = this.formatLabel(value, this.tooltipDurationFormat);\r\n if (!this._adapterO) {\r\n return valueStr;\r\n }\r\n else {\r\n return this._adapterO.apply(\"getTooltipText\", valueStr);\r\n }\r\n };\r\n Object.defineProperty(DurationAxis.prototype, \"baseUnit\", {\r\n /**\r\n * @return Base unit\r\n */\r\n get: function () {\r\n return this._baseUnit;\r\n },\r\n /**\r\n * A base unit (granularity) of data.\r\n *\r\n * Used to indicate what are the base units of your data.\r\n *\r\n * Available options: \"millisecond\", \"second\" (default), \"minute\", \"hour\",\r\n * \"day\", \"week\", \"month\", \"year\".\r\n *\r\n * @default \"second\"\r\n * @param timeUnit\r\n */\r\n set: function (timeUnit) {\r\n if (this._baseUnit != timeUnit) {\r\n this._baseUnit = timeUnit;\r\n this.durationFormatter.baseUnit = timeUnit;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all properties and related data from a different instance of Axis.\r\n *\r\n * @param source Source Axis\r\n */\r\n DurationAxis.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.baseUnit = source.baseUnit;\r\n };\r\n return DurationAxis;\r\n}(ValueAxis));\r\nexport { DurationAxis };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DurationAxis\"] = DurationAxis;\r\nregistry.registeredClasses[\"DurationAxisDataItem\"] = DurationAxisDataItem;\r\n//# sourceMappingURL=DurationAxis.js.map","/**\r\n * Line series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYSeries, XYSeriesDataItem } from \"./XYSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { DurationAxis } from \"../axes/DurationAxis\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Rectangle } from \"../../core/elements/Rectangle\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[LineSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar LineSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(LineSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LineSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LineSeriesDataItem\";\r\n return _this;\r\n }\r\n return LineSeriesDataItem;\r\n}(XYSeriesDataItem));\r\nexport { LineSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a line graph.\r\n *\r\n * @see {@link ILineSeriesEvents} for a list of available Events\r\n * @see {@link ILineSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar LineSeries = /** @class */ (function (_super) {\r\n __extends(LineSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LineSeries() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Minimum distance in pixels between two adjacent points.\r\n *\r\n * If the distance is less than this setting, a point is skipped.\r\n *\r\n * This allows acceptable performance with huge amounts of data points.\r\n *\r\n * @default 0.5\r\n */\r\n _this.minDistance = 0.5;\r\n _this.segments = new ListTemplate(_this.createSegment());\r\n _this.segments.template.applyOnClones = true;\r\n _this._disposers.push(new ListDisposer(_this.segments));\r\n _this._disposers.push(_this.segments.template);\r\n _this._segmentsIterator = new $iter.ListIterator(_this.segments, function () { return _this.segments.create(); });\r\n _this._segmentsIterator.createNewItems = true;\r\n _this.className = \"LineSeries\";\r\n _this.strokeOpacity = 1;\r\n _this.fillOpacity = 0;\r\n _this.connect = true;\r\n _this.tensionX = 1;\r\n _this.tensionY = 1;\r\n _this.autoGapCount = 1.1;\r\n _this.smoothing = \"bezier\";\r\n _this.segmentsContainer = _this.mainContainer.createChild(Container);\r\n _this.segmentsContainer.isMeasured = false;\r\n // line series might have multiple segments and it has a separate sprite for fill and stroke for each segment. So we need to observe all the changes on series and set them on the segments\r\n // todo: we need list here, otherwise everything will be redrawn event on change of properties like tooltipX or similar.\r\n // this.addEventListener(SpriteEvent.PROPERTY_CHANGED, this.validateDataElements, false, this);\r\n _this.bulletsContainer.toFront();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n LineSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Line Series\");\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n LineSeries.prototype.createSegment = function () {\r\n return new LineSeriesSegment();\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n LineSeries.prototype.createDataItem = function () {\r\n return new LineSeriesDataItem();\r\n };\r\n /**\r\n * Inits data item's working values.\r\n *\r\n * @param dataItem Data item\r\n * @param index Data item's index\r\n */\r\n LineSeries.prototype.setInitialWorkingValues = function (dataItem) {\r\n // this makes data items animate when added\r\n var yAxis = this._yAxis.get();\r\n var xAxis = this._xAxis.get();\r\n if (this.appeared && this.visible) {\r\n var previousDataItem = this.dataItems.getIndex(dataItem.index - 1);\r\n dataItem.component = this; // as these values are set before, we don't know component yet\r\n if (this.baseAxis == xAxis) {\r\n if (yAxis instanceof ValueAxis) {\r\n var initialY = yAxis.minZoomed;\r\n if (previousDataItem) {\r\n initialY = previousDataItem.values[\"valueY\"].workingValue;\r\n }\r\n // this makes line animate from previous point to newly added point\r\n dataItem.setWorkingValue(\"valueY\", initialY, 0);\r\n dataItem.setWorkingValue(\"valueY\", dataItem.values.valueY.value);\r\n if (xAxis instanceof DateAxis) {\r\n dataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX - 1, 0); // instantly move it to previous\r\n dataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX); // animate to it's location\r\n }\r\n else if (xAxis instanceof DurationAxis) {\r\n if (previousDataItem) {\r\n var value = dataItem.valueX;\r\n dataItem.setWorkingValue(\"valueX\", previousDataItem.valueX, 0); // instantly move it to previous\r\n dataItem.setWorkingValue(\"valueX\", value); // animate to new value\r\n }\r\n }\r\n }\r\n }\r\n if (this.baseAxis == yAxis) {\r\n if (xAxis instanceof ValueAxis) {\r\n var initialX = xAxis.minZoomed;\r\n if (previousDataItem) {\r\n initialX = previousDataItem.values[\"valueX\"].workingValue;\r\n }\r\n dataItem.setWorkingValue(\"valueX\", initialX, 0);\r\n dataItem.setWorkingValue(\"valueX\", dataItem.values.valueX.value);\r\n if (yAxis instanceof DateAxis) {\r\n dataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateX - 1, 0); // instantly move it to previous\r\n dataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateY); // animate to it's location\r\n }\r\n else if (yAxis instanceof DurationAxis) {\r\n if (previousDataItem) {\r\n var value = dataItem.valueY;\r\n dataItem.setWorkingValue(\"valueY\", previousDataItem.valueY, 0); // instantly move it to previous\r\n dataItem.setWorkingValue(\"valueY\", value); // animate to new value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (this.baseAxis == xAxis) {\r\n if (yAxis instanceof ValueAxis) {\r\n if (xAxis instanceof DateAxis) {\r\n dataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX);\r\n }\r\n if (xAxis instanceof CategoryAxis) {\r\n dataItem.setWorkingLocation(\"categoryX\", dataItem.locations.categoryX);\r\n }\r\n }\r\n }\r\n if (this.baseAxis == yAxis) {\r\n if (xAxis instanceof ValueAxis) {\r\n if (yAxis instanceof DateAxis) {\r\n dataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateY);\r\n }\r\n if (yAxis instanceof CategoryAxis) {\r\n dataItem.setWorkingLocation(\"categoryY\", dataItem.locations.categoryY);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Updates corresponding legend data item with current values.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n LineSeries.prototype.updateLegendValue = function (dataItem, notRange) {\r\n _super.prototype.updateLegendValue.call(this, dataItem, notRange);\r\n //This is hack to save some methos, used to set tooltip color source only\r\n if (dataItem && dataItem.segment) {\r\n this.tooltipColorSource = dataItem.segment;\r\n }\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n LineSeries.prototype.validate = function () {\r\n var _this = this;\r\n _super.prototype.validate.call(this);\r\n if (this.xAxis && this.yAxis) {\r\n this._segmentsIterator.reset();\r\n this.openSegmentWrapper(this._adjustedStartIndex);\r\n $iter.each(this.axisRanges.iterator(), function (range) {\r\n _this.openSegmentWrapper(_this._adjustedStartIndex, range);\r\n });\r\n $iter.each(this._segmentsIterator.iterator(), function (segment) {\r\n segment.__disabled = true;\r\n });\r\n }\r\n };\r\n /**\r\n * [sliceData description]\r\n *\r\n * @todo Description\r\n */\r\n LineSeries.prototype.sliceData = function () {\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n // we need extra one item to both sides with values for line series, otherwise the line will not continue out of bounds of the chart while scrolling\r\n // find first to the left\r\n // TODO use iterator instead\r\n for (var i = this.startIndex - 1; i >= 0; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem && dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n startIndex = i;\r\n break;\r\n }\r\n }\r\n this._adjustedStartIndex = this.findAdjustedIndex(startIndex, [\"stroke\", \"strokeWidth\", \"strokeDasharray\", \"strokeOpacity\", \"fill\", \"fillOpacity\", \"opacity\"]);\r\n // find first to the right\r\n // TODO use iterator instead\r\n for (var i = this.endIndex, len = this.dataItems.length; i < len; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem && dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n endIndex = i + 1;\r\n break;\r\n }\r\n }\r\n this._workingStartIndex = startIndex;\r\n this._workingEndIndex = endIndex;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n LineSeries.prototype.findAdjustedIndex = function (adjustedIndex, properties) {\r\n var _this = this;\r\n var propertyFields = this.propertyFields;\r\n var startIndex = adjustedIndex;\r\n $array.each(properties, function (property) {\r\n if ($type.hasValue(propertyFields[property])) {\r\n for (var i = startIndex; i >= 0; i--) {\r\n var dataItem = _this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n if ($type.hasValue(dataItem.properties[property])) {\r\n if (adjustedIndex > i) {\r\n adjustedIndex = i;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return adjustedIndex;\r\n };\r\n /**\r\n * Wraps openSegment call with iterative solution to prevent stack overflow\r\n *\r\n * @param openIndex Index\r\n * @param axisRange Range\r\n */\r\n LineSeries.prototype.openSegmentWrapper = function (openIndex, axisRange) {\r\n var params = {\r\n \"index\": openIndex,\r\n \"axisRange\": axisRange\r\n };\r\n do {\r\n params = this.openSegment(params.index, params.axisRange);\r\n } while (params);\r\n };\r\n LineSeries.prototype.getSegment = function () {\r\n var segment = this._segmentsIterator.getFirst();\r\n segment.series = this;\r\n if (segment.isDisposed()) {\r\n this.segments.removeValue(segment);\r\n return this.getSegment();\r\n }\r\n return segment;\r\n };\r\n /**\r\n * [openSegment description]\r\n *\r\n * @todo Description\r\n * @param openIndex [description]\r\n * @param axisRange [description]\r\n */\r\n LineSeries.prototype.openSegment = function (openIndex, axisRange) {\r\n var addToClose = false;\r\n var points = [];\r\n openIndex = Math.min(openIndex, this.dataItems.length);\r\n var endIndex = Math.min(this._workingEndIndex, this.dataItems.length);\r\n this._workingEndIndex = Math.min(this._workingEndIndex, this.dataItems.length);\r\n var closeIndex;\r\n var propertiesChanged = false;\r\n var segment = this.getSegment();\r\n segment.strokeDasharray = undefined;\r\n segment.__disabled = false;\r\n if (axisRange) {\r\n segment.parent = axisRange.contents;\r\n $object.copyProperties(axisRange.contents, segment, visualProperties);\r\n }\r\n else {\r\n $object.copyProperties(this, segment, visualProperties);\r\n segment.filters.clear();\r\n segment.parent = this.segmentsContainer;\r\n }\r\n this.group.node.removeAttribute(\"fill\");\r\n var connect = this.connect;\r\n var valuesFound = false; // some flag to avoid multiple closes if no values found\r\n for (var i = openIndex; i < endIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n dataItem.segment = segment;\r\n if (dataItem.hasProperties) {\r\n // if this is first item of segment\r\n if (i == openIndex) {\r\n this.updateSegmentProperties(dataItem.properties, segment);\r\n }\r\n else {\r\n // this time we only need to know if properties changed, so we don't pass segment\r\n propertiesChanged = this.updateSegmentProperties(dataItem.properties, segment, true);\r\n }\r\n }\r\n if (dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n this.addPoints(points, dataItem, this.xField, this.yField);\r\n valuesFound = true;\r\n }\r\n else {\r\n // if no values in first data item, go to next\r\n if (i == openIndex) {\r\n continue;\r\n }\r\n else {\r\n // stop cycle\r\n if (!connect && valuesFound) {\r\n closeIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n closeIndex = i;\r\n if (this.baseAxis instanceof DateAxis) {\r\n var next = this.dataItems.getIndex(i + 1);\r\n if (next && this.baseAxis.makeGap(next, dataItem)) {\r\n addToClose = true;\r\n break;\r\n }\r\n }\r\n if (propertiesChanged) {\r\n break;\r\n }\r\n }\r\n return this.closeSegment(segment, points, openIndex, closeIndex, axisRange, addToClose);\r\n };\r\n /**\r\n * [addPoints description]\r\n *\r\n * @todo Description\r\n * @param points [description]\r\n * @param dataItem [description]\r\n * @param xField [description]\r\n * @param yField [description]\r\n * @param backwards [description]\r\n */\r\n LineSeries.prototype.addPoints = function (points, dataItem, xField, yField, backwards) {\r\n var point = this.getPoint(dataItem, xField, yField, dataItem.workingLocations[xField], dataItem.workingLocations[yField]);\r\n if (!backwards) {\r\n dataItem.point = point;\r\n }\r\n points.push(point);\r\n };\r\n /**\r\n * [closeSegment description]\r\n *\r\n * @todo Description\r\n * @param segment [description]\r\n * @param points [description]\r\n * @param openIndex [description]\r\n * @param closeIndex [description]\r\n * @param axisRange [description]\r\n */\r\n LineSeries.prototype.closeSegment = function (segment, points, openIndex, closeIndex, axisRange, add) {\r\n var closePoints = [];\r\n if (this.dataFields[this._xOpenField] ||\r\n this.dataFields[this._yOpenField] ||\r\n this.stacked) {\r\n for (var i = closeIndex; i >= openIndex; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) { // not sure, this means that open point will only be added if value is also set for this point, but maybe it's ok.\r\n this.addPoints(closePoints, dataItem, this.xOpenField, this.yOpenField, true);\r\n }\r\n }\r\n }\r\n else {\r\n var baseAxis = this.baseAxis;\r\n var count = points.length;\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (count > 0) {\r\n if (baseAxis == xAxis) {\r\n closePoints.push({ x: points[count - 1].x, y: yAxis.basePoint.y }); // last x\r\n closePoints.push({ x: points[0].x, y: yAxis.basePoint.y }); // first x\r\n }\r\n else {\r\n closePoints.push({ x: xAxis.basePoint.x, y: points[count - 1].y }); // last y\r\n closePoints.push({ x: xAxis.basePoint.x, y: points[0].y }); // first y\r\n }\r\n }\r\n }\r\n this.drawSegment(segment, points, closePoints);\r\n if (add) {\r\n closeIndex++;\r\n }\r\n if (closeIndex < this._workingEndIndex - 1) {\r\n return { \"index\": closeIndex, \"axisRange\": axisRange };\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Draws the line segment.\r\n *\r\n * @param segment Segment\r\n * @param points Segment points\r\n * @param closePoints Segment close points\r\n */\r\n LineSeries.prototype.drawSegment = function (segment, points, closePoints) {\r\n segment.drawSegment(points, closePoints, this.tensionX, this.tensionY);\r\n };\r\n /**\r\n * Segement will get its colors from `this.dataItem`, as thats how\r\n * `getPropertyValue()` method works.\r\n *\r\n * We pass `lineSeriesDataItem.properties` as item here each time when a flag\r\n * `hasProperties` is set to `true` on data item (this means it can contain\r\n * some properties set).\r\n *\r\n * @param itemProperties Item properties\r\n * @param segment Segment\r\n * @return Properties changed?\r\n */\r\n LineSeries.prototype.updateSegmentProperties = function (itemProperties, segment, checkOnly) {\r\n var changed = false;\r\n $object.each(itemProperties, function (propertyName, value) {\r\n // some value must be defined\r\n if ($type.hasValue(value)) {\r\n var currentValue = segment[propertyName];\r\n var currentValueStr = void 0;\r\n // current value can be Color, number, anything. So we check if it has toString, otherwise just do String().\r\n // toString() will return hex if it's color. The only problem is that it will return lowercased hex and if we have uppercase in data, it will think that it changed\r\n if (currentValue) {\r\n if (currentValue.toString) {\r\n currentValueStr = currentValue.toString();\r\n }\r\n else {\r\n currentValueStr = currentValue; // not doing String(currentValue) as this will make all Objects the same\r\n }\r\n }\r\n var valueStr = void 0;\r\n if (value) {\r\n if (value.toString) {\r\n valueStr = value.toString();\r\n }\r\n else {\r\n valueStr = value; // not doing String(currentValue) as this will make all Objects the same\r\n }\r\n }\r\n if (currentValue == value || (currentValueStr != undefined && valueStr != undefined && currentValueStr == valueStr)) {\r\n // void\r\n }\r\n else {\r\n if (!checkOnly) {\r\n segment[propertyName] = value;\r\n }\r\n changed = true;\r\n }\r\n }\r\n });\r\n return changed;\r\n };\r\n Object.defineProperty(LineSeries.prototype, \"connect\", {\r\n /**\r\n * @return Connect?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"connect\");\r\n },\r\n /**\r\n * Connect the lines over empty data points?\r\n *\r\n * If set to `true` the line will connect two adjacent data points by a\r\n * straight line. Even if there are data points with missing values\r\n * in-between.\r\n *\r\n * If you set this to `false`, the line will break when there are missing\r\n * values.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/#Line_series_with_gaps} for more information about this feature\r\n * @default true\r\n * @param value Connect?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"connect\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineSeries.prototype, \"tensionX\", {\r\n /**\r\n * @return Horizontal tension (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tensionX\");\r\n },\r\n /**\r\n * Horizontal tension setting of the line (0-1).\r\n *\r\n * Can be used to create smoothed lines. It works like this:\r\n *\r\n * Accepted values are in the range between 0 and 1. The biggest value (1)\r\n * will mean that the \"tension\" is very high, so the line is maximally\r\n * attracted to the points it connects, hence the straight line.\r\n *\r\n * Using smaller numbers will \"relax\" the tension, creating some curving.\r\n *\r\n * The smaller the tension setting, the more relaxed the line and the more\r\n * wide the curve.\r\n *\r\n * This setting is for horizontal tension, meaning the curve will bend in\r\n * such way that it never goes below or above connecting points. To enable\r\n * vertical bending as well, use `tensionY`.\r\n *\r\n * IMPORTANT: line smoothing works best when data items are placed at regular\r\n * intervals. For setups where data items are spaced erratically, enabling\r\n * smoothing might result in awkwardly looking lines.\r\n *\r\n * @default 1\r\n * @param value Horizontal tension (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tensionX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineSeries.prototype, \"tensionY\", {\r\n /**\r\n * @return Vertical tension (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tensionY\");\r\n },\r\n /**\r\n * Can be used to create smoothed lines. It works like this:\r\n *\r\n * Accepted values are in the range between 0 and 1. The biggest value (1)\r\n * will mean that the \"tension\" is very high, so the line is maximally\r\n * attracted to the points it connects, hence the straight line.\r\n *\r\n * Using smaller numbers will \"relax\" the tension, creating some curving.\r\n *\r\n * The smaller the tension setting, the more relaxed the line and the more\r\n * wide the curve.\r\n *\r\n * This setting is for vertical tension, meaning the curve might bend in\r\n * such way that it will go below or above connected points.\r\n *\r\n * Combine this setting with `tensionX` to create beautifully looking\r\n * smoothed line series.\r\n *\r\n * @default 1\r\n * @param value Vertical tension (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tensionY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n LineSeries.prototype.createLegendMarker = function (marker) {\r\n var _this = this;\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.disposeChildren();\r\n var line = marker.createChild(Line);\r\n line.shouldClone = false;\r\n //line.copyFrom(<any>this); coppies events which is not good\r\n $object.copyProperties(this, line, visualProperties);\r\n line.x2 = w;\r\n line.y = h / 2;\r\n line.y2 = 0.00001;\r\n line.visible = true;\r\n if (this.fillOpacity > 0) {\r\n var fill = marker.createChild(Rectangle);\r\n //fill.copyFrom(<any>this); coppies events which is not good\r\n $object.copyProperties(this, fill, visualProperties);\r\n fill.width = w;\r\n fill.height = h;\r\n fill.y = 0;\r\n fill.strokeOpacity = 0;\r\n fill.visible = true;\r\n line.y = 0;\r\n }\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = this.stroke;\r\n legendDataItem.colorOrig = this.fill;\r\n $iter.eachContinue(this.bullets.iterator(), function (bullet) {\r\n if ((bullet instanceof Bullet) && !bullet.copyToLegendMarker) {\r\n return false;\r\n }\r\n var hasLabels = false;\r\n if (bullet instanceof Container) {\r\n // do not copy bullets with labels\r\n $iter.each(bullet.children.iterator(), function (child) {\r\n if (child instanceof Label) {\r\n hasLabels = true;\r\n return true;\r\n }\r\n });\r\n }\r\n if (!hasLabels) {\r\n var clone = bullet.clone();\r\n clone.parent = marker;\r\n clone.isMeasured = true;\r\n clone.tooltipText = undefined;\r\n clone.x = w / 2;\r\n if (_this.fillOpacity > 0) {\r\n clone.y = 0;\r\n }\r\n else {\r\n clone.y = h / 2;\r\n }\r\n clone.visible = true;\r\n // otherwise will not transit to color after hiding\r\n if (!$type.hasValue(clone.fill)) {\r\n clone.fill = _this.fill;\r\n }\r\n if (!$type.hasValue(clone.stroke)) {\r\n clone.stroke = _this.stroke;\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n /**\r\n * @ignore\r\n */\r\n LineSeries.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n this.segments.clear();\r\n };\r\n Object.defineProperty(LineSeries.prototype, \"autoGapCount\", {\r\n /**\r\n * @return Gap count\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"autoGapCount\");\r\n },\r\n /**\r\n * If `connect = false` and distance between two data points is bigger\r\n * than `baseInterval * autoGapCount`, a line will break automatically.\r\n *\r\n * @since 4.2.4\r\n * @param value Gap count\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"autoGapCount\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineSeries.prototype, \"smoothing\", {\r\n /**\r\n * @return Smoothing algorithm\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"smoothing\");\r\n },\r\n /**\r\n * Smoothing algorithm to be used for lines.\r\n *\r\n * Available options: `\"bezier\"` (default), `\"monotoneX\"`, and `\"monotoneY\"`.\r\n *\r\n * Monotone options are best suited for data with irregular intervals. Use `\"monotoneX\"` for\r\n * horizontal lines, and `\"monotoneY\"` vertical ones.\r\n *\r\n * NOTE: Both \"monotone\" algorithms will ignore `tensionX` and `tensionY` settings.\r\n *\r\n * @since 4.10.0\r\n * @param value Smoothing algorithm\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"smoothing\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LineSeries;\r\n}(XYSeries));\r\nexport { LineSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LineSeries\"] = LineSeries;\r\nregistry.registeredClasses[\"LineSeriesDataItem\"] = LineSeriesDataItem;\r\n//# sourceMappingURL=LineSeries.js.map","/**\r\n * Radar series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeries, LineSeriesDataItem } from \"./LineSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n//import { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\n//import { Sprite } from \"../../core/Sprite\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[RadarSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar RadarSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(RadarSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarSeriesDataItem\";\r\n _this.setLocation(\"dateX\", 0, 0);\r\n _this.setLocation(\"dateY\", 0, 0);\r\n _this.setLocation(\"categoryX\", 0, 0);\r\n _this.setLocation(\"categoryY\", 0, 0);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return RadarSeriesDataItem;\r\n}(LineSeriesDataItem));\r\nexport { RadarSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a radar graph.\r\n *\r\n * @see {@link IRadarSeriesEvents} for a list of available Events\r\n * @see {@link IRadarSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar RadarSeries = /** @class */ (function (_super) {\r\n __extends(RadarSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarSeries\";\r\n _this.connectEnds = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarSeries.prototype.validate = function () {\r\n // so that radius would be updated\r\n if (this.chart.invalid) {\r\n this.chart.validate();\r\n }\r\n _super.prototype.validate.call(this);\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n RadarSeries.prototype.createDataItem = function () {\r\n return new RadarSeriesDataItem();\r\n };\r\n /**\r\n * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n *\r\n * @param dataItem Data item\r\n * @param xKey Name of X data field\r\n * @param yKey Name of Y data field\r\n * @param locationX X location\r\n * @param locationY Y location\r\n * @param stackKeyX ?\r\n * @param stackKeyY ?\r\n * @returns Coordinates\r\n */\r\n RadarSeries.prototype.getPoint = function (dataItem, xKey, yKey, locationX, locationY, stackKeyX, stackKeyY) {\r\n if (!stackKeyX) {\r\n stackKeyX = \"valueX\";\r\n }\r\n if (!stackKeyY) {\r\n stackKeyY = \"valueY\";\r\n }\r\n var x = this.yAxis.getX(dataItem, yKey, locationY, stackKeyY);\r\n var y = this.yAxis.getY(dataItem, yKey, locationY, stackKeyY);\r\n var radius = $math.getDistance({ x: x, y: y });\r\n // hack to be able to determine angle later\r\n if (radius == 0) {\r\n radius = 0.00001;\r\n }\r\n var angle = this.xAxis.getAngle(dataItem, xKey, locationX, stackKeyX);\r\n var startAngle = this.chart.startAngle;\r\n var endAngle = this.chart.endAngle;\r\n //\t\tangle = $math.fitToRange(angle, startAngle, endAngle);\r\n if (angle < startAngle || angle > endAngle) {\r\n return undefined;\r\n }\r\n else {\r\n return { x: radius * $math.cos(angle), y: radius * $math.sin(angle) };\r\n }\r\n };\r\n /**\r\n * [addPoints description]\r\n *\r\n * @todo Description\r\n * @param points [description]\r\n * @param dataItem [description]\r\n * @param xField [description]\r\n * @param yField [description]\r\n * @param backwards [description]\r\n */\r\n RadarSeries.prototype.addPoints = function (points, dataItem, xField, yField, backwards) {\r\n var point = this.getPoint(dataItem, xField, yField, dataItem.locations[xField], dataItem.locations[yField]);\r\n if (point) {\r\n points.push(point);\r\n }\r\n };\r\n /**\r\n * Returns an SVG path to be used as a mask for the series.\r\n *\r\n * @return SVG path\r\n */\r\n RadarSeries.prototype.getMaskPath = function () {\r\n var renderer = this.yAxis.renderer;\r\n return $path.arc(renderer.startAngle, renderer.endAngle - renderer.startAngle, renderer.pixelRadius, renderer.pixelInnerRadius);\r\n };\r\n /**\r\n * [drawSegment description]\r\n *\r\n * @todo Description\r\n * @param segment [description]\r\n * @param points [description]\r\n * @param closePoints [description]\r\n */\r\n RadarSeries.prototype.drawSegment = function (segment, points, closePoints) {\r\n var axis = this.yAxis;\r\n var renderer = axis.renderer;\r\n if (this.connectEnds && Math.abs(renderer.endAngle - renderer.startAngle) == 360) {\r\n // adds one point to the beginning of closePoints array, if needed\r\n if (this.dataFields[this._xOpenField] ||\r\n this.dataFields[this._yOpenField] ||\r\n this.stacked) {\r\n points.push(points[0]);\r\n if (closePoints.length > 0) {\r\n closePoints.unshift(closePoints[closePoints.length - 1]);\r\n }\r\n }\r\n }\r\n _super.prototype.drawSegment.call(this, segment, points, closePoints);\r\n };\r\n Object.defineProperty(RadarSeries.prototype, \"connectEnds\", {\r\n /**\r\n * @return Connect?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"connectEnds\");\r\n },\r\n /**\r\n * Should the last and and first data points be connected, forming a complete\r\n * closed circle?\r\n *\r\n * @default true\r\n * @param value Connect?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"connectEnds\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n RadarSeries.prototype.positionBulletReal = function (bullet, positionX, positionY) {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (positionX < xAxis.start || positionX > xAxis.end || positionY < yAxis.start || positionY > yAxis.end) {\r\n bullet.visible = false;\r\n }\r\n bullet.moveTo(this.xAxis.renderer.positionToPoint(positionX, positionY));\r\n };\r\n RadarSeries.prototype.setXAxis = function (axis) {\r\n _super.prototype.setXAxis.call(this, axis);\r\n this.updateRendererRefs();\r\n };\r\n RadarSeries.prototype.setYAxis = function (axis) {\r\n _super.prototype.setYAxis.call(this, axis);\r\n this.updateRendererRefs();\r\n };\r\n RadarSeries.prototype.updateRendererRefs = function () {\r\n var rendererX = this.xAxis.renderer;\r\n var rendererY = this.yAxis.renderer;\r\n rendererX.axisRendererY = rendererY;\r\n };\r\n return RadarSeries;\r\n}(LineSeries));\r\nexport { RadarSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarSeries\"] = RadarSeries;\r\nregistry.registeredClasses[\"RadarSeriesDataItem\"] = RadarSeriesDataItem;\r\n//# sourceMappingURL=RadarSeries.js.map","import { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Provides fill element functionality for circular Axes.\r\n *\r\n * @see {@link IAxisFillCircularEvents} for a list of available events\r\n * @see {@link IAxisFillCircularAdapters} for a list of available Adapters\r\n * @todo Needs description\r\n */\r\nvar AxisFillCircular = /** @class */ (function (_super) {\r\n __extends(AxisFillCircular, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Axis\r\n */\r\n function AxisFillCircular(axis) {\r\n var _this = _super.call(this, axis) || this;\r\n _this.className = \"AxisFillCircular\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.radius = percent(100);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the fill element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisFillCircular.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n if (this.__disabled || this.disabled) {\r\n return;\r\n }\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n this.fillPath = renderer.getPositionRangePath(this.startPosition, this.endPosition, this.radius, $type.hasValue(this.innerRadius) ? this.innerRadius : renderer.innerRadius, this.cornerRadius);\r\n this.path = this.fillPath;\r\n }\r\n };\r\n Object.defineProperty(AxisFillCircular.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisFillCircular.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisFillCircular.prototype, \"cornerRadius\", {\r\n /**\r\n * @return Corner radius (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cornerRadius\");\r\n },\r\n /**\r\n * Corner radius for the fill. In pixels.\r\n *\r\n * @param value Corner radius (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cornerRadius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AxisFillCircular;\r\n}(AxisFill));\r\nexport { AxisFillCircular };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisFillCircular\"] = AxisFillCircular;\r\n//# sourceMappingURL=AxisFillCircular.js.map","/**\r\n * A module defining functionality for circular axis grid elements.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Grid } from \"./Grid\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a circular grid element for circular-type axis.\r\n *\r\n * @see {@link IGridCircularEvents} for a list of available events\r\n * @see {@link IGridCircularAdapters} for a list of available Adapters\r\n * @todo Review: container is better, as we'll be able to attach something to the GridCircular, also with 3d charts we might need some additional elements\r\n */\r\nvar GridCircular = /** @class */ (function (_super) {\r\n __extends(GridCircular, _super);\r\n /**\r\n * Constructor\r\n */\r\n function GridCircular() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"GridCircular\";\r\n _this.pixelPerfect = false;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(GridCircular.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the circular grid. (absolute or relative)\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GridCircular.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the circular grid. (absolute or relative)\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return GridCircular;\r\n}(Grid));\r\nexport { GridCircular };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GridCircular\"] = GridCircular;\r\n//# sourceMappingURL=GridCircular.js.map","/**\r\n * Axis Label module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Use to create labels on circular axis.\r\n *\r\n * @see {@link IAxisLabelCircularEvents} for a list of available events\r\n * @see {@link IAxisLabelCircularAdapters} for a list of available Adapters\r\n */\r\nvar AxisLabelCircular = /** @class */ (function (_super) {\r\n __extends(AxisLabelCircular, _super);\r\n /**\r\n * Constructor\r\n */\r\n function AxisLabelCircular() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n *\r\n * @ignore\r\n */\r\n _this.fdx = 0;\r\n /**\r\n *\r\n * @ignore\r\n */\r\n _this.fdy = 0;\r\n _this.className = \"AxisLabelCircular\";\r\n _this.padding(0, 0, 0, 0);\r\n _this.location = 0.5;\r\n _this.locationOnPath = 0.5;\r\n _this.radius = 0;\r\n _this.isMeasured = false;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(AxisLabelCircular.prototype, \"relativeRotation\", {\r\n /**\r\n * @return Rotation angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"relativeRotation\");\r\n },\r\n /**\r\n * Relative rotation of the label.\r\n *\r\n * It is an angle to circle. In case 90, labels will be positioned like rays\r\n * of light, if 0 - positioned along the circle.\r\n *\r\n * @param value Rotation angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"relativeRotation\", value, true);\r\n if (!$type.hasValue(value)) {\r\n this.rotation = undefined;\r\n var dataItem = this.dataItem;\r\n if (dataItem && dataItem.component) {\r\n dataItem.component.invalidateDataItems();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisLabelCircular.prototype, \"radius\", {\r\n /**\r\n * @return Distance (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Distance from axis circle to label in pixels or percent.\r\n *\r\n * @param value Distance (px or percent)\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisLabelCircular.prototype, \"bent\", {\r\n /**\r\n * @return Bent?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bent\");\r\n },\r\n /**\r\n * Specifies if label should be bent along the circle.\r\n *\r\n * IMPORTANT: Use this with caution, since it is quite CPU-greedy.\r\n *\r\n * @since 4.1.2\r\n * @default false\r\n * @param value Bent?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"bent\", value, true);\r\n this.setPropertyValue(\"wrap\", false);\r\n this.setPropertyValue(\"horizontalCenter\", \"none\");\r\n this.setPropertyValue(\"verticalCenter\", \"none\");\r\n if (value) {\r\n this.setPropertyValue(\"dx\", 0);\r\n this.setPropertyValue(\"dy\", 0);\r\n this.setPropertyValue(\"x\", 0);\r\n this.setPropertyValue(\"y\", 0);\r\n this.setPropertyValue(\"rotation\", 0);\r\n //this.setPropertyValue(\"relativeRotation\", undefined);\r\n this.fdx = 0;\r\n this.fdy = 0;\r\n this.textAlign = \"middle\";\r\n }\r\n else {\r\n if (this.textPathElement) {\r\n this.textPathElement.dispose();\r\n this.textPathElement = undefined;\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns label radius in pixels.\r\n *\r\n * @param axisRadius Radius\r\n * @return Pixel radius\r\n */\r\n AxisLabelCircular.prototype.pixelRadius = function (axisRadius) {\r\n var sign = 1;\r\n if (this.inside) {\r\n sign = -1;\r\n }\r\n return $utils.relativeToValue(this.radius, axisRadius) * sign;\r\n };\r\n /**\r\n * Returns label horizontal radius in pixels.\r\n *\r\n * @param axisRadius Radius\r\n * @param axisRadiusY Vertical radius\r\n * @return Radius\r\n */\r\n AxisLabelCircular.prototype.pixelRadiusY = function (axisRadius, axisRadiusY) {\r\n var sign = 1;\r\n if (this.inside) {\r\n sign = -1;\r\n }\r\n var radius = this.radius;\r\n if ($type.isNumber(radius)) {\r\n radius *= axisRadiusY / axisRadius;\r\n return $utils.relativeToValue(radius, axisRadius) * sign;\r\n }\r\n else {\r\n return $utils.relativeToValue(radius, axisRadiusY) * sign;\r\n }\r\n };\r\n /**\r\n * [fixPosition description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param point Label affixation point\r\n * @param axisRadius Distance from point (px)\r\n */\r\n AxisLabelCircular.prototype.fixPosition = function (angle, axisRadius, axisRadiusY, dx, dy) {\r\n if (!$type.isNumber(axisRadiusY)) {\r\n axisRadiusY = axisRadius;\r\n }\r\n if (!$type.isNumber(dx)) {\r\n dx = 0;\r\n }\r\n if (!$type.isNumber(dy)) {\r\n dy = 0;\r\n }\r\n var point = { x: axisRadius * $math.cos(angle), y: axisRadiusY * $math.sin(angle) };\r\n if (this.invalid) {\r\n this.validate(); //@todo\" check if we need this\r\n }\r\n var isNegative = false;\r\n var realRadius = this.radius;\r\n if (realRadius instanceof Percent && realRadius.value < 0) {\r\n isNegative = true;\r\n }\r\n else if (realRadius < 0) {\r\n isNegative = true;\r\n }\r\n var relativeRotation = this.relativeRotation;\r\n var labelRadius = this.pixelRadius(axisRadius);\r\n if (this.bent) {\r\n var point_1 = { x: (axisRadius + labelRadius) * $math.cos(angle + 180), y: (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle + 180) };\r\n this.path = $path.moveTo(point_1) + $path.arcTo(angle + 180, 360, axisRadius + labelRadius, axisRadiusY + labelRadius * axisRadiusY / axisRadius);\r\n if (this.textPathElement) {\r\n this.textPathElement.attr({ \"startOffset\": (this.locationOnPath * 100) + \"%\" });\r\n }\r\n return;\r\n }\r\n // WHEN ROTATED\r\n if ($type.isNumber(relativeRotation)) {\r\n this.horizontalCenter = \"none\";\r\n this.verticalCenter = \"none\";\r\n angle = $math.fitAngleToRange(angle, -180, 180);\r\n var pixelWidth = this.bbox.width;\r\n var pixelHeight = this.bbox.height;\r\n var pixelPaddingBottom = this.pixelPaddingBottom;\r\n var pixelPaddingTop = this.pixelPaddingTop;\r\n var pixelPaddingLeft = this.pixelPaddingLeft;\r\n var pixelPaddingRight = this.pixelPaddingRight;\r\n if (angle > 90 || angle < -90) {\r\n if (relativeRotation == -90) {\r\n relativeRotation = 90;\r\n pixelWidth = 0;\r\n }\r\n }\r\n else {\r\n if (relativeRotation == -90) {\r\n pixelHeight = -pixelHeight;\r\n }\r\n if (relativeRotation == 90) {\r\n relativeRotation = -90;\r\n pixelWidth = -pixelPaddingLeft - pixelPaddingRight;\r\n pixelHeight = -pixelHeight - pixelPaddingTop - pixelPaddingBottom;\r\n }\r\n }\r\n this.rotation = relativeRotation + angle + 90;\r\n var dH = $math.sin(relativeRotation) / 2;\r\n var dW = $math.cos(relativeRotation) / 2;\r\n var rotation = this.rotation;\r\n this.dx = pixelHeight * dH * $math.sin(rotation) - pixelWidth * dW * $math.cos(rotation);\r\n this.dy = -pixelHeight * dH * $math.cos(rotation) - pixelWidth * dW * $math.sin(rotation);\r\n if (!this.inside) {\r\n labelRadius += (pixelHeight + pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelWidth + pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n }\r\n else {\r\n if (angle > 90 || angle < -90) {\r\n labelRadius -= (pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n }\r\n else {\r\n labelRadius += (pixelPaddingBottom + this.bbox.height + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight + this.bbox.width) * $math.sin(relativeRotation);\r\n }\r\n }\r\n point.x += $math.cos(angle) * labelRadius;\r\n point.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n }\r\n else {\r\n // END OF ROTATED\r\n this.horizontalCenter = \"middle\";\r\n this.verticalCenter = \"middle\";\r\n if (isNegative) {\r\n this.dx = 0;\r\n this.dy = 0;\r\n point.x = (axisRadius + labelRadius) * $math.cos(angle);\r\n point.y = (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle);\r\n }\r\n else {\r\n // we don't use valign for labels because then they would jump while animating. instead we modify dy depending on a y position\r\n // this math makes dy to be 1 at the top of the circle, 0.5 at the middle and 1 at the bottom\r\n // @todo with this math doesn't work well with inside = true\r\n this.dy = this._measuredHeight / 2 * $math.sin(angle); //(1 - (point.y + axisRadiusY) / (2 * axisRadiusY));\r\n // simmilar with dx\r\n this.dx = this._measuredWidth / 2 * $math.cos(angle); //(1 - (point.x + axisRadius) / (2 * axisRadius));\r\n point.x += $math.cos(angle) * labelRadius;\r\n point.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n }\r\n }\r\n point.x += dx;\r\n point.y += dy;\r\n this.fdx = this.dx;\r\n this.fdy = this.dy;\r\n this.moveTo(point);\r\n };\r\n return AxisLabelCircular;\r\n}(AxisLabel));\r\nexport { AxisLabelCircular };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLabelCircular\"] = AxisLabelCircular;\r\n//# sourceMappingURL=AxisLabelCircular.js.map","/**\r\n * Module, defining Axis Renderer for circular axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisFillCircular } from \"./AxisFillCircular\";\r\nimport { GridCircular } from \"./GridCircular\";\r\nimport { AxisLabelCircular } from \"./AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A renderer for circular axis.\r\n */\r\nvar AxisRendererCircular = /** @class */ (function (_super) {\r\n __extends(AxisRendererCircular, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererCircular() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * @ignore\r\n */\r\n _this.pixelRadiusReal = 0;\r\n // axis.layout = \"none\"; // does not trigger redraw when size changes\r\n _this.layout = \"none\";\r\n _this.className = \"AxisRendererCircular\";\r\n _this.isMeasured = false;\r\n _this.startAngle = -90;\r\n _this.endAngle = 270;\r\n _this.useChartAngles = true;\r\n _this.radius = percent(100);\r\n _this.isMeasured = false;\r\n _this.grid.template.location = 0;\r\n _this.labels.template.location = 0;\r\n _this.labels.template.radius = 15;\r\n _this.ticks.template.location = 0;\r\n _this.ticks.template.pixelPerfect = false;\r\n _this.tooltipLocation = 0;\r\n _this.line.strokeOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n AxisRendererCircular.prototype.setAxis = function (axis) {\r\n var _this = this;\r\n _super.prototype.setAxis.call(this, axis);\r\n axis.isMeasured = false;\r\n // modify x and y so that tooltip would always be on circle\r\n var tooltip = axis.tooltip;\r\n tooltip.adapter.add(\"dx\", function (x, target) {\r\n var point = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, _this);\r\n return _this.pixelRadius * Math.cos(Math.atan2(point.y, point.x)) - point.x;\r\n });\r\n tooltip.adapter.add(\"dy\", function (y, target) {\r\n var point = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, _this);\r\n return _this.pixelRadius * Math.sin(Math.atan2(point.y, point.x)) - point.y;\r\n });\r\n };\r\n /**\r\n * Validates Axis renderer.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererCircular.prototype.validate = function () {\r\n // so that radius would be updated\r\n if (this.chart && this.chart.invalid) {\r\n this.chart.validate();\r\n }\r\n _super.prototype.validate.call(this);\r\n };\r\n Object.defineProperty(AxisRendererCircular.prototype, \"axisLength\", {\r\n /**\r\n * Returns actual length of the Axis, in pixels.\r\n *\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n return 2 * Math.PI * this.pixelRadius;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the axis.\r\n *\r\n * Can be absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"radius\", value, false, false, 10, false)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"pixelRadius\", {\r\n /**\r\n * Outer radius in pixels.\r\n *\r\n * @return Outer radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeRadiusToValue(this.radius, this.pixelRadiusReal) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n var chart = this.chart;\r\n var innerRadius = this.getPropertyValue(\"innerRadius\");\r\n if (chart) {\r\n if (!$type.hasValue(innerRadius)) {\r\n innerRadius = chart.innerRadius;\r\n if (innerRadius instanceof Percent && chart) {\r\n innerRadius = percent(innerRadius.value * chart.innerRadiusModifyer * 100);\r\n }\r\n }\r\n else {\r\n if (innerRadius instanceof Percent && chart) {\r\n var mr = chart.mr;\r\n var value = innerRadius.value;\r\n value = Math.max(mr * value, mr - Math.min(chart.plotContainer.innerHeight, chart.plotContainer.innerWidth)) / mr;\r\n innerRadius = percent(value * 100);\r\n }\r\n }\r\n return innerRadius;\r\n }\r\n },\r\n /**\r\n * Inner radius of the axis.\r\n *\r\n * Can be absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"innerRadius\", value, false, false, 10, false)) {\r\n if (this.axis) {\r\n this.axis.invalidate();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"useChartAngles\", {\r\n /**\r\n * @return Use chart angles\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"useChartAngles\");\r\n },\r\n /**\r\n * Specifies if axis should use its own `startAngle` and `endAngle` or\r\n * inherit them from relative properties from chart.\r\n *\r\n * @default false\r\n * @param value Use chart's angles\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"useChartAngles\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * Inner radius in pixels.\r\n *\r\n * @return Inner radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeRadiusToValue(this.innerRadius, this.pixelRadiusReal) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position on axis to point coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @param position2 Position (0-1) Position on the second axis\r\n * @return Point\r\n */\r\n AxisRendererCircular.prototype.positionToPoint = function (position, position2) {\r\n if (!$type.isNumber(position2)) {\r\n position2 = 1;\r\n }\r\n var coordinate = this.positionToCoordinate(position);\r\n var angle = this.startAngle + (this.endAngle - this.startAngle) * coordinate / this.axisLength;\r\n var radius = this.pixelRadius;\r\n var innerRadius = this.pixelInnerRadius;\r\n if (this.axisRendererY) {\r\n var realRadius = $math.fitToRange(this.axisRendererY.positionToCoordinate(position2), 0, Infinity);\r\n if (realRadius == 0) {\r\n realRadius = 0.000001;\r\n }\r\n var point = { x: realRadius * $math.cos(angle), y: realRadius * $math.sin(angle) };\r\n return point;\r\n }\r\n return { x: $math.cos(angle) * innerRadius + (radius - innerRadius) * $math.cos(angle) * position2, y: $math.sin(angle) * innerRadius + (radius - innerRadius) * $math.sin(angle) * position2 };\r\n };\r\n /**\r\n * Converts relative position (0-1) on axis to angle in degrees (0-360).\r\n *\r\n * @param position Position (0-1)\r\n * @return Angle (0-360)\r\n */\r\n AxisRendererCircular.prototype.positionToAngle = function (position) {\r\n var axis = this.axis;\r\n var arc = (this.endAngle - this.startAngle) / (axis.end - axis.start);\r\n var angle;\r\n if (axis.renderer.inversed) {\r\n angle = this.startAngle + (axis.end - position) * arc;\r\n }\r\n else {\r\n angle = this.startAngle + (position - axis.start) * arc;\r\n }\r\n return $math.round(angle, 3);\r\n };\r\n /**\r\n * Converts angle on axis to relative position(0-1).\r\n *\r\n * @param angle Angle in degrees\r\n * @return Position (0-1)\r\n */\r\n AxisRendererCircular.prototype.angleToPosition = function (angle) {\r\n var axis = this.axis;\r\n var arc = (this.endAngle - this.startAngle) / (axis.end - axis.start);\r\n var position;\r\n if (axis.renderer.inversed) {\r\n position = axis.end - (angle - this.startAngle) / arc;\r\n }\r\n else {\r\n position = (angle - this.startAngle) / arc + axis.start;\r\n }\r\n return $math.round(position, 5);\r\n };\r\n /**\r\n * Updates and positions the axis line element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererCircular.prototype.updateAxisLine = function () {\r\n var radius = this.pixelRadius;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var arc = $math.min(360, endAngle - startAngle);\r\n this.line.path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, arc, radius, radius);\r\n };\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererCircular.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n if ($type.isNumber(point.x) && $type.isNumber(point.y) && grid.element) {\r\n var angle = $math.DEGREES * Math.atan2(point.y, point.x);\r\n var radius = $utils.relativeRadiusToValue($type.hasValue(grid.radius) ? grid.radius : percent(100), this.pixelRadius);\r\n var gridInnerRadius = $utils.relativeRadiusToValue(grid.innerRadius, this.pixelRadius);\r\n grid.zIndex = 0;\r\n var innerRadius = $utils.relativeRadiusToValue($type.isNumber(gridInnerRadius) ? gridInnerRadius : this.innerRadius, this.pixelRadiusReal, true);\r\n if (!$type.isNumber(innerRadius)) {\r\n innerRadius = 0;\r\n }\r\n grid.path = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) }) + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n }\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions a tick element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param tick Tick element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererCircular.prototype.updateTickElement = function (tick, position, endPosition) {\r\n position = position + (endPosition - position) * tick.location;\r\n var point = this.positionToPoint(position);\r\n if (tick.element) {\r\n var radius = this.pixelRadius;\r\n var angle = $math.DEGREES * Math.atan2(point.y, point.x);\r\n var tickLength = tick.length;\r\n if (tick.inside) {\r\n tickLength = -tickLength;\r\n }\r\n tick.zIndex = 1;\r\n tick.path = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) }) + $path.lineTo({ x: (radius + tickLength) * $math.cos(angle), y: (radius + tickLength) * $math.sin(angle) });\r\n }\r\n this.toggleVisibility(tick, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions axis bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet AxisBullet element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererCircular.prototype.updateBullet = function (bullet, position, endPosition) {\r\n var location = 0.5;\r\n if (bullet instanceof AxisBullet) {\r\n location = bullet.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n var radius = this.pixelRadius;\r\n var angle = $math.DEGREES * Math.atan2(point.y, point.x);\r\n point = { x: radius * $math.cos(angle), y: radius * $math.sin(angle) };\r\n this.positionItem(bullet, point);\r\n this.toggleVisibility(bullet, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions a label element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param label Label element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRendererCircular.prototype.updateLabelElement = function (label, position, endPosition, location) {\r\n if (!$type.hasValue(location)) {\r\n location = label.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n label.fixPosition(this.positionToAngle(position), this.pixelRadius);\r\n label.zIndex = 2;\r\n this.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n };\r\n /**\r\n * Checks if point is within bounds of a container.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Point coordinates\r\n * @return Fits?\r\n */\r\n AxisRendererCircular.prototype.fitsToBounds = function (point) {\r\n return true;\r\n };\r\n Object.defineProperty(AxisRendererCircular.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Start angle of the axis in degrees (0-360).\r\n *\r\n * @param value Start angle\r\n */\r\n set: function (value) {\r\n // do not normalize angel here!\r\n if (this.setPropertyValue(\"startAngle\", value)) {\r\n this.invalidateAxisItems();\r\n if (this.axis) {\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererCircular.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * End angle of the axis in degrees (0-360).\r\n *\r\n * @param value End angle\r\n */\r\n set: function (value) {\r\n // do not normalize angel here!\r\n if (this.setPropertyValue(\"endAngle\", value)) {\r\n this.invalidateAxisItems();\r\n if (this.axis) {\r\n this.axis.invalidateSeries();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition Starting position\r\n * @param endPosition End position\r\n * @return SVG path\r\n */\r\n AxisRendererCircular.prototype.getPositionRangePath = function (startPosition, endPosition, radius, innerRadius, cornerRadius) {\r\n var path = \"\";\r\n if ($type.isNumber(startPosition) && $type.isNumber(endPosition)) {\r\n if (!$type.hasValue(radius)) {\r\n radius = this.radius;\r\n }\r\n startPosition = $math.max(startPosition, this.axis.start);\r\n endPosition = $math.min(endPosition, this.axis.end);\r\n if (endPosition < startPosition) {\r\n endPosition = startPosition;\r\n }\r\n var pixelRadius = $utils.relativeRadiusToValue(radius, this.pixelRadius);\r\n var pixelInnerRadius = $utils.relativeRadiusToValue(innerRadius, this.pixelRadius, true);\r\n var startAngle = this.positionToAngle(startPosition);\r\n var endAngle = this.positionToAngle(endPosition);\r\n var arc = endAngle - startAngle;\r\n path = $path.arc(startAngle, arc, pixelRadius, pixelInnerRadius, pixelRadius, cornerRadius);\r\n }\r\n return path;\r\n };\r\n /**\r\n * Returns a new grid element, suitable for this Axis Renderer type.\r\n *\r\n * @return Grid element\r\n */\r\n AxisRendererCircular.prototype.createGrid = function () {\r\n return new GridCircular();\r\n };\r\n /**\r\n * Returns a new fill element, suitable for this Axis Renderer type.\r\n *\r\n * @return Fill element\r\n */\r\n AxisRendererCircular.prototype.createFill = function (axis) {\r\n return new AxisFillCircular(axis);\r\n };\r\n /**\r\n * Returns a new label element, suitable for this Axis Renderer type.\r\n *\r\n * @return Label element\r\n */\r\n AxisRendererCircular.prototype.createLabel = function () {\r\n return new AxisLabelCircular();\r\n };\r\n /**\r\n * Converts a point at specific coordinates to a relative position (0-1)\r\n * on the axis.\r\n *\r\n * @param point Point\r\n * @return Position (0-1)\r\n */\r\n AxisRendererCircular.prototype.pointToPosition = function (point) {\r\n var angle = $math.fitAngleToRange($math.getAngle(point), this.startAngle, this.endAngle);\r\n return this.coordinateToPosition((angle - this.startAngle) / 360 * this.axisLength);\r\n };\r\n return AxisRendererCircular;\r\n}(AxisRenderer));\r\nexport { AxisRendererCircular };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererCircular\"] = AxisRendererCircular;\r\n//# sourceMappingURL=AxisRendererCircular.js.map","/**\r\n * Module, defining Axis Renderer for radial axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererY } from \"./AxisRendererY\";\r\nimport { CategoryAxis } from \"./CategoryAxis\";\r\nimport { WavedCircle } from \"../../core/elements/WavedCircle\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A renderer for radial axis.\r\n */\r\nvar AxisRendererRadial = /** @class */ (function (_super) {\r\n __extends(AxisRendererRadial, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererRadial() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A related chart.\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n /**\r\n * @ignore\r\n */\r\n _this.pixelRadiusReal = 0;\r\n _this.className = \"AxisRendererRadial\";\r\n _this.isMeasured = false;\r\n _this.startAngle = -90;\r\n _this.endAngle = 270;\r\n _this.minGridDistance = 30;\r\n _this.gridType = \"circles\";\r\n _this.axisAngle = -90;\r\n _this.isMeasured = false;\r\n _this.layout = \"none\";\r\n _this.radius = percent(100);\r\n _this.line.strokeOpacity = 0;\r\n _this.labels.template.horizontalCenter = \"middle\";\r\n _this._disposers.push(_this._chart);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Validates Axis renderer.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererRadial.prototype.validate = function () {\r\n // so that radius would be updated\r\n if (this.chart && this.chart.invalid) {\r\n this.chart.validate();\r\n }\r\n _super.prototype.validate.call(this);\r\n };\r\n Object.defineProperty(AxisRendererRadial.prototype, \"axisLength\", {\r\n /**\r\n * Returns actual length of the Axis, in pixels.\r\n *\r\n * @return Length (px)\r\n */\r\n get: function () {\r\n return this.pixelRadius - this.pixelInnerRadius;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the axis.\r\n *\r\n * Can be absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, false, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"pixelRadius\", {\r\n /**\r\n * Outer radius in pixels.\r\n *\r\n * @return Outer radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeRadiusToValue(this.radius, this.pixelRadiusReal) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n var chart = this.chart;\r\n var innerRadius = this.getPropertyValue(\"innerRadius\");\r\n if (chart) {\r\n if (!$type.hasValue(innerRadius)) {\r\n innerRadius = chart.innerRadius;\r\n if (innerRadius instanceof Percent && chart) {\r\n innerRadius = percent(innerRadius.value * chart.innerRadiusModifyer * 100);\r\n }\r\n }\r\n else {\r\n if (innerRadius instanceof Percent && chart) {\r\n var mr = chart.mr;\r\n var value = innerRadius.value;\r\n value = Math.max(mr * value, mr - Math.min(chart.plotContainer.innerHeight, chart.plotContainer.innerWidth)) / mr;\r\n innerRadius = percent(value * 100);\r\n }\r\n }\r\n }\r\n return innerRadius;\r\n },\r\n /**\r\n * Inner radius of the axis.\r\n *\r\n * Can be absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, false, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * Inner radius in pixels.\r\n *\r\n * @return Inner radius (px)\r\n */\r\n get: function () {\r\n return $utils.relativeRadiusToValue(this.innerRadius, this.pixelRadiusReal) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position on axis to point coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @param position2 Position (0-1) Position on the second axis\r\n * @return Point\r\n */\r\n AxisRendererRadial.prototype.positionToPoint = function (position, position2) {\r\n var radius = $math.fitToRange(this.positionToCoordinate(position), 0, Infinity);\r\n return { x: radius * $math.cos(this.axisAngle), y: radius * $math.sin(this.axisAngle) };\r\n };\r\n /**\r\n * Updates and positions the axis line element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererRadial.prototype.updateAxisLine = function () {\r\n this.line.path = $path.moveTo({ x: this.pixelInnerRadius * $math.cos(this.axisAngle), y: this.pixelInnerRadius * $math.sin(this.axisAngle) }) + $path.lineTo({ x: this.pixelRadius * $math.cos(this.axisAngle), y: this.pixelRadius * $math.sin(this.axisAngle) });\r\n var title = this.axis.title;\r\n title.valign = \"none\";\r\n title.horizontalCenter = \"middle\";\r\n title.verticalCenter = \"bottom\";\r\n title.y = -this.axisLength / 2;\r\n var rotation = 90;\r\n if (this.opposite) {\r\n if (!this.inside) {\r\n rotation = -90;\r\n }\r\n }\r\n else {\r\n if (this.inside) {\r\n rotation = -90;\r\n }\r\n }\r\n title.rotation = rotation;\r\n };\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererRadial.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n var path;\r\n var radius = $math.getDistance(point);\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var chart = this.chart;\r\n if ($type.isNumber(radius) && grid.element && chart) {\r\n var xAxis = chart.xAxes.getIndex(0);\r\n var count = 0;\r\n var series = chart.series.getIndex(0);\r\n if (series) {\r\n count = series.dataItems.length;\r\n }\r\n // polygons are only possible if x axis is present\r\n // @todo: review this\r\n if (this.gridType == \"polygons\" && count > 0 && series && xAxis && xAxis instanceof CategoryAxis) {\r\n var gridLocation = xAxis.renderer.grid.template.location;\r\n var angle = xAxis.getAngle(series.dataItems.getIndex(0), \"categoryX\", gridLocation);\r\n path = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n for (var i = 1; i < count; i++) {\r\n angle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n path += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n }\r\n angle = xAxis.getAngle(series.dataItems.getIndex(count - 1), \"categoryX\", xAxis.renderer.cellEndLocation);\r\n path += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n }\r\n else {\r\n path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, radius, radius);\r\n }\r\n grid.path = path;\r\n }\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions a label element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param label Label element\r\n * @param position Starting position\r\n * @param endPosition Ending position\r\n */\r\n AxisRendererRadial.prototype.updateLabelElement = function (label, position, endPosition, location) {\r\n if (!$type.hasValue(location)) {\r\n location = label.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n this.positionItem(label, point);\r\n this.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererRadial.prototype.updateBaseGridElement = function () {\r\n // @todo? zero grid for radar chart, is it needed?\r\n };\r\n /**\r\n * Checks if point is within bounds of a container.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Point coordinates\r\n * @return Fits?\r\n */\r\n AxisRendererRadial.prototype.fitsToBounds = function (point) {\r\n return true;\r\n };\r\n Object.defineProperty(AxisRendererRadial.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Start angle of the axis in degrees. (0-360)\r\n *\r\n * @param value Start angle\r\n */\r\n set: function (value) {\r\n // do not normalize angle here!\r\n if (this.setPropertyValue(\"startAngle\", value)) {\r\n this.invalidateAxisItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * End angle of the axis in degrees. (0-360)\r\n *\r\n * @param value End angle\r\n */\r\n set: function (value) {\r\n // do not normalize angel here!\r\n if (this.setPropertyValue(\"endAngle\", value)) {\r\n this.invalidateAxisItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"axisAngle\", {\r\n /**\r\n * @return Axis angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"axisAngle\");\r\n //return $math.fitToRange(this.getPropertyValue(\"axisAngle\"), this.startAngle, this.endAngle); // no good, as less flexible\r\n },\r\n /**\r\n * Angle of the radial axis in degrees. (0-360)\r\n *\r\n * @param value Axis angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"axisAngle\", $math.normalizeAngle(value));\r\n this.invalidateAxisItems();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRendererRadial.prototype, \"gridType\", {\r\n /**\r\n * Grid type\r\n */\r\n get: function () {\r\n var axis = this.chart.xAxes.getIndex(0);\r\n if (axis instanceof CategoryAxis) {\r\n return this.getPropertyValue(\"gridType\");\r\n }\r\n else {\r\n return \"circles\";\r\n }\r\n },\r\n // polygons grid type is only possible under these conditions: xAxis is available and it is CategoryAxis, also at least one series should be added to a chart\r\n /**\r\n * Grid type for radial axis.\r\n *\r\n * A grid on radia axis can either be perfect circles (\"circles\"), or\r\n * straight lines (\"polygons\").\r\n *\r\n * @default \"circles\"\r\n * @param value Grid type\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"gridType\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [getPositionRangePath description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startPosition Starting position\r\n * @param endPosition End position\r\n * @return SVG path\r\n */\r\n AxisRendererRadial.prototype.getPositionRangePath = function (startPosition, endPosition) {\r\n var pixelInnerRadius = this.pixelInnerRadius;\r\n var pixelRadius = this.axisLength + pixelInnerRadius;\r\n var innerRadius = $math.fitToRange(this.positionToCoordinate(startPosition), pixelInnerRadius, pixelRadius);\r\n var radius = $math.fitToRange(this.positionToCoordinate(endPosition), pixelInnerRadius, pixelRadius);\r\n //let angleCount: number = this.angleCount;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var arc = endAngle - startAngle;\r\n var path;\r\n var chart = this.chart;\r\n var xAxis = chart.xAxes.getIndex(0);\r\n var series = chart.series.getIndex(0);\r\n var count = 0;\r\n if (series) {\r\n count = series.dataItems.length;\r\n }\r\n // polygons are only possible if x axis is present\r\n // @todo: review this\r\n if (this.gridType == \"polygons\" && count > 0 && series && xAxis && xAxis instanceof CategoryAxis) {\r\n var gridLocation = xAxis.renderer.grid.template.location;\r\n var angle = xAxis.getAngle(series.dataItems.getIndex(0), \"categoryX\", gridLocation);\r\n path = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n for (var i = 1; i < count; i++) {\r\n angle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n path += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n }\r\n angle = xAxis.getAngle(series.dataItems.getIndex(count - 1), \"categoryX\", xAxis.renderer.cellEndLocation);\r\n path += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n path += $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) });\r\n for (var i = count - 1; i >= 0; i--) {\r\n angle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n path += $path.lineTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) });\r\n }\r\n }\r\n else {\r\n path = $path.arc(startAngle, arc, radius, innerRadius);\r\n }\r\n return path;\r\n };\r\n /**\r\n * Updates and positions an axis break element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Break element\r\n */\r\n AxisRendererRadial.prototype.updateBreakElement = function (axisBreak) {\r\n // @todo: someday we might need axis break when gridType is polygons\r\n var startLine = axisBreak.startLine;\r\n var endLine = axisBreak.endLine;\r\n var fillShape = axisBreak.fillShape;\r\n var startPoint = axisBreak.startPoint;\r\n var endPoint = axisBreak.endPoint;\r\n startLine.radius = Math.abs(startPoint.y);\r\n endLine.radius = Math.abs(endPoint.y);\r\n fillShape.radius = Math.abs(endPoint.y);\r\n fillShape.innerRadius = Math.abs(startPoint.y);\r\n };\r\n /**\r\n * Creates visual elements for and axis break.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axisBreak Axis break\r\n */\r\n AxisRendererRadial.prototype.createBreakSprites = function (axisBreak) {\r\n axisBreak.startLine = new WavedCircle();\r\n axisBreak.endLine = new WavedCircle();\r\n axisBreak.fillShape = new WavedCircle();\r\n };\r\n /**\r\n * Updates some of the Axis tooltip's visual properties, related to\r\n * rendering of the Axis.\r\n *\r\n * @todo Description (review)\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererRadial.prototype.updateTooltip = function () {\r\n var axis = this.axis;\r\n if (axis) {\r\n var bigNum = 4000;\r\n var bbx = -4000;\r\n var bby = -4000;\r\n var bbw = bigNum * 2;\r\n var bbh = bigNum * 2;\r\n var axisAngle = this.axisAngle;\r\n if (axisAngle < 0) {\r\n axisAngle += 360;\r\n }\r\n var tooltipOrientation = \"vertical\";\r\n if ((axisAngle > 45 && axisAngle < 135) || (axisAngle > 225 && axisAngle < 315)) {\r\n tooltipOrientation = \"horizontal\";\r\n }\r\n this.axis.updateTooltip(tooltipOrientation, { x: bbx, y: bby, width: bbw, height: bbh });\r\n }\r\n };\r\n /**\r\n * Updates and positions a tick element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param tick Tick element\r\n * @param position Position\r\n */\r\n AxisRendererRadial.prototype.updateTickElement = function (tick, position, endPosition) {\r\n position = position + (endPosition - position) * tick.location;\r\n var point = this.positionToPoint(position);\r\n if (tick.element) {\r\n var angle = $math.normalizeAngle(this.axisAngle + 90);\r\n if (angle / 90 != Math.round(angle / 90)) {\r\n tick.pixelPerfect = false;\r\n }\r\n else {\r\n tick.pixelPerfect = true;\r\n }\r\n var tickLength = -tick.length;\r\n if (tick.inside) {\r\n tickLength *= -1;\r\n }\r\n tick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: tickLength * $math.cos(angle), y: tickLength * $math.sin(angle) });\r\n }\r\n this.positionItem(tick, point);\r\n this.toggleVisibility(tick, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions axis bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet AxisBullet element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererRadial.prototype.updateBullet = function (bullet, position, endPosition) {\r\n var location = 0.5;\r\n if (bullet instanceof AxisBullet) {\r\n location = bullet.location;\r\n }\r\n position = position + (endPosition - position) * location;\r\n var point = this.positionToPoint(position);\r\n this.positionItem(bullet, point);\r\n this.toggleVisibility(bullet, position, 0, 1);\r\n };\r\n /**\r\n * Converts a position on the axis to a coordinate in pixels.\r\n *\r\n * @ignore Exclude from docs\r\n * @param position Position (0-1)\r\n * @return Coordinate (px)\r\n */\r\n AxisRendererRadial.prototype.positionToCoordinate = function (position) {\r\n var coordinate;\r\n var axis = this.axis;\r\n var axisFullLength = axis.axisFullLength;\r\n var innerRadius = this.pixelInnerRadius;\r\n if (axis.renderer.inversed) {\r\n coordinate = (axis.end - position) * axisFullLength + innerRadius;\r\n }\r\n else {\r\n coordinate = (position - axis.start) * axisFullLength + innerRadius;\r\n }\r\n return $math.round(coordinate, 1);\r\n };\r\n /**\r\n * Converts a point at specific coordinates to a relative position (0-1)\r\n * on the axis.\r\n *\r\n * @param point Point\r\n * @return Position (0-1)\r\n */\r\n AxisRendererRadial.prototype.pointToPosition = function (point) {\r\n var coordinate = ($math.getDistance(point) - this.pixelInnerRadius);\r\n return this.coordinateToPosition(coordinate);\r\n };\r\n Object.defineProperty(AxisRendererRadial.prototype, \"chart\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * A chart, associated with the Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart.set(value, null);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AxisRendererRadial;\r\n}(AxisRendererY));\r\nexport { AxisRendererRadial };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererRadial\"] = AxisRendererRadial;\r\n//# sourceMappingURL=AxisRendererRadial.js.map","/**\r\n * Radar chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, XYChartDataItem } from \"./XYChart\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { RadarSeries } from \"../series/RadarSeries\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\nimport { AxisRendererRadial } from \"../axes/AxisRendererRadial\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[RadarChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar RadarChartDataItem = /** @class */ (function (_super) {\r\n __extends(RadarChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return RadarChartDataItem;\r\n}(XYChartDataItem));\r\nexport { RadarChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Radar chart.\r\n *\r\n * @see {@link IRadarChartEvents} for a list of available Events\r\n * @see {@link IRadarChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/radar-chart/} for documentation\r\n * @important\r\n */\r\nvar RadarChart = /** @class */ (function (_super) {\r\n __extends(RadarChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Defines X axis renderer type.\r\n */\r\n _this._axisRendererX = AxisRendererCircular;\r\n /**\r\n * Defines Y axis renderer type.\r\n */\r\n _this._axisRendererY = AxisRendererRadial;\r\n /**\r\n * used by cursor. We adjust innerradius if start and end angle are close to each other\r\n * @ignore Exclude from docs\r\n */\r\n _this.innerRadiusModifyer = 1;\r\n /**\r\n * @ignore\r\n */\r\n _this.mr = 1;\r\n _this.className = \"RadarChart\";\r\n _this.startAngle = -90;\r\n _this.endAngle = 270;\r\n _this.radius = percent(80);\r\n _this.innerRadius = 0;\r\n var radarContainer = _this.plotContainer.createChild(Container);\r\n radarContainer.shouldClone = false;\r\n radarContainer.layout = \"absolute\";\r\n radarContainer.align = \"center\";\r\n radarContainer.valign = \"middle\";\r\n _this.seriesContainer.parent = radarContainer;\r\n _this.radarContainer = radarContainer;\r\n _this.bulletsContainer.parent = radarContainer;\r\n _this.axisBulletsContainer = radarContainer;\r\n _this._cursorContainer = radarContainer;\r\n _this.chartContainer.events.on(\"maxsizechanged\", _this.invalidate, _this, false); // need this for the chart to change radius if legend is removed/disabled\r\n _this._bulletMask = radarContainer.createChild(Circle);\r\n _this._bulletMask.shouldClone = false;\r\n _this._bulletMask.element = _this.paper.add(\"path\");\r\n _this._bulletMask.opacity = 0;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n RadarChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Radar chart\");\r\n }\r\n };\r\n /**\r\n * Decorates Axis with required properties for this chart.\r\n *\r\n * @param axis Axis\r\n */\r\n RadarChart.prototype.processAxis = function (axis) {\r\n _super.prototype.processAxis.call(this, axis);\r\n var renderer = axis.renderer;\r\n renderer.gridContainer.parent = renderer;\r\n renderer.breakContainer.parent = renderer;\r\n axis.parent = this.radarContainer;\r\n renderer.toBack();\r\n };\r\n /**\r\n * Updates all X axes after range change event.\r\n */\r\n RadarChart.prototype.handleXAxisRangeChange = function () {\r\n _super.prototype.handleXAxisRangeChange.call(this);\r\n $iter.each(this.yAxes.iterator(), function (axis) {\r\n axis.invalidate();\r\n });\r\n };\r\n /**\r\n * Updates all Y axes after range change event.\r\n */\r\n RadarChart.prototype.handleYAxisRangeChange = function () {\r\n _super.prototype.handleYAxisRangeChange.call(this);\r\n $iter.each(this.xAxes.iterator(), function (axis) {\r\n axis.invalidate();\r\n });\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n RadarChart.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up cursor\r\n if ($type.hasValue(config.cursor) && !$type.hasValue(config.cursor.type)) {\r\n config.cursor.type = \"RadarCursor\";\r\n }\r\n // Set up series\r\n if ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n for (var i = 0, len = config.series.length; i < len; i++) {\r\n config.series[i].type = config.series[i].type || \"RadarSeries\";\r\n }\r\n }\r\n // Set up axes\r\n /*if ($type.hasValue(config.xAxes) && $type.isArray(config.xAxes)) {\r\n for (let i = 0, len = config.xAxes.length; i < len; i++) {\r\n config.xAxes[i].type = config.xAxes[i].type || \"AxisRendererCircular\";\r\n }\r\n }\r\n if ($type.hasValue(config.yAxes) && $type.isArray(config.yAxes)) {\r\n for (let i = 0, len = config.yAxes.length; i < len; i++) {\r\n config.yAxes[i].type = config.yAxes[i].type || \"AxisRendererRadial\";\r\n }\r\n }*/\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Does calculations before drawing the chart.\r\n */\r\n RadarChart.prototype.beforeDraw = function () {\r\n _super.prototype.beforeDraw.call(this);\r\n var plotContainer = this.plotContainer;\r\n var rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n var innerRect = { x: 0, y: 0, width: 0, height: 0 };\r\n var wr = plotContainer.innerWidth / rect.width;\r\n var hr = plotContainer.innerHeight / rect.height;\r\n var innerRadius = this.innerRadius;\r\n if (innerRadius instanceof Percent) {\r\n var value = innerRadius.value;\r\n var mr = Math.min(wr, hr);\r\n this.mr = mr;\r\n value = Math.max(mr * value, mr - Math.min(plotContainer.innerHeight, plotContainer.innerWidth)) / mr;\r\n innerRect = $math.getArcRect(this.startAngle, this.endAngle, value);\r\n this.innerRadiusModifyer = value / innerRadius.value;\r\n innerRadius = percent(value * 100);\r\n }\r\n // @todo handle this when innerRadius set in pixels (do it for pie also)\r\n rect = $math.getCommonRectangle([rect, innerRect]);\r\n var maxRadius = Math.min(plotContainer.innerWidth / rect.width, plotContainer.innerHeight / rect.height);\r\n var diameter = $utils.relativeRadiusToValue(this.radius, maxRadius) * 2 || 0;\r\n var radius = diameter / 2;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n this._pixelInnerRadius = $utils.relativeRadiusToValue(innerRadius, radius);\r\n this._bulletMask.path = $path.arc(startAngle, endAngle - startAngle, radius, this._pixelInnerRadius);\r\n $iter.each(this.xAxes.iterator(), function (axis) {\r\n if (axis.renderer.useChartAngles) {\r\n axis.renderer.startAngle = startAngle;\r\n axis.renderer.endAngle = endAngle;\r\n }\r\n axis.width = diameter;\r\n axis.height = diameter;\r\n //axis.renderer.width = diameter;\r\n //axis.renderer.height = diameter;\r\n axis.renderer.pixelRadiusReal = radius;\r\n //axis.renderer.innerRadius = innerRadius;\r\n });\r\n $iter.each(this.yAxes.iterator(), function (axis) {\r\n axis.renderer.startAngle = startAngle;\r\n axis.renderer.endAngle = endAngle;\r\n axis.width = diameter;\r\n axis.height = diameter;\r\n //axis.renderer.width = diameter;\r\n //axis.renderer.height = diameter;\r\n axis.renderer.pixelRadiusReal = radius;\r\n //axis.renderer.innerRadius = innerRadius;\r\n });\r\n var cursor = this.cursor;\r\n if (cursor) {\r\n cursor.width = diameter;\r\n cursor.height = diameter;\r\n cursor.startAngle = startAngle;\r\n cursor.endAngle = endAngle;\r\n }\r\n this.radarContainer.definedBBox = { x: radius * rect.x, y: radius * rect.y, width: radius * rect.width, height: radius * rect.height };\r\n this.radarContainer.validatePosition();\r\n };\r\n /**\r\n * Creates and returns a new Series, suitable for RadarChart.\r\n *\r\n * @return New Series\r\n */\r\n RadarChart.prototype.createSeries = function () {\r\n return new RadarSeries();\r\n };\r\n Object.defineProperty(RadarChart.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Starting angle of the Radar face. (degrees)\r\n *\r\n * Normally, a circular radar face begins (the radial axis is drawn) at the\r\n * top center. (at -90 degrees)\r\n *\r\n * You can use `startAngle` to change this setting.\r\n *\r\n * E.g. setting this to 0 will make the radial axis start horizontally to\r\n * the right, as opposed to vertical.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set those to lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n * looks like a quarter of a circle.\r\n *\r\n * @default -90\r\n * @param value Start angle (degrees)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarChart.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * Starting angle of the Radar face. (degrees)\r\n *\r\n * Normally, a circular radar face ends (the radial axis is drawn) exactly\r\n * where it has started, forming a full 360 circle. (at 270 degrees)\r\n *\r\n * You can use `endAngle` to end the circle somewhere else.\r\n *\r\n * E.g. setting this to 180 will make the radar face end at horizontal line\r\n * to the left off the center.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set those to lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n * looks like a quarter of a circle.\r\n *\r\n * @default -90\r\n * @param value End angle (degrees)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarChart.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the Radar face.\r\n *\r\n * This can either be in absolute pixel value, or relative [[Percent]].\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarChart.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * @return Inner radius in pixels\r\n */\r\n get: function () {\r\n return this._pixelInnerRadius;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarChart.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the radar face.\r\n *\r\n * This can either be in absolute pixel value, or relative [[Percent]].\r\n *\r\n * If set in Percent, it will be relative to `radius`. (outer radius)\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Triggers (re)rendering of the horizontal (X) axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n */\r\n RadarChart.prototype.updateXAxis = function (renderer) {\r\n //do not call super!\r\n if (renderer) {\r\n renderer.processRenderer();\r\n }\r\n };\r\n /**\r\n * Triggers (re)rendering of the vertical (Y) axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param axis Axis\r\n */\r\n RadarChart.prototype.updateYAxis = function (renderer) {\r\n // do not call super!\r\n if (renderer) {\r\n renderer.processRenderer();\r\n }\r\n };\r\n return RadarChart;\r\n}(XYChart));\r\nexport { RadarChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarChart\"] = RadarChart;\r\n//# sourceMappingURL=RadarChart.js.map","/**\r\n * Functionality for drawing simple ClockHands\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { Trapezoid } from \"../../core/elements/Trapezoid\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * ClockHand class is capable of drawing a simple pointy shape with optionally\r\n * rounderd corners and an icon.\r\n *\r\n * @see {@link IClockHandEvents} for a list of available events\r\n * @see {@link IClockHandAdapters} for a list of available Adapters\r\n * @todo Improve\r\n * @important\r\n */\r\nvar ClockHand = /** @class */ (function (_super) {\r\n __extends(ClockHand, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ClockHand() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * An Axis hand is related to.\r\n */\r\n _this._axis = new MutableValueDisposer();\r\n _this.className = \"ClockHand\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.stroke = _this.fill;\r\n var pin = new Circle();\r\n pin.radius = 5;\r\n _this.pin = pin;\r\n _this.isMeasured = false;\r\n _this.startWidth = 5;\r\n _this.endWidth = 1;\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.radius = percent(100);\r\n _this.innerRadius = percent(0);\r\n var hand = new Trapezoid();\r\n _this.hand = hand;\r\n _this._disposers.push(_this._axis);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Re(validates) the clock hand, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ClockHand.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n var hand = this.hand;\r\n hand.width = this.pixelWidth;\r\n var h = Math.max(this.startWidth, this.endWidth);\r\n hand.height = h;\r\n hand.leftSide = percent(this.startWidth / h * 100);\r\n hand.rightSide = percent(this.endWidth / h * 100);\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n var x0 = $utils.relativeRadiusToValue(this.innerRadius, renderer.pixelRadius);\r\n var x1 = $utils.relativeRadiusToValue(this.radius, renderer.pixelRadius);\r\n hand.x = x0;\r\n hand.y = -h / 2;\r\n hand.width = x1 - x0;\r\n }\r\n };\r\n Object.defineProperty(ClockHand.prototype, \"pin\", {\r\n /**\r\n * @return Pin element\r\n */\r\n get: function () {\r\n return this._pin;\r\n },\r\n /**\r\n * A circle element used as hand's base. (pin)\r\n *\r\n * @param pin Pin element\r\n */\r\n set: function (pin) {\r\n if (this._pin) {\r\n this.removeDispose(this._pin);\r\n }\r\n if (pin) {\r\n this._pin = pin;\r\n pin.parent = this;\r\n this._disposers.push(pin);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"hand\", {\r\n /**\r\n * @return Hand element\r\n */\r\n get: function () {\r\n return this._hand;\r\n },\r\n /**\r\n * A trapezoid shape used for hand itself.\r\n *\r\n * The shape of the trapezoid is controlled by ClockHand's `startWidth` and\r\n * `endWidth` properties.\r\n *\r\n * Set `endWidth` to 1 (px) to make it pointy.\r\n *\r\n * @param hand Hand element\r\n */\r\n set: function (hand) {\r\n if (this._hand) {\r\n this.removeDispose(this._hand);\r\n }\r\n if (hand) {\r\n this._hand = hand;\r\n hand.parent = this;\r\n this._disposers.push(hand);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"radius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Radius of the hand's outer end. (tip)\r\n *\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(0)\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"innerRadius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Radius of the hand's inner end. (base)\r\n *\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @default Percent(0)\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"startWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startWidth\");\r\n },\r\n /**\r\n * Width, in pixels, of the clock hand's inner end. (base)\r\n *\r\n * @default 5\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"endWidth\", {\r\n /**\r\n * @return Width (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endWidth\");\r\n },\r\n /**\r\n * Width, in pixels, of the clock hand's outer end. (tip)\r\n *\r\n * @default 1\r\n * @param value Width (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"rotationDirection\", {\r\n /**\r\n * @return rotationDirection\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"rotationDirection\");\r\n },\r\n /**\r\n * Rotation direction\r\n *\r\n * @default any\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"rotationDirection\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Moves clock hand to particular value.\r\n *\r\n * If `duration` is set to a number in milliseconds, the hand will move\r\n * to the new position gracefully, rather than jumping rigth to it.\r\n *\r\n * Alternatively, you can also set `value` directly.\r\n *\r\n * @param value New value\r\n * @param duration Animation duration (ms)\r\n * @param easing Animation easing function\r\n */\r\n ClockHand.prototype.showValue = function (value, duration, easing) {\r\n this._value = value;\r\n if (value != undefined) {\r\n if (!$type.isNumber(duration)) {\r\n duration = 0;\r\n }\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n var newAngle = renderer.positionToAngle(this.axis.anyToPosition(value));\r\n var currentAngle = this.rotation;\r\n if (this.rotationDirection == \"clockWise\") {\r\n if (newAngle < currentAngle) {\r\n this.rotation = currentAngle - 360;\r\n }\r\n }\r\n if (this.rotationDirection == \"counterClockWise\") {\r\n if (newAngle > currentAngle) {\r\n this.rotation = currentAngle + 360;\r\n }\r\n }\r\n this.animate({ property: \"rotation\", to: newAngle }, duration, easing);\r\n }\r\n }\r\n };\r\n Object.defineProperty(ClockHand.prototype, \"currentPosition\", {\r\n /**\r\n * Returns hand's relative position on axis\r\n */\r\n get: function () {\r\n if (this.axis) {\r\n var renderer = this.axis.renderer;\r\n return renderer.angleToPosition(this.rotation);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this._value;\r\n },\r\n /**\r\n * A current value clock hand is pointing to.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.showValue(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClockHand.prototype, \"axis\", {\r\n /**\r\n * @return Axis\r\n */\r\n get: function () {\r\n return this._axis.get();\r\n },\r\n /**\r\n * An Axis clock hand is associated with.\r\n *\r\n * Hand's `value` relates to values on the Axis.\r\n *\r\n * @param axis Axis\r\n */\r\n set: function (axis) {\r\n if (this.axis != axis) {\r\n this._axis.set(axis, new MultiDisposer([\r\n axis.events.on(\"datavalidated\", this.updateValue, this, false),\r\n axis.events.on(\"datarangechanged\", this.updateValue, this, false),\r\n axis.events.on(\"dataitemsvalidated\", this.updateValue, this, false),\r\n axis.events.on(\"propertychanged\", this.invalidate, this, false)\r\n ]));\r\n }\r\n if (axis) {\r\n var chart = axis.chart;\r\n if (chart) {\r\n this.rotation = chart.startAngle;\r\n }\r\n }\r\n this.parent = axis.renderer;\r\n this.zIndex = 5;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Triggers `value` accessor, so that Hand animates to new position, in case\r\n * value has changed.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ClockHand.prototype.updateValue = function () {\r\n this.value = this.value;\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n ClockHand.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Connect clock hands with axes\r\n if ($type.hasValue(config.axis) && $type.isString(config.axis) && this.map.hasKey(config.axis)) {\r\n config.axis = this.map.getKey(config.axis);\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return ClockHand;\r\n}(Container));\r\nexport { ClockHand };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ClockHand\"] = ClockHand;\r\n//# sourceMappingURL=ClockHand.js.map","/**\r\n * Module for building Gauge charts.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadarChart, RadarChartDataItem } from \"./RadarChart\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { ClockHand } from \"../elements/ClockHand\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[GaugeChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar GaugeChartDataItem = /** @class */ (function (_super) {\r\n __extends(GaugeChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function GaugeChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"GaugeChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return GaugeChartDataItem;\r\n}(RadarChartDataItem));\r\nexport { GaugeChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Gauge chart.\r\n *\r\n * @see {@link IGaugeChartEvents} for a list of available Events\r\n * @see {@link IGaugeChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/gauge-chart/} for documentation\r\n * @important\r\n */\r\nvar GaugeChart = /** @class */ (function (_super) {\r\n __extends(GaugeChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function GaugeChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"GaugeChart\";\r\n _this.startAngle = 180;\r\n _this.endAngle = 360;\r\n _this.hands = new ListTemplate(new ClockHand());\r\n _this.hands.events.on(\"inserted\", _this.processHand, _this, false);\r\n _this._disposers.push(new ListDisposer(_this.hands));\r\n _this._disposers.push(_this.hands.template);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n GaugeChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Gauge chart\");\r\n }\r\n };\r\n /**\r\n * Decorates a [[ClockHand]] when it is added to the chart.\r\n *\r\n * @param event Event\r\n */\r\n GaugeChart.prototype.processHand = function (event) {\r\n var hand = event.newValue;\r\n if (!hand.axis) {\r\n hand.axis = this.xAxes.getIndex(0);\r\n }\r\n };\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n GaugeChart.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Must come last\r\n else if (a == \"hands\") {\r\n return 1;\r\n }\r\n else if (b == \"hands\") {\r\n return -1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n return GaugeChart;\r\n}(RadarChart));\r\nexport { GaugeChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GaugeChart\"] = GaugeChart;\r\n//# sourceMappingURL=GaugeChart.js.map","/**\r\n * Defines Percent Chart Series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Series, SeriesDataItem } from \"./Series\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $ease from \"../../core/utils/Ease\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo: sequenced?\r\n/**\r\n * Defines a [[DataItem]] for [[PercentSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PercentSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(PercentSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PercentSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PercentSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Adds an `id` attribute the the slice element and returns its id.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PercentSeriesDataItem.prototype.uidAttr = function () {\r\n return this.slice.uidAttr();\r\n };\r\n /**\r\n * Hide the data item (and corresponding visual elements).\r\n *\r\n * @param duration Duration (ms)\r\n * @param delay Delay hiding (ms)\r\n * @param toValue Target value for animation\r\n * @param fields Fields to animate while hiding\r\n */\r\n PercentSeriesDataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n if (!fields) {\r\n fields = [\"value\"];\r\n }\r\n return _super.prototype.hide.call(this, duration, delay, 0, fields);\r\n };\r\n /**\r\n * Sets visibility of the Data Item.\r\n *\r\n * @param value Data Item\r\n */\r\n PercentSeriesDataItem.prototype.setVisibility = function (value, noChangeValues) {\r\n if (!noChangeValues) {\r\n if (value) {\r\n this.setWorkingValue(\"value\", this.values[\"value\"].value, 0, 0);\r\n }\r\n else {\r\n this.setWorkingValue(\"value\", 0, 0, 0);\r\n }\r\n }\r\n _super.prototype.setVisibility.call(this, value, noChangeValues);\r\n };\r\n /**\r\n * Show hidden data item (and corresponding visual elements).\r\n *\r\n * @param duration Duration (ms)\r\n * @param delay Delay hiding (ms)\r\n * @param fields Fields to animate while hiding\r\n */\r\n PercentSeriesDataItem.prototype.show = function (duration, delay, fields) {\r\n if (!fields) {\r\n fields = [\"value\"];\r\n }\r\n return _super.prototype.show.call(this, duration, delay, fields);\r\n };\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"category\", {\r\n /**\r\n * @return Category\r\n */\r\n get: function () {\r\n return this.properties.category;\r\n },\r\n /**\r\n * Category.\r\n *\r\n * @param value Category\r\n */\r\n set: function (value) {\r\n this.setProperty(\"category\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates a marker used in the legend for this slice.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Marker container\r\n */\r\n PercentSeriesDataItem.prototype.createLegendMarker = function (marker) {\r\n this.component.createLegendMarker(marker, this);\r\n };\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Legend data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * A legend's data item, that corresponds to this data item.\r\n *\r\n * @param value Legend data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n if (value.label) {\r\n value.label.dataItem = this;\r\n }\r\n if (value.valueLabel) {\r\n value.valueLabel.dataItem = this;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"tick\", {\r\n /**\r\n * A Tick element, related to this data item. (slice)\r\n *\r\n * @readonly\r\n * @return Tick element\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._tick) {\r\n var tick_1 = this.component.ticks.create();\r\n this._tick = tick_1;\r\n this.addSprite(tick_1);\r\n this._disposers.push(tick_1);\r\n tick_1.parent = this.component.ticksContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.ticks.removeValue(tick_1);\r\n }\r\n }));\r\n tick_1.visible = this.visible;\r\n }\r\n return this._tick;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"label\", {\r\n /**\r\n * A Label element, related to this data item. (slice)\r\n *\r\n * @readonly\r\n * @return Label element\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._label) {\r\n var label_1 = this.component.labels.create();\r\n this.addSprite(label_1);\r\n this._label = label_1;\r\n this._disposers.push(label_1);\r\n label_1.parent = this.component.labelsContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.labels.removeValue(label_1);\r\n }\r\n }));\r\n label_1.visible = this.visible;\r\n }\r\n return this._label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"slice\", {\r\n /**\r\n * An element, related to this data item. (slice)\r\n *\r\n * @readonly\r\n * @return Slice element\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._slice) {\r\n var component_1 = this.component;\r\n var slice_1 = component_1.slices.create();\r\n this.addSprite(slice_1);\r\n this._slice = slice_1;\r\n this._disposers.push(slice_1);\r\n slice_1.parent = component_1.slicesContainer;\r\n this._disposers.push(new Disposer(function () {\r\n component_1.slices.removeValue(slice_1);\r\n }));\r\n slice_1.visible = this.visible;\r\n // Apply accessibility\r\n if (component_1.itemsFocusable()) {\r\n if (!$type.hasValue(this.component.role)) {\r\n this.component.role = \"menu\";\r\n }\r\n if (!$type.hasValue(slice_1.role)) {\r\n slice_1.role = \"menuitem\";\r\n }\r\n slice_1.focusable = true;\r\n }\r\n else {\r\n if (!$type.hasValue(this.component.role)) {\r\n this.component.role = \"list\";\r\n }\r\n if (!$type.hasValue(slice_1.role)) {\r\n slice_1.role = \"listitem\";\r\n }\r\n slice_1.focusable = false;\r\n }\r\n // Apply screen reader label\r\n if (slice_1.focusable) {\r\n slice_1.events.on(\"focus\", function (ev) {\r\n slice_1.readerTitle = component_1.populateString(component_1.itemReaderText, _this);\r\n }, undefined, false);\r\n slice_1.events.on(\"blur\", function (ev) {\r\n slice_1.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n if (slice_1.hoverable) {\r\n slice_1.events.on(\"over\", function (ev) {\r\n slice_1.readerTitle = component_1.populateString(component_1.itemReaderText, _this);\r\n }, undefined, false);\r\n slice_1.events.on(\"out\", function (ev) {\r\n slice_1.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n }\r\n return this._slice;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeriesDataItem.prototype, \"hiddenInLegend\", {\r\n /**\r\n * @return Disabled in legend?\r\n */\r\n get: function () {\r\n return this.properties.hiddenInLegend;\r\n },\r\n /**\r\n * Should dataItem (slice) be hidden in legend?\r\n *\r\n * @param value Visible in legend?\r\n */\r\n set: function (value) {\r\n this.setProperty(\"hiddenInLegend\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PercentSeriesDataItem;\r\n}(SeriesDataItem));\r\nexport { PercentSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[PercentSeries]] which is a base class for [[PieSeries]],\r\n * [[FunnelSeries]], and [[PyramidSeries]].\r\n *\r\n * @see {@link IPercentSeriesEvents} for a list of available Events\r\n * @see {@link IPercentSeriesAdapters} for a list of available Adapters\r\n */\r\nvar PercentSeries = /** @class */ (function (_super) {\r\n __extends(PercentSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PercentSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PercentSeries\";\r\n _this._addAllDataItems = false;\r\n _this.colors = new ColorSet();\r\n _this.colors.step = 1;\r\n _this.isMeasured = true;\r\n _this.calculatePercent = true;\r\n var slicesContainer = _this.createChild(Container);\r\n slicesContainer.shouldClone = false;\r\n slicesContainer.isMeasured = false;\r\n _this.slicesContainer = slicesContainer;\r\n var ticksContainer = _this.createChild(Container);\r\n ticksContainer.shouldClone = false;\r\n ticksContainer.isMeasured = false;\r\n ticksContainer.layout = \"none\";\r\n _this.ticksContainer = ticksContainer;\r\n var labelsContainer = _this.createChild(Container);\r\n labelsContainer.shouldClone = false;\r\n labelsContainer.isMeasured = false;\r\n labelsContainer.layout = \"none\";\r\n _this.labelsContainer = labelsContainer;\r\n _this.alignLabels = false;\r\n _this.bulletsContainer.toFront();\r\n // Make all slices focusable\r\n _this.skipFocusThreshold = 50;\r\n var defaultState = _this.defaultState;\r\n defaultState.transitionEasing = $ease.sinOut;\r\n // Accessibility\r\n _this.itemReaderText = \"{category}: {value.percent.formatNumber('#.#p')}\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creates a slice element.\r\n *\r\n * @return Slice\r\n */\r\n PercentSeries.prototype.createSlice = function () {\r\n return new Sprite();\r\n };\r\n /**\r\n * Creates a tick element.\r\n *\r\n * @return Tick\r\n */\r\n PercentSeries.prototype.createTick = function () {\r\n return new Tick();\r\n };\r\n /**\r\n * Sreates label element.\r\n *\r\n * @return label\r\n */\r\n PercentSeries.prototype.createLabel = function () {\r\n return new Label();\r\n };\r\n Object.defineProperty(PercentSeries.prototype, \"slices\", {\r\n /**\r\n * A list of slice elements for the series.\r\n *\r\n * Use its `template` to configure look and behavior of the slices. E.g.:\r\n *\r\n * ```TypeScript\r\n * series.slices.template.stroke = am4core.color(\"#fff\");\r\n * series.slices.template.strokeWidth = 2;\r\n * ```\r\n * ```JavaScript\r\n * series.slices.template.stroke = am4core.color(\"#fff\");\r\n * series.slices.template.strokeWidth = 2;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"slices\": {\r\n * \"stroke\": \"#fff\",\r\n * \"strokeWidth\": 2\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n * @return Slices\r\n */\r\n get: function () {\r\n if (!this._slices) {\r\n var slice = this.createSlice();\r\n slice.applyOnClones = true;\r\n this._disposers.push(slice);\r\n this.initSlice(slice);\r\n this._slices = new ListTemplate(slice);\r\n this._disposers.push(new ListDisposer(this._slices));\r\n }\r\n return this._slices;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeries.prototype, \"ticks\", {\r\n /**\r\n * A list of tick elements for the series. Ticks connect slice to its label.\r\n *\r\n * Use its `template` to configure look and behavior of the ticks. E.g.:\r\n *\r\n * ```TypeScript\r\n * series.ticks.template.strokeWidth = 2;\r\n * ```\r\n * ```JavaScript\r\n * series.ticks.template.strokeWidth = 2;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"ticks\": {\r\n * \"strokeWidth\": 2\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n * @return Ticks\r\n */\r\n get: function () {\r\n if (!this._ticks) {\r\n var tick = this.createTick();\r\n tick.applyOnClones = true;\r\n this._disposers.push(tick);\r\n this.initTick(tick);\r\n this._ticks = new ListTemplate(tick);\r\n this._disposers.push(new ListDisposer(this._ticks));\r\n }\r\n return this._ticks;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeries.prototype, \"labels\", {\r\n /**\r\n * A list of slice label elements for the series.\r\n *\r\n * Use its `template` to configure look and behavior of the labels. E.g.:\r\n *\r\n * ```TypeScript\r\n * series.labels.template.fill = am4core.color(\"#c00\");\r\n * series.labels.template.fontSize = 20;\r\n * ```\r\n * ```JavaScript\r\n * series.labels.template.fill = am4core.color(\"#c00\");\r\n * series.labels.template.fontSize = 20;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"labels\": {\r\n * \"stroke\": \"#c00\",\r\n * \"fontSize\": 20\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n * @return Labels\r\n */\r\n get: function () {\r\n if (!this._labels) {\r\n var label = this.createLabel();\r\n label.applyOnClones = true;\r\n this._disposers.push(label);\r\n this.initLabel(label);\r\n this._labels = new ListTemplate(label);\r\n this._disposers.push(new ListDisposer(this._labels));\r\n }\r\n return this._labels;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n PercentSeries.prototype.createDataItem = function () {\r\n return new PercentSeriesDataItem();\r\n };\r\n /**\r\n * Creates and returns a new slice element.\r\n *\r\n * @param sliceType Type of the slice element\r\n * @return Slice\r\n */\r\n PercentSeries.prototype.initSlice = function (slice) {\r\n };\r\n PercentSeries.prototype.initLabel = function (label) {\r\n label.text = \"{category}: {value.percent.formatNumber('#.0p')}\";\r\n label.isMeasured = false;\r\n label.padding(5, 5, 5, 5);\r\n };\r\n PercentSeries.prototype.initTick = function (label) {\r\n };\r\n /**\r\n * Validates (processes) data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PercentSeries.prototype.validateDataItems = function () {\r\n this.colors.reset();\r\n if (this.patterns) {\r\n this.patterns.reset();\r\n }\r\n _super.prototype.validateDataItems.call(this);\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n PercentSeries.prototype.validateDataElement = function (dataItem) {\r\n var slice = dataItem.slice;\r\n if (slice) {\r\n if (slice.fill == undefined) {\r\n if (this.patterns) {\r\n if (!$type.hasValue(slice.stroke)) {\r\n slice.stroke = this.colors.next();\r\n }\r\n slice.fill = this.patterns.next();\r\n if ($type.hasValue(slice.fillOpacity)) {\r\n slice.fill.backgroundOpacity = slice.fillOpacity;\r\n }\r\n if (slice.stroke instanceof Color) {\r\n slice.fill.stroke = slice.stroke;\r\n slice.fill.fill = slice.stroke;\r\n }\r\n }\r\n else {\r\n slice.fill = this.colors.next();\r\n }\r\n }\r\n else {\r\n this.colors.currentStep += this.colors.step;\r\n }\r\n if (slice.stroke == undefined) {\r\n slice.stroke = slice.fill;\r\n }\r\n }\r\n // do this at the end, otherwise bullets won't be positioned properly\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n if (slice) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n if (bullet.fill == undefined) {\r\n bullet.fill = slice.fill;\r\n }\r\n if (bullet.stroke == undefined) {\r\n bullet.stroke = slice.stroke;\r\n }\r\n });\r\n }\r\n this.updateLegendValue(dataItem);\r\n };\r\n /**\r\n * Validates (processes) data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PercentSeries.prototype.validateData = function () {\r\n _super.prototype.validateData.call(this);\r\n if (this.chart) {\r\n this.chart.feedLegend();\r\n }\r\n };\r\n /**\r\n * Arranges slice labels according to position settings.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItems Data items\r\n */\r\n PercentSeries.prototype.arrangeLabels = function (dataItems) {\r\n for (var i = 0, len = dataItems.length; i < len; i++) {\r\n var dataItem = dataItems[i];\r\n var label = dataItem.label;\r\n if (label) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n var lh = label.measuredHeight;\r\n if (!label.visible) {\r\n lh = 0;\r\n }\r\n if (label.pixelY - lh / 2 < -this.maxHeight / 2) {\r\n label.y = -this.maxHeight / 2 + lh / 2;\r\n }\r\n var nextLabel = this.getNextLabel(i + 1, dataItems);\r\n var bottom = label.pixelY + lh / 2;\r\n if (nextLabel) {\r\n if (nextLabel.invalid) {\r\n nextLabel.validate();\r\n }\r\n var nextLabelHeight = nextLabel.measuredHeight;\r\n if (!nextLabel.visible) {\r\n nextLabelHeight = 0;\r\n }\r\n var nextLabelY = nextLabel.pixelY;\r\n if (nextLabelY == null) {\r\n nextLabelY = 0;\r\n }\r\n if (nextLabelY - nextLabelHeight / 2 < bottom) {\r\n nextLabel.y = bottom + nextLabelHeight / 2;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n PercentSeries.prototype.arrangeLabels2 = function (dataItems) {\r\n var previousTop = this.maxHeight / 2;\r\n for (var i = dataItems.length - 1; i >= 0; i--) {\r\n var dataItem = dataItems[i];\r\n var label = dataItem.label;\r\n if (label) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n var lh = label.measuredHeight;\r\n if (!label.visible) {\r\n lh = 0;\r\n }\r\n //if (i == dataItems.length - 1) {\r\n //previousTop += lh / 2;\r\n //}\r\n if (label.pixelY + lh / 2 > previousTop) {\r\n label.y = previousTop - lh / 2;\r\n previousTop = label.y - lh / 2;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the next label according to `index`.\r\n *\r\n * @param index Current index\r\n * @param dataItems Data items\r\n * @return Label element\r\n */\r\n PercentSeries.prototype.getNextLabel = function (index, dataItems) {\r\n if (dataItems.length >= index) {\r\n var nextDataItem = dataItems[index];\r\n if (nextDataItem) {\r\n if (nextDataItem.label) {\r\n if (nextDataItem.visible) {\r\n return nextDataItem.label;\r\n }\r\n else {\r\n return this.getNextLabel(index + 1, dataItems);\r\n }\r\n }\r\n else {\r\n return this.getNextLabel(index + 1, dataItems);\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(PercentSeries.prototype, \"colors\", {\r\n /**\r\n * @return Color set\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"colors\");\r\n },\r\n /**\r\n * A color set to be used for slices.\r\n *\r\n * For each new subsequent slice, the chart will assign the next color in\r\n * this set.\r\n *\r\n * @param value Color set\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"colors\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PercentSeries.prototype, \"patterns\", {\r\n /**\r\n * @return Pattern set\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"patterns\");\r\n },\r\n /**\r\n * A [[PatternSet]] to use when creating patterned fills for slices.\r\n *\r\n * @since 4.7.5\r\n * @param value Pattern set\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"patterns\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Binds related legend data item's visual settings to this series' visual\r\n * settings.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Container\r\n * @param dataItem Data item\r\n */\r\n PercentSeries.prototype.createLegendMarker = function (marker, dataItem) {\r\n $iter.each(marker.children.iterator(), function (child) {\r\n var slice = dataItem.slice;\r\n child.defaultState.properties.fill = slice.fill;\r\n child.defaultState.properties.stroke = slice.stroke;\r\n child.defaultState.properties.fillOpacity = slice.fillOpacity;\r\n child.defaultState.properties.strokeOpacity = slice.strokeOpacity;\r\n child.fill = slice.fill;\r\n child.stroke = slice.stroke;\r\n child.fillOpacity = slice.fillOpacity;\r\n child.strokeOpacity = slice.strokeOpacity;\r\n if (child.fill == undefined) {\r\n child.__disabled = true;\r\n }\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = slice.fill;\r\n legendDataItem.colorOrig = slice.fill;\r\n child.addDisposer(slice.events.on(\"propertychanged\", function (ev) {\r\n if (ev.property == \"fill\") {\r\n child.__disabled = false;\r\n if (!child.isActive) {\r\n child.fill = slice.fill;\r\n }\r\n child.defaultState.properties.fill = slice.fill;\r\n legendDataItem.color = slice.fill;\r\n legendDataItem.colorOrig = slice.fill;\r\n }\r\n if (ev.property == \"stroke\") {\r\n if (!child.isActive) {\r\n child.stroke = slice.stroke;\r\n }\r\n child.defaultState.properties.stroke = slice.stroke;\r\n }\r\n if (ev.property == \"strokeOpacity\") {\r\n if (!child.isActive) {\r\n child.strokeOpacity = slice.strokeOpacity;\r\n }\r\n child.defaultState.properties.strokeOpacity = slice.strokeOpacity;\r\n }\r\n }, undefined, false));\r\n });\r\n };\r\n /**\r\n * Repositions bullets when slice's size changes.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n PercentSeries.prototype.handleSliceScale = function (event) {\r\n var _this = this;\r\n var slice = event.target;\r\n var dataItem = slice.dataItem;\r\n if (dataItem && dataItem.bullets) {\r\n $iter.each(dataItem.bullets.iterator(), function (a) {\r\n var value = a[1];\r\n _this.positionBullet(value);\r\n });\r\n }\r\n };\r\n /**\r\n * Repositions bullet and labels when slice moves.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n PercentSeries.prototype.handleSliceMove = function (event) {\r\n };\r\n /**\r\n * Copies all properties from another instance of [[PercentSeries]].\r\n *\r\n * @param source Source series\r\n */\r\n PercentSeries.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.slices.template.copyFrom(source.slices.template);\r\n this.labels.template.copyFrom(source.labels.template);\r\n this.ticks.template.copyFrom(source.ticks.template);\r\n this.colors = source.colors.clone();\r\n };\r\n Object.defineProperty(PercentSeries.prototype, \"alignLabels\", {\r\n /**\r\n * @return Align labels?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"alignLabels\");\r\n },\r\n /**\r\n * Align labels into nice vertical columns?\r\n *\r\n * This will ensure that labels never overlap with each other.\r\n *\r\n * Arranging labels into columns makes them more readble, and better user\r\n * experience.\r\n *\r\n * If set to `false` labels will be positioned at `label.radius` distance,\r\n * and may, in some cases, overlap.\r\n *\r\n * @default true\r\n * @param value Align labels?\r\n */\r\n set: function (value) {\r\n this.setAlignLabels(value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n PercentSeries.prototype.setAlignLabels = function (value) {\r\n this.setPropertyValue(\"alignLabels\", value, true);\r\n };\r\n Object.defineProperty(PercentSeries.prototype, \"ignoreZeroValues\", {\r\n /**\r\n * @return Ignore zero values\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"ignoreZeroValues\");\r\n },\r\n /**\r\n * If set to `true` the chart will not show slices with zero values.\r\n *\r\n * @default false\r\n * @since 4.7.9\r\n * @param value Ignore zero values\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"ignoreZeroValues\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates corresponding legend data item with current values.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n PercentSeries.prototype.updateLegendValue = function (dataItem) {\r\n if (dataItem) {\r\n var legendDataItem = dataItem.legendDataItem;\r\n var legendSettings = dataItem.legendSettings;\r\n if (legendDataItem && legendSettings) {\r\n if (legendSettings) {\r\n if (legendSettings.labelText) {\r\n legendDataItem.label.text = legendSettings.labelText;\r\n }\r\n if (legendSettings.itemLabelText) {\r\n legendDataItem.label.text = legendSettings.itemLabelText;\r\n }\r\n if (legendSettings.valueText) {\r\n legendDataItem.valueLabel.text = legendSettings.valueText;\r\n }\r\n if (legendSettings.itemValueText) {\r\n legendDataItem.valueLabel.text = legendSettings.itemValueText;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return PercentSeries;\r\n}(Series));\r\nexport { PercentSeries };\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PercentSeries\"] = PercentSeries;\r\nregistry.registeredClasses[\"PercentSeriesDataItem\"] = PercentSeriesDataItem;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Disable labels and ticks.\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.maybeXS,\r\n state: function (target, stateId) {\r\n if (target instanceof PercentSeries) {\r\n var state = target.states.create(stateId);\r\n var labelState = target.labels.template.states.create(stateId);\r\n labelState.properties.disabled = true;\r\n var tickState = target.ticks.template.states.create(stateId);\r\n tickState.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=PercentSeries.js.map","/**\r\n * Percent chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SerialChart, SerialChartDataItem } from \"./SerialChart\";\r\nimport { PercentSeries } from \"../series/PercentSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[PercentChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PercentChartDataItem = /** @class */ (function (_super) {\r\n __extends(PercentChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PercentChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PercentChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return PercentChartDataItem;\r\n}(SerialChartDataItem));\r\nexport { PercentChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This is a base class for \"percent-based\" chart types like Pie and Funnel.\r\n *\r\n * @see {@link IPercentChartEvents} for a list of available Events\r\n * @see {@link IPercentChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for Pie chart documentation\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for Sliced chart documentation\r\n */\r\nvar PercentChart = /** @class */ (function (_super) {\r\n __extends(PercentChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PercentChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"PercentChart\";\r\n _this.align = \"none\";\r\n _this.valign = \"none\";\r\n // so that the chart is always drawn, even the legend wants all the space\r\n _this.chartContainer.minHeight = 50;\r\n _this.chartContainer.minWidth = 50;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)validates chart data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PercentChart.prototype.validateData = function () {\r\n _super.prototype.validateData.call(this);\r\n this.feedLegend();\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n * @ignore\r\n */\r\n PercentChart.prototype.feedLegend = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var legendData_1 = [];\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (!series.hiddenInLegend) {\r\n $iter.each(series.dataItems.iterator(), function (dataItem) {\r\n if (!dataItem.hiddenInLegend) {\r\n legendData_1.push(dataItem);\r\n if (!dataItem.legendSettings) {\r\n dataItem.legendSettings = series.legendSettings;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n legend.data = legendData_1;\r\n legend.dataFields.name = \"category\";\r\n }\r\n };\r\n /**\r\n * Creates a new [[PercentSeries]].\r\n *\r\n * @return New series\r\n */\r\n PercentChart.prototype.createSeries = function () {\r\n return new PercentSeries();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n PercentChart.prototype.setLegend = function (legend) {\r\n _super.prototype.setLegend.call(this, legend);\r\n if (legend) {\r\n legend.labels.template.text = \"{category}\";\r\n legend.valueLabels.template.text = \"{value.percent.formatNumber('#.0p')}\";\r\n legend.itemContainers.template.events.on(\"over\", function (event) {\r\n var percentSeriesDataItem = event.target.dataItem.dataContext;\r\n if (percentSeriesDataItem.visible && !percentSeriesDataItem.isHiding) {\r\n var slice = percentSeriesDataItem.slice;\r\n slice.dispatchImmediately(\"over\");\r\n slice.isHover = true;\r\n slice.interactions.isRealHover = true;\r\n }\r\n });\r\n legend.itemContainers.template.events.on(\"out\", function (event) {\r\n var percentSeriesDataItem = event.target.dataItem.dataContext;\r\n var slice = percentSeriesDataItem.slice;\r\n slice.dispatchImmediately(\"out\");\r\n slice.isHover = false;\r\n });\r\n }\r\n };\r\n return PercentChart;\r\n}(SerialChart));\r\nexport { PercentChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @hidden\r\n */\r\nregistry.registeredClasses[\"PercentChart\"] = PercentChart;\r\nregistry.registeredClasses[\"PercentChartDataItem\"] = PercentChartDataItem;\r\n//# sourceMappingURL=PercentChart.js.map","/**\r\n * Pie tick module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an tick line for a pie slice connecting it to a related label.\r\n *\r\n * @see {@link IPieTickEvents} for a list of available events\r\n * @see {@link IPieTickAdapters} for a list of available Adapters\r\n */\r\nvar PieTick = /** @class */ (function (_super) {\r\n __extends(PieTick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieTick() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A label element this tick is attached to.\r\n */\r\n _this._label = new MutableValueDisposer();\r\n /**\r\n * A slice element this tick is attached to.\r\n */\r\n _this._slice = new MutableValueDisposer();\r\n _this.className = \"PieTick\";\r\n _this.element = _this.paper.add(\"polyline\");\r\n _this._disposers.push(_this._label);\r\n _this._disposers.push(_this._slice);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the tick element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieTick.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var slice = this.slice;\r\n var label = this.label;\r\n var series = slice.dataItem.component;\r\n if (slice && slice.radius > 0 && label && label.text) {\r\n var x0 = slice.dx + slice.slice.dx + slice.pixelX + slice.ix * slice.radius * slice.scale;\r\n var y0 = slice.dy + slice.slice.dy + slice.pixelY + slice.iy * slice.radiusY * slice.scale;\r\n var x1 = void 0;\r\n var y1 = void 0;\r\n var x2 = void 0;\r\n var y2 = void 0;\r\n if (series.alignLabels) {\r\n x1 = label.pixelX - this.length;\r\n y1 = label.pixelY;\r\n x2 = label.pixelX;\r\n y2 = y1;\r\n if (label.horizontalCenter == \"right\") {\r\n x1 += 2 * this.length;\r\n x2 = x1 - this.length;\r\n }\r\n }\r\n else {\r\n var r = label.pixelRadius(slice.radius);\r\n x1 = x0 + r * slice.ix;\r\n y1 = y0 + r * slice.iy;\r\n x2 = x1;\r\n y2 = y1;\r\n }\r\n this.element.attr({ \"points\": [x0, y0, x1, y1, x2, y2] });\r\n }\r\n };\r\n Object.defineProperty(PieTick.prototype, \"slice\", {\r\n /**\r\n * @return Slice\r\n */\r\n get: function () {\r\n return this._slice.get();\r\n },\r\n /**\r\n * Slice element tick is attached to.\r\n *\r\n * @param slice Slice\r\n */\r\n set: function (slice) {\r\n this._slice.set(slice, new MultiDisposer([\r\n slice.events.on(\"transformed\", this.invalidate, this),\r\n slice.events.on(\"validated\", this.invalidate, this)\r\n ]));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieTick.prototype, \"label\", {\r\n /**\r\n * @return Label\r\n */\r\n get: function () {\r\n return this._label.get();\r\n },\r\n /**\r\n * Label element tick is attached to.\r\n *\r\n * @param label Label\r\n */\r\n set: function (label) {\r\n this._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PieTick;\r\n}(Tick));\r\nexport { PieTick };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieTick\"] = PieTick;\r\n//# sourceMappingURL=PieTick.js.map","/**\r\n * Defines Pie Chart Series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentSeries, PercentSeriesDataItem } from \"./PercentSeries\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\n//import { Slice3D } from \"../../core/elements/3D/Slice3D\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { PieTick } from \"../elements/PieTick\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo: sequenced?\r\n/**\r\n * Defines a [[DataItem]] for [[PieSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PieSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(PieSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieSeriesDataItem\";\r\n _this.values.radiusValue = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(PieSeriesDataItem.prototype, \"radiusValue\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.values.radiusValue.value;\r\n },\r\n /**\r\n * Slice's radius, if other than default.\r\n *\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setValue(\"radiusValue\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Hide the data item (and corresponding visual elements).\r\n *\r\n * @param duration Duration (ms)\r\n * @param delay Delay hiding (ms)\r\n * @param toValue Target value for animation\r\n * @param fields Fields to animate while hiding\r\n */\r\n PieSeriesDataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n return _super.prototype.hide.call(this, duration, delay, 0, [\"value\", \"radiusValue\"]);\r\n };\r\n /**\r\n * Show hidden data item (and corresponding visual elements).\r\n *\r\n * @param duration Duration (ms)\r\n * @param delay Delay hiding (ms)\r\n * @param fields Fields to animate while hiding\r\n */\r\n PieSeriesDataItem.prototype.show = function (duration, delay, fields) {\r\n return _super.prototype.show.call(this, duration, delay, [\"value\", \"radiusValue\"]);\r\n };\r\n return PieSeriesDataItem;\r\n}(PercentSeriesDataItem));\r\nexport { PieSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a slice series on a Pie chart.\r\n *\r\n * @see {@link IPieSeriesEvents} for a list of available Events\r\n * @see {@link IPieSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar PieSeries = /** @class */ (function (_super) {\r\n __extends(PieSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieSeries\";\r\n _this.alignLabels = true;\r\n //this.startAngle = -90;\r\n //this.endAngle = 270;\r\n _this.layout = \"none\";\r\n _this.labels.template.radius = percent(5);\r\n _this.addDisposer(_this.labels.template.events.on(\"enabled\", _this.invalidate, _this, false));\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * creates slice\r\n */\r\n PieSeries.prototype.createSlice = function () {\r\n return new Slice();\r\n };\r\n /**\r\n * creates tick\r\n */\r\n PieSeries.prototype.createTick = function () {\r\n return new PieTick();\r\n };\r\n /**\r\n * creates label\r\n */\r\n PieSeries.prototype.createLabel = function () {\r\n return new AxisLabelCircular();\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n PieSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Pie Slice Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n PieSeries.prototype.createDataItem = function () {\r\n return new PieSeriesDataItem();\r\n };\r\n /**\r\n * Inits slice.\r\n *\r\n * @param slice to init\r\n */\r\n PieSeries.prototype.initSlice = function (slice) {\r\n slice.isMeasured = false;\r\n slice.defaultState.properties.scale = 1;\r\n slice.observe(\"scale\", this.handleSliceScale, this);\r\n slice.observe([\"dx\", \"dy\", \"x\", \"y\", \"shiftRadius\"], this.handleSliceMove, this);\r\n slice.tooltipText = \"{category}: {value.percent.formatNumber('#.#p')} ({value.value})\";\r\n var hoverState = slice.states.create(\"hover\");\r\n hoverState.properties.scale = 1.05;\r\n var defaultState = slice.defaultState;\r\n defaultState.properties.shiftRadius = 0;\r\n slice.togglable = true;\r\n slice.events.on(\"toggled\", function (event) {\r\n event.target.hideTooltip();\r\n // The following takes care of removing hover on subsequent click of\r\n // a slice\r\n if (event.target.interactions.lastHitPointer\r\n && event.target.interactions.lastHitPointer.touch\r\n && !event.target.isActive) {\r\n event.target.isHover = false;\r\n }\r\n });\r\n var activeState = slice.states.create(\"active\");\r\n activeState.properties.shiftRadius = 0.10;\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieSeries.prototype.validate = function () {\r\n this._leftItems = [];\r\n this._rightItems = [];\r\n this._currentStartAngle = this.startAngle;\r\n this._arcRect = $math.getArcRect(this.startAngle, this.endAngle);\r\n this._maxRadiusPercent = 0;\r\n for (var i = this.startIndex; i < this.endIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n var radiusValuePercent = dataItem.values.radiusValue.percent;\r\n if (radiusValuePercent > this._maxRadiusPercent) {\r\n this._maxRadiusPercent = radiusValuePercent;\r\n }\r\n }\r\n _super.prototype.validate.call(this);\r\n if (this.alignLabels) {\r\n if (this.startAngle > this.endAngle) {\r\n this._rightItems.reverse();\r\n }\r\n else {\r\n this._leftItems.reverse();\r\n }\r\n this._rightItems.sort(function (a, b) {\r\n var aAngle = (a.slice.middleAngle + 360) % 360;\r\n var bAngle = (b.slice.middleAngle + 360) % 360;\r\n if (aAngle > 270) {\r\n aAngle -= 360;\r\n }\r\n if (bAngle > 270) {\r\n bAngle -= 360;\r\n }\r\n if (aAngle < bAngle) {\r\n return -1;\r\n }\r\n else if (aAngle > bAngle) {\r\n return 1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n this._leftItems.sort(function (a, b) {\r\n var aAngle = (a.slice.middleAngle + 360) % 360;\r\n var bAngle = (b.slice.middleAngle + 360) % 360;\r\n if (aAngle < bAngle) {\r\n return 1;\r\n }\r\n else if (aAngle > bAngle) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n this.arrangeLabels(this._rightItems);\r\n this.arrangeLabels2(this._rightItems);\r\n this.arrangeLabels(this._leftItems);\r\n this.arrangeLabels2(this._leftItems);\r\n }\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n PieSeries.prototype.validateDataElement = function (dataItem) {\r\n if (this.pixelRadius > 0) {\r\n if (this.ignoreZeroValues && (dataItem.value == 0 || dataItem.value == null)) {\r\n dataItem.__disabled = true;\r\n }\r\n else {\r\n dataItem.__disabled = false;\r\n }\r\n // SLICE\r\n var slice = dataItem.slice;\r\n slice.radius = this.pixelRadius;\r\n if ($type.isNumber(dataItem.radiusValue)) {\r\n slice.radius = this.pixelInnerRadius + (this.pixelRadius - this.pixelInnerRadius) * dataItem.values.radiusValue.percent / this._maxRadiusPercent;\r\n }\r\n if (!(slice.innerRadius instanceof Percent)) {\r\n slice.innerRadius = this.pixelInnerRadius;\r\n }\r\n slice.startAngle = this._currentStartAngle;\r\n slice.arc = Math.abs(dataItem.values.value.percent) * (this.endAngle - this.startAngle) / 100;\r\n // LABEL\r\n if (!this.labels.template.disabled) {\r\n var label = dataItem.label;\r\n var tick = dataItem.tick;\r\n tick.slice = slice;\r\n tick.label = label;\r\n var normalizedMiddleAngle = (slice.middleAngle + 360) % 360; // force angle to be 0 - 360;\r\n var point = void 0;\r\n if (this.alignLabels) {\r\n var labelRadius = label.pixelRadius(slice.radius);\r\n var x = tick.length + labelRadius;\r\n label.dx = 0;\r\n label.dy = 0;\r\n label.verticalCenter = \"middle\";\r\n var arcRect = this._arcRect;\r\n // right half\r\n if (normalizedMiddleAngle > 270 || normalizedMiddleAngle <= 90) {\r\n x += (arcRect.width + arcRect.x) * this.pixelRadius;\r\n label.horizontalCenter = \"left\";\r\n this._rightItems.push(dataItem);\r\n }\r\n // left half\r\n else {\r\n x -= arcRect.x * this.pixelRadius;\r\n label.horizontalCenter = \"right\";\r\n this._leftItems.push(dataItem);\r\n x *= -1;\r\n }\r\n var distance = slice.radius + tick.length + labelRadius;\r\n point = { x: x, y: slice.iy * distance };\r\n label.moveTo(point);\r\n }\r\n else {\r\n var depth = slice[\"depth\"];\r\n if (!$type.isNumber(depth)) {\r\n depth = 0;\r\n }\r\n label.fixPosition(slice.middleAngle, slice.radius, slice.radiusY, 0, -depth);\r\n }\r\n }\r\n this._currentStartAngle += slice.arc;\r\n // do this at the end, otherwise bullets won't be positioned properly\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n }\r\n };\r\n Object.defineProperty(PieSeries.prototype, \"radius\", {\r\n /**\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius for the series' slices in pixels or [[Percent]].\r\n *\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"radius\", value, true, false, 10, false)) {\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries.prototype, \"pixelRadius\", {\r\n /**\r\n * @return Radius\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._pixelRadius;\r\n },\r\n /**\r\n * @ignore\r\n */\r\n set: function (value) {\r\n if (this._pixelRadius != value) {\r\n this._pixelRadius = value;\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * @return Pixel inner radius\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._pixelInnerRadius;\r\n },\r\n /**\r\n * @ignore\r\n */\r\n set: function (value) {\r\n if (this._pixelInnerRadius != value) {\r\n this._pixelInnerRadius = value;\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries.prototype, \"innerRadius\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius for the series' slices in pixels.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Redo so that users can set it\r\n * @param value Radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries.prototype, \"startAngle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n var startAngle = this.getPropertyValue(\"startAngle\");\r\n if ($type.isNumber(startAngle)) {\r\n return startAngle;\r\n }\r\n else {\r\n return this._startAngleInternal;\r\n }\r\n },\r\n /**\r\n * Start angle for the series' slices in degrees. (0-360)\r\n *\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", $math.normalizeAngle(value), true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries.prototype, \"endAngle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n var endAngle = this.getPropertyValue(\"endAngle\");\r\n if ($type.isNumber(endAngle)) {\r\n return endAngle;\r\n }\r\n else {\r\n return this._endAngleInternal;\r\n }\r\n },\r\n /**\r\n * End angle for the series' slices in degrees. (0-360)\r\n *\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions series bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet Bullet\r\n */\r\n PieSeries.prototype.positionBullet = function (bullet) {\r\n _super.prototype.positionBullet.call(this, bullet);\r\n var dataItem = bullet.dataItem;\r\n var slice = dataItem.slice;\r\n var locationX = bullet.locationX;\r\n if (!$type.isNumber(locationX)) {\r\n locationX = 0.5;\r\n }\r\n var locationY = bullet.locationY;\r\n if (!$type.isNumber(locationY)) {\r\n locationY = 1;\r\n }\r\n var angle = slice.startAngle + slice.arc * locationX;\r\n bullet.x = locationY * slice.radius * $math.cos(angle);\r\n bullet.y = locationY * slice.radiusY * $math.sin(angle);\r\n };\r\n /**\r\n * Repositions bullet and labels when slice moves.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n PieSeries.prototype.handleSliceMove = function (event) {\r\n if (!this.alignLabels) {\r\n var slice = event.target;\r\n var dataItem = slice.dataItem;\r\n // moving textelement, as label dx and dy are already employed for aligning\r\n //@labeltodo\r\n if (dataItem) {\r\n var label = dataItem.label;\r\n if (label) {\r\n label.dx = label.fdx + slice.dx + slice.pixelX;\r\n label.dy = label.fdy + slice.dy + slice.pixelY;\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(PieSeries.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n var chart = this.chart;\r\n if (chart) {\r\n return $math.getArcRect(chart.startAngle, chart.endAngle, this.pixelRadius);\r\n }\r\n return $math.getArcRect(this.startAngle, this.endAngle, this.pixelRadius);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PieSeries;\r\n}(PercentSeries));\r\nexport { PieSeries };\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieSeries\"] = PieSeries;\r\nregistry.registeredClasses[\"PieSeriesDataItem\"] = PieSeriesDataItem;\r\n//# sourceMappingURL=PieSeries.js.map","/**\r\n * Pie chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, PercentChartDataItem } from \"./PercentChart\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { PieSeries } from \"../series/PieSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[PieChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PieChartDataItem = /** @class */ (function (_super) {\r\n __extends(PieChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return PieChartDataItem;\r\n}(PercentChartDataItem));\r\nexport { PieChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Pie chart.\r\n *\r\n * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * let series = chart.series.push(new am4charts.PieSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"PieChart\");\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * var series = chart.series.push(new am4charts.PieSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"PieSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"value\": \"litres\",\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"Lithuania\",\r\n * \t\t\"litres\": 501.9\r\n * \t}, {\r\n * \t\t\"country\": \"Czechia\",\r\n * \t\t\"litres\": 301.9\r\n * \t}, {\r\n * \t\t\"country\": \"Ireland\",\r\n * \t\t\"litres\": 201.1\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"PieChart\");\r\n * ```\r\n *\r\n * @see {@link IPieChartEvents} for a list of available Events\r\n * @see {@link IPieChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for documentation\r\n * @important\r\n */\r\nvar PieChart = /** @class */ (function (_super) {\r\n __extends(PieChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"PieChart\";\r\n // Set defaults\r\n _this.innerRadius = 0;\r\n _this.radius = percent(80);\r\n _this.align = \"none\";\r\n _this.valign = \"none\";\r\n _this.startAngle = -90;\r\n _this.endAngle = 270;\r\n var seriesContainer = _this.seriesContainer;\r\n seriesContainer.isMeasured = true;\r\n seriesContainer.valign = \"middle\";\r\n seriesContainer.align = \"center\";\r\n seriesContainer.layout = \"absolute\";\r\n seriesContainer.width = undefined;\r\n seriesContainer.height = undefined;\r\n // so that the pie is always drawn, even the legend wants all the space\r\n _this.chartContainer.minHeight = 50;\r\n _this.chartContainer.minWidth = 50;\r\n _this.chartContainer.events.on(\"maxsizechanged\", _this.updateRadius, _this, false); // need this for the chart to change radius if legend is removed/disabled\r\n _this._disposers.push(_this.seriesContainer.events.on(\"positionchanged\", function () {\r\n _this.bulletsContainer.x = _this.seriesContainer.x;\r\n _this.bulletsContainer.y = _this.seriesContainer.y;\r\n }));\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n PieChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Pie chart\");\r\n }\r\n };\r\n /**\r\n * (Re)validates the chart, causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieChart.prototype.validateLayout = function () {\r\n _super.prototype.validateLayout.call(this);\r\n this.updateRadius();\r\n };\r\n /**\r\n * Decorates a new [[Series]] object with required parameters when it is\r\n * added to the chart.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n PieChart.prototype.handleSeriesAdded = function (event) {\r\n _super.prototype.handleSeriesAdded.call(this, event);\r\n this._chartPixelRadius = undefined;\r\n this.updateSeriesAngles();\r\n };\r\n PieChart.prototype.updateSeriesAngles = function () {\r\n var _this = this;\r\n this.series.each(function (series) {\r\n series._startAngleInternal = _this.startAngle;\r\n series._endAngleInternal = _this.endAngle;\r\n //series.defaultState.properties.startAngle = this.startAngle;\r\n //series.defaultState.properties.endAngle = this.endAngle;\r\n });\r\n };\r\n /**\r\n * Recalculates pie's radius, based on a number of criteria.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieChart.prototype.updateRadius = function () {\r\n var chartCont = this.chartContainer;\r\n var rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n var innerRect = { x: 0, y: 0, width: 0, height: 0 };\r\n var innerRadius = this.innerRadius;\r\n if (innerRadius instanceof Percent) {\r\n innerRect = $math.getArcRect(this.startAngle, this.endAngle, innerRadius.value);\r\n }\r\n // @todo handle this when innerRadius set in pixels (do it for radar also)\r\n rect = $math.getCommonRectangle([rect, innerRect]);\r\n var maxRadius = Math.min(chartCont.innerWidth / rect.width, chartCont.innerHeight / rect.height);\r\n if (!$type.isNumber(maxRadius)) {\r\n maxRadius = 0;\r\n }\r\n var chartRadius = $utils.relativeRadiusToValue(this.radius, maxRadius);\r\n var chartPixelInnerRadius = $utils.relativeRadiusToValue(this.innerRadius, maxRadius);\r\n var seriesRadius = (chartRadius - chartPixelInnerRadius) / this.series.length;\r\n if (chartRadius != this._chartPixelRadius || chartPixelInnerRadius != this._chartPixelInnerRadius) {\r\n this._chartPixelRadius = chartRadius;\r\n this._chartPixelInnerRadius = chartPixelInnerRadius;\r\n //@todo: make it possible to set series radius in percent\r\n $iter.each($iter.indexed(this.series.iterator()), function (a) {\r\n var i = a[0];\r\n var series = a[1];\r\n var radius = chartPixelInnerRadius + $utils.relativeRadiusToValue(series.radius, chartRadius - chartPixelInnerRadius);\r\n var innerRadius = chartPixelInnerRadius + $utils.relativeRadiusToValue(series.innerRadius, chartRadius - chartPixelInnerRadius);\r\n if (!$type.isNumber(radius)) {\r\n radius = chartPixelInnerRadius + seriesRadius * (i + 1);\r\n }\r\n if (!$type.isNumber(innerRadius)) {\r\n innerRadius = chartPixelInnerRadius + seriesRadius * i;\r\n }\r\n series.pixelRadius = radius;\r\n series.pixelInnerRadius = innerRadius;\r\n });\r\n this.seriesContainer.definedBBox = { x: chartRadius * rect.x, y: chartRadius * rect.y, width: chartRadius * rect.width, height: chartRadius * rect.height };\r\n this.seriesContainer.invalidateLayout();\r\n }\r\n };\r\n Object.defineProperty(PieChart.prototype, \"radius\", {\r\n /**\r\n * @return Radius (px or relative)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Sets radius of the pie chart.\r\n *\r\n * Setting to a number will mean a fixed pixel radius.\r\n *\r\n * Setting to an instance of [[Percent]] will mean a relative radius to\r\n * available space.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * // Set pie chart to be at 50% of the available space\r\n * pieChart.radius = am4core.percent(50);\r\n * ```\r\n * ```JavaScript\r\n * // Set pie chart to be at 50% of the available space\r\n * pieChart.radius = am4core.percent(50);\r\n * ```\r\n * ```JSON\r\n * {\r\n * // Set pie chart to be at 50% of the available space\r\n * \"radius\": \"50%\"\r\n * }\r\n * ```\r\n *\r\n * @default 80%\r\n * @param value Radius (px or relative)\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"radius\", value, true, false, 10, false)) {\r\n this.invalidateLayout();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieChart.prototype, \"innerRadius\", {\r\n /**\r\n * @return Relative inner radius (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Sets relative inner radius (to create a donut chart).\r\n *\r\n * Setting to a number will mean a fixed pixel radius.\r\n *\r\n * Setting to an instance of [[Percent]] will mean a relative radius to\r\n * available space.\r\n *\r\n * NOTE: it's not related to `radius`.\r\n *\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * // Set pie chart to be at 50% of the available space\r\n * pieChart.innerRadius = am4core.percent(50);\r\n * ```\r\n * ```JavaScript\r\n * // Set pie chart to be at 50% of the available space\r\n * pieChart.innerRadius = am4core.percent(50);\r\n * ```\r\n * ```JSON\r\n * {\r\n * // Set pie chart to be at 50% of the available space\r\n * \"innerRadius\": \"50%\"\r\n * }\r\n * ```\r\n *\r\n * @default 0\r\n * @param value Relative inner radius (0-1)\r\n * @todo Setting things like `innerRadius` modifies `slice.radius` and it then looks like it is not the same value as in default state\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates a new [[PieSeries]].\r\n *\r\n * @return New series\r\n */\r\n PieChart.prototype.createSeries = function () {\r\n return new PieSeries();\r\n };\r\n Object.defineProperty(PieChart.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Starting angle of the Pie circle. (degrees)\r\n *\r\n * Normally, a pie chart begins (the left side of the first slice is drawn)\r\n * at the top center. (at -90 degrees)\r\n *\r\n * You can use `startAngle` to change this setting.\r\n *\r\n * E.g. setting this to 0 will make the first slice be drawn to the right.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set to those lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a Pie chart that\r\n * looks like a quarter of a circle.\r\n *\r\n * NOTE: This setting is not supported in a 3D pie chart.\r\n *\r\n * @default -90\r\n * @param value Start angle (degrees)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startAngle\", value)) {\r\n this.updateRadius();\r\n this.updateSeriesAngles();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieChart.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * End angle of the Pie circle. (degrees)\r\n *\r\n * Normally, a pie chart ends (the right side of the last slice is drawn)\r\n * at the top center. (at 270 degrees)\r\n *\r\n * You can use `endAngle` to change this setting.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set to those lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a Pie chart that\r\n * looks like a quarter of a circle.\r\n *\r\n * NOTE: This setting is not supported in a 3D pie chart.\r\n *\r\n * @default 270\r\n * @param value End angle (degrees)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endAngle\", value)) {\r\n this.updateRadius();\r\n this.updateSeriesAngles();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PieChart;\r\n}(PercentChart));\r\nexport { PieChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieChart\"] = PieChart;\r\nregistry.registeredClasses[\"PieChartDataItem\"] = PieChartDataItem;\r\n//# sourceMappingURL=PieChart.js.map","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { PieSeries, PieSeriesDataItem } from \"../series/PieSeries\";\r\nimport { Slice3D } from \"../../core/elements/3d/Slice3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[PieSeries3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PieSeries3DDataItem = /** @class */ (function (_super) {\r\n __extends(PieSeries3DDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieSeries3DDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieSeries3DDataItem\";\r\n _this.values.depthValue = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(PieSeries3DDataItem.prototype, \"depthValue\", {\r\n /**\r\n * @return Depth\r\n */\r\n get: function () {\r\n return this.values[\"depthValue\"].value;\r\n },\r\n /**\r\n * Slice depth (height).\r\n *\r\n * @param value Depth\r\n */\r\n set: function (value) {\r\n this.setValue(\"depthValue\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PieSeries3DDataItem;\r\n}(PieSeriesDataItem));\r\nexport { PieSeries3DDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a slice series on a 3D pie chart.\r\n *\r\n * @see {@link IPieSeries3DEvents} for a list of available Events\r\n * @see {@link IPieSeries3DAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar PieSeries3D = /** @class */ (function (_super) {\r\n __extends(PieSeries3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieSeries3D() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieSeries3D\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n PieSeries3D.prototype.createDataItem = function () {\r\n return new PieSeries3DDataItem();\r\n };\r\n /**\r\n * creates slice\r\n */\r\n PieSeries3D.prototype.createSlice = function () {\r\n return new Slice3D();\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n PieSeries3D.prototype.validateDataElement = function (dataItem) {\r\n var slice = dataItem.slice;\r\n var depth = this.depth;\r\n if (!$type.isNumber(depth)) {\r\n depth = this.chart.depth;\r\n }\r\n var depthPercent = dataItem.values.depthValue.percent;\r\n if (!$type.isNumber(depthPercent)) {\r\n depthPercent = 100;\r\n }\r\n slice.depth = depthPercent * depth / 100;\r\n var angle = this.angle;\r\n if (!$type.isNumber(angle)) {\r\n angle = this.chart.angle;\r\n }\r\n slice.angle = angle;\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PieSeries3D.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n for (var i = this._workingStartIndex; i < this._workingEndIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n var slice = dataItem.slice;\r\n var startAngle = slice.startAngle;\r\n // find quarter\r\n //q0 || q1\r\n if ((startAngle >= -90 && startAngle < 90)) {\r\n slice.toFront();\r\n }\r\n //q2 || q3\r\n else if ((startAngle >= 90)) {\r\n slice.toBack();\r\n }\r\n }\r\n };\r\n Object.defineProperty(PieSeries3D.prototype, \"depth\", {\r\n /**\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth (height) of the pie slice in pixels.\r\n *\r\n * @param value Depth (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"depth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSeries3D.prototype, \"angle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * Angle of the view point of the 3D pie. (0-360)\r\n *\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions series bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet Bullet\r\n */\r\n PieSeries3D.prototype.positionBullet = function (bullet) {\r\n _super.prototype.positionBullet.call(this, bullet);\r\n var dataItem = bullet.dataItem;\r\n var slice = dataItem.slice;\r\n bullet.y = bullet.pixelY - slice.depth;\r\n };\r\n return PieSeries3D;\r\n}(PieSeries));\r\nexport { PieSeries3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieSeries3D\"] = PieSeries3D;\r\nregistry.registeredClasses[\"PieSeries3DDataItem\"] = PieSeries3DDataItem;\r\n//# sourceMappingURL=PieSeries3D.js.map","/**\r\n * 3D Pie chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * Imports\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PieChart, PieChartDataItem } from \"./PieChart\";\r\nimport { PieSeries3D } from \"../series/PieSeries3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[PieChart3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PieChart3DDataItem = /** @class */ (function (_super) {\r\n __extends(PieChart3DDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieChart3DDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PieChart3DDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return PieChart3DDataItem;\r\n}(PieChartDataItem));\r\nexport { PieChart3DDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a 3D Pie chart.\r\n *\r\n * * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.Pie3DChart);\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * let series = chart.series.push(new am4charts.Pie3DSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.Pie3DChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"Pie3DChart\");\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * var series = chart.series.push(new am4charts.Pie3DSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"Pie3DSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"value\": \"litres\",\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"Lithuania\",\r\n * \t\t\"litres\": 501.9\r\n * \t}, {\r\n * \t\t\"country\": \"Czechia\",\r\n * \t\t\"litres\": 301.9\r\n * \t}, {\r\n * \t\t\"country\": \"Ireland\",\r\n * \t\t\"litres\": 201.1\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"Pie3DChart\");\r\n * ```\r\n *\r\n * @see {@link IPieChart3DEvents} for a list of available Events\r\n * @see {@link IPieChart3DAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for documentation\r\n * @important\r\n */\r\nvar PieChart3D = /** @class */ (function (_super) {\r\n __extends(PieChart3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PieChart3D() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"PieChart3D\";\r\n _this.depth = 20;\r\n _this.angle = 10;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(PieChart3D.prototype, \"depth\", {\r\n /**\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth of the 3D pie in pixels.\r\n *\r\n * This will determine \"height\" of the pie.\r\n *\r\n * @default 20\r\n * @param value Depth (px)\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"depth\", value)) {\r\n this.invalidateDataUsers();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieChart3D.prototype, \"angle\", {\r\n /**\r\n * @return Angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * An angle of a \"point of view\" in degrees. Possible range 0 - 90.\r\n *\r\n * @default 10\r\n * @param value Angle (degrees)\r\n */\r\n set: function (value) {\r\n value = $math.fitToRange(value, 0, 90);\r\n if (this.setPropertyValue(\"angle\", value)) {\r\n this.invalidateDataUsers();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates and returns a new Series.\r\n *\r\n * @return New series\r\n */\r\n PieChart3D.prototype.createSeries = function () {\r\n return new PieSeries3D();\r\n };\r\n return PieChart3D;\r\n}(PieChart));\r\nexport { PieChart3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieChart3D\"] = PieChart3D;\r\n//# sourceMappingURL=PieChart3D.js.map","/**\r\n * Sliced chart module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, PercentChartDataItem } from \"./PercentChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[SlicedChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar SlicedChartDataItem = /** @class */ (function (_super) {\r\n __extends(SlicedChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SlicedChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SlicedChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return SlicedChartDataItem;\r\n}(PercentChartDataItem));\r\nexport { SlicedChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Sliced chart.\r\n *\r\n * @see {@link ISlicedChartEvents} for a list of available Events\r\n * @see {@link ISlicedChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar SlicedChart = /** @class */ (function (_super) {\r\n __extends(SlicedChart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SlicedChart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"SlicedChart\";\r\n _this.seriesContainer.layout = \"horizontal\";\r\n _this.padding(15, 15, 15, 15);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n SlicedChart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Sliced chart\");\r\n }\r\n };\r\n /**\r\n * (Re)validates the chart, causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SlicedChart.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n };\r\n return SlicedChart;\r\n}(PercentChart));\r\nexport { SlicedChart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SlicedChart\"] = SlicedChart;\r\nregistry.registeredClasses[\"SlicedChartDataItem\"] = SlicedChartDataItem;\r\n//# sourceMappingURL=SlicedChart.js.map","/**\r\n * FlowDiagramNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $string from \"../../core/utils/String\";\r\nimport * as $order from \"../../core/utils/Order\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { LegendSettings } from \"../Legend\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Flow Diagram.\r\n *\r\n * A Flow node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[FlowLink]] elements.\r\n *\r\n * @see {@link IFlowDiagramNodeEvents} for a list of available events\r\n * @see {@link IFlowDiagramNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar FlowDiagramNode = /** @class */ (function (_super) {\r\n __extends(FlowDiagramNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagramNode() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Settings for the appearance of the related legend items.\r\n */\r\n _this.legendSettings = new LegendSettings();\r\n _this.className = \"FlowDiagramNode\";\r\n _this.isMeasured = false;\r\n // TODO can this be removed ?\r\n new InterfaceColorSet();\r\n _this.draggable = true;\r\n _this.inert = true;\r\n _this.setStateOnChildren = true;\r\n _this.events.on(\"positionchanged\", _this.invalidateLinks, _this, false);\r\n _this.events.on(\"sizechanged\", _this.invalidateLinks, _this, false);\r\n return _this;\r\n //this.events.on(\"hit\", this.handleHit, this, false);\r\n }\r\n /**\r\n * @ignore\r\n */\r\n FlowDiagramNode.prototype.handleHit = function (event) {\r\n if (this.isHidden || this.isHiding) {\r\n this.show();\r\n }\r\n else {\r\n this.hide();\r\n }\r\n };\r\n /**\r\n * Shows hidden node.\r\n *\r\n * @param duration Duration of reveal animation (ms)\r\n * @return Animation\r\n */\r\n FlowDiagramNode.prototype.show = function (duration) {\r\n var animation = _super.prototype.show.call(this, duration);\r\n this.outgoingDataItems.each(function (dataItem) {\r\n if (!dataItem.toNode || (dataItem.toNode && !dataItem.toNode.isHidden)) {\r\n dataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n dataItem.link.show();\r\n }\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n if (!dataItem.fromNode || (dataItem.fromNode && !dataItem.fromNode.isHidden)) {\r\n dataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n dataItem.link.show();\r\n }\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Hides node.\r\n *\r\n * @param duration Duration of hiding animation (ms)\r\n * @return Animation\r\n */\r\n FlowDiagramNode.prototype.hide = function (duration) {\r\n var animation = _super.prototype.hide.call(this, duration);\r\n this.outgoingDataItems.each(function (dataItem) {\r\n dataItem.setWorkingValue(\"value\", 0, duration);\r\n dataItem.link.hide();\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n dataItem.setWorkingValue(\"value\", 0, duration);\r\n dataItem.link.hide();\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Marks node as invalid, for redrawal in the next update cycle.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramNode.prototype.validate = function () {\r\n if (!this.isDisposed()) {\r\n _super.prototype.validate.call(this);\r\n this.invalidateLinks();\r\n }\r\n };\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n this.outgoingDataItems.each(function (dataItem) {\r\n var link = dataItem.link;\r\n if (link.colorMode == \"fromNode\") {\r\n link.fill = link.dataItem.fromNode.color;\r\n }\r\n if (link.colorMode == \"gradient\") {\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n var stop_1 = link.gradient.stops.getIndex(0);\r\n if (stop_1) {\r\n stop_1.color = _this.color;\r\n link.gradient.validate();\r\n }\r\n }\r\n });\r\n this.incomingDataItems.each(function (dataItem) {\r\n var link = dataItem.link;\r\n if (link.colorMode == \"toNode\") {\r\n link.fill = link.dataItem.toNode.color;\r\n }\r\n if (link.colorMode == \"gradient\") {\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n var stop_2 = link.gradient.stops.getIndex(1);\r\n if (stop_2) {\r\n stop_2.color = _this.color;\r\n link.gradient.validate();\r\n }\r\n }\r\n });\r\n };\r\n Object.defineProperty(FlowDiagramNode.prototype, \"incomingDataItems\", {\r\n /**\r\n * List of incoming items (links).\r\n *\r\n * @readonly\r\n * @return Incoming items\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._incomingDataItems) {\r\n var incomingDataItems = new List();\r\n incomingDataItems.events.on(\"inserted\", function () {\r\n if (_this.chart.sortBy == \"name\") {\r\n _this._incomingSorted = $iter.sort(_this._incomingDataItems.iterator(), function (x, y) { return $string.order(x.fromName, y.fromName); });\r\n }\r\n else if (_this.chart.sortBy == \"value\") {\r\n _this._incomingSorted = $iter.sort(_this._incomingDataItems.iterator(), function (x, y) { return $order.reverse($number.order(x.value, y.value)); });\r\n }\r\n else {\r\n _this._incomingSorted = _this._incomingDataItems.iterator();\r\n }\r\n }, undefined, false);\r\n this._incomingDataItems = incomingDataItems;\r\n }\r\n return this._incomingDataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"outgoingDataItems\", {\r\n /**\r\n * List of outgoing items (links).\r\n *\r\n * @readonly\r\n * @return Outgoing items\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._outgoingDataItems) {\r\n var outgoingDataItems = new List();\r\n outgoingDataItems.events.on(\"inserted\", function () {\r\n if (_this.chart.sortBy == \"name\") {\r\n _this._outgoingSorted = $iter.sort(_this._outgoingDataItems.iterator(), function (x, y) { return $string.order(x.fromName, y.fromName); });\r\n }\r\n else if (_this.chart.sortBy == \"value\") {\r\n _this._outgoingSorted = $iter.sort(_this._outgoingDataItems.iterator(), function (x, y) { return $order.reverse($number.order(x.value, y.value)); });\r\n }\r\n else {\r\n _this._outgoingSorted = _this._outgoingDataItems.iterator();\r\n }\r\n }, undefined, false);\r\n this._outgoingDataItems = outgoingDataItems;\r\n }\r\n return this._outgoingDataItems;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"name\");\r\n },\r\n /**\r\n * A name of the node.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"name\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"total\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"total\");\r\n },\r\n /**\r\n * Sum of all incoming+outgoing link values\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"total\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"totalIncoming\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"totalIncoming\");\r\n },\r\n /**\r\n * Sum of all incomming link values.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"totalIncoming\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"totalOutgoing\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"totalOutgoing\");\r\n },\r\n /**\r\n * Sum of all outgoing link values.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"totalOutgoing\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramNode.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"color\");\r\n },\r\n /**\r\n * Node's color.\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.setColorProperty(\"color\", value);\r\n if (this._background) {\r\n this._background.fill = value;\r\n }\r\n this.fill = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n FlowDiagramNode.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(RoundedRectangle);\r\n column.shouldClone = false;\r\n $object.copyProperties(this, column, visualProperties);\r\n column.stroke = this.fill;\r\n column.copyFrom(this);\r\n column.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n column.width = w;\r\n column.height = h;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.fill;\r\n legendDataItem.colorOrig = column.fill;\r\n };\r\n Object.defineProperty(FlowDiagramNode.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * Legend data item that corresponds to this series.\r\n *\r\n * @param value Data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n this._legendDataItem.itemContainer.deepInvalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlowDiagramNode;\r\n}(Container));\r\nexport { FlowDiagramNode };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagramNode\"] = FlowDiagramNode;\r\n//# sourceMappingURL=FlowDiagramNode.js.map","/**\r\n * FlowDiagramLink module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Polyline } from \"../../core/elements/Polyline\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Flow Diagram.\r\n *\r\n * @see {@link IFlowDiagramLinkEvents} for a list of available events\r\n * @see {@link IFlowDiagramLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar FlowDiagramLink = /** @class */ (function (_super) {\r\n __extends(FlowDiagramLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagramLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FlowDiagramLink\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.maskBullets = false;\r\n _this.colorMode = \"fromNode\";\r\n _this.layout = \"none\";\r\n _this.isMeasured = false;\r\n _this.startAngle = 0;\r\n _this.endAngle = 0;\r\n _this.strokeOpacity = 0;\r\n // this is very important, otherwise the container will be shifted\r\n _this.verticalCenter = \"none\";\r\n _this.horizontalCenter = \"none\";\r\n _this.tooltipText = \"{fromName}→{toName}:{value.value}\";\r\n _this.tooltipLocation = 0.5;\r\n _this.link = _this.createChild(Sprite);\r\n _this.link.shouldClone = false;\r\n _this.link.setElement(_this.paper.add(\"path\"));\r\n _this.link.isMeasured = false;\r\n _this.fillOpacity = 0.2;\r\n _this.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Positions bullets\r\n * @ignore\r\n */\r\n FlowDiagramLink.prototype.positionBullets = function () {\r\n var _this = this;\r\n $iter.each(this.bullets.iterator(), function (bullet) {\r\n bullet.parent = _this.bulletsContainer;\r\n bullet.maxWidth = _this.maxWidth;\r\n bullet.maxHeight = _this.maxHeight;\r\n _this.positionBullet(bullet);\r\n });\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bulletsContainer\", {\r\n /**\r\n * Bullets container\r\n */\r\n get: function () {\r\n if (!this._bulletsContainer) {\r\n var bulletsContainer = this.createChild(Container);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.layout = \"none\";\r\n this._bulletsContainer = bulletsContainer;\r\n }\r\n return this._bulletsContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bulletsMask\", {\r\n /**\r\n * Bullets mask sprite\r\n */\r\n get: function () {\r\n if (!this._bulletsMask) {\r\n var bulletsMask = this.createChild(Sprite);\r\n bulletsMask.shouldClone = false;\r\n bulletsMask.setElement(this.paper.add(\"path\"));\r\n bulletsMask.isMeasured = false;\r\n this._bulletsMask = bulletsMask;\r\n }\r\n return this._bulletsMask;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions bullets at relative bullet.locationX position on the link.\r\n * @ignore\r\n */\r\n FlowDiagramLink.prototype.positionBullet = function (bullet) {\r\n var location = bullet.locationX;\r\n if (!$type.isNumber(location)) {\r\n location = bullet.locationY;\r\n }\r\n if (!$type.isNumber(location)) {\r\n location = 0.5;\r\n }\r\n var point = this.middleLine.positionToPoint(location);\r\n bullet.moveTo(point);\r\n var rotationField = bullet.propertyFields.rotation;\r\n var angle;\r\n if (bullet.dataItem) {\r\n var dataContext = bullet.dataItem.dataContext;\r\n angle = dataContext[rotationField];\r\n }\r\n if (!$type.isNumber(angle)) {\r\n angle = point.angle;\r\n }\r\n bullet.rotation = angle;\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * [startAngle description]\r\n *\r\n * @todo Description\r\n * @param value Start angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * [endAngle description]\r\n *\r\n * @todo Description\r\n * @param value End angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"colorMode\", {\r\n /**\r\n * Fill mode\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"colorMode\");\r\n },\r\n /**\r\n * Should link be filled with a solid color, color of from node, color of toNode or gradient between node colors.\r\n * Some of the links, like ChordLink does not support gradiens well.\r\n *\r\n * @param value Fill mode\r\n */\r\n set: function (value) {\r\n if (value == \"gradient\") {\r\n var color = this.fill;\r\n this.gradient.stops.clear();\r\n if (color instanceof Color) {\r\n this.gradient.addColor(color);\r\n this.gradient.addColor(color);\r\n }\r\n this.fill = this.gradient;\r\n this.stroke = this.gradient;\r\n }\r\n this.setPropertyValue(\"colorMode\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"maskBullets\", {\r\n /**\r\n * @return mask bullets value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maskBullets\");\r\n },\r\n /**\r\n * Should link bullets be masked or not\r\n *\r\n * @param value\r\n * @default false\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maskBullets\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramLink.prototype, \"tooltipLocation\", {\r\n /**\r\n * Tooltip location value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tooltipLocation\");\r\n },\r\n /**\r\n * Relative location of a tooltip.\r\n * @default 0.5\r\n *\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tooltipLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Adds color steps in the link gradient.\r\n *\r\n * @param value Fill option\r\n */\r\n FlowDiagramLink.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n var gradient = this._gradient;\r\n if (gradient && value instanceof Color) {\r\n gradient.stops.clear();\r\n gradient.addColor(value);\r\n gradient.addColor(value);\r\n }\r\n };\r\n /**\r\n * Updates bounding box based on element dimension settings.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagramLink.prototype.measureElement = function () {\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"bullets\", {\r\n /**\r\n * List of bullets\r\n *\r\n * @return [description]\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._bullets) {\r\n this._bullets = new ListTemplate(new Bullet());\r\n this._disposers.push(new ListDisposer(this._bullets));\r\n this._disposers.push(this._bullets.template);\r\n this._bullets.events.on(\"inserted\", function (event) {\r\n event.newValue.events.on(\"propertychanged\", function (event) {\r\n if (event.property == \"locationX\" || event.property == \"locationY\") {\r\n _this.positionBullet(event.target);\r\n }\r\n }, undefined, false);\r\n }, undefined, false);\r\n }\r\n return this._bullets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties from another [[FlowDiagramLink]].\r\n *\r\n * @param source Source link\r\n */\r\n FlowDiagramLink.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.bullets.copyFrom(source.bullets);\r\n var middleLine = this.middleLine;\r\n if (middleLine) {\r\n if (middleLine instanceof Line && source.middleLine instanceof Line) {\r\n middleLine.copyFrom(source.middleLine);\r\n }\r\n if (middleLine instanceof Polyline && source.middleLine instanceof Polyline) {\r\n middleLine.copyFrom(source.middleLine);\r\n }\r\n }\r\n this.link.copyFrom(source.link);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Tooltip X (px)\r\n */\r\n FlowDiagramLink.prototype.getTooltipX = function () {\r\n if (this.middleLine) {\r\n return this.middleLine.positionToPoint(this.tooltipLocation).x;\r\n }\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Tooltip Y (px)\r\n */\r\n FlowDiagramLink.prototype.getTooltipY = function () {\r\n if (this.middleLine) {\r\n return this.middleLine.positionToPoint(this.tooltipLocation).y;\r\n }\r\n };\r\n Object.defineProperty(FlowDiagramLink.prototype, \"gradient\", {\r\n /**\r\n * A gradiend instance that is used to provided colored gradient fills for\r\n * the Flow link.\r\n */\r\n get: function () {\r\n if (!this._gradient) {\r\n this._gradient = new LinearGradient();\r\n }\r\n return this._gradient;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlowDiagramLink;\r\n}(Container));\r\nexport { FlowDiagramLink };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagramLink\"] = FlowDiagramLink;\r\n//# sourceMappingURL=FlowDiagramLink.js.map","/**\r\n * FlowDiagram module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Chart, ChartDataItem } from \"../Chart\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { DictionaryTemplate, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { FlowDiagramNode } from \"../elements/FlowDiagramNode\";\r\nimport { FlowDiagramLink } from \"../elements/FlowDiagramLink\";\r\nimport { LinearGradientModifier } from \"../../core/rendering/fills/LinearGradientModifier\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { toColor, Color } from \"../../core/utils/Color\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport * as $order from \"../../core/utils/Order\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo rearange notes after dragged\r\n/**\r\n * Defines a [[DataItem]] for [[FlowDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar FlowDiagramDataItem = /** @class */ (function (_super) {\r\n __extends(FlowDiagramDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagramDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FlowDiagramDataItem\";\r\n _this.values.value = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(FlowDiagramDataItem.prototype, \"fromName\", {\r\n /**\r\n * @return name\r\n */\r\n get: function () {\r\n return this.properties.fromName;\r\n },\r\n /**\r\n * Source node's name.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setProperty(\"fromName\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramDataItem.prototype, \"toName\", {\r\n /**\r\n * @return name\r\n */\r\n get: function () {\r\n return this.properties.toName;\r\n },\r\n /**\r\n * Destination node's name.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setProperty(\"toName\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramDataItem.prototype, \"color\", {\r\n /**\r\n * @return color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Node color\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setProperty(\"color\", toColor(value));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramDataItem.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.value.value;\r\n },\r\n /**\r\n * Link's value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"value\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagramDataItem.prototype, \"link\", {\r\n /**\r\n * A visual element, representing link between the source and target nodes.\r\n *\r\n * Link's actual thickness will be determined by `value` of this link and\r\n * `value` of the source node.\r\n *\r\n * @readonly\r\n * @return Link element\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._link) {\r\n var link_1 = this.component.links.create();\r\n this._link = link_1;\r\n this.addSprite(link_1);\r\n this._disposers.push(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.links.removeValue(link_1);\r\n }\r\n }));\r\n }\r\n return this._link;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlowDiagramDataItem;\r\n}(ChartDataItem));\r\nexport { FlowDiagramDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Pie chart\r\n * @see {@link IFlowDiagramEvents} for a list of available Events\r\n * @see {@link IFlowDiagramAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar FlowDiagram = /** @class */ (function (_super) {\r\n __extends(FlowDiagram, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FlowDiagram() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A Color Set to use when applying/generating colors for each subsequent\r\n * node.\r\n */\r\n _this.colors = new ColorSet();\r\n _this.className = \"FlowDiagram\";\r\n _this.nodePadding = 20;\r\n _this.sortBy = \"none\";\r\n _this.sequencedInterpolation = true;\r\n _this.colors.step = 2;\r\n _this.minNodeSize = 0.02;\r\n var linksContainer = _this.chartContainer.createChild(Container);\r\n linksContainer.shouldClone = false;\r\n linksContainer.layout = \"none\";\r\n linksContainer.isMeasured = false;\r\n _this.linksContainer = linksContainer;\r\n var nodesContainer = _this.chartContainer.createChild(Container);\r\n nodesContainer.shouldClone = false;\r\n nodesContainer.layout = \"none\";\r\n nodesContainer.isMeasured = false;\r\n _this.nodesContainer = nodesContainer;\r\n // this data item holds sums, averages, etc\r\n _this.dataItem = _this.createDataItem();\r\n _this.dataItem.component = _this;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n FlowDiagram.prototype.dispose = function () {\r\n _super.prototype.dispose.call(this);\r\n this.dataItem.dispose();\r\n };\r\n /**\r\n * (Re)validates chart's data, effectively causing the chart to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagram.prototype.validateData = function () {\r\n var _this = this;\r\n if (this._parseDataFrom == 0) {\r\n this.nodes.clear();\r\n }\r\n this.sortNodes();\r\n this.colors.reset();\r\n _super.prototype.validateData.call(this);\r\n var sum = 0;\r\n var count = 0;\r\n var low;\r\n var high;\r\n // build blocks\r\n $iter.each(this.dataItems.iterator(), function (dataItem) {\r\n var fromName = dataItem.fromName;\r\n if (fromName) {\r\n var node = _this.nodes.getKey(fromName);\r\n if (!node) {\r\n node = _this.nodes.create(fromName);\r\n node.name = fromName;\r\n node.chart = _this;\r\n node.dataItem = dataItem;\r\n }\r\n dataItem.fromNode = node;\r\n dataItem.fromNode.outgoingDataItems.push(dataItem);\r\n }\r\n var toName = dataItem.toName;\r\n if (toName) {\r\n var node = _this.nodes.getKey(toName);\r\n if (!node) {\r\n node = _this.nodes.create(toName);\r\n node.name = toName;\r\n node.chart = _this;\r\n node.dataItem = dataItem;\r\n }\r\n dataItem.toNode = node;\r\n dataItem.toNode.incomingDataItems.push(dataItem);\r\n }\r\n if (!dataItem.fromNode) {\r\n var strokeModifier = new LinearGradientModifier();\r\n strokeModifier.opacities = [0, 1];\r\n dataItem.link.strokeModifier = strokeModifier;\r\n }\r\n if (!dataItem.toNode) {\r\n var fillModifier = new LinearGradientModifier();\r\n fillModifier.opacities = [1, 0];\r\n dataItem.link.strokeModifier = fillModifier;\r\n }\r\n var value = dataItem.value;\r\n if ($type.isNumber(value)) {\r\n sum += value;\r\n count++;\r\n if (low > value || !$type.isNumber(low)) {\r\n low = value;\r\n }\r\n if (high < value || !$type.isNumber(high)) {\r\n high = value;\r\n }\r\n }\r\n });\r\n var key = \"value\";\r\n this.dataItem.setCalculatedValue(key, high, \"high\");\r\n this.dataItem.setCalculatedValue(key, low, \"low\");\r\n this.dataItem.setCalculatedValue(key, sum, \"sum\");\r\n this.dataItem.setCalculatedValue(key, sum / count, \"average\");\r\n this.dataItem.setCalculatedValue(key, count, \"count\");\r\n $iter.each(this.nodes.iterator(), function (strNode) {\r\n var node = strNode[1];\r\n if (node.fill instanceof Color) {\r\n node.color = node.fill;\r\n }\r\n if (node.color == undefined) {\r\n node.color = _this.colors.next();\r\n }\r\n if (node.dataItem.color != undefined) {\r\n node.color = node.dataItem.color;\r\n }\r\n if (!node.dataItem.visible) {\r\n node.hide(0);\r\n }\r\n _this.getNodeValue(node);\r\n });\r\n this.sortNodes();\r\n this.feedLegend();\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FlowDiagram.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n this.invalidate();\r\n };\r\n /**\r\n * Sorts nodes by either their values or names, based on `sortBy` setting.\r\n */\r\n FlowDiagram.prototype.sortNodes = function () {\r\n if (this.sortBy == \"name\") {\r\n this._sorted = this.nodes.sortedIterator();\r\n }\r\n else if (this.sortBy == \"value\") {\r\n this._sorted = $iter.sort(this.nodes.iterator(), function (x, y) { return $order.reverse($number.order(x[1].total, y[1].total)); });\r\n }\r\n else {\r\n this._sorted = this.nodes.iterator();\r\n }\r\n };\r\n /**\r\n * Updates a cummulative value of the node.\r\n *\r\n * A node's value is determined by summing values of all of the incoming\r\n * links or all of the outgoing links, whichever results in bigger number.\r\n *\r\n * @param node Node value\r\n */\r\n FlowDiagram.prototype.getNodeValue = function (node) {\r\n // todo: totalIncomming totalOutgoing, total\r\n var incomingTotal = 0;\r\n var outgoingTotal = 0;\r\n $iter.each(node.incomingDataItems.iterator(), function (dataItem) {\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n incomingTotal += value;\r\n }\r\n });\r\n $iter.each(node.outgoingDataItems.iterator(), function (dataItem) {\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n outgoingTotal += value;\r\n }\r\n });\r\n node.total = incomingTotal + outgoingTotal;\r\n node.totalIncoming = incomingTotal;\r\n node.totalOutgoing = outgoingTotal;\r\n };\r\n ;\r\n /**\r\n * Changes the sort type of the nodes.\r\n *\r\n * This will actually reshuffle nodes using nice animation.\r\n */\r\n FlowDiagram.prototype.changeSorting = function () {\r\n this.sortNodes();\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n FlowDiagram.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Flow diagram\");\r\n }\r\n };\r\n /**\r\n * Creates and returns a new data item.\r\n *\r\n * @return Data item\r\n */\r\n FlowDiagram.prototype.createDataItem = function () {\r\n return new FlowDiagramDataItem();\r\n };\r\n Object.defineProperty(FlowDiagram.prototype, \"nodePadding\", {\r\n /**\r\n * @return Padding (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"nodePadding\");\r\n },\r\n /**\r\n * Padding for node square in pixels.\r\n *\r\n * Padding will add extra space around node's name label.\r\n *\r\n * @param value Padding (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"nodePadding\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagram.prototype, \"sortBy\", {\r\n /**\r\n * @returns Node sorting\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"sortBy\");\r\n },\r\n /**\r\n * Sort nodes by \"name\" or \"value\" or do not sort at all. If not sorted, nodes will appear in the same order as they are in the data.\r\n * @default \"none\"\r\n * @param value Node sorting\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"sortBy\", value);\r\n this.changeSorting();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagram.prototype, \"minNodeSize\", {\r\n /**\r\n * @returns min node size\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minNodeSize\");\r\n },\r\n /**\r\n * Sometimes nodes can get very small if their value is little. With this setting you\r\n * can set min size of a node (this is relative value from the total size of all nodes)\r\n * @default 0.02\r\n * @param value Node sorting\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minNodeSize\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlowDiagram.prototype, \"nodes\", {\r\n /**\r\n * A list of chart's nodes.\r\n *\r\n * @param {DictionaryTemplate<string, this[\"_node\"]>}\r\n */\r\n get: function () {\r\n if (!this._nodes) {\r\n var template = this.createNode();\r\n template.events.on(\"hit\", function (event) {\r\n event.target.handleHit(event);\r\n });\r\n this._nodes = new DictionaryTemplate(template);\r\n this._disposers.push(new DictionaryDisposer(this._nodes));\r\n }\r\n return this._nodes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n FlowDiagram.prototype.createNode = function () {\r\n var node = new FlowDiagramNode();\r\n this._disposers.push(node);\r\n return node;\r\n };\r\n Object.defineProperty(FlowDiagram.prototype, \"links\", {\r\n /**\r\n * A list of chart's links.\r\n *\r\n * @param {ListTemplate<this[\"_link\"]>}\r\n */\r\n get: function () {\r\n if (!this._links) {\r\n this._links = new ListTemplate(this.createLink());\r\n this._disposers.push(new ListDisposer(this._links));\r\n }\r\n return this._links;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n FlowDiagram.prototype.createLink = function () {\r\n var link = new FlowDiagramLink();\r\n this._disposers.push(link);\r\n return link;\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n * @ignore\r\n */\r\n FlowDiagram.prototype.feedLegend = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var legendData_1 = [];\r\n this.nodes.each(function (key, node) {\r\n legendData_1.push(node);\r\n });\r\n legend.data = legendData_1;\r\n legend.dataFields.name = \"name\";\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n FlowDiagram.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n this.nodes.clear();\r\n };\r\n return FlowDiagram;\r\n}(Chart));\r\nexport { FlowDiagram };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagram\"] = FlowDiagram;\r\n//# sourceMappingURL=FlowDiagram.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar LabelBullet = /** @class */ (function (_super) {\r\n __extends(LabelBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LabelBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"LabelBullet\";\r\n var label = _this.createChild(Label);\r\n label.shouldClone = false;\r\n label.verticalCenter = \"middle\";\r\n label.horizontalCenter = \"middle\";\r\n label.truncate = true;\r\n label.hideOversized = false;\r\n label.maxWidth = 500;\r\n label.maxHeight = 500;\r\n label.stroke = color();\r\n label.strokeOpacity = 0;\r\n label.fill = new InterfaceColorSet().getFor(\"text\");\r\n _this.events.on(\"maxsizechanged\", _this.handleMaxSize, _this, false);\r\n _this.label = label;\r\n // not good, as lineSeries will have labels somewhere in the middle.\r\n //this.locationX = 0.5;\r\n //this.locationY = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n LabelBullet.prototype.handleMaxSize = function () {\r\n this.label.maxWidth = this.maxWidth;\r\n this.label.maxHeight = this.maxHeight;\r\n };\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[LabelBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n LabelBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.label.copyFrom(source.label);\r\n };\r\n return LabelBullet;\r\n}(Bullet));\r\nexport { LabelBullet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LabelBullet\"] = LabelBullet;\r\n//# sourceMappingURL=LabelBullet.js.map","/**\r\n * SankeyNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode } from \"./FlowDiagramNode\";\r\nimport { LabelBullet } from \"./LabelBullet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Sankey Diagram.\r\n *\r\n * A Sankey node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[SankeyLink]] elements.\r\n *\r\n * @see {@link ISankeyNodeEvents} for a list of available events\r\n * @see {@link ISankeyNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar SankeyNode = /** @class */ (function (_super) {\r\n __extends(SankeyNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyNode() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * [nextInCoord description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.nextInCoord = 0;\r\n /**\r\n * [nextOutCoord description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.nextOutCoord = 0;\r\n _this.className = \"SankeyNode\";\r\n _this.width = 10;\r\n _this.height = 10;\r\n var nameLabel = _this.createChild(LabelBullet);\r\n nameLabel.shouldClone = false;\r\n //@should we auto update these locations if position is changed?\r\n nameLabel.locationX = 1;\r\n nameLabel.locationY = 0.5;\r\n nameLabel.label.text = \"{name}\";\r\n //nameLabel.label.textElement.hideOversized = false;\r\n nameLabel.width = 150;\r\n nameLabel.height = 150;\r\n nameLabel.label.horizontalCenter = \"left\";\r\n nameLabel.label.padding(0, 5, 0, 5);\r\n _this.nameLabel = nameLabel;\r\n var valueLabel = _this.createChild(LabelBullet);\r\n valueLabel.shouldClone = false;\r\n valueLabel.label.hideOversized = false;\r\n valueLabel.locationX = 0.5;\r\n valueLabel.locationY = 0.5;\r\n valueLabel.width = 150;\r\n valueLabel.height = 150;\r\n //valueLabel.label.text = \"{value}\";\r\n valueLabel.label.horizontalCenter = \"middle\";\r\n _this.valueLabel = valueLabel;\r\n var hiddenState = _this.hiddenState;\r\n hiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n hiddenState.properties.opacity = 0.5;\r\n hiddenState.properties.visible = true;\r\n _this.background.hiddenState.copyFrom(hiddenState);\r\n return _this;\r\n }\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n _super.prototype.invalidateLinks.call(this);\r\n this.nextInCoord = 0;\r\n this.nextOutCoord = 0;\r\n var chart = this.chart;\r\n if (chart) {\r\n var orientation_1 = chart.orientation;\r\n if (this._incomingSorted) {\r\n $iter.each(this._incomingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n link.parent = _this.chart.linksContainer;\r\n var x = void 0;\r\n var y = void 0;\r\n var angle = void 0;\r\n if (orientation_1 == \"horizontal\") {\r\n x = _this.pixelX + _this.dx;\r\n y = _this.nextInCoord + _this.pixelY + _this.dy;\r\n angle = 0;\r\n }\r\n else {\r\n y = _this.pixelY + _this.dy;\r\n x = _this.nextInCoord + _this.pixelX + _this.dx;\r\n angle = 90;\r\n }\r\n link.endX = x;\r\n link.endY = y;\r\n link.startAngle = angle;\r\n link.endAngle = angle;\r\n link.gradient.rotation = angle;\r\n link.linkWidth = value * chart.valueHeight;\r\n if (!dataItem.fromNode) {\r\n if (orientation_1 == \"horizontal\") {\r\n link.maxWidth = 200;\r\n link.startX = _this.pixelX + _this.dx - link.maxWidth;\r\n link.startY = link.endY;\r\n }\r\n else {\r\n link.maxHeight = 200;\r\n link.startX = link.endX;\r\n link.startY = _this.pixelY + _this.dy - link.maxHeight;\r\n }\r\n // TODO is this needed ?\r\n $utils.used(link.gradient);\r\n link.fill = dataItem.toNode.color;\r\n var stop_1 = link.gradient.stops.getIndex(0);\r\n if (stop_1) {\r\n if (link.colorMode == \"gradient\") {\r\n stop_1.color = _this.color;\r\n }\r\n stop_1.opacity = 0;\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n link.gradient.validate();\r\n }\r\n }\r\n //link.validate();\r\n _this.nextInCoord += link.linkWidth;\r\n }\r\n });\r\n }\r\n if (this._outgoingSorted) {\r\n $iter.each(this._outgoingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.parent = _this.chart.linksContainer;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n var x = void 0;\r\n var y = void 0;\r\n var angle = void 0;\r\n if (orientation_1 == \"horizontal\") {\r\n angle = 0;\r\n x = _this.pixelX + _this.pixelWidth + _this.dx - 1;\r\n y = _this.nextOutCoord + _this.pixelY + _this.dy;\r\n }\r\n else {\r\n angle = 90;\r\n x = _this.nextOutCoord + _this.pixelX + _this.dx;\r\n y = _this.pixelY + _this.pixelHeight + _this.dy - 1;\r\n }\r\n link.startX = x;\r\n link.startY = y;\r\n link.startAngle = angle;\r\n link.endAngle = angle;\r\n link.gradient.rotation = angle;\r\n link.linkWidth = value * _this.chart.valueHeight;\r\n if (!dataItem.toNode) {\r\n if (orientation_1 == \"horizontal\") {\r\n link.maxWidth = 200;\r\n link.endX = _this.pixelX + link.maxWidth + _this.dx;\r\n link.endY = link.startY;\r\n }\r\n else {\r\n link.maxHeight = 200;\r\n link.endX = link.startX;\r\n link.endY = _this.pixelY + link.maxHeight + _this.dy;\r\n }\r\n link.opacity = _this.opacity;\r\n var stop_2 = link.gradient.stops.getIndex(1);\r\n if (stop_2) {\r\n if (link.colorMode == \"gradient\") {\r\n stop_2.color = _this.color;\r\n }\r\n stop_2.opacity = 0;\r\n link.fill = link.gradient;\r\n link.stroke = link.gradient;\r\n link.gradient.validate();\r\n }\r\n }\r\n //link.validate();\r\n _this.nextOutCoord += link.linkWidth;\r\n }\r\n });\r\n }\r\n }\r\n this.positionBullet(this.nameLabel);\r\n this.positionBullet(this.valueLabel);\r\n };\r\n /**\r\n * Positions the bullet so it is centered within the node element.\r\n *\r\n * @param bullet Target bullet\r\n */\r\n SankeyNode.prototype.positionBullet = function (bullet) {\r\n if (bullet) {\r\n bullet.x = this.measuredWidth * bullet.locationX;\r\n bullet.y = this.measuredHeight * bullet.locationY;\r\n }\r\n };\r\n Object.defineProperty(SankeyNode.prototype, \"level\", {\r\n /**\r\n * @return Level\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"level\");\r\n },\r\n /**\r\n * A level node is displayed at. (0 - ...)\r\n *\r\n * Levels are measured from left to right.\r\n *\r\n * The nodes in the left-most column will have `level = 0`.\r\n *\r\n * Nodes in second column - `level = 1`, etc.\r\n *\r\n * @param value Level\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"level\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies properties and labels from another [[SankeyNode]].\r\n *\r\n * @param source Source node\r\n */\r\n SankeyNode.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.nameLabel.copyFrom(source.nameLabel);\r\n this.valueLabel.copyFrom(source.valueLabel);\r\n };\r\n return SankeyNode;\r\n}(FlowDiagramNode));\r\nexport { SankeyNode };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyNode\"] = SankeyNode;\r\n//# sourceMappingURL=SankeyNode.js.map","/**\r\n * SankeyLink module\r\n */\r\nimport { __extends, __read } from \"tslib\";\r\nimport { FlowDiagramLink } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Polyspline } from \"../../core/elements/Polyspline\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link ISankeyLinkEvents} for a list of available events\r\n * @see {@link ISankeyLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar SankeyLink = /** @class */ (function (_super) {\r\n __extends(SankeyLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SankeyLink\";\r\n // TODO can this be removed ?\r\n new InterfaceColorSet();\r\n _this.tension = 0.8;\r\n _this.controlPointDistance = 0.2;\r\n _this.startAngle = 0;\r\n _this.endAngle = 0;\r\n _this.linkWidth = 0;\r\n _this.startX = 0;\r\n _this.endX = 0;\r\n _this.startY = 0;\r\n _this.endY = 0;\r\n _this.middleLine = _this.createChild(Polyspline);\r\n _this.middleLine.shouldClone = false;\r\n _this.middleLine.strokeOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n SankeyLink.prototype.makeBackwards = function () {\r\n if (this.states.getKey(\"backwards\") != undefined) {\r\n this.setState(\"backwards\");\r\n }\r\n };\r\n /**\r\n * (Re)validates (redraws) the link.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyLink.prototype.validate = function () {\r\n var _a, _b, _c, _d;\r\n _super.prototype.validate.call(this);\r\n if (!this.isTemplate) {\r\n var x0 = this.startX;\r\n var y0 = this.startY;\r\n var x1 = this.endX;\r\n var y1 = this.endY;\r\n if (this.states.getKey(\"backwards\")) {\r\n this.setState(\"default\");\r\n }\r\n if (this.dataItem) {\r\n var chart = this.dataItem.component;\r\n if (chart) {\r\n if (chart.orientation == \"horizontal\") {\r\n if (x1 < x0) {\r\n _a = __read([x1, x0], 2), x0 = _a[0], x1 = _a[1];\r\n _b = __read([y1, y0], 2), y0 = _b[0], y1 = _b[1];\r\n this.makeBackwards();\r\n }\r\n }\r\n else {\r\n if (y1 < y0) {\r\n _c = __read([y1, y0], 2), y0 = _c[0], y1 = _c[1];\r\n _d = __read([x1, x0], 2), x0 = _d[0], x1 = _d[1];\r\n this.makeBackwards();\r\n }\r\n }\r\n }\r\n }\r\n if (!$type.isNumber(x1)) {\r\n x1 = x0;\r\n }\r\n if (!$type.isNumber(y1)) {\r\n y1 = y0;\r\n }\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var w = this.linkWidth;\r\n var path = \"\";\r\n var xt0 = x0;\r\n var yt0 = y0;\r\n var xt1 = x1;\r\n var yt1 = y1;\r\n var xb0 = x0 + w * $math.sin(startAngle);\r\n var xb1 = x1 + w * $math.sin(endAngle);\r\n var yb0 = y0 + w * $math.cos(startAngle);\r\n var yb1 = y1 + w * $math.cos(endAngle);\r\n var xm0 = x0 + w / 2 * $math.sin(startAngle);\r\n var xm1 = x1 + w / 2 * $math.sin(endAngle);\r\n var ym0 = y0 + w / 2 * $math.cos(startAngle);\r\n var ym1 = y1 + w / 2 * $math.cos(endAngle);\r\n this.zIndex = this.zIndex || this.dataItem.index;\r\n var tensionX = this.tension + (1 - this.tension) * $math.sin(startAngle);\r\n var tensionY = this.tension + (1 - this.tension) * $math.cos(startAngle);\r\n this.middleLine.tensionX = tensionX;\r\n this.middleLine.tensionY = tensionY;\r\n if ($type.isNumber(w) && ($type.isNumber(x0) && $type.isNumber(x1) && $type.isNumber(y0) && $type.isNumber(y1))) {\r\n // solves issues with gradient fill of straight lines\r\n if ($math.round(xt0, 3) == $math.round(xt1, 3)) {\r\n xt1 += 0.01;\r\n }\r\n if ($math.round(yt0, 3) == $math.round(yt1, 3)) {\r\n yt1 += 0.01;\r\n }\r\n if ($math.round(xb0, 3) == $math.round(xb1, 3)) {\r\n xb1 += 0.01;\r\n }\r\n if ($math.round(yb0, 3) == $math.round(yb1, 3)) {\r\n yb1 += 0.01;\r\n }\r\n var minX = Math.min(xb0, xb1, xt0, xt1);\r\n var minY = Math.min(yb0, yb1, yt0, yt1);\r\n var maxX = Math.max(xb0, xb1, xt0, xt1);\r\n var maxY = Math.max(yb0, yb1, yt0, yt1);\r\n this._bbox = {\r\n x: minX,\r\n y: minY,\r\n width: maxX - minX,\r\n height: maxY - minY\r\n };\r\n var cpd = this.controlPointDistance;\r\n var kxt0 = xt0 + (xt1 - xt0) * cpd * $math.cos(startAngle);\r\n var kyt0 = yt0 + (yt1 - yt0) * cpd * $math.sin(startAngle);\r\n var kxt1 = xt1 - (xt1 - xt0) * cpd * $math.cos(endAngle);\r\n var kyt1 = yt1 - (yt1 - yt0) * cpd * $math.sin(endAngle);\r\n var kxm0 = xm0 + (xm1 - xm0) * cpd * $math.cos(startAngle);\r\n var kym0 = ym0 + (ym1 - ym0) * cpd * $math.sin(startAngle);\r\n var kxm1 = xm1 - (xm1 - xm0) * cpd * $math.cos(endAngle);\r\n var kym1 = ym1 - (ym1 - ym0) * cpd * $math.sin(endAngle);\r\n var angle = $math.getAngle({ x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 });\r\n var dx = (w / $math.cos(angle) - w) / $math.tan(angle) * $math.cos(startAngle);\r\n var dy = (w / $math.sin(angle) - w) * $math.tan(angle) * $math.sin(startAngle);\r\n var kxb0 = -dx / 2 + xb0 + (xb1 - xb0) * cpd * $math.cos(startAngle);\r\n var kyb0 = -dy / 2 + yb0 + (yb1 - yb0) * cpd * $math.sin(startAngle);\r\n var kxb1 = -dx / 2 + xb1 - (xb1 - xb0) * cpd * $math.cos(endAngle);\r\n var kyb1 = -dy / 2 + yb1 - (yb1 - yb0) * cpd * $math.sin(endAngle);\r\n if (ym1 == ym0) {\r\n ym1 += 0.01;\r\n }\r\n this.middleLine.segments = [[{ x: xm0, y: ym0 }, { x: kxm0, y: kym0 }, { x: kxm1, y: kym1 }, { x: xm1, y: ym1 }]];\r\n kxt0 += dx / 2;\r\n kyt0 += dy / 2;\r\n kxt1 += dx / 2;\r\n kyt1 += dy / 2;\r\n path += $path.moveTo({ x: xt0, y: yt0 });\r\n path += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xt0, y: yt0 }, { x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 }, { x: xt1, y: yt1 }]);\r\n path += $path.lineTo({ x: xb1, y: yb1 });\r\n path += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xb1, y: yb1 }, { x: kxb1, y: kyb1 }, { x: kxb0, y: kyb0 }, { x: xb0, y: yb0 }]);\r\n path += $path.closePath();\r\n }\r\n this.link.path = path;\r\n if (this.maskBullets) {\r\n this.bulletsMask.path = path;\r\n this.bulletsContainer.mask = this.bulletsMask;\r\n }\r\n this.positionBullets();\r\n }\r\n };\r\n Object.defineProperty(SankeyLink.prototype, \"startX\", {\r\n /**\r\n * @return Start X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startX\");\r\n },\r\n /**\r\n * [startX description]\r\n *\r\n * @todo Description\r\n * @param value Start X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"endX\", {\r\n /**\r\n * @return End X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endX\");\r\n },\r\n /**\r\n * [endX description]\r\n *\r\n * @todo Description\r\n * @param value End X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endX\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"startY\", {\r\n /**\r\n * @return Start Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startY\");\r\n },\r\n /**\r\n * [startY description]\r\n *\r\n * @todo Description\r\n * @param value Start Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"endY\", {\r\n /**\r\n * @return End Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endY\");\r\n },\r\n /**\r\n * [endY description]\r\n *\r\n * @todo Description\r\n * @param value End Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endY\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"linkWidth\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"linkWidth\");\r\n },\r\n /**\r\n * [linkWidth description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"linkWidth\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"controlPointDistance\", {\r\n /**\r\n * @return relative control point distance\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"controlPointDistance\");\r\n },\r\n /**\r\n * Distance of control point of a link, defines relative distance from a node at which linke should bend\r\n * @default 0.2\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"controlPointDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyLink.prototype, \"tension\", {\r\n /**\r\n * @return tension value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Tension of a spline, 1 would make the link to have sharp edges\r\n * @default 0.8\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return SankeyLink;\r\n}(FlowDiagramLink));\r\nexport { SankeyLink };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyLink\"] = SankeyLink;\r\n//# sourceMappingURL=SankeyLink.js.map","/**\r\n * Sankey diagram module.\r\n */\r\nimport { __extends, __read, __spread } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagram, FlowDiagramDataItem } from \"./FlowDiagram\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { SankeyNode } from \"../elements/SankeyNode\";\r\nimport { SankeyLink } from \"../elements/SankeyLink\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $object from \"../../core/utils/Object\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo rearange notes after dragged\r\n/**\r\n * Defines a [[DataItem]] for [[SankeyDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar SankeyDiagramDataItem = /** @class */ (function (_super) {\r\n __extends(SankeyDiagramDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyDiagramDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"SankeyDiagramDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return SankeyDiagramDataItem;\r\n}(FlowDiagramDataItem));\r\nexport { SankeyDiagramDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Sankey Diagram chart.\r\n *\r\n * @see {@link ISankeyDiagramEvents} for a list of available Events\r\n * @see {@link ISankeyDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sankey-diagram/} for documentation\r\n * @important\r\n */\r\nvar SankeyDiagram = /** @class */ (function (_super) {\r\n __extends(SankeyDiagram, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SankeyDiagram() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"SankeyDiagram\";\r\n _this.orientation = \"horizontal\";\r\n _this.nodeAlign = \"middle\";\r\n _this.nodesContainer.width = percent(100);\r\n _this.nodesContainer.height = percent(100);\r\n _this.linksContainer.width = percent(100);\r\n _this.linksContainer.height = percent(100);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)validates chart's data, effectively causing the chart to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyDiagram.prototype.validateData = function () {\r\n var _this = this;\r\n this._valueHeight = undefined;\r\n _super.prototype.validateData.call(this);\r\n this._levelCount = 0;\r\n this.nodes.each(function (key, node) {\r\n node.level = undefined;\r\n });\r\n this.nodes.each(function (key, node) {\r\n node.level = _this.getNodeLevel(node, 0);\r\n _this._levelCount = $math.max(_this._levelCount, node.level);\r\n });\r\n };\r\n /**\r\n * Returns node's highest level.\r\n *\r\n * @param node Node\r\n * @param level Current level\r\n * @return New level\r\n */\r\n SankeyDiagram.prototype.getNodeLevel = function (node, level) {\r\n var _this = this;\r\n var levels = [level];\r\n $iter.each(node.incomingDataItems.iterator(), function (link) {\r\n if (link.fromNode) {\r\n if ($type.isNumber(link.fromNode.level)) {\r\n levels.push(link.fromNode.level + 1);\r\n }\r\n else {\r\n _this._counter = 0;\r\n _this.checkLoop(link.fromNode);\r\n if (_this._counter < _this.dataItems.length) {\r\n levels.push(_this.getNodeLevel(link.fromNode, level + 1));\r\n }\r\n }\r\n }\r\n });\r\n return Math.max.apply(Math, __spread(levels));\r\n };\r\n /**\r\n * Checks if there's no loop in the ancestor chain.\r\n *\r\n * @param node Node\r\n */\r\n SankeyDiagram.prototype.checkLoop = function (node) {\r\n var _this = this;\r\n this._counter++;\r\n if (this._counter > this.dataItems.length) {\r\n return;\r\n }\r\n $iter.each(node.incomingDataItems.iterator(), function (link) {\r\n _this.checkLoop(link.fromNode);\r\n });\r\n };\r\n /**\r\n * Calculates relation between pixel height and total value.\r\n *\r\n * In Sankey the actual thickness of links and height of nodes will depend\r\n * on their values.\r\n */\r\n SankeyDiagram.prototype.calculateValueHeight = function () {\r\n var _this = this;\r\n // calculate sums of each level\r\n this._levelSum = {};\r\n this._levelNodesCount = {};\r\n this.maxSum = 0;\r\n var total = this.dataItem.values.value.sum;\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n _this.getNodeValue(node);\r\n });\r\n this.nodes.each(function (key, node) {\r\n var level = node.level;\r\n var value = Math.max(node.totalIncoming, node.totalOutgoing);\r\n if (value / total < _this.minNodeSize) {\r\n value = total * _this.minNodeSize;\r\n }\r\n if ($type.isNumber(_this._levelSum[level])) {\r\n _this._levelSum[level] += value;\r\n }\r\n else {\r\n _this._levelSum[level] = value;\r\n }\r\n if ($type.isNumber(_this._levelNodesCount[level])) {\r\n _this._levelNodesCount[level]++;\r\n }\r\n else {\r\n _this._levelNodesCount[level] = 1;\r\n }\r\n });\r\n var availableHeight;\r\n if (this.orientation == \"horizontal\") {\r\n availableHeight = this.chartContainer.maxHeight - 1;\r\n }\r\n else {\r\n availableHeight = this.chartContainer.maxWidth - 1;\r\n }\r\n var maxSumLevel;\r\n var minHeight;\r\n $object.each(this._levelSum, function (key, value) {\r\n var realValue = value;\r\n var levelNodeCount = _this._levelNodesCount[key];\r\n var valueHeight = (availableHeight - (levelNodeCount - 1) * _this.nodePadding) / realValue;\r\n if (valueHeight == Infinity) {\r\n valueHeight = 0;\r\n }\r\n if (minHeight > valueHeight || !$type.isNumber(minHeight)) {\r\n minHeight = valueHeight;\r\n _this.maxSum = realValue;\r\n maxSumLevel = $type.toNumber(key);\r\n }\r\n });\r\n this._maxSumLevel = maxSumLevel;\r\n var maxSumLevelNodeCount = this._levelNodesCount[this._maxSumLevel];\r\n var valueHeight = (availableHeight - (maxSumLevelNodeCount - 1) * this.nodePadding) / this.maxSum;\r\n if (valueHeight == Infinity) {\r\n valueHeight = 0;\r\n }\r\n if (!$type.isNumber(this.valueHeight)) {\r\n this.valueHeight = valueHeight;\r\n }\r\n else {\r\n var finalHeight = void 0;\r\n try {\r\n finalHeight = this._heightAnimation.animationOptions[0].to;\r\n }\r\n catch (err) {\r\n }\r\n // without animations it will be non-smooth as maxValue jumps from one column to another\r\n if (finalHeight != valueHeight) {\r\n var duration = this.interpolationDuration;\r\n try {\r\n duration = this.nodes.template.states.getKey(\"active\").transitionDuration;\r\n }\r\n catch (err) {\r\n }\r\n this._heightAnimation = new Animation(this, { property: \"valueHeight\", from: this.valueHeight, to: valueHeight }, duration, this.interpolationEasing).start();\r\n this._disposers.push(this._heightAnimation);\r\n }\r\n }\r\n };\r\n /**\r\n * Redraws the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n SankeyDiagram.prototype.validate = function () {\r\n var _this = this;\r\n _super.prototype.validate.call(this);\r\n this.calculateValueHeight();\r\n var container = this.nodesContainer;\r\n var nextCoordinate = {};\r\n var maxSumLevelNodeCount = this._levelNodesCount[this._maxSumLevel];\r\n var total = this.dataItem.values.value.sum;\r\n var availableHeight;\r\n if (this.orientation == \"horizontal\") {\r\n availableHeight = this.chartContainer.maxHeight - 1;\r\n }\r\n else {\r\n availableHeight = this.chartContainer.maxWidth - 1;\r\n }\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n var level = node.level;\r\n var levelCoordinate = 0;\r\n var nodeCount = _this._levelNodesCount[level];\r\n switch (_this.nodeAlign) {\r\n case \"bottom\":\r\n levelCoordinate = (_this.maxSum - _this._levelSum[level]) * _this.valueHeight - (nodeCount - maxSumLevelNodeCount) * _this.nodePadding;\r\n break;\r\n case \"middle\":\r\n levelCoordinate = (_this.maxSum - _this._levelSum[level]) * _this.valueHeight / 2 - (nodeCount - maxSumLevelNodeCount) * _this.nodePadding / 2;\r\n break;\r\n }\r\n if (_this.maxSum == 0) {\r\n switch (_this.nodeAlign) {\r\n case \"bottom\":\r\n levelCoordinate = availableHeight - nodeCount * (_this.minNodeSize * availableHeight + _this.nodePadding);\r\n break;\r\n case \"middle\":\r\n levelCoordinate = availableHeight / 2 - nodeCount / 2 * (_this.minNodeSize * availableHeight + _this.nodePadding);\r\n break;\r\n }\r\n }\r\n node.parent = container;\r\n var delta;\r\n var x;\r\n var y;\r\n var value = Math.max(node.totalIncoming, node.totalOutgoing);\r\n if (value / total < _this.minNodeSize) {\r\n value = total * _this.minNodeSize;\r\n }\r\n if (_this.orientation == \"horizontal\") {\r\n delta = (_this.innerWidth - node.pixelWidth) / _this._levelCount;\r\n x = delta * node.level;\r\n y = nextCoordinate[level] || levelCoordinate;\r\n var h = value * _this.valueHeight;\r\n if (total == 0 && h == 0) {\r\n h = _this.minNodeSize * availableHeight;\r\n }\r\n node.height = h;\r\n node.minX = x;\r\n node.maxX = x;\r\n nextCoordinate[level] = y + h + _this.nodePadding;\r\n }\r\n else {\r\n delta = (_this.innerHeight - node.pixelHeight) / _this._levelCount;\r\n x = nextCoordinate[level] || levelCoordinate;\r\n y = delta * node.level;\r\n var w = value * _this.valueHeight;\r\n if (total == 0 && w == 0) {\r\n w = _this.minNodeSize * availableHeight;\r\n }\r\n node.width = w;\r\n node.minY = y;\r\n node.maxY = y;\r\n nextCoordinate[level] = x + w + _this.nodePadding;\r\n }\r\n node.x = x;\r\n node.y = y;\r\n });\r\n };\r\n /**\r\n * Performs actual operations to reveal this element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param duration Fade in duration (ms)\r\n * @return Fade in duration (ms)\r\n */\r\n SankeyDiagram.prototype.showReal = function (duration) {\r\n var _this = this;\r\n if (this.preventShow) {\r\n return;\r\n }\r\n if (this.interpolationDuration > 0) {\r\n var container_1 = this.nodesContainer;\r\n var i_1 = 0;\r\n $iter.each(this.links.iterator(), function (link) {\r\n link.hide(0);\r\n });\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n var property;\r\n if (_this.orientation == \"horizontal\") {\r\n node.dx = -(container_1.pixelWidth - node.pixelWidth) / Math.max(_this._levelCount, 1);\r\n property = \"dx\";\r\n }\r\n else {\r\n node.dy = -(container_1.pixelHeight - node.pixelHeight) / Math.max(_this._levelCount, 1);\r\n property = \"dy\";\r\n }\r\n var delay = 0;\r\n var duration = _this.interpolationDuration;\r\n if (_this.sequencedInterpolation) {\r\n delay = _this.sequencedInterpolationDelay * i_1 + duration * i_1 / $iter.length(_this.nodes.iterator());\r\n }\r\n node.opacity = 0;\r\n node.invalidateLinks();\r\n node.animate([{ property: \"opacity\", from: 0, to: 1 }, { property: property, to: 0 }], _this.interpolationDuration, _this.interpolationEasing).delay(delay);\r\n $iter.each(node.outgoingDataItems.iterator(), function (dataItem) {\r\n var animation = dataItem.link.show(_this.interpolationDuration);\r\n if (animation && !animation.isFinished()) {\r\n animation.delay(delay);\r\n }\r\n });\r\n $iter.each(node.incomingDataItems.iterator(), function (dataItem) {\r\n if (!dataItem.fromNode) {\r\n var animation = dataItem.link.show(_this.interpolationDuration);\r\n if (animation && !animation.isFinished()) {\r\n animation.delay(delay);\r\n }\r\n }\r\n });\r\n i_1++;\r\n });\r\n }\r\n return _super.prototype.showReal.call(this);\r\n };\r\n /**\r\n * Changes the sort type of the nodes.\r\n *\r\n * This will actually reshuffle nodes using nice animation.\r\n */\r\n SankeyDiagram.prototype.changeSorting = function () {\r\n var _this = this;\r\n this.sortNodes();\r\n var nextCoordinate = {};\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n var level = node.level;\r\n var levelCoordinate = (_this.maxSum - _this._levelSum[level]) * _this.valueHeight / 2;\r\n var property;\r\n var nodeHeight;\r\n if (_this.orientation == \"horizontal\") {\r\n property = \"y\";\r\n nodeHeight = node.pixelHeight;\r\n }\r\n else {\r\n property = \"x\";\r\n nodeHeight = node.pixelWidth;\r\n }\r\n node.animate({ property: property, to: nextCoordinate[level] || levelCoordinate }, _this.interpolationDuration, _this.interpolationEasing);\r\n nextCoordinate[level] = (nextCoordinate[level] || levelCoordinate) + nodeHeight + _this.nodePadding;\r\n node.invalidateLinks();\r\n });\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n SankeyDiagram.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Sankey diagram\");\r\n }\r\n };\r\n /**\r\n * Creates and returns a new data item.\r\n *\r\n * @return Data item\r\n */\r\n SankeyDiagram.prototype.createDataItem = function () {\r\n return new SankeyDiagramDataItem();\r\n };\r\n Object.defineProperty(SankeyDiagram.prototype, \"nodeAlign\", {\r\n /**\r\n * @returns Returns nodeAlign value\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"nodeAlign\");\r\n },\r\n /**\r\n * How to align nodes. In case layout is vertical, top means left and bottom means right\r\n *\r\n * @param value Node sorting\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"nodeAlign\", value);\r\n this.changeSorting();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SankeyDiagram.prototype, \"orientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the chart: \"horizontal\" or \"vertical\";\r\n *\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n var nameLabel = this.nodes.template.nameLabel;\r\n if (value == \"vertical\") {\r\n this.nodes.template.width = undefined;\r\n nameLabel.label.horizontalCenter = \"middle\";\r\n nameLabel.locationX = 0.5;\r\n }\r\n else {\r\n this.nodes.template.height = undefined;\r\n nameLabel.label.horizontalCenter = \"left\";\r\n nameLabel.locationX = 1;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n SankeyDiagram.prototype.createNode = function () {\r\n var node = new SankeyNode();\r\n this._disposers.push(node);\r\n return node;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n SankeyDiagram.prototype.createLink = function () {\r\n var link = new SankeyLink();\r\n this._disposers.push(link);\r\n return link;\r\n };\r\n Object.defineProperty(SankeyDiagram.prototype, \"valueHeight\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n return this._valueHeight;\r\n },\r\n /**\r\n * @ignore\r\n */\r\n set: function (value) {\r\n if (value != this._valueHeight) {\r\n this._valueHeight = value;\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n SankeyDiagram.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n this._sorted = this.nodes.iterator();\r\n };\r\n return SankeyDiagram;\r\n}(FlowDiagram));\r\nexport { SankeyDiagram };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyDiagram\"] = SankeyDiagram;\r\n//# sourceMappingURL=SankeyDiagram.js.map","/**\r\n * ChordNode module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode } from \"./FlowDiagramNode\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a node in a Chord Diagram.\r\n *\r\n * A Chord node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[ChordLink]] elements.\r\n *\r\n * @see {@link IChordNodeEvents} for a list of available events\r\n * @see {@link IChordNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ChordNode = /** @class */ (function (_super) {\r\n __extends(ChordNode, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordNode() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChordNode\";\r\n var label = _this.createChild(AxisLabelCircular);\r\n label.location = 0.5;\r\n label.radius = 5;\r\n label.text = \"{name}\";\r\n label.zIndex = 1;\r\n label.shouldClone = false;\r\n _this.label = label;\r\n _this.layout = \"none\";\r\n _this.events.on(\"positionchanged\", _this.updateRotation, _this, false);\r\n _this.isMeasured = false;\r\n _this.slice = _this.createChild(Slice);\r\n _this.slice.isMeasured = false;\r\n var hiddenState = _this.hiddenState;\r\n hiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n hiddenState.properties.opacity = 0.5;\r\n hiddenState.properties.visible = true;\r\n _this.setStateOnChildren = false;\r\n _this.slice.hiddenState.properties.visible = true;\r\n _this.adapter.add(\"tooltipX\", function (tooltipX, target) {\r\n return target.slice.ix * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n });\r\n _this.adapter.add(\"tooltipY\", function (tooltipY, target) {\r\n return target.slice.iy * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n });\r\n return _this;\r\n }\r\n /**\r\n * Invalidates all links, attached to this node.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ChordNode.prototype.invalidateLinks = function () {\r\n var _this = this;\r\n _super.prototype.invalidateLinks.call(this);\r\n var label = this.label;\r\n var slice = this.slice;\r\n var chart = this.chart;\r\n if (chart && slice) {\r\n var sum = this.total;\r\n var arc_1 = slice.arc;\r\n var sliceStartAngle_1 = slice.startAngle;\r\n this.children.each(function (child) {\r\n if (child instanceof Bullet) {\r\n var locationX = child.locationX;\r\n if (!$type.isNumber(locationX)) {\r\n locationX = 0.5;\r\n }\r\n var locationY = child.locationY;\r\n if (!$type.isNumber(locationY)) {\r\n locationY = 1;\r\n }\r\n var childAngle = sliceStartAngle_1 + arc_1 * locationX;\r\n var childRadius = locationY * slice.radius;\r\n child.x = childRadius * $math.cos(childAngle);\r\n child.y = childRadius * $math.sin(childAngle);\r\n }\r\n });\r\n var labelAngle = sliceStartAngle_1 + arc_1 * label.location;\r\n var startAngle = sliceStartAngle_1 + (1 - sum / this.adjustedTotal) * arc_1 * 0.5; // if value of a node is > then sum of the links, add to center link\r\n if ($type.isNaN(startAngle)) {\r\n startAngle = sliceStartAngle_1;\r\n }\r\n label.fixPosition(labelAngle, slice.radius);\r\n this.nextAngle = startAngle;\r\n if (this._outgoingSorted) {\r\n $iter.each(this._outgoingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.parent = _this.chart.linksContainer;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n if (chart.nonRibbon) {\r\n var percentWidth = link.percentWidth;\r\n if (!$type.isNumber(percentWidth)) {\r\n percentWidth = 5;\r\n }\r\n percentWidth = percentWidth / 100;\r\n link.startAngle = sliceStartAngle_1 + arc_1 / 2 - arc_1 / 2 * percentWidth;\r\n link.arc = arc_1 * percentWidth;\r\n }\r\n else {\r\n link.arc = value * chart.valueAngle;\r\n link.startAngle = _this.nextAngle;\r\n _this.nextAngle += link.arc;\r\n }\r\n if (!dataItem.toNode) {\r\n link.endAngle = link.startAngle;\r\n }\r\n link.radius = slice.pixelInnerRadius;\r\n }\r\n //link.validate();\r\n });\r\n }\r\n if (this._incomingSorted) {\r\n $iter.each(this._incomingSorted, function (dataItem) {\r\n var link = dataItem.link;\r\n link.radius = slice.pixelInnerRadius;\r\n if (chart.nonRibbon) {\r\n var percentWidth = link.percentWidth;\r\n if (!$type.isNumber(percentWidth)) {\r\n percentWidth = 5;\r\n }\r\n percentWidth = percentWidth / 100;\r\n link.endAngle = sliceStartAngle_1 + arc_1 / 2 - arc_1 / 2 * percentWidth;\r\n link.arc = arc_1 * percentWidth;\r\n }\r\n else {\r\n link.endAngle = _this.nextAngle;\r\n var value = dataItem.getWorkingValue(\"value\");\r\n if ($type.isNumber(value)) {\r\n link.arc = value * chart.valueAngle; // yes, this is needed\r\n _this.nextAngle += link.arc;\r\n }\r\n }\r\n if (!dataItem.fromNode) {\r\n link.startAngle = link.endAngle;\r\n }\r\n //link.validate();\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n * updates slice start angle so that when we drag a node it would face the center\r\n */\r\n ChordNode.prototype.updateRotation = function () {\r\n var slice = this.slice;\r\n var mAngle = this.trueStartAngle + slice.arc / 2;\r\n var radius = slice.radius;\r\n var tx = radius * $math.cos(mAngle);\r\n var ty = radius * $math.sin(mAngle);\r\n var angle = $math.getAngle({ x: tx + this.pixelX, y: ty + this.pixelY });\r\n slice.startAngle = this.trueStartAngle + (angle - mAngle);\r\n this.dx = -this.pixelX;\r\n this.dy = -this.pixelY;\r\n };\r\n /**\r\n * Copies properties and labels from another [[ChordNode]].\r\n *\r\n * @param source Source node\r\n */\r\n ChordNode.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.label.copyFrom(source.label);\r\n this.slice.copyFrom(source.slice);\r\n };\r\n return ChordNode;\r\n}(FlowDiagramNode));\r\nexport { ChordNode };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordNode\"] = ChordNode;\r\n//# sourceMappingURL=ChordNode.js.map","/**\r\n * Functionality for drawing quadratic curves.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Line } from \"./Line\";\r\nimport { color } from \"../utils/Color\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws a waved line.\r\n *\r\n * @see {@link IQuadraticCurveEvents} for a list of available events\r\n * @see {@link IQuadraticCurveAdapters} for a list of available Adapters\r\n */\r\nvar QuadraticCurve = /** @class */ (function (_super) {\r\n __extends(QuadraticCurve, _super);\r\n /**\r\n * Constructor\r\n */\r\n function QuadraticCurve() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"QuadraticCurve\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this.pixelPerfect = false;\r\n _this.fill = color();\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the waved line.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n QuadraticCurve.prototype.draw = function () {\r\n //super.draw();\r\n if ($type.isNumber(this.x1 + this.x2 + this.y1 + this.y2 + this.cpx + this.cpy)) {\r\n var p1 = { x: this.x1, y: this.y1 };\r\n var p2 = { x: this.x2, y: this.y2 };\r\n var cp = { x: this.cpx, y: this.cpy };\r\n var d = $path.moveTo(p1) + $path.quadraticCurveTo(p2, cp);\r\n this.path = d;\r\n }\r\n };\r\n Object.defineProperty(QuadraticCurve.prototype, \"cpx\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cpx\");\r\n },\r\n /**\r\n * X coordinate of control point.\r\n *\r\n * @param value X\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cpx\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(QuadraticCurve.prototype, \"cpy\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"cpy\");\r\n },\r\n /**\r\n * Y coordinate of control point.\r\n *\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"cpy\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Converts relative position along the line (0-1) into pixel coordinates.\r\n *\r\n * @param position Position (0-1)\r\n * @return Coordinates\r\n */\r\n QuadraticCurve.prototype.positionToPoint = function (position) {\r\n var p1 = { x: this.x1, y: this.y1 };\r\n var cp = { x: this.cpx, y: this.cpy };\r\n var p2 = { x: this.x2, y: this.y2 };\r\n var point1 = $math.getPointOnQuadraticCurve(p1, p2, cp, position);\r\n var point2 = $math.getPointOnQuadraticCurve(p1, p2, cp, position + 0.001);\r\n return { x: point1.x, y: point1.y, angle: $math.getAngle(point1, point2) };\r\n };\r\n return QuadraticCurve;\r\n}(Line));\r\nexport { QuadraticCurve };\r\n//# sourceMappingURL=QuadraticCurve.js.map","/**\r\n * ChordLink module\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { FlowDiagramLink } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { QuadraticCurve } from \"../../core/elements/QuadraticCurve\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Chord Diagram.\r\n *\r\n * @see {@link IChordLinkEvents} for a list of available events\r\n * @see {@link IChordLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar ChordLink = /** @class */ (function (_super) {\r\n __extends(ChordLink, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordLink() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChordLink\";\r\n _this.middleLine = _this.createChild(QuadraticCurve);\r\n _this.middleLine.shouldClone = false;\r\n _this.middleLine.strokeOpacity = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * (Re)validates (redraws) the link.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ChordLink.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n if (!this.isTemplate) {\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var arc = this.arc;\r\n var radius = this.radius;\r\n var fromNode = this.dataItem.fromNode;\r\n var toNode = this.dataItem.toNode;\r\n var fromX = 0;\r\n var fromY = 0;\r\n if (fromNode) {\r\n fromX = fromNode.pixelX + fromNode.dx;\r\n fromY = fromNode.pixelY + fromNode.dy;\r\n }\r\n var toX = 0;\r\n var toY = 0;\r\n if (toNode) {\r\n toX = toNode.pixelX + toNode.dx;\r\n toY = toNode.pixelY + toNode.dy;\r\n }\r\n if (radius > 0) {\r\n var x1 = radius * $math.cos(startAngle) + fromX;\r\n var y1 = radius * $math.sin(startAngle) + fromY;\r\n var x2 = radius * $math.cos(endAngle) + toX;\r\n var y2 = radius * $math.sin(endAngle) + toY;\r\n //let cpAngle = startAngle + arc + (endAngle - startAngle - arc) / 2;\r\n //let arcWidth = $math.getDistance({x:x1, y:y1}, {x:x4, y:y4});\r\n //let cpx = (arcWidth) * $math.cos(cpAngle);\r\n //let cpy = (arcWidth) * $math.sin(cpAngle);\r\n var cp = { x: 0, y: 0 };\r\n var path = $path.moveTo({ x: x1, y: y1 });\r\n path += $path.arcTo(startAngle, arc, radius);\r\n path += $path.quadraticCurveTo({ x: x2, y: y2 }, cp);\r\n path += $path.arcTo(endAngle, arc, radius);\r\n path += $path.quadraticCurveTo({ x: x1, y: y1 }, cp);\r\n if (arc > 0) {\r\n this.link.path = path;\r\n }\r\n else {\r\n this.link.path = \"\";\r\n }\r\n if (this.maskBullets) {\r\n this.bulletsMask.path = path;\r\n this.bulletsContainer.mask = this.bulletsMask;\r\n }\r\n var mAngle1 = startAngle + arc / 2;\r\n var mAngle2 = endAngle + arc / 2;\r\n var middleLine = this.middleLine;\r\n middleLine.x1 = radius * $math.cos(mAngle1) + fromX;\r\n middleLine.y1 = radius * $math.sin(mAngle1) + fromY;\r\n middleLine.x2 = radius * $math.cos(mAngle2) + toX;\r\n middleLine.y2 = radius * $math.sin(mAngle2) + toY;\r\n middleLine.cpx = 0;\r\n middleLine.cpy = 0;\r\n middleLine.stroke = this.fill;\r\n this.positionBullets();\r\n }\r\n }\r\n };\r\n Object.defineProperty(ChordLink.prototype, \"radius\", {\r\n /**\r\n * @return End Y\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * [radius description]\r\n *\r\n * @todo Description\r\n * @param value End Y\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"radius\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordLink.prototype, \"arc\", {\r\n /**\r\n * @return [description]\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"arc\");\r\n },\r\n /**\r\n * [arc description]\r\n *\r\n * @todo Description\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"arc\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ChordLink;\r\n}(FlowDiagramLink));\r\nexport { ChordLink };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordLink\"] = ChordLink;\r\n//# sourceMappingURL=ChordLink.js.map","/**\r\n * Chord diagram module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagram, FlowDiagramDataItem } from \"./FlowDiagram\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { ChordNode } from \"../elements/ChordNode\";\r\nimport { ChordLink } from \"../elements/ChordLink\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo rearange notes after dragged\r\n/**\r\n * Defines a [[DataItem]] for [[ChordDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ChordDiagramDataItem = /** @class */ (function (_super) {\r\n __extends(ChordDiagramDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordDiagramDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChordDiagramDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ChordDiagramDataItem;\r\n}(FlowDiagramDataItem));\r\nexport { ChordDiagramDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a Chord Diagram chart.\r\n *\r\n * @see {@link IChordDiagramEvents} for a list of available Events\r\n * @see {@link IChordDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/chord-diagram/} for documentation\r\n * @important\r\n */\r\nvar ChordDiagram = /** @class */ (function (_super) {\r\n __extends(ChordDiagram, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChordDiagram() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * [valueAngle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.valueAngle = 0;\r\n _this.className = \"ChordDiagram\";\r\n _this.startAngle = -90;\r\n _this.endAngle = 270;\r\n _this.radius = percent(80);\r\n _this.innerRadius = -15;\r\n _this.nodePadding = 5;\r\n var chordContainer = _this.chartContainer.createChild(Container);\r\n chordContainer.align = \"center\";\r\n chordContainer.valign = \"middle\";\r\n chordContainer.shouldClone = false;\r\n chordContainer.layout = \"absolute\";\r\n _this.chordContainer = chordContainer;\r\n _this.nodesContainer.parent = chordContainer;\r\n _this.linksContainer.parent = chordContainer;\r\n _this.chartContainer.events.on(\"maxsizechanged\", _this.invalidate, _this, false);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Redraws the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ChordDiagram.prototype.validate = function () {\r\n var _this = this;\r\n var chartContainer = this.chartContainer;\r\n var endAngle = this.endAngle;\r\n var startAngle = this.startAngle + this.nodePadding / 2;\r\n var rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n var innerRect = { x: 0, y: 0, width: 0, height: 0 };\r\n rect = $math.getCommonRectangle([rect, innerRect]);\r\n var maxRadius = Math.min(chartContainer.innerWidth / rect.width, chartContainer.innerHeight / rect.height);\r\n if (!$type.isNumber(maxRadius)) {\r\n maxRadius = 0;\r\n }\r\n var radius = $utils.relativeRadiusToValue(this.radius, maxRadius);\r\n var pixelInnerRadius = $utils.relativeRadiusToValue(this.innerRadius, radius, true);\r\n var total = this.dataItem.values.value.sum;\r\n var count = 0;\r\n var newTotal = 0;\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n _this.getNodeValue(node);\r\n count++;\r\n var value = node.total;\r\n if (node.total / total < _this.minNodeSize) {\r\n value = total * _this.minNodeSize;\r\n }\r\n newTotal += value;\r\n });\r\n this.valueAngle = (endAngle - this.startAngle - this.nodePadding * count) / newTotal;\r\n $iter.each(this._sorted, function (strNode) {\r\n var node = strNode[1];\r\n var slice = node.slice;\r\n slice.radius = radius;\r\n slice.innerRadius = pixelInnerRadius;\r\n var value = node.total;\r\n if (node.total / total < _this.minNodeSize) {\r\n value = total * _this.minNodeSize;\r\n }\r\n node.adjustedTotal = value;\r\n var arc;\r\n if (_this.nonRibbon) {\r\n arc = (endAngle - _this.startAngle) / count - _this.nodePadding;\r\n }\r\n else {\r\n arc = _this.valueAngle * value;\r\n }\r\n slice.arc = arc;\r\n slice.startAngle = startAngle;\r\n node.trueStartAngle = startAngle;\r\n node.parent = _this.nodesContainer;\r\n node.validate(); // otherwise flickers - nodes are already created, but not yet positioned etc.\r\n startAngle += arc + _this.nodePadding;\r\n });\r\n this.chordContainer.definedBBox = { x: radius * rect.x, y: radius * rect.y, width: radius * rect.width, height: radius * rect.height };\r\n this.chordContainer.invalidateLayout();\r\n _super.prototype.validate.call(this);\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n ChordDiagram.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Chord diagram\");\r\n }\r\n };\r\n /**\r\n * Creates and returns a new data item.\r\n *\r\n * @return Data item\r\n */\r\n ChordDiagram.prototype.createDataItem = function () {\r\n return new ChordDiagramDataItem();\r\n };\r\n Object.defineProperty(ChordDiagram.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Starting angle of the Radar face. (degrees)\r\n *\r\n * Normally, a circular radar face begins (the radial axis is drawn) at the\r\n * top center. (at -90 degrees)\r\n *\r\n * You can use `startAngle` to change this setting.\r\n *\r\n * E.g. setting this to 0 will make the radial axis start horizontally to\r\n * the right, as opposed to vertical.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set those to lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n * looks like a quarter of a circle.\r\n *\r\n * @default -90\r\n * @param value Start angle (degrees)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordDiagram.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle (degrees)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * Starting angle of the Radar face. (degrees)\r\n *\r\n * Normally, a circular radar face ends (the radial axis is drawn) exactly\r\n * where it has started, forming a full 360 circle. (at 270 degrees)\r\n *\r\n * You can use `endAngle` to end the circle somewhere else.\r\n *\r\n * E.g. setting this to 180 will make the radar face end at horizontal line\r\n * to the left off the center.\r\n *\r\n * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n * needs to be 360.\r\n *\r\n * However, it's **not** necessary to do so. You can set those to lesser\r\n * numbers, to create semi-circles.\r\n *\r\n * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n * looks like a quarter of a circle.\r\n *\r\n * @default -90\r\n * @param value End angle (degrees)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordDiagram.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the Radar face.\r\n *\r\n * This can either be in absolute pixel value, or relative [[Percent]].\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordDiagram.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the Chord nodes.\r\n *\r\n * This can either be in absolute pixel value, or relative [[Percent]].\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChordDiagram.prototype, \"nonRibbon\", {\r\n /**\r\n * @return Non-ribbon\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"nonRibbon\");\r\n },\r\n /**\r\n *\r\n * If you set this to true, all the lines will be of the same width. This is done by making middleLine of a ChordLink visible.\r\n *\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"nonRibbon\", value, true);\r\n this.links.template.middleLine.strokeOpacity = 1;\r\n this.links.template.link.fillOpacity = 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @ignore\r\n */\r\n ChordDiagram.prototype.createNode = function () {\r\n var node = new ChordNode();\r\n this._disposers.push(node);\r\n return node;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n ChordDiagram.prototype.createLink = function () {\r\n var link = new ChordLink();\r\n this._disposers.push(link);\r\n return link;\r\n };\r\n return ChordDiagram;\r\n}(FlowDiagram));\r\nexport { ChordDiagram };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordDiagram\"] = ChordDiagram;\r\n//# sourceMappingURL=ChordDiagram.js.map","/**\r\n * Module that defines everything related to building Columns.\r\n * It is a container which has column element which is a RoundedRectangle.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Columns.\r\n *\r\n * @see {@link IColumnEvents} for a list of available events\r\n * @see {@link IColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Column = /** @class */ (function (_super) {\r\n __extends(Column, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Column() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Column\";\r\n _this.width = percent(80);\r\n _this.height = percent(80);\r\n //this.isMeasured = true; // for correct position of the tooltip\r\n _this.events.disableType(\"transformed\"); // not to bug parent\r\n _this.applyOnClones = true;\r\n _this.strokeOpacity = 1;\r\n _this.layout = \"none\";\r\n _this.createAssets();\r\n // otherwise users will have to set layout themselves if they'll want to align, scale etc children\r\n _this.events.on(\"childadded\", _this.handleKidAdded, _this, false);\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Column.prototype.handleKidAdded = function () {\r\n if (this.layout == \"none\") {\r\n this.layout = \"absolute\";\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Column.prototype.createAssets = function () {\r\n this.column = this.createChild(RoundedRectangle);\r\n this.column.shouldClone = false;\r\n this.column.isMeasured = false;\r\n this.column.cornerRadius(0, 0, 0, 0);\r\n this._disposers.push(this.column);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n Column.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n var column = this.column;\r\n if (column) {\r\n column.width = $math.min(this.pixelWidth, this.maxWidth);\r\n column.height = $math.min(this.pixelHeight, this.maxHeight);\r\n if (column.invalid) {\r\n column.validate(); // important!\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all parameters from another [[Column]].\r\n *\r\n * @param source Source Column\r\n */\r\n Column.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.column) {\r\n this.column.copyFrom(source.column);\r\n }\r\n };\r\n Object.defineProperty(Column.prototype, \"bbox\", {\r\n /**\r\n * Returns bounding box (square) for this element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n if (this.definedBBox) {\r\n return this.definedBBox;\r\n }\r\n if (this.column) {\r\n return { x: 0, y: 0, width: this.column.measuredWidth, height: this.column.measuredHeight };\r\n }\r\n else {\r\n return { x: 0, y: 0, width: $math.min(this.pixelWidth, this.maxWidth), height: $math.min(this.pixelHeight, this.maxHeight) };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Column;\r\n}(Container));\r\nexport { Column };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Column\"] = Column;\r\n//# sourceMappingURL=Column.js.map","/**\r\n * Column series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYSeries, XYSeriesDataItem } from \"./XYSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Column } from \"../elements/Column\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[ColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ColumnSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(ColumnSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColumnSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColumnSeriesDataItem\";\r\n _this.locations[\"dateX\"] = 0.5;\r\n _this.locations[\"dateY\"] = 0.5;\r\n _this.locations[\"categoryX\"] = 0.5;\r\n _this.locations[\"categoryY\"] = 0.5;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnSeriesDataItem.prototype, \"column\", {\r\n /**\r\n * @return Column\r\n */\r\n get: function () {\r\n return this._column;\r\n },\r\n /**\r\n * A column used to draw a column for this data item.\r\n *\r\n * @param column\r\n */\r\n set: function (column) {\r\n this.setColumn(column);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ColumnSeriesDataItem.prototype.setColumn = function (column) {\r\n var _this = this;\r\n if (this._column && column != this._column) {\r\n $array.remove(this.sprites, this._column);\r\n }\r\n this._column = column;\r\n if (column) {\r\n var prevDataItem = column.dataItem;\r\n if (prevDataItem && prevDataItem != this) {\r\n prevDataItem.column = undefined;\r\n }\r\n this.addSprite(column);\r\n this._disposers.push(new Disposer(function () {\r\n // TODO investigate why component is undefined\r\n // https://codepen.io/team/amcharts/pen/dac4be245d658233a6d7e5597df2208b?editors=0010\r\n if (_this.component) {\r\n _this.component.columns.removeValue(column);\r\n }\r\n }));\r\n }\r\n };\r\n Object.defineProperty(ColumnSeriesDataItem.prototype, \"width\", {\r\n get: function () {\r\n var width = this.properties.width;\r\n if (this._adapterO) {\r\n width = this._adapterO.apply(\"width\", width);\r\n }\r\n return width;\r\n },\r\n set: function (value) {\r\n if (this.properties.width != value) {\r\n this.properties.width = value;\r\n if (this.component) {\r\n this.component.validateDataElement(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeriesDataItem.prototype, \"height\", {\r\n get: function () {\r\n var height = this.properties.height;\r\n if (this._adapterO) {\r\n height = this._adapterO.apply(\"height\", height);\r\n }\r\n return height;\r\n },\r\n set: function (value) {\r\n if (this.properties.height != value) {\r\n this.properties.height = value;\r\n if (this.component) {\r\n this.component.validateDataElement(this);\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeriesDataItem.prototype, \"rangesColumns\", {\r\n /**\r\n * A dictionary storing axes ranges columns by axis uid\r\n */\r\n get: function () {\r\n if (!this._rangesColumns) {\r\n this._rangesColumns = new Dictionary();\r\n }\r\n return this._rangesColumns;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ColumnSeriesDataItem;\r\n}(XYSeriesDataItem));\r\nexport { ColumnSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a column graph.\r\n *\r\n * @see {@link IColumnSeriesEvents} for a list of available Events\r\n * @see {@link IColumnSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar ColumnSeries = /** @class */ (function (_super) {\r\n __extends(ColumnSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColumnSeries() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Start location within cell for columns.\r\n */\r\n _this._startLocation = 0;\r\n /**\r\n * End location within cell for columns.\r\n */\r\n _this._endLocation = 1;\r\n _this.className = \"ColumnSeries\";\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.strokeOpacity = 0;\r\n _this.fillOpacity = 1;\r\n _this.clustered = true;\r\n var columnsContainer = _this.mainContainer.createChild(Container);\r\n columnsContainer.shouldClone = false;\r\n columnsContainer.isMeasured = false;\r\n columnsContainer.layout = \"none\";\r\n _this._columnsContainer = columnsContainer;\r\n _this.columns.template.pixelPerfect = false;\r\n _this.tooltipColorSource = _this.columns.template;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnSeries.prototype, \"columnsContainer\", {\r\n /**\r\n * A container that columns are created in.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n get: function () {\r\n return this._columnsContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n ColumnSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Column Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n ColumnSeries.prototype.createDataItem = function () {\r\n return new ColumnSeriesDataItem();\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ColumnSeries.prototype.validate = function () {\r\n //@todo Check if we can do better than use `instanceof`\r\n // find start/end locations based on clustered/stacked settings\r\n // go through chart series instead of base axis series, because axis series doesn't maintain order\r\n var _this = this;\r\n this.group.node.removeAttribute(\"fill\");\r\n if (this.chart && this.xAxis && this.yAxis) {\r\n var baseAxisSeries = this.chart.series;\r\n var clusterCount_1 = 0;\r\n var index_1 = 0;\r\n var sortedByAxis_1 = [];\r\n $iter.each(baseAxisSeries.iterator(), function (series) {\r\n if (series instanceof ColumnSeries) {\r\n if (_this.baseAxis == series.baseAxis) {\r\n var index_2;\r\n if (_this.baseAxis == _this.xAxis) {\r\n index_2 = _this.chart.yAxes.indexOf(series.yAxis);\r\n }\r\n else {\r\n index_2 = _this.chart.xAxes.indexOf(series.xAxis);\r\n }\r\n sortedByAxis_1.push({ series: series, axis: index_2 });\r\n }\r\n }\r\n });\r\n sortedByAxis_1.sort(function (a, b) { return a.axis - b.axis; });\r\n var prevAxisIndex_1;\r\n $array.each(sortedByAxis_1, function (sortedItem) {\r\n var series = sortedItem.series;\r\n if (series instanceof ColumnSeries) {\r\n if ((!series.stacked && series.clustered) || (prevAxisIndex_1 != sortedItem.axis && series.clustered)) {\r\n clusterCount_1++;\r\n }\r\n if (series == _this) {\r\n index_1 = clusterCount_1 - 1;\r\n }\r\n }\r\n prevAxisIndex_1 = sortedItem.axis;\r\n });\r\n if (!this.clustered) {\r\n index_1 = 0;\r\n clusterCount_1 = 1;\r\n }\r\n var renderer = this.baseAxis.renderer;\r\n var cellStartLocation = renderer.cellStartLocation;\r\n var cellEndLocation = renderer.cellEndLocation;\r\n this._startLocation = cellStartLocation + (index_1 / clusterCount_1) * (cellEndLocation - cellStartLocation);\r\n this._endLocation = cellStartLocation + (index_1 + 1) / clusterCount_1 * (cellEndLocation - cellStartLocation);\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis instanceof CategoryAxis && yAxis instanceof ValueAxis) {\r\n if (xAxis.sortBySeries == this) {\r\n this.sortCategoryAxis(xAxis, \"valueY\");\r\n }\r\n }\r\n if (yAxis instanceof CategoryAxis && xAxis instanceof ValueAxis) {\r\n if (yAxis.sortBySeries == this) {\r\n this.sortCategoryAxis(yAxis, \"valueX\");\r\n }\r\n }\r\n }\r\n _super.prototype.validate.call(this);\r\n for (var i = 0; i < this.startIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n this.disableUnusedColumns(dataItem);\r\n }\r\n for (var i = this.dataItems.length - 1; i > this.endIndex; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n this.disableUnusedColumns(dataItem);\r\n }\r\n this._propertiesChanged = false;\r\n };\r\n ColumnSeries.prototype.sortCategoryAxis = function (axis, key) {\r\n var _this = this;\r\n this.dataItems.values.sort(function (x, y) {\r\n return y.values[key].workingValue - x.values[key].workingValue;\r\n });\r\n var i = 0;\r\n this.dataItems.each(function (dataItem) {\r\n dataItem._index = i;\r\n i++;\r\n });\r\n axis.dataItems.each(function (dataItem) {\r\n var axis = dataItem.component;\r\n var currentPosition = axis.categoryToPosition(dataItem.category) - dataItem.deltaPosition;\r\n var seriesDataItem = axis.getSeriesDataItemByCategory(dataItem.category, _this);\r\n if (seriesDataItem) {\r\n var index = _this.dataItems.indexOf(seriesDataItem);\r\n dataItem._index = index;\r\n var deltaPosition = $math.round((index + 0.5) / _this.dataItems.length - currentPosition, 3);\r\n if (dataItem.deltaAnimation && !dataItem.deltaAnimation.isDisposed() && dataItem.deltaAnimation.animationOptions[0].to == deltaPosition) {\r\n // void\r\n }\r\n else if (deltaPosition != $math.round(dataItem.deltaPosition, 3)) {\r\n if (dataItem.deltaAnimation) {\r\n dataItem.deltaAnimation.stop();\r\n }\r\n dataItem.deltaAnimation = dataItem.animate({ property: \"deltaPosition\", from: -deltaPosition, to: 0 }, axis.interpolationDuration, axis.interpolationEasing);\r\n _this._disposers.push(dataItem.deltaAnimation);\r\n }\r\n }\r\n });\r\n axis.dataItems.values.sort(function (x, y) {\r\n return x.index - y.index;\r\n });\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n ColumnSeries.prototype.validateDataElement = function (dataItem) {\r\n // important oder here, first real, then super. we need this to know size\r\n if (this.chart && this.xAxis && this.yAxis) {\r\n this.validateDataElementReal(dataItem);\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n }\r\n };\r\n /**\r\n * Returns relative start location for the data item.\r\n *\r\n * @param dataItem Data item\r\n * @return Location (0-1)\r\n */\r\n ColumnSeries.prototype.getStartLocation = function (dataItem) {\r\n var startLocation = this._startLocation;\r\n if (this.baseAxis == this.xAxis) {\r\n startLocation += dataItem.locations[this.xOpenField] - 0.5;\r\n }\r\n else {\r\n startLocation += dataItem.locations[this.yOpenField] - 0.5;\r\n }\r\n return startLocation;\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n /*\r\n public handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n if (this.simplifiedProcessing) {\r\n this.validateDataElement(dataItem);\r\n }\r\n else {\r\n super.handleDataItemWorkingValueChange(dataItem, name);\r\n }\r\n }*/\r\n /**\r\n * Returns relative end location for the data item.\r\n *\r\n * @param dataItem Data item\r\n * @return Location (0-1)\r\n */\r\n ColumnSeries.prototype.getEndLocation = function (dataItem) {\r\n var endLocation = this._endLocation;\r\n if (this.baseAxis == this.xAxis) {\r\n endLocation += dataItem.locations[this.xField] - 0.5;\r\n }\r\n else {\r\n endLocation += dataItem.locations[this.yField] - 0.5;\r\n }\r\n return endLocation;\r\n };\r\n /**\r\n * Validates data item's elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n ColumnSeries.prototype.validateDataElementReal = function (dataItem) {\r\n var _this = this;\r\n //\tif (dataItem.hasValue([this.xField, this.yField])) { // todo: this doesn't work with categories, think of a better way\r\n var l;\r\n var r;\r\n var t;\r\n var b;\r\n var startLocation = this.getStartLocation(dataItem);\r\n var endLocation = this.getEndLocation(dataItem);\r\n var xField = this.xField;\r\n var xOpenField = this.xOpenField;\r\n var yField = this.yField;\r\n var yOpenField = this.yOpenField;\r\n var template = this.columns.template;\r\n var percentWidth = template.percentWidth;\r\n var percentHeight = template.percentHeight;\r\n var pixelWidth = template.pixelWidth;\r\n var pixelHeight = template.pixelHeight;\r\n var maxWidth = template.maxWidth;\r\n var maxHeight = template.maxHeight;\r\n var paddingLeft = template.pixelPaddingLeft;\r\n var paddingRight = template.pixelPaddingRight;\r\n var paddingTop = template.pixelPaddingTop;\r\n var paddingBottom = template.pixelPaddingBottom;\r\n var outOfBounds = false;\r\n var diw = dataItem.width;\r\n if ($type.hasValue(diw)) {\r\n if ($type.isNumber(diw)) {\r\n pixelWidth = diw;\r\n }\r\n if (diw instanceof Percent) {\r\n percentWidth = diw.value * 100;\r\n }\r\n }\r\n var dih = dataItem.height;\r\n if ($type.hasValue(dih)) {\r\n if ($type.isNumber(dih)) {\r\n pixelHeight = dih;\r\n }\r\n if (dih instanceof Percent) {\r\n percentHeight = dih.value * 100;\r\n }\r\n }\r\n // two category axes\r\n if ((this.xAxis instanceof CategoryAxis) && (this.yAxis instanceof CategoryAxis)) {\r\n if (!dataItem.hasValue(this._xValueFields) || !dataItem.hasValue(this._yValueFields)) {\r\n return;\r\n }\r\n startLocation = 0;\r\n endLocation = 1;\r\n if (!$type.isNaN(percentWidth)) {\r\n var offset = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n l = this.xAxis.getX(dataItem, xOpenField, startLocation);\r\n r = this.xAxis.getX(dataItem, xField, endLocation);\r\n // in case width is set in pixels\r\n if ($type.isNaN(percentWidth)) {\r\n var offset = ((r - l) - pixelWidth) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n // in case max width is set in pixels\r\n if (!$type.isNaN(maxWidth) && maxWidth < Math.abs(r - l)) {\r\n var offset = ((r - l) - maxWidth) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n startLocation = 0;\r\n endLocation = 1;\r\n if (!$type.isNaN(percentHeight)) {\r\n var offset = $math.round((1 - percentHeight / 100) / 2, 5);\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n t = this.yAxis.getY(dataItem, yOpenField, startLocation);\r\n b = this.yAxis.getY(dataItem, yField, endLocation);\r\n // in case width is set in pixels\r\n if ($type.isNaN(percentHeight)) {\r\n var offset = ((b - t) - pixelHeight) / 2;\r\n b += offset;\r\n t -= offset;\r\n }\r\n // in case max width is set in pixels\r\n if (!$type.isNaN(maxHeight) && maxHeight < Math.abs(b - t)) {\r\n var offset = ((b - t) - maxHeight) / 2;\r\n b += offset;\r\n t -= offset;\r\n }\r\n r = this.fixHorizontalCoordinate(r);\r\n l = this.fixHorizontalCoordinate(l);\r\n t = this.fixVerticalCoordinate(t);\r\n b = this.fixVerticalCoordinate(b);\r\n }\r\n else if (this.baseAxis == this.xAxis) {\r\n if (!dataItem.hasValue(this._yValueFields)) {\r\n return;\r\n }\r\n // in case width is set in percent\r\n if (!$type.isNaN(percentWidth)) {\r\n var offset = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n l = this.xAxis.getX(dataItem, xOpenField, startLocation);\r\n r = this.xAxis.getX(dataItem, xField, endLocation);\r\n // in case width is set in pixels\r\n if ($type.isNaN(percentWidth)) {\r\n var offset = ((r - l) - pixelWidth) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n // in case width is set in pixels\r\n if (!$type.isNaN(maxWidth) && maxWidth < Math.abs(r - l)) {\r\n var offset = ((r - l) - maxWidth) / 2;\r\n l += offset;\r\n r -= offset;\r\n }\r\n var bottomLocation = dataItem.locations[yOpenField];\r\n var topLocation = dataItem.locations[yField];\r\n // otherwise gantt chart will start items in the middle of a cell\r\n if (this.yAxis instanceof ValueAxis) {\r\n if (this.dataFields[this.yField] != this.dataFields[this.yOpenField]) {\r\n bottomLocation = 0;\r\n topLocation = 0;\r\n }\r\n }\r\n b = this.yAxis.getY(dataItem, yOpenField, bottomLocation);\r\n t = this.yAxis.getY(dataItem, yField, topLocation);\r\n // used to save location for bullets, but it's not a good approach\r\n // dataItem.locations[xField] = startLocation + (endLocation - startLocation) / 2;\r\n var axisLenght = Math.ceil(this.yAxis.axisLength);\r\n if ((t < 0 && b < 0) || (t > axisLenght && b > axisLenght)) {\r\n outOfBounds = true;\r\n }\r\n t = this.fixVerticalCoordinate(t);\r\n b = this.fixVerticalCoordinate(b);\r\n if (Math.abs(r - l) - paddingLeft - paddingRight == 0) {\r\n outOfBounds = true;\r\n }\r\n }\r\n // horizontal bars\r\n else {\r\n if (!dataItem.hasValue(this._xValueFields)) {\r\n return;\r\n }\r\n if (!$type.isNaN(percentHeight)) {\r\n var offset = $math.round((endLocation - startLocation) * (1 - percentHeight / 100) / 2, 5);\r\n startLocation += offset;\r\n endLocation -= offset;\r\n }\r\n t = this.yAxis.getY(dataItem, yOpenField, startLocation);\r\n b = this.yAxis.getY(dataItem, yField, endLocation);\r\n // in case height is set in pixels\r\n if ($type.isNaN(percentHeight)) {\r\n var offset = ((b - t) - pixelHeight) / 2;\r\n b -= offset;\r\n t += offset;\r\n }\r\n // in case height is set in pixels\r\n if (!$type.isNaN(maxHeight) && maxHeight < Math.abs(b - t)) {\r\n var offset = ((b - t) - maxHeight) / 2;\r\n b -= offset;\r\n t += offset;\r\n }\r\n var rightLocation = dataItem.locations[xField];\r\n var leftLocation = dataItem.locations[xOpenField];\r\n // otherwise gantt chart will start items in the middle of a cell\r\n if (this.xAxis instanceof ValueAxis) {\r\n if (this.dataFields[this.xField] != this.dataFields[this.xOpenField]) {\r\n rightLocation = 0;\r\n leftLocation = 0;\r\n }\r\n }\r\n r = this.xAxis.getX(dataItem, xField, rightLocation);\r\n l = this.xAxis.getX(dataItem, xOpenField, leftLocation);\r\n // used to save location for bullets, but it's not a good approach\r\n // dataItem.locations[yField] = startLocation + (endLocation - startLocation) / 2;\r\n var axisLenght = Math.ceil(this.xAxis.axisLength);\r\n if ((r < 0 && l < 0) || (r > axisLenght && l > axisLenght)) {\r\n outOfBounds = true;\r\n }\r\n r = this.fixHorizontalCoordinate(r);\r\n l = this.fixHorizontalCoordinate(l);\r\n if (Math.abs(t - b) - paddingTop - paddingBottom == 0) {\r\n outOfBounds = true;\r\n }\r\n }\r\n var w = Math.abs(r - l);\r\n var h = Math.abs(b - t);\r\n var x = Math.min(l, r);\r\n var y = Math.min(t, b);\r\n if (!outOfBounds) {\r\n var column_1;\r\n if (!dataItem.column) {\r\n column_1 = this.columns.create();\r\n //$object.forceCopyProperties(this.columns.template, column, visualProperties);\r\n $object.copyProperties(this, column_1, visualProperties); // need this because 3d columns are not in the same container\r\n $object.copyProperties(this.columns.template, column_1, visualProperties); // second time, no force, so that columns.template would override series properties\r\n dataItem.addSprite(column_1);\r\n dataItem.column = column_1;\r\n column_1.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n // accessibility\r\n if (this.itemsFocusable()) {\r\n if (!$type.hasValue(this.role)) {\r\n this.role = \"menu\";\r\n }\r\n if (!$type.hasValue(column_1.role)) {\r\n column_1.role = \"menuitem\";\r\n }\r\n column_1.focusable = true;\r\n }\r\n else {\r\n if (!$type.hasValue(this.role)) {\r\n this.role = \"list\";\r\n }\r\n if (!$type.hasValue(column_1.role)) {\r\n column_1.role = \"listitem\";\r\n }\r\n column_1.focusable = false;\r\n }\r\n if (column_1.focusable) {\r\n column_1.events.on(\"focus\", function (ev) {\r\n column_1.readerTitle = _this.populateString(_this.itemReaderText, dataItem);\r\n }, undefined, false);\r\n column_1.events.on(\"blur\", function (ev) {\r\n column_1.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n if (column_1.hoverable) {\r\n column_1.events.on(\"over\", function (ev) {\r\n column_1.readerTitle = _this.populateString(_this.itemReaderText, dataItem);\r\n }, undefined, false);\r\n column_1.events.on(\"out\", function (ev) {\r\n column_1.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n column_1.parent = this.columnsContainer;\r\n column_1.virtualParent = this;\r\n }\r\n else {\r\n column_1 = dataItem.column;\r\n if (this._propertiesChanged) {\r\n $object.copyProperties(this, column_1, visualProperties);\r\n $object.copyProperties(this.columns.template, column_1, visualProperties);\r\n $array.each(visualProperties, function (property) {\r\n column_1[property] = column_1[property];\r\n });\r\n }\r\n }\r\n column_1.width = w;\r\n column_1.height = h;\r\n column_1.x = x;\r\n column_1.y = y;\r\n column_1.realX = l;\r\n column_1.realY = t;\r\n column_1.realWidth = r - l;\r\n column_1.realHeight = b - t;\r\n this.setColumnStates(column_1);\r\n if (column_1.invalid) {\r\n column_1.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n }\r\n column_1.__disabled = false;\r\n //column.returnAfterTemp();\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (!rangeColumn) {\r\n rangeColumn = _this.columns.create();\r\n //$object.forceCopyProperties(this.columns.template, rangeColumn, visualProperties);\r\n $object.copyProperties(axisRange.contents, rangeColumn, visualProperties); // need this because 3d columns are not in the same container\r\n dataItem.addSprite(rangeColumn);\r\n dataItem.rangesColumns.setKey(axisRange.uid, rangeColumn);\r\n rangeColumn.paper = _this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n }\r\n rangeColumn.parent = axisRange.contents;\r\n rangeColumn.width = w;\r\n rangeColumn.height = h;\r\n rangeColumn.x = x;\r\n rangeColumn.y = y;\r\n _this.setColumnStates(rangeColumn);\r\n if (rangeColumn.invalid) {\r\n rangeColumn.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n }\r\n rangeColumn.__disabled = false;\r\n //rangeColumn.returnAfterTemp();\r\n });\r\n }\r\n else {\r\n this.disableUnusedColumns(dataItem);\r\n }\r\n dataItem.itemWidth = w;\r\n dataItem.itemHeight = h;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n ColumnSeries.prototype.disableUnusedColumns = function (dataItem) {\r\n if (dataItem) {\r\n if (dataItem.column) {\r\n // otherwise might flicker when enabling\r\n dataItem.column.width = 0;\r\n dataItem.column.height = 0;\r\n dataItem.column.__disabled = true;\r\n }\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (rangeColumn) {\r\n // otherwise might flicker when enabling\r\n rangeColumn.width = 0;\r\n rangeColumn.height = 0;\r\n rangeColumn.__disabled = true;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Apply different state/coloring to columns based on the change value.\r\n *\r\n * @param sprite Sprite to apply state to\r\n * @todo Do not apply accessibility to wicks of the candlesticks\r\n */\r\n ColumnSeries.prototype.setColumnStates = function (sprite) {\r\n if (this._dropFromOpenState || this._dropFromPreviousState || this._riseFromOpenState || this._riseFromPreviousState) {\r\n var dataItem = sprite.dataItem;\r\n if (this.xAxis instanceof ValueAxis || this.yAxis instanceof ValueAxis) {\r\n var open_1;\r\n var value = void 0;\r\n var change = void 0;\r\n if (this.baseAxis == this.yAxis) {\r\n if (this.xOpenField && this.xField && this.xAxis instanceof ValueAxis) {\r\n open_1 = dataItem.getValue(this.xOpenField);\r\n value = dataItem.getValue(this.xField);\r\n }\r\n change = dataItem.getValue(this.xAxis.axisFieldName + \"X\", \"previousChange\");\r\n }\r\n else {\r\n if (this.yOpenField && this.yField && this.yAxis instanceof ValueAxis) {\r\n open_1 = dataItem.getValue(this.yOpenField);\r\n value = dataItem.getValue(this.yField);\r\n }\r\n change = dataItem.getValue(this.yAxis.axisFieldName + \"Y\", \"previousChange\");\r\n }\r\n if (value < open_1) {\r\n dataItem.droppedFromOpen = true;\r\n sprite.defaultState.copyFrom(this._dropFromOpenState);\r\n sprite.setState(this._dropFromOpenState, 0);\r\n }\r\n else {\r\n dataItem.droppedFromOpen = false;\r\n sprite.defaultState.copyFrom(this._riseFromOpenState);\r\n sprite.setState(this._riseFromOpenState, 0);\r\n }\r\n if (change < 0) {\r\n dataItem.droppedFromPrevious = true;\r\n sprite.defaultState.copyFrom(this._dropFromPreviousState);\r\n sprite.setState((this._dropFromPreviousState), 0);\r\n }\r\n else {\r\n dataItem.droppedFromPrevious = false;\r\n sprite.defaultState.copyFrom(this._riseFromPreviousState);\r\n sprite.setState((this._riseFromPreviousState), 0);\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(ColumnSeries.prototype, \"columns\", {\r\n /**\r\n * A list of column elements in the series.\r\n *\r\n * @return Columns\r\n */\r\n get: function () {\r\n if (!this._columns) {\r\n this._columns = new ListTemplate(this.createColumnTemplate());\r\n this._disposers.push(new ListDisposer(this._columns));\r\n this._disposers.push(this._columns.template);\r\n }\r\n return this._columns;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates and returns a column element to use as a template.\r\n *\r\n * @return Column template\r\n */\r\n ColumnSeries.prototype.createColumnTemplate = function () {\r\n return new Column();\r\n };\r\n Object.defineProperty(ColumnSeries.prototype, \"clustered\", {\r\n /**\r\n * @return Clustered?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"clustered\");\r\n },\r\n /**\r\n * Cluster this series columns?\r\n *\r\n * Setting to `false` will make columns overlap with other series.\r\n *\r\n * @default true\r\n * @param value Clustered?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"clustered\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeries.prototype, \"dropFromOpenState\", {\r\n /**\r\n * @return State\r\n */\r\n get: function () {\r\n if (!this._dropFromOpenState) {\r\n this._dropFromOpenState = this.states.create(\"dropFromOpenState\");\r\n }\r\n return this._dropFromOpenState;\r\n },\r\n /**\r\n * A state to apply to a column when close value is lower than open value.\r\n *\r\n * Can be used to differentiate appearance based on value relations.\r\n *\r\n * NOTE: this will work only if at least one axis is [[ValueAxis]].\r\n *\r\n * @readonly You can modify state object, but can't overwrite it\r\n * @param value State\r\n */\r\n set: function (value) {\r\n this._dropFromOpenState = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeries.prototype, \"dropFromPreviousState\", {\r\n /**\r\n * @return State\r\n */\r\n get: function () {\r\n if (!this._dropFromPreviousState) {\r\n this._dropFromPreviousState = this.states.create(\"dropFromPreviousState\");\r\n }\r\n return this._dropFromPreviousState;\r\n },\r\n /**\r\n * A state to apply to a column when its value is lower value of a previous\r\n * column.\r\n *\r\n * Can be used to differentiate appearance based on value relations.\r\n *\r\n * @readonly You can modify state object, but can't overwrite it\r\n * @param value State\r\n */\r\n set: function (value) {\r\n this._dropFromPreviousState = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeries.prototype, \"riseFromOpenState\", {\r\n /**\r\n * @return State\r\n */\r\n get: function () {\r\n if (!this._riseFromOpenState) {\r\n this._riseFromOpenState = this.states.create(\"riseFromOpenState\");\r\n }\r\n return this._riseFromOpenState;\r\n },\r\n /**\r\n * A state to apply to a column when close value is same or higher than open\r\n * value.\r\n *\r\n * Can be used to differentiate appearance based on value relations.\r\n *\r\n * NOTE: this will work only if at least one axis is [[ValueAxis]].\r\n *\r\n * @readonly You can modify state object, but can't overwrite it\r\n * @param value State\r\n */\r\n set: function (value) {\r\n this._riseFromOpenState = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeries.prototype, \"riseFromPreviousState\", {\r\n /**\r\n * @return State\r\n */\r\n get: function () {\r\n if (!this._riseFromPreviousState) {\r\n this._riseFromPreviousState = this.states.create(\"riseFromPreviousState\");\r\n }\r\n return this._riseFromPreviousState;\r\n },\r\n /**\r\n * A state to apply to a column when its value is same or higher than value\r\n * of a previous column.\r\n *\r\n * Can be used to differentiate appearance based on value relations.\r\n *\r\n * @readonly You can modify state object, but can't overwrite it\r\n * @param value State\r\n */\r\n set: function (value) {\r\n this._riseFromPreviousState = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates value of the related legend item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n ColumnSeries.prototype.updateLegendValue = function (dataItem, notRange) {\r\n var _this = this;\r\n _super.prototype.updateLegendValue.call(this, dataItem, notRange);\r\n if (this.legendDataItem) {\r\n var marker = this.legendDataItem.marker;\r\n var fromOpenState_1;\r\n var fromPreviousState_1;\r\n if (dataItem) {\r\n if (dataItem.droppedFromOpen) {\r\n fromOpenState_1 = this._dropFromOpenState;\r\n }\r\n else {\r\n fromOpenState_1 = this._riseFromOpenState;\r\n }\r\n if (dataItem.droppedFromPrevious) {\r\n fromPreviousState_1 = this._dropFromPreviousState;\r\n }\r\n else {\r\n fromPreviousState_1 = this._riseFromPreviousState;\r\n }\r\n }\r\n $iter.each(marker.children.iterator(), function (child) {\r\n if (dataItem) {\r\n child.setState(fromPreviousState_1);\r\n child.setState(fromOpenState_1);\r\n }\r\n else {\r\n // todo: think what to do here, maybe apply above states based on totals?\r\n child.setState(_this._riseFromPreviousState);\r\n child.setState(_this._riseFromOpenState);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n ColumnSeries.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(RoundedRectangle);\r\n column.shouldClone = false;\r\n $object.copyProperties(this, column, visualProperties);\r\n column.copyFrom(this.columns.template);\r\n column.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n column.width = w;\r\n column.height = h;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = this.fill;\r\n legendDataItem.colorOrig = this.fill;\r\n };\r\n /**\r\n * Copies all properties from another instance of [[ColumnSeries]].\r\n *\r\n * @param source Source series\r\n */\r\n ColumnSeries.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.columns.template.copyFrom(source.columns.template);\r\n };\r\n /**\r\n * returns bullet x location\r\n * @ignore\r\n */\r\n ColumnSeries.prototype.getBulletLocationX = function (bullet, field) {\r\n if (this.baseAxis == this.xAxis) {\r\n var bulletLocationX = bullet.locationX;\r\n if (!$type.isNumber(bulletLocationX)) {\r\n bulletLocationX = 0.5;\r\n }\r\n var endLocation = this.getEndLocation(bullet.dataItem);\r\n var startLocation = this.getStartLocation(bullet.dataItem);\r\n return endLocation - (endLocation - startLocation) * bulletLocationX;\r\n }\r\n else {\r\n return _super.prototype.getBulletLocationX.call(this, bullet, field);\r\n }\r\n };\r\n /**\r\n * returns bullet y location\r\n * @ignore\r\n */\r\n ColumnSeries.prototype.getBulletLocationY = function (bullet, field) {\r\n if (this.baseAxis == this.yAxis) {\r\n var bulletLocationY = bullet.locationY;\r\n if (!$type.isNumber(bulletLocationY)) {\r\n bulletLocationY = 0.5;\r\n }\r\n var endLocation = this.getEndLocation(bullet.dataItem);\r\n var startLocation = this.getStartLocation(bullet.dataItem);\r\n return endLocation - (endLocation - startLocation) * bulletLocationY;\r\n }\r\n else {\r\n return _super.prototype.getBulletLocationY.call(this, bullet, field);\r\n }\r\n };\r\n ColumnSeries.prototype.getAdjustedXLocation = function (dataItem, field, bulletLocationX) {\r\n //if (this.baseAxis == this.xAxis) {\r\n if (!$type.isNumber(bulletLocationX)) {\r\n if (dataItem) {\r\n bulletLocationX = dataItem.locations[field];\r\n }\r\n else {\r\n bulletLocationX = 0.5;\r\n }\r\n }\r\n return this._endLocation - (this._endLocation - this._startLocation) * (1 - bulletLocationX);\r\n //}\r\n //else {\r\n //\treturn super.getAdjustedXLocation(dataItem, field);\r\n //}\r\n };\r\n ColumnSeries.prototype.getAdjustedYLocation = function (dataItem, field, bulletLocationY) {\r\n //if (this.baseAxis == this.yAxis) {\r\n if (!$type.isNumber(bulletLocationY)) {\r\n if (dataItem) {\r\n bulletLocationY = dataItem.locations[field];\r\n }\r\n else {\r\n bulletLocationY = 0.5;\r\n }\r\n }\r\n return this._endLocation - (this._endLocation - this._startLocation) * bulletLocationY;\r\n //}\r\n //else {\r\n //\treturn super.getAdjustedYLocation(dataItem, field);\r\n //}\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n ColumnSeries.prototype.fixVerticalCoordinate = function (coordinate) {\r\n var paddingBottom = this.columns.template.pixelPaddingBottom;\r\n var paddingTop = this.columns.template.pixelPaddingTop;\r\n var minY = -paddingTop;\r\n var maxY = this.yAxis.axisLength + paddingBottom;\r\n return $math.fitToRange(coordinate, minY, maxY);\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n ColumnSeries.prototype.fixHorizontalCoordinate = function (coordinate) {\r\n var paddingLeft = this.columns.template.pixelPaddingLeft;\r\n var paddingRight = this.columns.template.pixelPaddingRight;\r\n var minX = -paddingLeft;\r\n var maxX = this.xAxis.axisLength + paddingRight;\r\n return $math.fitToRange(coordinate, minX, maxX);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n ColumnSeries.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n this.columns.clear();\r\n };\r\n return ColumnSeries;\r\n}(XYSeries));\r\nexport { ColumnSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColumnSeries\"] = ColumnSeries;\r\nregistry.registeredClasses[\"ColumnSeriesDataItem\"] = ColumnSeriesDataItem;\r\n//# sourceMappingURL=ColumnSeries.js.map","/**\r\n * TreeMap series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport * as $object from \"../../core/utils/Object\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[TreeMapSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar TreeMapSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(TreeMapSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMapSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"TreeMapSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"parentName\", {\r\n /**\r\n * Data for the this particular item.\r\n *\r\n * @param value Item's data\r\n */\r\n //public set dataContext(value: Object) {\r\n //\tthis._dataContext = value;\r\n //}\r\n /**\r\n * @return Item's data\r\n */\r\n /*\r\n public get dataContext(): Object {\r\n // It's because data of tree series is TreeMapDataItems.\r\n if (this._dataContext) {\r\n return (<any>this._dataContext).dataContext;\r\n }\r\n }*/\r\n /**\r\n * The name of the item's parent item.\r\n *\r\n * @return Parent name\r\n */\r\n get: function () {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem && treeMapDataItem.parent) {\r\n return treeMapDataItem.parent.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"value\", {\r\n /**\r\n * Item's numeric value.\r\n *\r\n * @readonly\r\n * @return Value\r\n */\r\n get: function () {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n return treeMapDataItem.value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"treeMapDataItem\", {\r\n /**\r\n * A corresponding data item from the tree map.\r\n *\r\n * @readonly\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._dataContext;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Hides the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param toValue A value to set to `fields` when hiding\r\n * @param fields A list of data fields to set value to `toValue`\r\n */\r\n TreeMapSeriesDataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n treeMapDataItem.hide(duration);\r\n }\r\n return _super.prototype.hide.call(this, duration, delay, toValue, fields);\r\n };\r\n /**\r\n * Shows the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param fields A list of fields to set values of\r\n */\r\n TreeMapSeriesDataItem.prototype.show = function (duration, delay, fields) {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n treeMapDataItem.show(duration, delay, fields);\r\n }\r\n return _super.prototype.show.call(this, duration, delay, fields);\r\n };\r\n return TreeMapSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { TreeMapSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines Series for a TreeMap chart.\r\n *\r\n * @see {@link ITreeMapSeriesEvents} for a list of available Events\r\n * @see {@link ITreeMapSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar TreeMapSeries = /** @class */ (function (_super) {\r\n __extends(TreeMapSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMapSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"TreeMapSeries\";\r\n _this.applyTheme();\r\n _this.fillOpacity = 1;\r\n _this.strokeOpacity = 1;\r\n _this.minBulletDistance = 0;\r\n _this.columns.template.tooltipText = \"{parentName} {name}: {value}\"; //@todo add format number?\r\n _this.columns.template.configField = \"config\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.stroke = interfaceColors.getFor(\"background\");\r\n _this.dataFields.openValueX = \"x0\";\r\n _this.dataFields.valueX = \"x1\";\r\n _this.dataFields.openValueY = \"y0\";\r\n _this.dataFields.valueY = \"y1\";\r\n _this.sequencedInterpolation = false;\r\n _this.showOnInit = false;\r\n // otherwise nodes don't stack nicely to each other\r\n _this.columns.template.pixelPerfect = false;\r\n return _this;\r\n }\r\n /**\r\n * Processes data item.\r\n *\r\n * @param dataItem Data item\r\n * @param dataContext Raw data\r\n * @param index Index of the data item\r\n */\r\n TreeMapSeries.prototype.processDataItem = function (dataItem, dataContext) {\r\n dataContext.seriesDataItem = dataItem; // save a reference here. dataContext is TreeMapDataItem and we need to know dataItem sometimes\r\n _super.prototype.processDataItem.call(this, dataItem, dataContext);\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n TreeMapSeries.prototype.createDataItem = function () {\r\n return new TreeMapSeriesDataItem();\r\n };\r\n /**\r\n * Shows series.\r\n *\r\n * @param duration Duration of fade in (ms)\r\n * @return Animation\r\n */\r\n TreeMapSeries.prototype.show = function (duration) {\r\n if (this.preventShow) {\r\n return;\r\n }\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n this.dataItems.each(function (dataItem) {\r\n //dataItem.treeMapDataItem.setWorkingValue(\"value\", dataItem.treeMapDataItem.values.value.value);\r\n dataItem.show(duration);\r\n });\r\n return _super.prototype.showReal.call(this, interpolationDuration);\r\n };\r\n /**\r\n * Hides series.\r\n *\r\n * @param duration Duration of fade out (ms)\r\n * @return Animation\r\n */\r\n TreeMapSeries.prototype.hide = function (duration) {\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n var animation = _super.prototype.hideReal.call(this, interpolationDuration);\r\n this.dataItems.each(function (dataItem) {\r\n //dataItem.treeMapDataItem.setWorkingValue(\"value\", 0);\r\n dataItem.hide(duration);\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Process values.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n TreeMapSeries.prototype.processValues = function () {\r\n // Just overriding so that inherited method does not kick in.\r\n };\r\n /**\r\n * Returns relative start location for the data item.\r\n *\r\n * @param dataItem Data item\r\n * @return Location (0-1)\r\n */\r\n TreeMapSeries.prototype.getStartLocation = function (dataItem) {\r\n return 0;\r\n };\r\n /**\r\n * Returns relative end location for the data item.\r\n *\r\n * @param dataItem Data item\r\n * @return Location (0-1)\r\n */\r\n TreeMapSeries.prototype.getEndLocation = function (dataItem) {\r\n return 1;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n TreeMapSeries.prototype.dataChangeUpdate = function () {\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n TreeMapSeries.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Add empty data fields if the they are not set, so that XYSeries\r\n // dataField check does not result in error.\r\n if (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n config.dataFields = {};\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n TreeMapSeries.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(RoundedRectangle);\r\n column.shouldClone = false;\r\n $object.copyProperties(this, column, visualProperties);\r\n //column.copyFrom(<any>this.columns.template);\r\n column.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n column.width = w;\r\n column.height = h;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.fill;\r\n legendDataItem.colorOrig = column.fill;\r\n };\r\n TreeMapSeries.prototype.disableUnusedColumns = function (dataItem) {\r\n _super.prototype.disableUnusedColumns.call(this, dataItem);\r\n if (dataItem.column) {\r\n dataItem.column.__disabled = false;\r\n }\r\n };\r\n return TreeMapSeries;\r\n}(ColumnSeries));\r\nexport { TreeMapSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TreeMapSeries\"] = TreeMapSeries;\r\nregistry.registeredClasses[\"TreeMapSeriesDataItem\"] = TreeMapSeriesDataItem;\r\n//# sourceMappingURL=TreeMapSeries.js.map","/**\r\n * TreeMap chart module.\r\n *\r\n * Parts of the functionality used in this module are taken from D3.js library\r\n * (https://d3js.org/)\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, XYChartDataItem } from \"./XYChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { DictionaryTemplate, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { TreeMapSeries } from \"../series/TreeMapSeries\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[TreeMap]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar TreeMapDataItem = /** @class */ (function (_super) {\r\n __extends(TreeMapDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMapDataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Required for squarify functionality.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n _this.rows = [];\r\n _this.className = \"TreeMapDataItem\";\r\n _this.values.value = { workingValue: 0 };\r\n _this.values.x0 = {};\r\n _this.values.y0 = {};\r\n _this.values.x1 = {};\r\n _this.values.y1 = {};\r\n _this.hasChildren.children = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(TreeMapDataItem.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Legend data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * A legend's data item, that corresponds to this data item.\r\n *\r\n * @param value Legend data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n if (value.label) {\r\n value.label.dataItem = this;\r\n }\r\n if (value.valueLabel) {\r\n value.valueLabel.dataItem = this;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a duration (ms) the Data Item should take to animate from one\r\n * value to another.\r\n *\r\n * If the duration is not specified via parameter, this method will try to\r\n * request a default duration from the related `Component`.\r\n *\r\n * @param duration Default duration (ms)\r\n * @return Duration (ms)\r\n */\r\n TreeMapDataItem.prototype.getDuration = function () {\r\n return 0;\r\n };\r\n Object.defineProperty(TreeMapDataItem.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n var value = 0;\r\n if (!this.children || this.children.length == 0) {\r\n value = this.values[\"value\"].workingValue;\r\n }\r\n else {\r\n $iter.each(this.children.iterator(), function (child) {\r\n var childValue = child.value;\r\n if ($type.isNumber(childValue)) {\r\n value += childValue;\r\n }\r\n });\r\n }\r\n return value;\r\n /*\r\n let value = this.values[\"value\"].workingValue;\r\n \r\n if (!$type.isNumber(value)) {\r\n value = 0;\r\n if (this.children) {\r\n $iter.each(this.children.iterator(), (child) => {\r\n if ($type.isNumber(child.value)) {\r\n value += child.value;\r\n }\r\n });\r\n }\r\n }\r\n return value;*/\r\n },\r\n /**\r\n * Numeric value of the item.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"value\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"percent\", {\r\n /**\r\n * Percent value of a node\r\n */\r\n get: function () {\r\n if (this.parent) {\r\n return this.value / this.parent.value * 100;\r\n }\r\n return 100;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"x0\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n return this.values.x0.value;\r\n },\r\n /**\r\n * Item's X position.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param value X\r\n */\r\n set: function (value) {\r\n this.setValue(\"x0\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"x1\", {\r\n /**\r\n * @return X\r\n */\r\n get: function () {\r\n return this.values.x1.value;\r\n },\r\n /**\r\n * Item's X position.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param value X\r\n */\r\n set: function (value) {\r\n this.setValue(\"x1\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"y0\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.values.y0.value;\r\n },\r\n /**\r\n * Item's Y position.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n this.setValue(\"y0\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"y1\", {\r\n /**\r\n * @return Y\r\n */\r\n get: function () {\r\n return this.values.y1.value;\r\n },\r\n /**\r\n * Item's Y position.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description (review)\r\n * @param value Y\r\n */\r\n set: function (value) {\r\n this.setValue(\"y1\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.properties.name;\r\n },\r\n /**\r\n * Item's name.\r\n *\r\n * @param name Name\r\n */\r\n set: function (name) {\r\n this.setProperty(\"name\", name);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"children\", {\r\n /**\r\n * @return Item's children\r\n */\r\n get: function () {\r\n return this.properties.children;\r\n },\r\n /**\r\n * A list of item's sub-children.\r\n *\r\n * Having children means that the TreeMap chat will automatically be\r\n * \"drillable\". Clicking on an item with children will zoom to the item, then\r\n * display its children.\r\n *\r\n * Treemap can have any level of nesting.\r\n *\r\n * @param children Item's children\r\n */\r\n set: function (children) {\r\n this.setProperty(\"children\", children);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"level\", {\r\n /**\r\n * Depth level in the treemap hierarchy.\r\n *\r\n * The top-level item will have level set at 0. Its children will have\r\n * level 1, and so on.\r\n *\r\n * @readonly\r\n * @return Level\r\n */\r\n get: function () {\r\n if (!this.parent) {\r\n return 0;\r\n }\r\n else {\r\n return this.parent.level + 1;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"color\", {\r\n /**\r\n * @return Color\r\n */\r\n get: function () {\r\n var color = this.properties.color;\r\n if (color == undefined) {\r\n if (this.parent) {\r\n color = this.parent.color;\r\n }\r\n }\r\n if (color == undefined) {\r\n if (this.component) {\r\n color = this.component.colors.getIndex(this.component.colors.step * this.index);\r\n }\r\n }\r\n return color;\r\n },\r\n /**\r\n * Item's color.\r\n *\r\n * If not set, will use parent's color, or, if that is not set either,\r\n * automatically assigned color from chart's color set. (`chart.colors`)\r\n *\r\n * @param value Color\r\n */\r\n set: function (value) {\r\n this.setProperty(\"color\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"fill\", {\r\n /**\r\n * @ignore\r\n * For the legend to work properly\r\n */\r\n get: function () {\r\n return this.color;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapDataItem.prototype, \"series\", {\r\n get: function () {\r\n return this._series;\r\n },\r\n /**\r\n * Series of children data items\r\n * @todo: proper descrition\r\n */\r\n set: function (series) {\r\n if (series != this._series) {\r\n if (this._series) {\r\n this.component.series.removeValue(this._series);\r\n this._series.dispose();\r\n }\r\n this._series = series;\r\n this._disposers.push(series);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Hides the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param toValue A value to set to `fields` when hiding\r\n * @param fields A list of data fields to set value to `toValue`\r\n */\r\n TreeMapDataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n this.setWorkingValue(\"value\", 0);\r\n if (this.children) {\r\n this.children.each(function (child) {\r\n child.hide(duration, delay, toValue, fields);\r\n });\r\n }\r\n var seriesDataItem = this.seriesDataItem;\r\n if (seriesDataItem) {\r\n seriesDataItem.bullets.each(function (key, value) {\r\n value.hide();\r\n value.preventShow = true;\r\n });\r\n }\r\n return _super.prototype.hide.call(this, duration, delay, toValue, fields);\r\n };\r\n /**\r\n * Shows the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param fields A list of fields to set values of\r\n */\r\n TreeMapDataItem.prototype.show = function (duration, delay, fields) {\r\n this.setWorkingValue(\"value\", this.values.value.value);\r\n if (this.children) {\r\n this.children.each(function (child) {\r\n child.show(duration, delay, fields);\r\n });\r\n }\r\n var seriesDataItem = this.seriesDataItem;\r\n if (seriesDataItem) {\r\n seriesDataItem.bullets.each(function (key, value) {\r\n value.preventShow = false;\r\n });\r\n }\r\n return _super.prototype.show.call(this, duration, delay, fields);\r\n };\r\n return TreeMapDataItem;\r\n}(XYChartDataItem));\r\nexport { TreeMapDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a TreeMap chart.\r\n *\r\n * @see {@link ITreeMapEvents} for a list of available Events\r\n * @see {@link ITreeMapAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/treemap/} for documentation\r\n */\r\nvar TreeMap = /** @class */ (function (_super) {\r\n __extends(TreeMap, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMap() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * An algorithm used to divide area into squares based on their value.\r\n *\r\n * Available options: squarify (default), binaryTree, slice, dice, sliceDice.\r\n *\r\n * ```TypeScript\r\n * chart.layoutAlgorithm = chart.sliceDice;\r\n * ```\r\n * ```JavaScript\r\n * chart.layoutAlgorithm = chart.sliceDice;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"layoutAlgorithm\": \"sliceDice\",\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/treemap/#Area_division_methods} For more info and examples.\r\n * @default squarify\r\n */\r\n _this.layoutAlgorithm = _this.squarify;\r\n /**\r\n * Is the chart zoomable?\r\n *\r\n * If the chart is `zoomable`, and items have sub-items, the chart will\r\n * drill-down to sub-items when click on their parent item.\r\n *\r\n * @default true\r\n */\r\n _this.zoomable = true;\r\n _this.className = \"TreeMap\";\r\n _this._usesData = true;\r\n _this.maxLevels = 2;\r\n _this.currentLevel = 0;\r\n _this.hideParentColumns = false;\r\n _this.colors = new ColorSet();\r\n _this.sorting = \"descending\";\r\n // create two value axes for the chart\r\n var xAxis = _this.xAxes.push(new ValueAxis());\r\n xAxis.title.disabled = true;\r\n xAxis.strictMinMax = true;\r\n var xRenderer = xAxis.renderer;\r\n xRenderer.inside = true;\r\n xRenderer.labels.template.disabled = true;\r\n xRenderer.ticks.template.disabled = true;\r\n xRenderer.grid.template.disabled = true;\r\n xRenderer.axisFills.template.disabled = true;\r\n xRenderer.minGridDistance = 100;\r\n xRenderer.line.disabled = true;\r\n xRenderer.baseGrid.disabled = true;\r\n //xRenderer.inversed = true;\r\n var yAxis = _this.yAxes.push(new ValueAxis());\r\n yAxis.title.disabled = true;\r\n yAxis.strictMinMax = true;\r\n var yRenderer = yAxis.renderer;\r\n yRenderer.inside = true;\r\n yRenderer.labels.template.disabled = true;\r\n yRenderer.ticks.template.disabled = true;\r\n yRenderer.grid.template.disabled = true;\r\n yRenderer.axisFills.template.disabled = true;\r\n yRenderer.minGridDistance = 100;\r\n yRenderer.line.disabled = true;\r\n yRenderer.baseGrid.disabled = true;\r\n yRenderer.inversed = true;\r\n // shortcuts\r\n _this.xAxis = xAxis;\r\n _this.yAxis = yAxis;\r\n var template = new TreeMapSeries();\r\n _this.seriesTemplates = new DictionaryTemplate(template);\r\n template.virtualParent = _this;\r\n _this._disposers.push(new DictionaryDisposer(_this.seriesTemplates));\r\n _this._disposers.push(template);\r\n _this.zoomOutButton.events.on(\"hit\", function () {\r\n _this.zoomToChartDataItem(_this._homeDataItem);\r\n }, undefined, false);\r\n _this.seriesTemplates.events.on(\"insertKey\", function (event) {\r\n event.newValue.isTemplate = true;\r\n }, undefined, false);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(TreeMap.prototype, \"navigationBar\", {\r\n /**\r\n * Returns navigationBar if it is added to a chart\r\n */\r\n get: function () {\r\n return this._navigationBar;\r\n },\r\n /**\r\n * A navigation bar used to show \"breadcrumb\" control, indicating current\r\n * drill-down path.\r\n */\r\n set: function (navigationBar) {\r\n var _this = this;\r\n if (this._navigationBar != navigationBar) {\r\n this._navigationBar = navigationBar;\r\n navigationBar.parent = this;\r\n navigationBar.toBack();\r\n navigationBar.links.template.events.on(\"hit\", function (event) {\r\n var dataItem = event.target.dataItem.dataContext;\r\n if (!dataItem.isDisposed()) {\r\n _this.zoomToChartDataItem(dataItem);\r\n _this.createTreeSeries(dataItem);\r\n }\r\n }, undefined, true);\r\n this._disposers.push(navigationBar);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * (Re)validates chart's data.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n TreeMap.prototype.validateData = function () {\r\n this.series.clear();\r\n this._tempSeries = [];\r\n _super.prototype.validateData.call(this);\r\n if (this._homeDataItem) {\r\n this._homeDataItem.dispose();\r\n }\r\n var homeDataItem = this.dataItems.template.clone(); // cant' use createDataItem here!\r\n this._homeDataItem = homeDataItem;\r\n $iter.each(this.dataItems.iterator(), function (dataItem) {\r\n dataItem.parent = homeDataItem;\r\n });\r\n homeDataItem.children = this.dataItems;\r\n homeDataItem.x0 = 0;\r\n homeDataItem.y0 = 0;\r\n homeDataItem.name = this._homeText;\r\n var maxX = 1000;\r\n var maxY = Math.round((maxX * this.pixelHeight / this.pixelWidth) / 10) * 10 || 1000;\r\n homeDataItem.x1 = maxX;\r\n homeDataItem.y1 = maxY;\r\n this.xAxis.min = 0;\r\n this.xAxis.max = maxX;\r\n this.xAxis.getMinMax();\r\n this.yAxis.min = 0;\r\n this.yAxis.max = maxY;\r\n this.yAxis.getMinMax();\r\n this.layoutItems(homeDataItem);\r\n this.createTreeSeries(homeDataItem);\r\n this.feedLegend();\r\n };\r\n /**\r\n * Layouts and sizes all items according to their value and\r\n * `layoutAlgorithm`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Parent data item\r\n */\r\n TreeMap.prototype.layoutItems = function (parent, sorting) {\r\n if (parent) {\r\n var children = parent.children;\r\n if (!sorting) {\r\n sorting = this.sorting;\r\n }\r\n if (sorting == \"ascending\") {\r\n children.values.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n }\r\n if (sorting == \"descending\") {\r\n children.values.sort(function (a, b) {\r\n return b.value - a.value;\r\n });\r\n }\r\n this._updateDataItemIndexes(0);\r\n this.layoutAlgorithm(parent);\r\n for (var i = 0, len = children.length; i < len; i++) {\r\n var node = children.getIndex(i);\r\n if (node.children) {\r\n this.layoutItems(node);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Creates and returns a new treemap series.\r\n *\r\n * @todo Description\r\n * @param dataItem Data item to create series out of\r\n */\r\n TreeMap.prototype.createTreeSeries = function (dataItem) {\r\n var _this = this;\r\n this._tempSeries = [];\r\n var navigationData = [dataItem];\r\n // create parent series and navigation data\r\n var parentDataItem = dataItem.parent;\r\n while (parentDataItem != undefined) {\r\n this.initSeries(parentDataItem);\r\n navigationData.push(parentDataItem);\r\n parentDataItem = parentDataItem.parent;\r\n }\r\n navigationData.reverse();\r\n if (this.navigationBar) {\r\n this.navigationBar.data = navigationData;\r\n }\r\n // create series and children series\r\n this.createTreeSeriesReal(dataItem);\r\n // add those which are not in the list\r\n $array.each(this._tempSeries, function (series) {\r\n if (_this.series.indexOf(series) == -1) {\r\n _this.series.push(series);\r\n }\r\n series.zIndex = series.level;\r\n });\r\n };\r\n /**\r\n * [createTreeSeriesReal description]\r\n *\r\n * @todo Description\r\n * @param dataItem [description]\r\n */\r\n TreeMap.prototype.createTreeSeriesReal = function (dataItem) {\r\n if (dataItem.children) {\r\n var level = dataItem.level;\r\n if (level < this.currentLevel + this.maxLevels) {\r\n this.initSeries(dataItem);\r\n for (var i = 0; i < dataItem.children.length; i++) {\r\n var child = dataItem.children.getIndex(i);\r\n if (child.children) {\r\n this.createTreeSeriesReal(child);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TreeMap.prototype.setData = function (value) {\r\n this.currentLevel = 0;\r\n this.currentlyZoomed = undefined;\r\n this.xAxis.start = 0;\r\n this.xAxis.end = 1;\r\n this.yAxis.start = 0;\r\n this.yAxis.end = 1;\r\n _super.prototype.setData.call(this, value);\r\n };\r\n /**\r\n * @ignore\r\n * Overriding, as tree map series are created on the fly all the time\r\n */\r\n TreeMap.prototype.seriesAppeared = function () {\r\n return true;\r\n };\r\n /**\r\n * Initializes the treemap series.\r\n *\r\n * @todo Description\r\n * @param dataItem Chart data item\r\n */\r\n TreeMap.prototype.initSeries = function (dataItem) {\r\n var _this = this;\r\n if (!dataItem.series) {\r\n var series = void 0;\r\n var template = this.seriesTemplates.getKey(dataItem.level.toString());\r\n if (template) {\r\n series = template.clone();\r\n }\r\n else {\r\n series = this.series.create();\r\n }\r\n // for the legend to get {value}\r\n series.dataItem.dataContext = dataItem;\r\n series.name = dataItem.name;\r\n series.parentDataItem = dataItem;\r\n dataItem.series = series;\r\n var level = dataItem.level;\r\n series.level = level;\r\n var dataContext = dataItem.dataContext;\r\n if (dataContext) {\r\n series.config = dataContext.config;\r\n }\r\n this.dataUsers.removeValue(series); // series do not use data directly, that's why we remove it\r\n series.data = dataItem.children.values;\r\n series.fill = dataItem.color;\r\n series.columnsContainer.hide(0);\r\n series.bulletsContainer.hide(0);\r\n series.columns.template.adapter.add(\"fill\", function (fill, target) {\r\n var dataItem = target.dataItem;\r\n if (dataItem) {\r\n var treeMapDataItem = dataItem.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n target.fill = treeMapDataItem.color;\r\n target.adapter.remove(\"fill\"); //@todo: make it possible adapters applied once?\r\n return treeMapDataItem.color;\r\n }\r\n }\r\n });\r\n if (this.zoomable && (dataItem.level > this.currentLevel || (dataItem.children && dataItem.children.length > 0))) {\r\n series.columns.template.cursorOverStyle = MouseCursorStyle.pointer;\r\n if (this.zoomable) {\r\n series.columns.template.events.on(\"hit\", function (event) {\r\n var seriesDataItem = event.target.dataItem;\r\n if (dataItem.level > _this.currentLevel) {\r\n _this.zoomToChartDataItem(seriesDataItem.treeMapDataItem.parent);\r\n }\r\n else {\r\n _this.zoomToSeriesDataItem(seriesDataItem);\r\n }\r\n }, this, undefined);\r\n }\r\n }\r\n }\r\n this._tempSeries.push(dataItem.series);\r\n };\r\n /**\r\n * Toggles bullets so that labels that belong to current drill level are\r\n * shown.\r\n *\r\n * @param duration Animation duration (ms)\r\n */\r\n TreeMap.prototype.toggleBullets = function (duration) {\r\n var _this = this;\r\n // hide all series which are not in tempSeries\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (_this._tempSeries.indexOf(series) == -1) {\r\n //series.hideReal(duration);\r\n series.columnsContainer.hide();\r\n series.bulletsContainer.hide(duration);\r\n }\r\n else {\r\n //series.showReal(duration);\r\n series.columnsContainer.show();\r\n series.bulletsContainer.show(duration);\r\n series.dataItems.each(function (dataItem) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.show();\r\n });\r\n });\r\n if (series.level < _this.currentLevel) {\r\n if (_this.hideParentColumns) {\r\n series.columnsContainer.hide();\r\n }\r\n series.bulletsContainer.hide(duration);\r\n }\r\n else if (series.level == _this.currentLevel) {\r\n if (_this.maxLevels > 1) {\r\n series.dataItems.each(function (dataItem) {\r\n if (dataItem.treeMapDataItem.children) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.hide();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Zooms to particular item in series.\r\n *\r\n * @param dataItem Data item\r\n */\r\n TreeMap.prototype.zoomToSeriesDataItem = function (dataItem) {\r\n this.zoomToChartDataItem(dataItem.treeMapDataItem);\r\n };\r\n /**\r\n * Zooms to particular item. If dataItem is not specified, the chart will zoom-out.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n TreeMap.prototype.zoomToChartDataItem = function (dataItem) {\r\n var _this = this;\r\n if (!dataItem) {\r\n dataItem = this._homeDataItem;\r\n }\r\n var zoomOutButton = this.zoomOutButton;\r\n // this is needed because if there is only one fist level, it won't be shown\r\n if (zoomOutButton) {\r\n if (dataItem != this._homeDataItem) {\r\n zoomOutButton.show();\r\n }\r\n else {\r\n zoomOutButton.hide();\r\n }\r\n }\r\n if (dataItem && dataItem.children) {\r\n this.xAxis.zoomToValues(dataItem.x0, dataItem.x1);\r\n this.yAxis.zoomToValues(dataItem.y0, dataItem.y1);\r\n this.currentLevel = dataItem.level;\r\n this.currentlyZoomed = dataItem;\r\n this.createTreeSeries(dataItem);\r\n var rangeChangeAnimation = this.xAxis.rangeChangeAnimation || this.yAxis.rangeChangeAnimation;\r\n if (rangeChangeAnimation && !rangeChangeAnimation.isDisposed() && !rangeChangeAnimation.isFinished()) {\r\n this._dataDisposers.push(rangeChangeAnimation);\r\n rangeChangeAnimation.events.once(\"animationended\", function () {\r\n _this.toggleBullets();\r\n });\r\n }\r\n else {\r\n this.toggleBullets();\r\n }\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n TreeMap.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n // Add a default screen reader title for accessibility\r\n // This will be overridden in screen reader if there are any `titles` set\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"TreeMap chart\");\r\n }\r\n //this.homeText = this.language.translate(\"Home\");\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n TreeMap.prototype.createDataItem = function () {\r\n return new TreeMapDataItem();\r\n };\r\n Object.defineProperty(TreeMap.prototype, \"maxLevels\", {\r\n /**\r\n * @return Maximum drill-down level\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxLevels\");\r\n },\r\n /**\r\n * Maximum number of levels the chart will display initially.\r\n *\r\n * @default 2\r\n * @param value Maximum drill-down level\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxLevels\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMap.prototype, \"currentLevel\", {\r\n /**\r\n * @return Current level\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"currentLevel\");\r\n },\r\n /**\r\n * Current drill-down level the chart is at.\r\n *\r\n * @param value Current level\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"currentLevel\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMap.prototype, \"hideParentColumns\", {\r\n /**\r\n * @return Hide?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hideParentColumns\");\r\n },\r\n /**\r\n * If set to `true`, columns of parent nodes will be hidden when user\r\n * drills-down into deeper levels.\r\n *\r\n * @sice 4.7.4\r\n * @default false\r\n * @param value Hide?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"hideParentColumns\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMap.prototype, \"sorting\", {\r\n get: function () {\r\n return this.getPropertyValue(\"sorting\");\r\n },\r\n /**\r\n * Sorting direction of treemap items.\r\n *\r\n * Available options: \"none\", \"ascending\", and \"descending\" (default).\r\n *\r\n * @default \"descending\"\r\n * @param value [description]\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"sorting\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Creates and returns a new series of the suitable type.\r\n *\r\n * @return new series\r\n */\r\n TreeMap.prototype.createSeries = function () {\r\n return new TreeMapSeries();\r\n };\r\n Object.defineProperty(TreeMap.prototype, \"homeText\", {\r\n /**\r\n * @return Home text\r\n */\r\n get: function () {\r\n return this._homeText;\r\n },\r\n /**\r\n * A text displayed on the \"home\" button which is used to go back to level 0\r\n * after drill into sub-items.\r\n *\r\n * @param value Home text\r\n */\r\n set: function (value) {\r\n this._homeText = value;\r\n if (this._homeDataItem) {\r\n this._homeDataItem.name = this._homeText;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n TreeMap.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Instantiate layout algorithm\r\n if ($type.hasValue(config[\"layoutAlgorithm\"]) && $type.isString(config[\"layoutAlgorithm\"])) {\r\n switch (config[\"layoutAlgorithm\"]) {\r\n case \"squarify\":\r\n config[\"layoutAlgorithm\"] = this.squarify;\r\n break;\r\n case \"binaryTree\":\r\n config[\"layoutAlgorithm\"] = this.binaryTree;\r\n break;\r\n case \"slice\":\r\n config[\"layoutAlgorithm\"] = this.slice;\r\n break;\r\n case \"dice\":\r\n config[\"layoutAlgorithm\"] = this.dice;\r\n break;\r\n case \"sliceDice\":\r\n config[\"layoutAlgorithm\"] = this.sliceDice;\r\n break;\r\n default:\r\n delete config[\"layoutAlgorithm\"];\r\n break;\r\n }\r\n }\r\n // Set type for navigation bar\r\n if ($type.hasValue(config.navigationBar) && !$type.hasValue(config.navigationBar.type)) {\r\n config.navigationBar.type = \"NavigationBar\";\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n }\r\n };\r\n /**\r\n * Measures the size of container and informs its children of how much size\r\n * they can occupy, by setting their relative `maxWidth` and `maxHeight`\r\n * properties.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n TreeMap.prototype.validateLayout = function () {\r\n _super.prototype.validateLayout.call(this);\r\n this.layoutItems(this.currentlyZoomed);\r\n };\r\n /**\r\n * Validates (processes) data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n TreeMap.prototype.validateDataItems = function () {\r\n _super.prototype.validateDataItems.call(this);\r\n this.layoutItems(this._homeDataItem);\r\n $iter.each(this.series.iterator(), function (series) {\r\n series.validateRawData();\r\n });\r\n this.zoomToChartDataItem(this._homeDataItem);\r\n };\r\n /**\r\n * ==========================================================================\r\n * TREEMAP LAYOUT FUNCTIONS\r\n * ==========================================================================\r\n * @hidden\r\n */\r\n /**\r\n * The functions below are from D3.js library (https://d3js.org/)\r\n *\r\n * --------------------------------------------------------------------------\r\n * Copyright 2017 Mike Bostock\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are permitted provided that the following conditions are met:\r\n *\r\n * 1. Redistributions of source code must retain the above copyright notice,\r\n * this list of conditions and the following disclaimer.\r\n *\r\n * 2. Redistributions in binary form must reproduce the above copyright\r\n * notice,this list of conditions and the following disclaimer in the\r\n * documentation and/or other materials provided with the distribution.\r\n *\r\n * 3. Neither the name of the copyright holder nor the names of its\r\n * contributors may be used to endorse or promote products derived from\r\n * this software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r\n * POSSIBILITY OF SUCH DAMAGE.\r\n * --------------------------------------------------------------------------\r\n * @hidden\r\n */\r\n /**\r\n * Treemap layout algorithm: binaryTree.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Data item\r\n */\r\n TreeMap.prototype.binaryTree = function (parent) {\r\n var nodes = parent.children, i, n = nodes.length, sum, sums = new Array(n + 1);\r\n for (sums[0] = sum = i = 0; i < n; ++i) {\r\n sums[i + 1] = sum += nodes.getIndex(i).value;\r\n }\r\n if (n > 0) {\r\n partition(0, n, parent.value, parent.x0, parent.y0, parent.x1, parent.y1);\r\n }\r\n function partition(i, j, value, x0, y0, x1, y1) {\r\n if (i >= j - 1) {\r\n var node = nodes.getIndex(i);\r\n node.x0 = x0;\r\n node.y0 = y0;\r\n node.x1 = x1;\r\n node.y1 = y1;\r\n return;\r\n }\r\n var valueOffset = sums[i], valueTarget = (value / 2) + valueOffset, k = i + 1, hi = j - 1;\r\n while (k < hi) {\r\n var mid = k + hi >>> 1;\r\n if (sums[mid] < valueTarget) {\r\n k = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) {\r\n --k;\r\n }\r\n var valueLeft = sums[k] - valueOffset, valueRight = value - valueLeft;\r\n if (value == 0) {\r\n var node = nodes.getIndex(i);\r\n node.x0 = x0;\r\n node.y0 = y0;\r\n node.x1 = x1;\r\n node.y1 = y1;\r\n return;\r\n }\r\n if ((x1 - x0) > (y1 - y0)) {\r\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\r\n partition(i, k, valueLeft, x0, y0, xk, y1);\r\n partition(k, j, valueRight, xk, y0, x1, y1);\r\n }\r\n else {\r\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\r\n partition(i, k, valueLeft, x0, y0, x1, yk);\r\n partition(k, j, valueRight, x0, yk, x1, y1);\r\n }\r\n }\r\n };\r\n /**\r\n * Treemap layout algorithm: slice.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Data item\r\n */\r\n TreeMap.prototype.slice = function (parent) {\r\n var x0 = parent.x0;\r\n var x1 = parent.x1;\r\n var y0 = parent.y0;\r\n var y1 = parent.y1;\r\n var nodes = parent.children;\r\n var node;\r\n var i = -1;\r\n var n = nodes.length;\r\n var k = parent.value && (y1 - y0) / parent.value;\r\n while (++i < n) {\r\n node = nodes.getIndex(i);\r\n node.x0 = x0;\r\n node.x1 = x1;\r\n node.y0 = y0;\r\n y0 += node.value * k;\r\n node.y1 = y0;\r\n }\r\n };\r\n /**\r\n * Treemap layout algorithm: dice.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Data item\r\n */\r\n TreeMap.prototype.dice = function (parent) {\r\n var x0 = parent.x0;\r\n var x1 = parent.x1;\r\n var y0 = parent.y0;\r\n var y1 = parent.y1;\r\n var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value;\r\n while (++i < n) {\r\n node = nodes.getIndex(i);\r\n node.y0 = y0;\r\n node.y1 = y1;\r\n node.x0 = x0;\r\n x0 += node.value * k;\r\n node.x1 = x0;\r\n }\r\n };\r\n /**\r\n * Treemap layout algorithm: slideDice.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Data item\r\n */\r\n TreeMap.prototype.sliceDice = function (parent) {\r\n if (parent.level & 1) {\r\n this.slice(parent);\r\n }\r\n else {\r\n this.dice(parent);\r\n }\r\n };\r\n /**\r\n * Treemap layout algorithm: squarify.\r\n *\r\n * @ignore Exclude from docs\r\n * @param parent Data item\r\n */\r\n TreeMap.prototype.squarify = function (parent) {\r\n var ratio = (1 + Math.sqrt(5)) / 2;\r\n var x0 = parent.x0;\r\n var x1 = parent.x1;\r\n var y0 = parent.y0;\r\n var y1 = parent.y1;\r\n var nodes = parent.children;\r\n var nodeValue;\r\n var i0 = 0;\r\n var i1 = 0;\r\n var n = nodes.length;\r\n var dx;\r\n var dy;\r\n var value = parent.value;\r\n var sumValue;\r\n var minValue;\r\n var maxValue;\r\n var newRatio;\r\n var minRatio;\r\n var alpha;\r\n var beta;\r\n while (i0 < n) {\r\n dx = x1 - x0;\r\n dy = y1 - y0;\r\n // Find the next non-empty node.\r\n do {\r\n sumValue = nodes.getIndex(i1++).value;\r\n } while (!sumValue && i1 < n);\r\n minValue = maxValue = sumValue;\r\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\r\n beta = sumValue * sumValue * alpha;\r\n minRatio = Math.max(maxValue / beta, beta / minValue);\r\n // Keep adding nodes while the aspect ratio maintains or improves.\r\n for (; i1 < n; ++i1) {\r\n sumValue += nodeValue = nodes.getIndex(i1).value;\r\n if (nodeValue < minValue) {\r\n minValue = nodeValue;\r\n }\r\n if (nodeValue > maxValue) {\r\n maxValue = nodeValue;\r\n }\r\n beta = sumValue * sumValue * alpha;\r\n newRatio = Math.max(maxValue / beta, beta / minValue);\r\n if (newRatio > minRatio) {\r\n sumValue -= nodeValue;\r\n break;\r\n }\r\n minRatio = newRatio;\r\n }\r\n // Position and record the row orientation.\r\n var row = this.dataItems.template.clone();\r\n row.value = sumValue;\r\n row.dice = dx < dy;\r\n row.children = nodes.slice(i0, i1);\r\n row.x0 = x0;\r\n row.y0 = y0;\r\n row.x1 = x1;\r\n row.y1 = y1;\r\n if (row.dice) {\r\n row.y1 = value ? (y0 += (dy * sumValue) / value) : y1;\r\n this.dice(row);\r\n }\r\n else {\r\n row.x1 = value ? (x0 += (dx * sumValue) / value) : x1;\r\n this.slice(row);\r\n }\r\n value -= sumValue;\r\n i0 = i1;\r\n }\r\n };\r\n TreeMap.prototype.handleSeriesAdded2 = function () {\r\n // void\r\n };\r\n /**\r\n * [handleDataItemValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n TreeMap.prototype.handleDataItemValueChange = function (dataItem, name) {\r\n if (name == \"value\") {\r\n this.invalidateDataItems();\r\n }\r\n };\r\n TreeMap.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n if (name == \"value\") {\r\n this.invalidateDataItems();\r\n }\r\n };\r\n TreeMap.prototype.getLegendLevel = function (dataItem) {\r\n if (!dataItem) {\r\n return;\r\n }\r\n if (!dataItem.children) {\r\n return;\r\n }\r\n if (dataItem.children.length > 1) {\r\n return dataItem;\r\n }\r\n else if (dataItem.children.length == 1) {\r\n var child = dataItem.children.getIndex(0);\r\n if (child.children) {\r\n return this.getLegendLevel(child);\r\n }\r\n else {\r\n return dataItem;\r\n }\r\n }\r\n else {\r\n return dataItem;\r\n }\r\n };\r\n TreeMap.prototype.handleLegendSeriesAdded = function (series) {\r\n // void\r\n };\r\n Object.defineProperty(TreeMap.prototype, \"homeDataItem\", {\r\n /**\r\n * A data item associated with top node.\r\n *\r\n * @since 4.8.2\r\n */\r\n get: function () {\r\n return this._homeDataItem;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Setups the legend to use the chart's data.\r\n * @ignore\r\n */\r\n TreeMap.prototype.feedLegend = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n legend.dataFields.name = \"name\";\r\n var legendParent = this.getLegendLevel(this._homeDataItem);\r\n if (legendParent) {\r\n var legendData_1 = [];\r\n legendParent.children.each(function (dataItem) {\r\n //if (!dataItem.hiddenInLegend) {\r\n legendData_1.push(dataItem);\r\n //}\r\n });\r\n legend.data = legendData_1;\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n TreeMap.prototype.disposeData = function () {\r\n _super.prototype.disposeData.call(this);\r\n this._homeDataItem = undefined;\r\n this.series.clear();\r\n if (this.navigationBar) {\r\n this.navigationBar.disposeData();\r\n }\r\n this.xAxis.disposeData();\r\n this.yAxis.disposeData();\r\n };\r\n /**\r\n * Since this chart uses hierarchical data, we need to remove childrent\r\n * dataField from export of non-hierarchical formats such as CSV and XSLX.\r\n *\r\n * @return Export\r\n */\r\n TreeMap.prototype.getExporting = function () {\r\n var _this = this;\r\n var exporting = _super.prototype.getExporting.call(this);\r\n exporting.adapter.add(\"formatDataFields\", function (info) {\r\n if (info.format == \"csv\" || info.format == \"xlsx\") {\r\n if ($type.hasValue(_this.dataFields.children)) {\r\n delete info.dataFields[_this.dataFields.children];\r\n }\r\n }\r\n return info;\r\n });\r\n return exporting;\r\n };\r\n return TreeMap;\r\n}(XYChart));\r\nexport { TreeMap };\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TreeMap\"] = TreeMap;\r\n//# sourceMappingURL=TreeMap.js.map","/**\r\n * Module, defining Axis Renderer for horizontal 3D axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererX } from \"../axes/AxisRendererX\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Renderer for horizontal 3D axis.\r\n *\r\n * @see {@link IAxisRendererX3DEvents} for a list of available events\r\n * @see {@link IAxisRendererX3DAdapters} for a list of available Adapters\r\n */\r\nvar AxisRendererX3D = /** @class */ (function (_super) {\r\n __extends(AxisRendererX3D, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererX3D() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A related chart.\r\n *\r\n * @todo Description\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n _this.className = \"AxisRendererX3D\";\r\n _this._disposers.push(_this._chart);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererX3D.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n if (grid.element) {\r\n var dx = this.chart.dx3D || 0;\r\n var dy = this.chart.dy3D || 0;\r\n var h = this.getHeight();\r\n grid.path = $path.moveTo({ x: dx, y: dy }) + $path.lineTo({ x: dx, y: h + dy }) + $path.lineTo({ x: 0, y: h });\r\n }\r\n this.positionItem(grid, point);\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererX3D.prototype.updateBaseGridElement = function () {\r\n _super.prototype.updateBaseGridElement.call(this);\r\n var h = this.getHeight();\r\n var dx = this.chart.dx3D || 0;\r\n var dy = this.chart.dy3D || 0;\r\n this.baseGrid.path = $path.moveTo({ x: dx, y: dy }) + $path.lineTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: h });\r\n };\r\n Object.defineProperty(AxisRendererX3D.prototype, \"chart\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * Chart, associated with the Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Chart\r\n */\r\n set: function (chart) {\r\n if (chart) {\r\n this._chart.set(chart, chart.events.on(\"propertychanged\", this.handle3DChanged, this, false));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Invoked when 3D-related settings change, like depth or angle.\r\n *\r\n * @param event Event\r\n */\r\n AxisRendererX3D.prototype.handle3DChanged = function (event) {\r\n if (event.property == \"depth\" || event.property == \"angle\") {\r\n this.invalidate();\r\n }\r\n };\r\n return AxisRendererX3D;\r\n}(AxisRendererX));\r\nexport { AxisRendererX3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererX3D\"] = AxisRendererX3D;\r\n//# sourceMappingURL=AxisRendererX3D.js.map","/**\r\n * Module, defining Axis Renderer for vertical 3D axes.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererY } from \"../axes/AxisRendererY\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Renderer for vertical 3D axis.\r\n *\r\n * @see {@link IAxisRendererY3DEvents} for a list of available events\r\n * @see {@link IAxisRendererY3DAdapters} for a list of available Adapters\r\n */\r\nvar AxisRendererY3D = /** @class */ (function (_super) {\r\n __extends(AxisRendererY3D, _super);\r\n /**\r\n * Constructor.\r\n *\r\n * @param axis Related axis\r\n */\r\n function AxisRendererY3D() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A related chart.\r\n *\r\n * @todo Description\r\n */\r\n _this._chart = new MutableValueDisposer();\r\n _this.className = \"AxisRendererY3D\";\r\n _this._disposers.push(_this._chart);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Updates and positions a grid element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param grid Grid element\r\n * @param position Starting position\r\n * @param endPosition End position\r\n */\r\n AxisRendererY3D.prototype.updateGridElement = function (grid, position, endPosition) {\r\n position = position + (endPosition - position) * grid.location;\r\n var point = this.positionToPoint(position);\r\n if (grid.element) {\r\n var dx = this.chart.dx3D || 0;\r\n var dy = this.chart.dy3D || 0;\r\n var w = this.getWidth();\r\n grid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: dx, y: dy }) + $path.lineTo({ x: w + dx, y: dy });\r\n }\r\n this.positionItem(grid, point);\r\n this.toggleVisibility(grid, position, 0, 1);\r\n };\r\n /**\r\n * Updates and positions the base grid element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n AxisRendererY3D.prototype.updateBaseGridElement = function () {\r\n _super.prototype.updateBaseGridElement.call(this);\r\n var dx = this.chart.dx3D || 0;\r\n var dy = this.chart.dy3D || 0;\r\n var w = this.getWidth();\r\n this.baseGrid.path = $path.moveTo({ x: 0, y: 0 })\r\n + $path.lineTo({ x: w, y: 0 })\r\n + $path.lineTo({ x: w + dx, y: dy });\r\n };\r\n Object.defineProperty(AxisRendererY3D.prototype, \"chart\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart.get();\r\n },\r\n /**\r\n * Chart, associated with the Axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Chart\r\n */\r\n set: function (chart) {\r\n if (chart) {\r\n this._chart.set(chart, chart.events.on(\"propertychanged\", this.handle3DChanged, this, false));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Invoked when 3D-related settings change, like depth or angle.\r\n *\r\n * @param event Event\r\n */\r\n AxisRendererY3D.prototype.handle3DChanged = function (event) {\r\n if (event.property == \"depth\" || event.property == \"angle\") {\r\n this.invalidate();\r\n }\r\n };\r\n return AxisRendererY3D;\r\n}(AxisRendererY));\r\nexport { AxisRendererY3D };\r\n//# sourceMappingURL=AxisRendererY3D.js.map","/**\r\n * Module that defines everything related to building 3D Columns.\r\n * It is a container which has column3D element which is a Rectangle3D.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Rectangle3D } from \"../../core/elements/3d/Rectangle3D\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Column3Ds.\r\n *\r\n * @see {@link IColumn3DEvents} for a list of available events\r\n * @see {@link IColumn3DAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Column3D = /** @class */ (function (_super) {\r\n __extends(Column3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Column3D() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Column3D\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Column3D.prototype.createAssets = function () {\r\n this.column3D = this.createChild(Rectangle3D);\r\n this.column3D.shouldClone = false;\r\n this.column3D.strokeOpacity = 0;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.column3D;\r\n };\r\n /**\r\n * @ignore Exclude from docs\r\n */\r\n Column3D.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n if (this.column3D) {\r\n this.column3D.width = this.pixelWidth;\r\n this.column3D.height = this.pixelHeight;\r\n if (this.column3D.invalid) {\r\n this.column3D.validate();\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all parameters from another [[Column3D]].\r\n *\r\n * @param source Source Column3D\r\n */\r\n Column3D.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.column3D) {\r\n this.column3D.copyFrom(source.column3D);\r\n }\r\n };\r\n /**\r\n * Sets actual `fill` property on the SVG element, including applicable color\r\n * modifiers.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Fill\r\n */\r\n Column3D.prototype.setFill = function (value) {\r\n _super.prototype.setFill.call(this, value);\r\n this.column.fill = value;\r\n };\r\n return Column3D;\r\n}(Column));\r\nexport { Column3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Column3D\"] = Column3D;\r\n//# sourceMappingURL=Column3D.js.map","/**\r\n * 3D column series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"../series/ColumnSeries\";\r\nimport { Column3D } from \"../elements/Column3D\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\nvar ColumnSeries3DDataItem = /** @class */ (function (_super) {\r\n __extends(ColumnSeries3DDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColumnSeries3DDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColumnSeries3DDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ColumnSeries3DDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { ColumnSeries3DDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a 3D column graph.\r\n *\r\n * @see {@link IColumnSeries3DEvents} for a list of available Events\r\n * @see {@link IColumnSeries3DAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar ColumnSeries3D = /** @class */ (function (_super) {\r\n __extends(ColumnSeries3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ColumnSeries3D() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColumnSeries3D\";\r\n _this.columns.template.column3D.applyOnClones = true;\r\n _this.columns.template.hiddenState.properties.visible = true;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnSeries3D.prototype, \"columnsContainer\", {\r\n /**\r\n * @ignore\r\n */\r\n get: function () {\r\n var chart = this.chart;\r\n if (chart && chart.columnsContainer && chart.leftAxesContainer.layout != \"vertical\" && chart.rightAxesContainer.layout != \"vertical\" && chart.bottomAxesContainer.layout != \"horizontal\" && chart.topAxesContainer.layout != \"horizontal\") {\r\n return chart.columnsContainer;\r\n }\r\n else {\r\n return this._columnsContainer;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Validates data item's elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n ColumnSeries3D.prototype.validateDataElementReal = function (dataItem) {\r\n _super.prototype.validateDataElementReal.call(this, dataItem);\r\n if (dataItem.column) {\r\n dataItem.column.dx = this.dx;\r\n dataItem.column.dy = this.dy;\r\n dataItem.column.visible = this.visible;\r\n }\r\n };\r\n /**\r\n * Validates data item's elements.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n ColumnSeries3D.prototype.validateDataElements = function () {\r\n _super.prototype.validateDataElements.call(this);\r\n if (this.chart) {\r\n this.chart.invalidateLayout();\r\n }\r\n };\r\n /**\r\n * Returns an element to use for 3D bar.\r\n * @ignore\r\n * @return Element.\r\n */\r\n ColumnSeries3D.prototype.createColumnTemplate = function () {\r\n return new Column3D();\r\n };\r\n Object.defineProperty(ColumnSeries3D.prototype, \"depth\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth (height) of the slices in the series in pixels.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Depth (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"depth\", value, true);\r\n var template = this.columns.template; // todo: Cone is not Rectangle3D, maybe we should do some I3DShape?\r\n template.column3D.depth = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnSeries3D.prototype, \"angle\", {\r\n /**\r\n * @ignore Exclude from docs\r\n * @return Angle (0-360)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * Angle of view for the slices in series. (0-360)\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Angle (0-360)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value);\r\n var template = this.columns.template;\r\n template.column3D.angle = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ColumnSeries3D;\r\n}(ColumnSeries));\r\nexport { ColumnSeries3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColumnSeries3D\"] = ColumnSeries3D;\r\nregistry.registeredClasses[\"ColumnSeries3DDataItem\"] = ColumnSeries3DDataItem;\r\n//# sourceMappingURL=ColumnSeries3D.js.map","/**\r\n * Module for building 3D serial charts.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * Imports\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, XYChartDataItem } from \"./XYChart\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { AxisRendererX3D } from \"../axes/AxisRendererX3D\";\r\nimport { AxisRendererY3D } from \"../axes/AxisRendererY3D\";\r\nimport { ColumnSeries3D } from \"../series/ColumnSeries3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[XYChart3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar XYChart3DDataItem = /** @class */ (function (_super) {\r\n __extends(XYChart3DDataItem, _super);\r\n function XYChart3DDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"XYChart3DDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return XYChart3DDataItem;\r\n}(XYChartDataItem));\r\nexport { XYChart3DDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a 3D XY chart.\r\n *\r\n * @see {@link IXYChart3DEvents} for a list of available Events\r\n * @see {@link IXYChart3DAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/} for documentation\r\n * @important\r\n */\r\nvar XYChart3D = /** @class */ (function (_super) {\r\n __extends(XYChart3D, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYChart3D() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Type of the axis renderer to use for X axes.\r\n */\r\n _this._axisRendererX = AxisRendererX3D;\r\n /**\r\n * Type of the axis renderer to use for Y axes.\r\n */\r\n _this._axisRendererY = AxisRendererY3D;\r\n _this.className = \"XYChart3D\";\r\n // Set defaults\r\n _this.depth = 30;\r\n _this.angle = 30;\r\n // Creeate container for columns\r\n var columnsContainer = _this.seriesContainer.createChild(Container);\r\n columnsContainer.shouldClone = false;\r\n columnsContainer.isMeasured = false;\r\n columnsContainer.layout = \"none\";\r\n _this.columnsContainer = columnsContainer;\r\n _this.columnsContainer.mask = _this.createChild(Sprite);\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * This is done because for some reason IE doesn't change mask if path of a\r\n * mask changes.\r\n */\r\n XYChart3D.prototype.updateSeriesMasks = function () {\r\n _super.prototype.updateSeriesMasks.call(this);\r\n if ($utils.isIE()) {\r\n var columnsContainer = this.columnsContainer;\r\n var mask = columnsContainer.mask;\r\n columnsContainer.mask = undefined;\r\n columnsContainer.mask = mask;\r\n }\r\n };\r\n Object.defineProperty(XYChart3D.prototype, \"depth\", {\r\n /**\r\n * @return Depth (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"depth\");\r\n },\r\n /**\r\n * Depth of the 3D chart / columns in pixels.\r\n *\r\n * @param value Depth (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"depth\", value);\r\n this.fixLayout();\r\n this.invalidateDataUsers();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart3D.prototype, \"angle\", {\r\n /**\r\n * @return Angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"angle\");\r\n },\r\n /**\r\n * Angle the chart is viewed at.\r\n *\r\n * @todo Description (review)\r\n * @param value Angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"angle\", value);\r\n this.fixLayout();\r\n this.invalidateDataUsers();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart3D.prototype, \"dx3D\", {\r\n /**\r\n * A calculated horizontal 3D offset (px).\r\n *\r\n * @readonly\r\n * @return Offset (px)\r\n */\r\n get: function () {\r\n return $math.cos(this.angle) * this.depth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYChart3D.prototype, \"dy3D\", {\r\n /**\r\n * A calculated vertical 3D offset (px).\r\n *\r\n * @readonly\r\n * @return Offset (px)\r\n */\r\n get: function () {\r\n return -$math.sin(this.angle) * this.depth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * (Re)validates layout\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYChart3D.prototype.validateLayout = function () {\r\n _super.prototype.validateLayout.call(this);\r\n this.fixColumns();\r\n };\r\n /**\r\n * Updates the layout (padding and scrollbar positions) to accommodate for\r\n * 3D depth and angle.\r\n */\r\n XYChart3D.prototype.fixLayout = function () {\r\n this.chartContainer.paddingTop = -this.dy3D;\r\n this.chartContainer.paddingRight = this.dx3D;\r\n if (this.scrollbarX) {\r\n this.scrollbarX.dy = this.dy3D;\r\n this.scrollbarX.dx = this.dx3D;\r\n }\r\n if (this.scrollbarY) {\r\n this.scrollbarY.dy = this.dy3D;\r\n this.scrollbarY.dx = this.dx3D;\r\n }\r\n this.fixColumns();\r\n _super.prototype.fixLayout.call(this);\r\n };\r\n /**\r\n * Updates column positions, offset and dimensions based on chart's angle\r\n * and depth.\r\n */\r\n XYChart3D.prototype.fixColumns = function () {\r\n var _this = this;\r\n var count = 1;\r\n var i = 0;\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (series instanceof ColumnSeries3D) {\r\n if (!series.clustered && i > 0) {\r\n count++;\r\n }\r\n series.depthIndex = count - 1;\r\n i++;\r\n }\r\n });\r\n var s = 0;\r\n $iter.each(this.series.iterator(), function (series) {\r\n if (series instanceof ColumnSeries3D) {\r\n series.depth = _this.depth / (count);\r\n series.angle = _this.angle;\r\n if (series.columnsContainer == _this.columnsContainer) {\r\n series.dx = _this.depth / (count) * $math.cos(_this.angle) * (series.depthIndex);\r\n series.dy = -_this.depth / (count) * $math.sin(_this.angle) * (series.depthIndex);\r\n }\r\n var inversed_1 = false;\r\n if ((series.baseAxis == series.xAxis && series.xAxis.renderer.inversed) || (series.baseAxis == series.yAxis && series.yAxis.renderer.inversed)) {\r\n inversed_1 = true;\r\n }\r\n var i_1 = 1;\r\n series.dataItems.each(function (dataItem) {\r\n var column = dataItem.column;\r\n if (column) {\r\n if (inversed_1) {\r\n column.zIndex = 1000 * (1000 - i_1) + s - series.depthIndex * 100;\r\n }\r\n else {\r\n column.zIndex = 1000 * i_1 + s - series.depthIndex * 100;\r\n }\r\n }\r\n i_1++;\r\n });\r\n if (inversed_1) {\r\n s--;\r\n }\r\n else {\r\n s++;\r\n }\r\n }\r\n });\r\n this.maskColumns();\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n XYChart3D.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up series\r\n if ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n for (var i = 0, len = config.series.length; i < len; i++) {\r\n config.series[i].type = config.series[i].type || \"ColumnSeries3D\";\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n XYChart3D.prototype.maskColumns = function () {\r\n var w = this.plotContainer.pixelWidth;\r\n var h = this.plotContainer.pixelHeight;\r\n var dx = this.dx3D;\r\n var dy = this.dy3D;\r\n var path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: dx, y: dy }) + $path.lineTo({ x: w + dx, y: dy }) + $path.lineTo({ x: w + dx, y: h + dy }) + $path.lineTo({ x: w, y: h }) + $path.lineTo({ x: w, y: h }) + $path.lineTo({ x: 0, y: h }) + $path.closePath();\r\n var columnsContainer = this.columnsContainer;\r\n if (columnsContainer && columnsContainer.mask) {\r\n columnsContainer.mask.path = path;\r\n }\r\n };\r\n return XYChart3D;\r\n}(XYChart));\r\nexport { XYChart3D };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChart3D\"] = XYChart3D;\r\n//# sourceMappingURL=XYChart3D.js.map","/**\r\n * HeatLegend module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { toColor, Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { ValueAxis } from \"../../charts/axes/ValueAxis\";\r\nimport { AxisRendererX } from \"../../charts/axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../../charts/axes/AxisRendererY\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link IHeatLegendEvents} for a list of available events\r\n * @see {@link IHeatLegendAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar HeatLegend = /** @class */ (function (_super) {\r\n __extends(HeatLegend, _super);\r\n /**\r\n * Constructor\r\n */\r\n function HeatLegend() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"HeatLegend\";\r\n _this.markerContainer = _this.createChild(Container);\r\n _this.markerContainer.shouldClone = false;\r\n _this.markerCount = 1;\r\n // Create a template container and list for the a marker\r\n var marker = new RoundedRectangle();\r\n marker.minHeight = 20;\r\n marker.minWidth = 20;\r\n marker.interactionsEnabled = false;\r\n marker.fillOpacity = 1;\r\n marker.cornerRadius(0, 0, 0, 0);\r\n _this.markerContainer.minHeight = 20;\r\n _this.markerContainer.minWidth = 20;\r\n _this.orientation = \"horizontal\";\r\n _this.markers = new ListTemplate(marker);\r\n _this._disposers.push(new ListDisposer(_this.markers));\r\n _this._disposers.push(_this.markers.template);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n HeatLegend.prototype.getMinFromRules = function (property) {\r\n var series = this.series;\r\n if (series) {\r\n var minValue_1;\r\n $iter.eachContinue(series.heatRules.iterator(), function (heatRule) {\r\n if (heatRule.property == property) {\r\n minValue_1 = heatRule.min;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return minValue_1;\r\n }\r\n };\r\n HeatLegend.prototype.getMaxFromRules = function (property) {\r\n var series = this.series;\r\n if (series) {\r\n var maxValue_1;\r\n $iter.each(series.heatRules.iterator(), function (heatRule) {\r\n if (heatRule.property == property) {\r\n maxValue_1 = heatRule.max;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return maxValue_1;\r\n }\r\n };\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n HeatLegend.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n this.valueAxis.renderer.inversed = this.reverseOrder;\r\n var series = this.series;\r\n var minColor = this.minColor;\r\n var maxColor = this.maxColor;\r\n if (!$type.hasValue(minColor)) {\r\n minColor = toColor(this.getMinFromRules(\"fill\"));\r\n }\r\n if (!$type.hasValue(maxColor)) {\r\n maxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n }\r\n if (series) {\r\n var seriesFill = series.fill;\r\n if (!$type.hasValue(minColor) && seriesFill instanceof Color) {\r\n minColor = seriesFill;\r\n }\r\n if (!$type.hasValue(maxColor) && seriesFill instanceof Color) {\r\n maxColor = seriesFill;\r\n }\r\n }\r\n if (!$type.hasValue(maxColor)) {\r\n maxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n }\r\n var minOpacity = $type.toNumber(this.getMinFromRules(\"fillOpacity\"));\r\n if (!$type.isNumber(minOpacity)) {\r\n minOpacity = 1;\r\n }\r\n var maxOpacity = $type.toNumber(this.getMaxFromRules(\"fillOpacity\"));\r\n if (!$type.isNumber(maxOpacity)) {\r\n maxOpacity = 1;\r\n }\r\n var minStrokeOpacity = $type.toNumber(this.getMinFromRules(\"strokeOpacity\"));\r\n if (!$type.isNumber(minStrokeOpacity)) {\r\n minStrokeOpacity = 1;\r\n }\r\n var maxStrokeOpacity = $type.toNumber(this.getMaxFromRules(\"strokeOpacity\"));\r\n if (!$type.isNumber(maxStrokeOpacity)) {\r\n maxStrokeOpacity = 1;\r\n }\r\n var minStroke = toColor(this.getMinFromRules(\"stroke\"));\r\n var maxStroke = toColor(this.getMaxFromRules(\"stroke\"));\r\n //if (series) {\r\n for (var i = 0; i < this.markerCount; i++) {\r\n var marker = this.markers.getIndex(i);\r\n if (!marker) {\r\n marker = this.markers.create();\r\n marker.parent = this.markerContainer;\r\n marker.height = percent(100);\r\n marker.width = percent(100);\r\n }\r\n if (this.markerCount == 1) {\r\n var gradient = new LinearGradient();\r\n if (this.reverseOrder) {\r\n gradient.addColor(maxColor, maxOpacity);\r\n gradient.addColor(minColor, minOpacity);\r\n }\r\n else {\r\n gradient.addColor(minColor, minOpacity);\r\n gradient.addColor(maxColor, maxOpacity);\r\n }\r\n if (this.orientation == \"vertical\") {\r\n gradient.rotation = -90;\r\n }\r\n marker.fill = gradient;\r\n if ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n var strokeGradient = new LinearGradient();\r\n if (this.reverseOrder) {\r\n strokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n strokeGradient.addColor(minStroke, minStrokeOpacity);\r\n }\r\n else {\r\n strokeGradient.addColor(minStroke, minStrokeOpacity);\r\n strokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n }\r\n if (this.orientation == \"vertical\") {\r\n strokeGradient.rotation = -90;\r\n }\r\n marker.stroke = strokeGradient;\r\n }\r\n }\r\n else {\r\n var c = i;\r\n if (this.reverseOrder) {\r\n c = this.markerCount - i - 1;\r\n }\r\n var color = new Color($colors.interpolate(minColor.rgb, maxColor.rgb, c / this.markerCount));\r\n marker.fill = color;\r\n var opacity = minOpacity + (maxOpacity - minOpacity) * c / this.markerCount;\r\n marker.fillOpacity = opacity;\r\n if ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n var color_1 = new Color($colors.interpolate(minStroke.rgb, maxStroke.rgb, c / this.markerCount));\r\n marker.stroke = color_1;\r\n var opacity_1 = minStrokeOpacity + (maxStrokeOpacity - minStrokeOpacity) * c / this.markerCount;\r\n marker.strokeOpacity = opacity_1;\r\n }\r\n }\r\n }\r\n var renderer = this.valueAxis.renderer;\r\n if (this.markerCount > 1) {\r\n if (this.orientation == \"horizontal\") {\r\n renderer.minGridDistance = this.measuredWidth / this.markerCount;\r\n }\r\n else {\r\n renderer.minGridDistance = this.measuredHeight / this.markerCount;\r\n }\r\n }\r\n this.valueAxis.invalidate();\r\n for (var i = this.markerCount, len = this.markers.length; i < len; i++) {\r\n this.markers.getIndex(i).parent = undefined;\r\n }\r\n };\r\n Object.defineProperty(HeatLegend.prototype, \"minColor\", {\r\n /**\r\n * Returns minColor value\r\n * @return {Color}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minColor\");\r\n },\r\n /**\r\n * Min color of a heat legend. If a series is set for the legend, minColor is taken from series.\r\n *\r\n * @param {Color}\r\n */\r\n set: function (value) {\r\n if (!(value instanceof Color)) {\r\n value = toColor(value);\r\n }\r\n this.setColorProperty(\"minColor\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"maxColor\", {\r\n /**\r\n * Returns maxColor value\r\n * @return {Color}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxColor\");\r\n },\r\n /**\r\n * Max color of a heat legend. If a series is set for the legend, maxColor is taken from series.\r\n *\r\n * @param {Color}\r\n */\r\n set: function (value) {\r\n if (!(value instanceof Color)) {\r\n value = toColor(value);\r\n }\r\n this.setColorProperty(\"maxColor\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"markerCount\", {\r\n /**\r\n * Returns number of color squares (markers).\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"markerCount\");\r\n },\r\n /**\r\n * Number of color squares (markers) in the heat legend. If only 1 marker is used, it will be filled with gradient.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"markerCount\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"minValue\", {\r\n /**\r\n * Returns minimum value of heat legend.\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minValue\");\r\n },\r\n /**\r\n * Minimum value of heat legend's value axis. If a series is set for the legend, min is taken from series.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minValue\", value);\r\n this.valueAxis.min = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"maxValue\", {\r\n /**\r\n * Returns maximum value of heat legend.\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxValue\");\r\n },\r\n /**\r\n * Maximum value of heat legend's value axis. If a series is set for the legend, max is taken from series.\r\n *\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxValue\", value);\r\n this.valueAxis.max = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"orientation\", {\r\n /**\r\n * Returns orientation value.\r\n *\r\n * @return {\"horizontal\" | \"vertical\"}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Heat legend orientation. Note, if you change orientation of a heat legend, you must set value axis renderer properties after that, as with orientation renderer changes.\r\n *\r\n * @param {\"horizontal\" | \"vertical\"}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n var markerContainer = this.markerContainer;\r\n var valueAxis = this.valueAxis;\r\n // HORIZONTAL\r\n if (value == \"horizontal\") {\r\n if (!$type.hasValue(this.width)) {\r\n this.width = 200;\r\n }\r\n this.height = undefined;\r\n valueAxis.width = percent(100);\r\n valueAxis.height = undefined;\r\n valueAxis.tooltip.pointerOrientation = \"vertical\";\r\n this.layout = \"vertical\";\r\n markerContainer.width = percent(100);\r\n markerContainer.height = undefined;\r\n if (!(valueAxis.renderer instanceof AxisRendererX)) {\r\n valueAxis.renderer = new AxisRendererX();\r\n }\r\n }\r\n // VERTICAL\r\n else {\r\n if (!$type.hasValue(this.height)) {\r\n this.height = 200;\r\n }\r\n this.width = undefined;\r\n this.layout = \"horizontal\";\r\n markerContainer.width = undefined;\r\n markerContainer.height = percent(100);\r\n valueAxis.height = percent(100);\r\n valueAxis.width = undefined;\r\n valueAxis.tooltip.pointerOrientation = \"horizontal\";\r\n if (!(valueAxis.renderer instanceof AxisRendererY)) {\r\n valueAxis.renderer = new AxisRendererY();\r\n }\r\n valueAxis.renderer.inside = true;\r\n valueAxis.renderer.labels.template.inside = true;\r\n this.markerContainer.reverseOrder = true;\r\n }\r\n var renderer = valueAxis.renderer;\r\n renderer.grid.template.disabled = true;\r\n renderer.axisFills.template.disabled = true;\r\n renderer.baseGrid.disabled = true;\r\n renderer.labels.template.padding(2, 3, 2, 3);\r\n renderer.minHeight = undefined;\r\n renderer.minWidth = undefined;\r\n this.markerContainer.layout = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"valueAxis\", {\r\n /**\r\n * Returns valueAxis value.\r\n * @return {ValueAxis}\r\n */\r\n get: function () {\r\n if (!this._valueAxis) {\r\n this.valueAxis = this.createChild(ValueAxis);\r\n this.valueAxis.shouldClone = false;\r\n }\r\n return this._valueAxis;\r\n },\r\n /**\r\n * Sets a value axis of heat legend. Value axis for heat legend is created automatically.\r\n * @param {ValueAxis}\r\n */\r\n set: function (valueAxis) {\r\n this._valueAxis = valueAxis;\r\n valueAxis.parent = this;\r\n valueAxis.strictMinMax = true;\r\n this.orientation = this.orientation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatLegend.prototype, \"series\", {\r\n /**\r\n * Returns series value.\r\n * @return {Series}\r\n */\r\n get: function () {\r\n return this._series;\r\n },\r\n /**\r\n * You can set series for heat legend. It will take min, max, minColor and maxColor values from this series.\r\n * @param series\r\n */\r\n set: function (series) {\r\n var _this = this;\r\n this._series = series;\r\n var dataField = \"value\";\r\n try {\r\n var dataFieldDefined = series.heatRules.getIndex(0).dataField;\r\n if (dataFieldDefined) {\r\n dataField = dataFieldDefined;\r\n }\r\n }\r\n catch (err) {\r\n }\r\n this.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n series.dataItem.events.on(\"calculatedvaluechanged\", function (event) {\r\n _this.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n }, undefined, false);\r\n series.heatRules.events.on(\"inserted\", this.invalidate, this, false);\r\n series.heatRules.events.on(\"removed\", this.invalidate, this, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates min/max of value axis.\r\n * @ignore\r\n */\r\n HeatLegend.prototype.updateMinMax = function (min, max) {\r\n var valueAxis = this.valueAxis;\r\n if (!$type.isNumber(this.minValue)) {\r\n valueAxis.min = min;\r\n valueAxis.invalidate();\r\n }\r\n if (!$type.isNumber(this.maxValue)) {\r\n valueAxis.max = max;\r\n valueAxis.invalidate();\r\n }\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n HeatLegend.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up series\r\n if ($type.hasValue(config.series) && $type.isString(config.series)) {\r\n if ($type.isString(config.series)) {\r\n if (this.map.hasKey(config.series)) {\r\n config.series = this.map.getKey(config.series);\r\n }\r\n else {\r\n var seriesId_1 = config.series;\r\n var disposer_1 = this.map.events.on(\"insertKey\", function (ev) {\r\n if (ev.key == seriesId_1) {\r\n this.series = ev.newValue;\r\n disposer_1.dispose();\r\n }\r\n }, this);\r\n this._disposers.push(disposer_1);\r\n delete config.series;\r\n }\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n return HeatLegend;\r\n}(Container));\r\nexport { HeatLegend };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"HeatLegend\"] = HeatLegend;\r\n//# sourceMappingURL=HeatLegend.js.map","/**\r\n * Module that defines everything related to building Candlesticks.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates Candlesticks.\r\n *\r\n * @see {@link ICandlestickEvents} for a list of available events\r\n * @see {@link ICandlestickAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar Candlestick = /** @class */ (function (_super) {\r\n __extends(Candlestick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Candlestick() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Candlestick\";\r\n _this.layout = \"none\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n Candlestick.prototype.createAssets = function () {\r\n _super.prototype.createAssets.call(this);\r\n this.lowLine = this.createChild(Line);\r\n this.lowLine.shouldClone = false;\r\n this.highLine = this.createChild(Line);\r\n this.highLine.shouldClone = false;\r\n };\r\n /**\r\n * Copies all parameters from another [[Candlestick]].\r\n *\r\n * @param source Source Candlestick\r\n */\r\n Candlestick.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.lowLine) {\r\n this.lowLine.copyFrom(source.lowLine);\r\n }\r\n if (this.highLine) {\r\n this.highLine.copyFrom(source.highLine);\r\n }\r\n };\r\n return Candlestick;\r\n}(Column));\r\nexport { Candlestick };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Candlestick\"] = Candlestick;\r\n//# sourceMappingURL=Candlestick.js.map","/**\r\n * Candlestick Series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { Candlestick } from \"../elements/Candlestick\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[CandlestickSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar CandlestickSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(CandlestickSeriesDataItem, _super);\r\n /**\r\n * Defines a type of [[Component]] this data item is used for\r\n * @todo Disabled to work around TS bug (see if we can re-enable it again)\r\n */\r\n //public _component!: CandlestickSeries;\r\n /**\r\n * Constructor\r\n */\r\n function CandlestickSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.values.lowValueX = {};\r\n _this.values.lowValueY = {};\r\n _this.values.highValueX = {};\r\n _this.values.highValueY = {};\r\n _this.className = \"CandlestickSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"lowValueX\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.lowValueX.value;\r\n },\r\n /**\r\n * Low value for horizontal axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"lowValueX\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"lowValueY\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.lowValueY.value;\r\n },\r\n /**\r\n * Low value for vertical axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"lowValueY\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"highValueX\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.highValueX.value;\r\n },\r\n /**\r\n * High value for horizontal axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"highValueX\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"highValueY\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.highValueY.value;\r\n },\r\n /**\r\n * High value for vertical axis.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"highValueY\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"closeValueX\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.valueX.value;\r\n },\r\n /**\r\n * Close value for horizontal axis.\r\n *\r\n * This is an alias for `valueX` added for convenience only.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"valueX\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeriesDataItem.prototype, \"closeValueY\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.valueY.value;\r\n },\r\n /**\r\n * Close value for vertical axis.\r\n *\r\n * This is an alias for `valueX` added for convenience only.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"valueY\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CandlestickSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { CandlestickSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a candlestick graph.\r\n *\r\n * @see {@link ICandlestickSeriesEvents} for a list of available Events\r\n * @see {@link ICandlestickSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar CandlestickSeries = /** @class */ (function (_super) {\r\n __extends(CandlestickSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CandlestickSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CandlestickSeries\";\r\n _this.groupFields.lowValueX = \"low\";\r\n _this.groupFields.lowValueY = \"low\";\r\n _this.groupFields.highValueX = \"high\";\r\n _this.groupFields.highValueY = \"high\";\r\n _this.strokeOpacity = 1;\r\n var interfaceColors = new InterfaceColorSet();\r\n var positiveColor = interfaceColors.getFor(\"positive\");\r\n var negativeColor = interfaceColors.getFor(\"negative\");\r\n _this.dropFromOpenState.properties.fill = negativeColor;\r\n _this.dropFromOpenState.properties.stroke = negativeColor;\r\n _this.riseFromOpenState.properties.fill = positiveColor;\r\n _this.riseFromOpenState.properties.stroke = positiveColor;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n CandlestickSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Candlestick Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n CandlestickSeries.prototype.createDataItem = function () {\r\n return new CandlestickSeriesDataItem();\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n CandlestickSeries.prototype.validateDataElementReal = function (dataItem) {\r\n _super.prototype.validateDataElementReal.call(this, dataItem);\r\n this.validateCandlestick(dataItem);\r\n };\r\n CandlestickSeries.prototype.validateCandlestick = function (dataItem) {\r\n var column = dataItem.column;\r\n if (column) {\r\n var lowLine_1 = column.lowLine;\r\n var highLine_1 = column.highLine;\r\n if (this.baseAxis == this.xAxis) {\r\n var x = column.pixelWidth / 2;\r\n lowLine_1.x = x;\r\n highLine_1.x = x;\r\n var open_1 = dataItem.getWorkingValue(this.yOpenField);\r\n var close_1 = dataItem.getWorkingValue(this.yField);\r\n var yOpen = this.yAxis.getY(dataItem, this.yOpenField);\r\n var yClose = this.yAxis.getY(dataItem, this.yField);\r\n var yLow = this.yAxis.getY(dataItem, this.yLowField);\r\n var yHigh = this.yAxis.getY(dataItem, this.yHighField);\r\n var pixelY = column.pixelY;\r\n lowLine_1.y1 = yLow - pixelY;\r\n highLine_1.y1 = yHigh - pixelY;\r\n if (open_1 < close_1) {\r\n lowLine_1.y2 = yOpen - pixelY;\r\n highLine_1.y2 = yClose - pixelY;\r\n }\r\n else {\r\n lowLine_1.y2 = yClose - pixelY;\r\n highLine_1.y2 = yOpen - pixelY;\r\n }\r\n }\r\n if (this.baseAxis == this.yAxis) {\r\n var y = column.pixelHeight / 2;\r\n lowLine_1.y = y;\r\n highLine_1.y = y;\r\n var open_2 = dataItem.getWorkingValue(this.xOpenField);\r\n var close_2 = dataItem.getWorkingValue(this.xField);\r\n var xOpen = this.xAxis.getX(dataItem, this.xOpenField);\r\n var xClose = this.xAxis.getX(dataItem, this.xField);\r\n var xLow = this.xAxis.getX(dataItem, this.xLowField);\r\n var xHigh = this.xAxis.getX(dataItem, this.xHighField);\r\n var pixelX = column.pixelX;\r\n lowLine_1.x1 = xLow - pixelX;\r\n highLine_1.x1 = xHigh - pixelX;\r\n if (open_2 < close_2) {\r\n lowLine_1.x2 = xOpen - pixelX;\r\n highLine_1.x2 = xClose - pixelX;\r\n }\r\n else {\r\n lowLine_1.x2 = xClose - pixelX;\r\n highLine_1.x2 = xOpen - pixelX;\r\n }\r\n }\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n // LOW LINE\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (rangeColumn) {\r\n var rangeLowLine = rangeColumn.lowLine;\r\n rangeLowLine.x = lowLine_1.x;\r\n rangeLowLine.y = lowLine_1.y;\r\n rangeLowLine.x1 = lowLine_1.x1;\r\n rangeLowLine.x2 = lowLine_1.x2;\r\n rangeLowLine.y1 = lowLine_1.y1;\r\n rangeLowLine.y2 = lowLine_1.y2;\r\n // HIGH LINE\r\n var rangehighLine = rangeColumn.highLine;\r\n rangehighLine.x = highLine_1.x;\r\n rangehighLine.y = highLine_1.y;\r\n rangehighLine.x1 = highLine_1.x1;\r\n rangehighLine.x2 = highLine_1.x2;\r\n rangehighLine.y1 = highLine_1.y1;\r\n rangehighLine.y2 = highLine_1.y2;\r\n }\r\n });\r\n }\r\n };\r\n Object.defineProperty(CandlestickSeries.prototype, \"xLowField\", {\r\n /**\r\n * A data field to look for \"low\" value for horizontal axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Field name\r\n */\r\n get: function () {\r\n return this._xLowField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeries.prototype, \"yLowField\", {\r\n /**\r\n * A data field to look for \"low\" value for vertical axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Field name\r\n */\r\n get: function () {\r\n return this._yLowField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeries.prototype, \"xHighField\", {\r\n /**\r\n * A data field to look for \"high\" value for horizontal axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Field name\r\n */\r\n get: function () {\r\n return this._xHighField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickSeries.prototype, \"yHighField\", {\r\n /**\r\n * A data field to look for \"high\" value for vertical axis.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Field name\r\n */\r\n get: function () {\r\n return this._yHighField;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Sets up which data fields to use for data access.\r\n */\r\n CandlestickSeries.prototype.defineFields = function () {\r\n _super.prototype.defineFields.call(this);\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (xAxis && yAxis) {\r\n if (this.baseAxis == xAxis) {\r\n var yAxisFieldName = $utils.capitalize(yAxis.axisFieldName);\r\n this._yLowField = (\"low\" + yAxisFieldName + \"Y\");\r\n this._yHighField = (\"high\" + yAxisFieldName + \"Y\");\r\n }\r\n if (this.baseAxis == yAxis) {\r\n var xAxisFieldName = $utils.capitalize(xAxis.axisFieldName);\r\n this._xLowField = (\"low\" + xAxisFieldName + \"X\");\r\n this._xHighField = (\"high\" + xAxisFieldName + \"X\");\r\n }\r\n this.addValueField(xAxis, this._xValueFields, this._xLowField);\r\n this.addValueField(xAxis, this._xValueFields, this._xHighField);\r\n this.addValueField(yAxis, this._yValueFields, this._yLowField);\r\n this.addValueField(yAxis, this._yValueFields, this._yHighField);\r\n }\r\n };\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n CandlestickSeries.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(Candlestick);\r\n column.shouldClone = false;\r\n column.copyFrom(this.columns.template);\r\n var cw;\r\n var ch;\r\n var highLine = column.lowLine;\r\n var lowLine = column.highLine;\r\n if (this.baseAxis == this.yAxis) {\r\n cw = w / 3;\r\n ch = h;\r\n highLine.y = h / 2;\r\n lowLine.y = h / 2;\r\n highLine.x2 = w / 3;\r\n lowLine.x2 = w / 3;\r\n lowLine.x = w / 3 * 2;\r\n column.column.x = w / 3;\r\n }\r\n else {\r\n cw = w;\r\n ch = h / 3;\r\n highLine.x = w / 2;\r\n lowLine.x = w / 2;\r\n highLine.y2 = h / 3;\r\n lowLine.y2 = h / 3;\r\n lowLine.y = h / 3 * 2;\r\n column.column.y = h / 3;\r\n }\r\n column.width = cw;\r\n column.height = ch;\r\n $object.copyProperties(this, marker, visualProperties);\r\n $object.copyProperties(this.columns.template, column, visualProperties);\r\n column.stroke = this.riseFromOpenState.properties.stroke;\r\n column.fill = column.stroke;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.fill;\r\n legendDataItem.colorOrig = column.fill;\r\n };\r\n /**\r\n * Returns an element to use for Candlestick\r\n * @ignore\r\n * @return Element.\r\n */\r\n CandlestickSeries.prototype.createColumnTemplate = function () {\r\n return new Candlestick();\r\n };\r\n return CandlestickSeries;\r\n}(ColumnSeries));\r\nexport { CandlestickSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CandlestickSeries\"] = CandlestickSeries;\r\nregistry.registeredClasses[\"CandlestickSeriesDataItem\"] = CandlestickSeriesDataItem;\r\n//# sourceMappingURL=CandlestickSeries.js.map","/**\r\n * Module that defines everything related to building OHLCs.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Candlestick } from \"./Candlestick\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates OHLCs.\r\n *\r\n * @see {@link IOHLCEvents} for a list of available events\r\n * @see {@link IOHLCAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar OHLC = /** @class */ (function (_super) {\r\n __extends(OHLC, _super);\r\n /**\r\n * Constructor\r\n */\r\n function OHLC() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"OHLC\";\r\n _this.layout = \"none\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n OHLC.prototype.createAssets = function () {\r\n //super.createAssets();\r\n this.openLine = this.createChild(Line);\r\n this.openLine.shouldClone = false;\r\n this.highLowLine = this.createChild(Line);\r\n this.highLowLine.shouldClone = false;\r\n this.closeLine = this.createChild(Line);\r\n this.closeLine.shouldClone = false;\r\n };\r\n /**\r\n * Copies all parameters from another [[OHLC]].\r\n *\r\n * @param source Source OHLC\r\n */\r\n OHLC.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.openLine) {\r\n this.openLine.copyFrom(source.openLine);\r\n }\r\n if (this.highLowLine) {\r\n this.highLowLine.copyFrom(source.highLowLine);\r\n }\r\n if (this.closeLine) {\r\n this.closeLine.copyFrom(source.closeLine);\r\n }\r\n };\r\n return OHLC;\r\n}(Candlestick));\r\nexport { OHLC };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"OHLC\"] = OHLC;\r\n//# sourceMappingURL=OHLC.js.map","/**\r\n * Candlestick Series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { CandlestickSeries, CandlestickSeriesDataItem } from \"./CandlestickSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { OHLC } from \"../elements/OHLC\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[OHLCSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar OHLCSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(OHLCSeriesDataItem, _super);\r\n /**\r\n * Defines a type of [[Component]] this data item is used for\r\n * @todo Disabled to work around TS bug (see if we can re-enable it again)\r\n */\r\n //public _component!: OHLCSeries;\r\n /**\r\n * Constructor\r\n */\r\n function OHLCSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"OHLCSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return OHLCSeriesDataItem;\r\n}(CandlestickSeriesDataItem));\r\nexport { OHLCSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a candlestick graph.\r\n *\r\n * @see {@link IOHLCSeriesEvents} for a list of available Events\r\n * @see {@link IOHLCSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar OHLCSeries = /** @class */ (function (_super) {\r\n __extends(OHLCSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function OHLCSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"OHLCSeries\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n OHLCSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"OHLC Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n OHLCSeries.prototype.createDataItem = function () {\r\n return new OHLCSeriesDataItem();\r\n };\r\n OHLCSeries.prototype.validateCandlestick = function (dataItem) {\r\n var column = dataItem.column;\r\n if (column) {\r\n var openLine_1 = column.openLine;\r\n var highLowLine_1 = column.highLowLine;\r\n var closeLine_1 = column.closeLine;\r\n if (this.baseAxis == this.xAxis) {\r\n var x = column.pixelWidth / 2;\r\n highLowLine_1.x = x;\r\n // TODO can these be removed ?\r\n dataItem.getWorkingValue(this.yOpenField);\r\n dataItem.getWorkingValue(this.yField);\r\n var yOpen = this.yAxis.getY(dataItem, this.yOpenField);\r\n var yClose = this.yAxis.getY(dataItem, this.yField);\r\n var yLow = this.yAxis.getY(dataItem, this.yLowField);\r\n var yHigh = this.yAxis.getY(dataItem, this.yHighField);\r\n var pixelY = column.pixelY;\r\n openLine_1.y1 = yOpen - pixelY;\r\n openLine_1.y2 = yOpen - pixelY;\r\n openLine_1.x1 = 0;\r\n openLine_1.x2 = x;\r\n closeLine_1.y1 = yClose - pixelY;\r\n closeLine_1.y2 = yClose - pixelY;\r\n closeLine_1.x1 = x;\r\n closeLine_1.x2 = 2 * x;\r\n highLowLine_1.y1 = yHigh - pixelY;\r\n highLowLine_1.y2 = yLow - pixelY;\r\n }\r\n if (this.baseAxis == this.yAxis) {\r\n var y = column.pixelHeight / 2;\r\n highLowLine_1.y = y;\r\n // TODO can these be removed ?\r\n dataItem.getWorkingValue(this.xOpenField);\r\n dataItem.getWorkingValue(this.xField);\r\n var xOpen = this.xAxis.getX(dataItem, this.xOpenField);\r\n var xClose = this.xAxis.getX(dataItem, this.xField);\r\n var xLow = this.xAxis.getX(dataItem, this.xLowField);\r\n var xHigh = this.xAxis.getX(dataItem, this.xHighField);\r\n var pixelX = column.pixelX;\r\n openLine_1.x1 = xOpen - pixelX;\r\n openLine_1.x2 = xOpen - pixelX;\r\n openLine_1.y1 = y;\r\n openLine_1.y2 = 2 * y;\r\n closeLine_1.x1 = xClose - pixelX;\r\n closeLine_1.x2 = xClose - pixelX;\r\n closeLine_1.y1 = 0;\r\n closeLine_1.y2 = y;\r\n highLowLine_1.x1 = xHigh - pixelX;\r\n highLowLine_1.x2 = xLow - pixelX;\r\n }\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (rangeColumn) {\r\n var rangeOpenLine = rangeColumn.openLine;\r\n rangeOpenLine.x = openLine_1.x;\r\n rangeOpenLine.y = openLine_1.y;\r\n rangeOpenLine.x1 = openLine_1.x1;\r\n rangeOpenLine.x2 = openLine_1.x2;\r\n rangeOpenLine.y1 = openLine_1.y1;\r\n rangeOpenLine.y2 = openLine_1.y2;\r\n var rangeCloseLine = rangeColumn.closeLine;\r\n rangeCloseLine.x = closeLine_1.x;\r\n rangeCloseLine.y = closeLine_1.y;\r\n rangeCloseLine.x1 = closeLine_1.x1;\r\n rangeCloseLine.x2 = closeLine_1.x2;\r\n rangeCloseLine.y1 = closeLine_1.y1;\r\n rangeCloseLine.y2 = closeLine_1.y2;\r\n var rangeHighLowLine = rangeColumn.highLowLine;\r\n rangeHighLowLine.x = highLowLine_1.x;\r\n rangeHighLowLine.y = highLowLine_1.y;\r\n rangeHighLowLine.x1 = highLowLine_1.x1;\r\n rangeHighLowLine.x2 = highLowLine_1.x2;\r\n rangeHighLowLine.y1 = highLowLine_1.y1;\r\n rangeHighLowLine.y2 = highLowLine_1.y2;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n OHLCSeries.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(OHLC);\r\n column.shouldClone = false;\r\n column.copyFrom(this.columns.template);\r\n var cw;\r\n var ch;\r\n var openLine = column.openLine;\r\n var closeLine = column.closeLine;\r\n var highLowLine = column.highLowLine;\r\n if (this.baseAxis == this.yAxis) {\r\n cw = w / 3;\r\n ch = h;\r\n highLowLine.y = h / 2;\r\n highLowLine.x2 = w;\r\n openLine.x = w / 3 * 2;\r\n openLine.y2 = h / 2;\r\n closeLine.x = w / 3;\r\n closeLine.y2 = h;\r\n closeLine.y1 = h / 2;\r\n }\r\n else {\r\n cw = w;\r\n ch = h / 3;\r\n highLowLine.x = w / 2;\r\n highLowLine.y2 = h;\r\n openLine.y = h / 3 * 2;\r\n openLine.x2 = w / 2;\r\n closeLine.y = h / 3;\r\n closeLine.x2 = w;\r\n closeLine.x1 = w / 2;\r\n }\r\n column.width = cw;\r\n column.height = ch;\r\n $object.copyProperties(this, marker, visualProperties);\r\n $object.copyProperties(this.columns.template, column, visualProperties);\r\n column.stroke = this.riseFromOpenState.properties.stroke;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.stroke;\r\n legendDataItem.colorOrig = column.stroke;\r\n };\r\n /**\r\n * Returns an element to use for Candlestick\r\n * @ignore\r\n * @return Element.\r\n */\r\n OHLCSeries.prototype.createColumnTemplate = function () {\r\n return new OHLC();\r\n };\r\n return OHLCSeries;\r\n}(CandlestickSeries));\r\nexport { OHLCSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"OHLCSeries\"] = OHLCSeries;\r\nregistry.registeredClasses[\"OHLCSeriesDataItem\"] = OHLCSeriesDataItem;\r\n//# sourceMappingURL=OHLCSeries.js.map","/**\r\n * Line series segment module.\r\n * @todo Add description about what this is\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents a line series segment.\r\n *\r\n * A line segment can be used to apply different properties to a part of the\r\n * line series, between two data points.\r\n *\r\n * @see {@link IStepLineSeriesSegmentEvents} for a list of available events\r\n * @see {@link IStepLineSeriesSegmentAdapters} for a list of available Adapters\r\n * @todo Example\r\n */\r\nvar StepLineSeriesSegment = /** @class */ (function (_super) {\r\n __extends(StepLineSeriesSegment, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeriesSegment() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"StepLineSeriesSegment\";\r\n return _this;\r\n }\r\n /**\r\n * Draws the series segment.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points Points to connect\r\n * @param closePoints ?\r\n * @param smoothnessX Horizontal bezier setting (?)\r\n * @param smoothnessY Vertical bezier setting (?)\r\n */\r\n StepLineSeriesSegment.prototype.drawSegment = function (points, closePoints, smoothnessX, smoothnessY, noRisers, vertical) {\r\n if (points.length > 0 && closePoints.length > 0) {\r\n if (noRisers) {\r\n var path = $path.moveTo(points[0]);\r\n if (points.length > 0) {\r\n for (var i = 1; i < points.length; i++) {\r\n var point = points[i];\r\n if (i / 2 == Math.round(i / 2)) {\r\n path += $path.moveTo(point);\r\n }\r\n else {\r\n path += $path.lineTo(point);\r\n }\r\n }\r\n }\r\n this.strokeSprite.path = path;\r\n if (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n path = $path.moveTo(points[0]) + $path.polyline(points);\r\n path += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n path += $path.lineTo(points[0]);\r\n path += $path.closePath();\r\n this.fillSprite.path = path;\r\n }\r\n else {\r\n }\r\n }\r\n else {\r\n var path = $path.moveTo(points[0]) + $path.polyline(points);\r\n this.strokeSprite.path = path;\r\n if (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n path += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n path += $path.lineTo(points[0]);\r\n path += $path.closePath();\r\n this.fillSprite.path = path;\r\n }\r\n }\r\n }\r\n else {\r\n this.strokeSprite.path = \"\";\r\n this.fillSprite.path = \"\";\r\n }\r\n };\r\n return StepLineSeriesSegment;\r\n}(LineSeriesSegment));\r\nexport { StepLineSeriesSegment };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeriesSegment\"] = StepLineSeriesSegment;\r\n//# sourceMappingURL=StepLineSeriesSegment.js.map","/**\r\n * Step line series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeries, LineSeriesDataItem } from \"./LineSeries\";\r\nimport { StepLineSeriesSegment } from \"./StepLineSeriesSegment\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[StepLineSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar StepLineSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(StepLineSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"StepLineSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return StepLineSeriesDataItem;\r\n}(LineSeriesDataItem));\r\nexport { StepLineSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a step line graph.\r\n *\r\n * @see {@link IStepLineSeriesEvents} for a list of available Events\r\n * @see {@link IStepLineSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar StepLineSeries = /** @class */ (function (_super) {\r\n __extends(StepLineSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"StepLineSeries\";\r\n _this.applyTheme();\r\n _this.startLocation = 0;\r\n _this.endLocation = 1;\r\n return _this;\r\n }\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n StepLineSeries.prototype.createDataItem = function () {\r\n return new StepLineSeriesDataItem();\r\n };\r\n /**\r\n * [addPoints description]\r\n *\r\n * @todo Description\r\n * @param points [description]\r\n * @param dataItem [description]\r\n * @param xField [description]\r\n * @param yField [description]\r\n * @param backwards [description]\r\n */\r\n StepLineSeries.prototype.addPoints = function (points, dataItem, xField, yField, backwards) {\r\n var startLocationX;\r\n var endLocationX;\r\n var startLocationY;\r\n var endLocationY;\r\n if (this.baseAxis == this.xAxis) {\r\n startLocationX = this.startLocation;\r\n endLocationX = this.endLocation;\r\n startLocationY = this.getAdjustedXLocation(dataItem, this.yOpenField);\r\n endLocationY = this.getAdjustedXLocation(dataItem, this.yField);\r\n }\r\n if (this.baseAxis == this.yAxis) {\r\n startLocationY = this.startLocation;\r\n endLocationY = this.endLocation;\r\n startLocationX = this.getAdjustedXLocation(dataItem, this.xOpenField);\r\n endLocationX = this.getAdjustedXLocation(dataItem, this.xField);\r\n }\r\n var x0 = this.xAxis.getX(dataItem, xField, startLocationX);\r\n var y0 = this.yAxis.getY(dataItem, yField, startLocationY);\r\n var x1 = this.xAxis.getX(dataItem, xField, endLocationX);\r\n var y1 = this.yAxis.getY(dataItem, yField, endLocationY);\r\n x0 = $math.fitToRange(x0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n y0 = $math.fitToRange(y0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n x1 = $math.fitToRange(x1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n y1 = $math.fitToRange(y1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n // this might make an impression that points are duplicated, and they indeed are, but this is needed to handle gaps in data\r\n if (!this.noRisers) {\r\n if (points.length > 1) {\r\n var prevPoint = points[points.length - 1];\r\n if (this.baseAxis == this.xAxis) {\r\n if (backwards) {\r\n points.push({ x: prevPoint.x, y: y1 });\r\n }\r\n else {\r\n points.push({ x: x0, y: prevPoint.y });\r\n }\r\n }\r\n if (this.baseAxis == this.yAxis) {\r\n if (backwards) {\r\n points.push({ x: x1, y: prevPoint.y });\r\n }\r\n else {\r\n points.push({ x: prevPoint.x, y: y0 });\r\n }\r\n }\r\n }\r\n }\r\n var point0 = { x: x0, y: y0 };\r\n var point1 = { x: x1, y: y1 };\r\n if (backwards) {\r\n points.push(point1, point0);\r\n }\r\n else {\r\n points.push(point0, point1);\r\n }\r\n };\r\n /**\r\n * Draws the line segment.\r\n *\r\n * @param segment Segment\r\n * @param points Segment points\r\n * @param closePoints Segment close points\r\n */\r\n StepLineSeries.prototype.drawSegment = function (segment, points, closePoints) {\r\n var vertical = false;\r\n if (this.yAxis == this.baseAxis) {\r\n vertical = true;\r\n }\r\n segment.drawSegment(points, closePoints, this.tensionX, this.tensionY, this.noRisers, vertical);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n StepLineSeries.prototype.createSegment = function () {\r\n return new StepLineSeriesSegment();\r\n };\r\n Object.defineProperty(StepLineSeries.prototype, \"noRisers\", {\r\n /**\r\n * @return No risers\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"noRisers\");\r\n },\r\n /**\r\n * Specifies if step line series should draw only horizontal (or only\r\n * vertical, depending on base axis) lines, instead of connecting them with\r\n * vertical (or horizontal) lines.\r\n *\r\n * @default false\r\n * @param value No risers\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"noRisers\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StepLineSeries.prototype, \"startLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startLocation\");\r\n },\r\n /**\r\n * start location of the step\r\n *\r\n * @param value Location (0-1)\r\n * @default 0\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StepLineSeries.prototype, \"endLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endLocation\");\r\n },\r\n /**\r\n * Step end location.\r\n *\r\n * @param value Location (0-1)\r\n * #default 1\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return StepLineSeries;\r\n}(LineSeries));\r\nexport { StepLineSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeries\"] = StepLineSeries;\r\nregistry.registeredClasses[\"StepLineSeriesDataItem\"] = StepLineSeriesDataItem;\r\n//# sourceMappingURL=StepLineSeries.js.map","/**\r\n * Module that defines everything related to building RadarColumns.\r\n * It is a container which has radarColumn element which is a Slice.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates RadarColumns.\r\n *\r\n * @see {@link IRadarColumnEvents} for a list of available events\r\n * @see {@link IRadarColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar RadarColumn = /** @class */ (function (_super) {\r\n __extends(RadarColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarColumn\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n RadarColumn.prototype.createAssets = function () {\r\n this.radarColumn = this.createChild(Slice);\r\n this.radarColumn.shouldClone = false;\r\n this.radarColumn.strokeOpacity = undefined;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.radarColumn;\r\n };\r\n /**\r\n * Copies all parameters from another [[RadarColumn]].\r\n *\r\n * @param source Source RadarColumn\r\n */\r\n RadarColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.radarColumn) {\r\n this.radarColumn.copyFrom(source.radarColumn);\r\n }\r\n };\r\n /**\r\n * X coordinate for the slice tooltip.\r\n *\r\n * @return X\r\n * @ignore\r\n */\r\n RadarColumn.prototype.getTooltipX = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n return this.radarColumn.getTooltipX();\r\n }\r\n return value;\r\n };\r\n /**\r\n * Y coordinate for the slice tooltip.\r\n *\r\n * @return Y\r\n * @ignore\r\n */\r\n RadarColumn.prototype.getTooltipY = function () {\r\n var value = this.getPropertyValue(\"tooltipX\");\r\n if (!$type.isNumber(value)) {\r\n return this.radarColumn.getTooltipY();\r\n }\r\n return value;\r\n };\r\n return RadarColumn;\r\n}(Column));\r\nexport { RadarColumn };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarColumn\"] = RadarColumn;\r\n//# sourceMappingURL=RadarColumn.js.map","/**\r\n * Radar column series module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"../series/ColumnSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { RadarColumn } from \"../elements/RadarColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[RadarColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar RadarColumnSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(RadarColumnSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarColumnSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ColumnSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return RadarColumnSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { RadarColumnSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a 3D column graph.\r\n *\r\n * @see {@link IRadarColumnSeriesEvents} for a list of available Events\r\n * @see {@link IRadarColumnSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar RadarColumnSeries = /** @class */ (function (_super) {\r\n __extends(RadarColumnSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarColumnSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"RadarColumnSeries\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creates and returns a RadarColumn element to use as column in radar chart.\r\n *\r\n * @return RadarColumn.\r\n */\r\n RadarColumnSeries.prototype.createColumnTemplate = function () {\r\n return new RadarColumn();\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarColumnSeries.prototype.validate = function () {\r\n // so that radius would be updated\r\n if (this.chart.invalid) {\r\n this.chart.validate();\r\n }\r\n _super.prototype.validate.call(this);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n RadarColumnSeries.prototype.disableUnusedColumns = function (dataItem) {\r\n if (dataItem) {\r\n if (dataItem.column) {\r\n dataItem.column.__disabled = true;\r\n }\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (rangeColumn) {\r\n rangeColumn.__disabled = true;\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n RadarColumnSeries.prototype.validateDataElementReal = function (dataItem) {\r\n var _this = this;\r\n var startAngle = this.chart.startAngle;\r\n var endAngle = this.chart.endAngle;\r\n var yField = this.yField;\r\n var yOpenField = this.yOpenField;\r\n var xField = this.xField;\r\n var xOpenField = this.xOpenField;\r\n var lAngle;\r\n var rAngle;\r\n var tRadius;\r\n var bRadius;\r\n var startLocation = this.getStartLocation(dataItem);\r\n var endLocation = this.getEndLocation(dataItem);\r\n var cellAngle = (endAngle - startAngle) / (this.dataItems.length * (this.end - this.start));\r\n var radarColumn = dataItem.column;\r\n if (!radarColumn) {\r\n radarColumn = this.columns.create();\r\n dataItem.column = radarColumn;\r\n $object.copyProperties(this, radarColumn, visualProperties); // need this \r\n $object.copyProperties(this.columns.template, radarColumn, visualProperties); // second time, no force, so that columns.template would override series properties\t\t\t\r\n dataItem.addSprite(radarColumn);\r\n radarColumn.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n this.setColumnStates(radarColumn);\r\n }\r\n var width = radarColumn.width;\r\n var percentWidth = 100;\r\n if (width instanceof Percent) {\r\n percentWidth = width.percent;\r\n }\r\n var offset = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n startLocation += offset;\r\n endLocation -= offset;\r\n // two category axes\r\n if ((this.xAxis instanceof CategoryAxis) && (this.yAxis instanceof CategoryAxis)) {\r\n tRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, 0, \"valueY\"), y: this.yAxis.getY(dataItem, yField, 0, \"valueY\") });\r\n bRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, 1, \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, 1, \"valueY\") });\r\n lAngle = this.xAxis.getAngle(dataItem, xOpenField, 0, \"valueX\");\r\n rAngle = this.xAxis.getAngle(dataItem, xField, 1, \"valueX\");\r\n startAngle = startAngle + startLocation * cellAngle;\r\n endAngle = endAngle - (1 - endLocation) * cellAngle;\r\n }\r\n else if (this.baseAxis == this.xAxis) {\r\n tRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, dataItem.locations[yField], \"valueY\"), y: this.yAxis.getY(dataItem, yField, dataItem.locations[yField], \"valueY\") });\r\n bRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, dataItem.locations[yOpenField], \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, dataItem.locations[yOpenField], \"valueY\") });\r\n lAngle = this.xAxis.getAngle(dataItem, xOpenField, startLocation, \"valueX\");\r\n rAngle = this.xAxis.getAngle(dataItem, xField, endLocation, \"valueX\");\r\n startAngle = startAngle + startLocation * cellAngle;\r\n endAngle = endAngle - (1 - endLocation) * cellAngle;\r\n }\r\n else {\r\n tRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, startLocation, \"valueY\"), y: this.yAxis.getY(dataItem, yField, startLocation, \"valueY\") });\r\n bRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, endLocation, \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, endLocation, \"valueY\") });\r\n if ($type.isNumber(width)) {\r\n var abs = Math.abs(tRadius - bRadius);\r\n if (abs > width) {\r\n var d = (abs - width) / 2;\r\n tRadius += d;\r\n bRadius -= d;\r\n }\r\n }\r\n lAngle = this.xAxis.getAngle(dataItem, xField, dataItem.locations[xField], \"valueX\");\r\n rAngle = this.xAxis.getAngle(dataItem, xOpenField, dataItem.locations[xOpenField], \"valueX\");\r\n }\r\n if (rAngle < lAngle) {\r\n var temp = rAngle;\r\n rAngle = lAngle;\r\n lAngle = temp;\r\n }\r\n lAngle = $math.fitToRange(lAngle, startAngle, endAngle);\r\n rAngle = $math.fitToRange(rAngle, startAngle, endAngle);\r\n var slice = radarColumn.radarColumn;\r\n slice.startAngle = lAngle;\r\n var arc = rAngle - lAngle;\r\n if (arc > 0) {\r\n slice.arc = arc;\r\n slice.radius = tRadius;\r\n slice.innerRadius = bRadius;\r\n radarColumn.__disabled = false;\r\n radarColumn.parent = this.columnsContainer;\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n var rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n if (!rangeColumn) {\r\n rangeColumn = _this.columns.create();\r\n $object.forceCopyProperties(_this.columns.template, rangeColumn, visualProperties);\r\n $object.copyProperties(axisRange.contents, rangeColumn, visualProperties); // need this because 3d columns are not in the same container\r\n if (rangeColumn.dataItem) {\r\n $array.remove(rangeColumn.dataItem.sprites, rangeColumn);\r\n }\r\n dataItem.addSprite(rangeColumn);\r\n rangeColumn.paper = _this.paper; // sometimes pattern is not drawn if is set with adapter without this.\t\t\t\t\t\r\n _this.setColumnStates(rangeColumn);\r\n dataItem.rangesColumns.setKey(axisRange.uid, rangeColumn);\r\n }\r\n var slice = rangeColumn.radarColumn;\r\n slice.startAngle = lAngle;\r\n slice.arc = arc;\r\n slice.radius = tRadius;\r\n slice.innerRadius = bRadius;\r\n if (slice.invalid) {\r\n slice.paper = _this.paper;\r\n slice.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n }\r\n rangeColumn.__disabled = false;\r\n rangeColumn.parent = axisRange.contents;\r\n });\r\n }\r\n else {\r\n this.disableUnusedColumns(dataItem);\r\n }\r\n };\r\n /**\r\n * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n *\r\n * @param dataItem Data item\r\n * @param xKey Name of X data field\r\n * @param yKey Name of Y data field\r\n * @param locationX X location\r\n * @param locationY Y location\r\n * @param stackKeyX ?\r\n * @param stackKeyY ?\r\n * @returns Coordinates\r\n */\r\n RadarColumnSeries.prototype.getPoint = function (dataItem, xKey, yKey, locationX, locationY, stackKeyX, stackKeyY) {\r\n if (!stackKeyX) {\r\n stackKeyX = \"valueX\";\r\n }\r\n if (!stackKeyY) {\r\n stackKeyY = \"valueY\";\r\n }\r\n var x = this.yAxis.getX(dataItem, yKey, locationY, stackKeyY);\r\n var y = this.yAxis.getY(dataItem, yKey, locationY, stackKeyY);\r\n var radius = $math.getDistance({ x: x, y: y });\r\n // hack to be able to determine angle later\r\n if (radius == 0) {\r\n radius = 0.00001;\r\n }\r\n var angle = this.xAxis.getAngle(dataItem, xKey, locationX, stackKeyX);\r\n return { x: radius * $math.cos(angle), y: radius * $math.sin(angle) };\r\n };\r\n /**\r\n * Returns an SVG path to be used as a mask for the series.\r\n *\r\n * @return SVG path\r\n */\r\n RadarColumnSeries.prototype.getMaskPath = function () {\r\n var renderer = this.yAxis.renderer;\r\n return $path.arc(renderer.startAngle, renderer.endAngle - renderer.startAngle, renderer.pixelRadius, renderer.pixelInnerRadius);\r\n };\r\n RadarColumnSeries.prototype.positionBulletReal = function (bullet, positionX, positionY) {\r\n var xAxis = this.xAxis;\r\n var yAxis = this.yAxis;\r\n if (positionX < xAxis.start || positionX > xAxis.end || positionY < yAxis.start || positionY > yAxis.end) {\r\n bullet.visible = false;\r\n }\r\n bullet.moveTo(this.xAxis.renderer.positionToPoint(positionX, positionY));\r\n };\r\n RadarColumnSeries.prototype.setXAxis = function (axis) {\r\n _super.prototype.setXAxis.call(this, axis);\r\n this.updateRendererRefs();\r\n };\r\n RadarColumnSeries.prototype.setYAxis = function (axis) {\r\n _super.prototype.setYAxis.call(this, axis);\r\n this.updateRendererRefs();\r\n };\r\n RadarColumnSeries.prototype.updateRendererRefs = function () {\r\n var rendererX = this.xAxis.renderer;\r\n var rendererY = this.yAxis.renderer;\r\n rendererX.axisRendererY = rendererY;\r\n };\r\n return RadarColumnSeries;\r\n}(ColumnSeries));\r\nexport { RadarColumnSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarColumnSeries\"] = RadarColumnSeries;\r\nregistry.registeredClasses[\"RadarColumnSeriesDataItem\"] = RadarColumnSeriesDataItem;\r\n//# sourceMappingURL=RadarColumnSeries.js.map","/**\r\n * Module that defines everything related to building Funnel slices.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to create [[FunnelSlice]] elements.\r\n *\r\n * @see {@link IFunnelSliceEvents} for a list of available events\r\n * @see {@link IFunnelSliceAdapters} for a list of available adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar FunnelSlice = /** @class */ (function (_super) {\r\n __extends(FunnelSlice, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelSlice() {\r\n var _this = _super.call(this) || this;\r\n _this.slice = _this.createChild(Sprite);\r\n _this.slice.shouldClone = false;\r\n _this.slice.setElement(_this.paper.add(\"path\"));\r\n _this.slice.isMeasured = false;\r\n _this.orientation = \"vertical\";\r\n _this.bottomWidth = percent(100);\r\n _this.topWidth = percent(100);\r\n _this.isMeasured = false;\r\n _this.width = 10;\r\n _this.height = 10;\r\n _this.expandDistance = 0;\r\n _this.className = \"FunnelSlice\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the element.\r\n */\r\n FunnelSlice.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var pt = this.pixelPaddingTop;\r\n var pb = this.pixelPaddingBottom;\r\n var pr = this.pixelPaddingRight;\r\n var pl = this.pixelPaddingLeft;\r\n var w = this.pixelWidth - pr - pl;\r\n var h = this.pixelHeight - pt - pb;\r\n var ed = this.expandDistance;\r\n var path = \"\";\r\n if (this.orientation == \"vertical\") {\r\n var tw = $utils.relativeToValue(this.topWidth, w);\r\n var bw = $utils.relativeToValue(this.bottomWidth, w);\r\n var tl = { x: (w - tw) / 2 + pl, y: pt };\r\n var tr = { x: (w + tw) / 2 + pl, y: pt };\r\n var br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n var bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n var cpr = { x: tr.x + (br.x - tr.x) / 2 + ed * h, y: tr.y + 0.5 * h };\r\n var cpl = { x: tl.x + (bl.x - tl.x) / 2 - ed * h, y: tl.y + 0.5 * h };\r\n var qp1 = $path.lineTo(br);\r\n var qp2 = $path.lineTo(tl);\r\n if (ed != 0) {\r\n qp1 = $path.quadraticCurveTo(br, cpr);\r\n qp2 = $path.quadraticCurveTo(tl, cpl);\r\n }\r\n path = $path.moveTo(tl) + $path.lineTo(tr) + qp1 + $path.lineTo(bl) + qp2;\r\n this.tickPoint = { x: tr.x + (br.x - tr.x) / 2, y: tr.y + (br.y - tr.y) / 2 };\r\n }\r\n else {\r\n var tw = $utils.relativeToValue(this.topWidth, h);\r\n var bw = $utils.relativeToValue(this.bottomWidth, h);\r\n var tt = { x: pl, y: (h - tw) / 2 + pt };\r\n var tb = { x: pl, y: (h + tw) / 2 + pt };\r\n var bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n var bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n var cpr = { y: tt.y + (bt.y - tt.y) / 2 - ed * w, x: tt.x + 0.5 * w };\r\n var cpl = { y: tb.y + (bb.y - tb.y) / 2 + ed * w, x: tb.x + 0.5 * w };\r\n var qp1 = $path.lineTo(bt);\r\n var qp2 = $path.lineTo(tb);\r\n if (ed != 0) {\r\n qp1 = $path.quadraticCurveTo(bt, cpr);\r\n qp2 = $path.quadraticCurveTo(tb, cpl);\r\n }\r\n path = $path.moveTo(tb) + $path.lineTo(tt) + qp1 + $path.lineTo(bb) + qp2;\r\n this.tickPoint = { y: tb.y + (bb.y - tb.y) / 2, x: tb.x + (bb.x - tb.x) / 2 };\r\n }\r\n this.slice.path = path;\r\n this.invalidateLayout();\r\n };\r\n FunnelSlice.prototype.getPoint = function (locationX, locationY) {\r\n var pt = this.pixelPaddingTop;\r\n var pb = this.pixelPaddingBottom;\r\n var pr = this.pixelPaddingRight;\r\n var pl = this.pixelPaddingLeft;\r\n var w = this.pixelWidth - pr - pl;\r\n var h = this.pixelHeight - pt - pb;\r\n if (this.orientation == \"vertical\") {\r\n var tw = $utils.relativeToValue(this.topWidth, w);\r\n var bw = $utils.relativeToValue(this.bottomWidth, w);\r\n var tl = { x: (w - tw) / 2 + pl, y: pt };\r\n var tr = { x: (w + tw) / 2 + pl, y: pt };\r\n var br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n var bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n var mlx = tl.x + (bl.x - tl.x) * locationY;\r\n var mrx = tr.x + (br.x - tr.x) * locationY;\r\n return { x: mlx + (mrx - mlx) * locationX, y: tr.y + (br.y - tr.y) * locationY };\r\n }\r\n else {\r\n var tw = $utils.relativeToValue(this.topWidth, h);\r\n var bw = $utils.relativeToValue(this.bottomWidth, h);\r\n var tt = { x: pl, y: (h - tw) / 2 + pt };\r\n var tb = { x: pl, y: (h + tw) / 2 + pt };\r\n var bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n var bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n var mty = tt.y + (bt.y - tt.y) * locationX;\r\n var mby = tb.y + (bb.y - tb.y) * locationX;\r\n return { y: mty + (mby - mty) * locationY, x: tt.x + (bt.x - tt.x) * locationX };\r\n }\r\n };\r\n Object.defineProperty(FunnelSlice.prototype, \"bottomWidth\", {\r\n /**\r\n * @return bottom width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bottomWidth\");\r\n },\r\n /**\r\n * Bottom width in pixels or percent.\r\n *\r\n * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Bottom width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"bottomWidth\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"topWidth\", {\r\n /**\r\n * @return Top width\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"topWidth\");\r\n },\r\n /**\r\n * Top width in pixels or percent.\r\n *\r\n * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Top width\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"topWidth\", value, true, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"orientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the funnel slice: \"horizontal\" or \"vertical\".\r\n *\r\n * IMPORTANT: this setting might be used to set orintation if you use slice\r\n * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n * becomes read-only as it will be automatically reset by series.\r\n *\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSlice.prototype, \"expandDistance\", {\r\n /**\r\n * @return expandDistance\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"expandDistance\");\r\n },\r\n /**\r\n * A relative distance slice's sides should be bent to. It's relative to the\r\n * height of the slice.\r\n *\r\n * Zero (default) will mean the sides will be perfectly straight.\r\n *\r\n * Positive value will make them bend outwards, resulting in \"puffed\" slices.\r\n *\r\n * Negative values will make them bend inwards.\r\n *\r\n * @default 0\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"expandDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Copies all parameters from another [[Sprite]].\r\n *\r\n * @param source Source Sprite\r\n */\r\n FunnelSlice.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.slice) {\r\n this.slice.copyFrom(source.slice);\r\n }\r\n };\r\n return FunnelSlice;\r\n}(Container));\r\nexport { FunnelSlice };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelSlice\"] = FunnelSlice;\r\n//# sourceMappingURL=FunnelSlice.js.map","/**\r\n * Funnel tick module.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Draws an tick line for a funnel slice connecting it to a related label.\r\n *\r\n * @see {@link IFunnelTickEvents} for a list of available events\r\n * @see {@link IFunnelTickAdapters} for a list of available Adapters\r\n */\r\nvar FunnelTick = /** @class */ (function (_super) {\r\n __extends(FunnelTick, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelTick() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A label element this tick is attached to.\r\n */\r\n _this._label = new MutableValueDisposer();\r\n /**\r\n * A slice element this tick is attached to.\r\n */\r\n _this._slice = new MutableValueDisposer();\r\n _this.className = \"FunnelTick\";\r\n _this.element = _this.paper.add(\"path\");\r\n _this._disposers.push(_this._label);\r\n _this._disposers.push(_this._slice);\r\n _this.setPropertyValue(\"locationX\", 0);\r\n _this.setPropertyValue(\"locationY\", 0);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Draws the tick element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FunnelTick.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var slice = this.slice;\r\n var point = slice.getPoint(this.locationX, this.locationY);\r\n if (point) {\r\n var label = this.label;\r\n var series = slice.dataItem.component;\r\n var p0 = void 0;\r\n var p1 = void 0;\r\n var p2 = void 0;\r\n if (series.orientation == \"vertical\") {\r\n var x1 = label.pixelX;\r\n var y1 = label.pixelY;\r\n if (!series.labelsOpposite) {\r\n x1 += label.maxRight;\r\n }\r\n p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n p2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n p1 = { x: label.parent.pixelX - this.length, y: p2.y };\r\n if (!series.labelsOpposite) {\r\n p1.x = label.parent.measuredWidth + this.length;\r\n }\r\n }\r\n else {\r\n var x1 = label.pixelX;\r\n var y1 = label.pixelY;\r\n if (!series.labelsOpposite) {\r\n y1 += label.maxBottom;\r\n }\r\n p0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n p2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n p1 = { x: p2.x, y: label.parent.pixelY - this.length };\r\n if (!series.labelsOpposite) {\r\n p1.y = label.parent.measuredHeight + this.length;\r\n }\r\n }\r\n this.path = $path.moveTo(p0) + $path.lineTo(p1) + $path.lineTo(p2);\r\n }\r\n };\r\n Object.defineProperty(FunnelTick.prototype, \"slice\", {\r\n /**\r\n * @return FunnelSlice\r\n */\r\n get: function () {\r\n return this._slice.get();\r\n },\r\n /**\r\n * [[FunnelSlice]] element tick is attached to.\r\n *\r\n * @param slice Slice\r\n */\r\n set: function (slice) {\r\n this._slice.set(slice, new MultiDisposer([\r\n slice.events.on(\"transformed\", this.invalidate, this, false),\r\n slice.events.on(\"validated\", this.invalidate, this, false)\r\n ]));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"label\", {\r\n /**\r\n * @return Label\r\n */\r\n get: function () {\r\n return this._label.get();\r\n },\r\n /**\r\n * [[Label]] element tick is attached to.\r\n *\r\n * @param label Label\r\n */\r\n set: function (label) {\r\n this._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"locationX\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationX\");\r\n },\r\n /**\r\n * A relative horizontal position within target element a tick is pointing\r\n * to.\r\n *\r\n * A scale is from 0 to 1, where 0 means left edge, and 1 right edge.\r\n *\r\n * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n * of the slice), or outside 0-1 range, which will put tick anchor position\r\n * outside target element.\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"locationX\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelTick.prototype, \"locationY\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"locationY\");\r\n },\r\n /**\r\n * A relative vertical position within target element a tick is pointing\r\n * to.\r\n *\r\n * A scale is from 0 to 1, where 0 means top edge, and 1 bottom edge.\r\n *\r\n * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n * of the slice), or outside 0-1 range, which will put tick anchor position\r\n * outside target element.\r\n *\r\n * @param value Location (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"locationY\", value, false, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FunnelTick;\r\n}(Tick));\r\nexport { FunnelTick };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelTick\"] = FunnelTick;\r\n//# sourceMappingURL=FunnelTick.js.map","/**\r\n * Defines Funnel Chart Series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentSeries, PercentSeriesDataItem } from \"./PercentSeries\";\r\nimport { FunnelSlice } from \"../elements/FunnelSlice\";\r\nimport { FunnelTick } from \"../elements/FunnelTick\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { options } from \"../../core/Options\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo: sequenced?\r\n/**\r\n * Defines a [[DataItem]] for [[FunnelSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar FunnelSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(FunnelSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"FunnelSeriesDataItem\";\r\n // this helps to invalidate series when value is 0 an it is hidden (no other events are triggered then)\r\n _this.events.on(\"visibilitychanged\", function () {\r\n if (_this.component) {\r\n _this.component.invalidateDataItems();\r\n }\r\n }, _this, false);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(FunnelSeriesDataItem.prototype, \"sliceLink\", {\r\n /**\r\n * A [[FunnelSlice]] element, related to this data item ([[FunnelSlice]]).\r\n *\r\n * @readonly\r\n * @return Slice element\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._sliceLink) {\r\n var sliceLink_1 = this.component.sliceLinks.create();\r\n this._sliceLink = sliceLink_1;\r\n this._disposers.push(sliceLink_1);\r\n sliceLink_1.parent = this.component.slicesContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.sliceLinks.removeValue(sliceLink_1);\r\n }\r\n }));\r\n this.addSprite(sliceLink_1);\r\n sliceLink_1.visible = this.visible;\r\n }\r\n return this._sliceLink;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FunnelSeriesDataItem;\r\n}(PercentSeriesDataItem));\r\nexport { FunnelSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a FunnelSlice series on a [[SlicedChart]].\r\n *\r\n * @see {@link IFunnelSeriesEvents} for a list of available Events\r\n * @see {@link IFunnelSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar FunnelSeries = /** @class */ (function (_super) {\r\n __extends(FunnelSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function FunnelSeries() {\r\n var _this = _super.call(this) || this;\r\n _this._nextY = 0;\r\n _this.className = \"FunnelSeries\";\r\n _this.orientation = \"vertical\";\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.slicesContainer.width = percent(100);\r\n _this.slicesContainer.height = percent(100);\r\n _this._disposers.push(_this.slicesContainer.events.on(\"maxsizechanged\", _this.invalidateDataItems, _this, false));\r\n _this.labelsOpposite = true;\r\n _this.labelsContainer.layout = \"absolute\";\r\n _this.bottomRatio = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Creates a [[FunnelSlice]] element.\r\n *\r\n * @return Slice\r\n */\r\n FunnelSeries.prototype.createSlice = function () {\r\n return new FunnelSlice();\r\n };\r\n /**\r\n * Creates a [[FunnelTick]] element.\r\n *\r\n * @return Tick\r\n */\r\n FunnelSeries.prototype.createTick = function () {\r\n return new FunnelTick();\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n FunnelSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Funnel Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n FunnelSeries.prototype.createDataItem = function () {\r\n return new FunnelSeriesDataItem();\r\n };\r\n /**\r\n * Inits FunnelSlice.\r\n *\r\n * @param slice to init\r\n */\r\n FunnelSeries.prototype.initSlice = function (slice) {\r\n slice.isMeasured = false;\r\n slice.defaultState.properties.scale = 1;\r\n slice.observe(\"scale\", this.handleSliceScale, this);\r\n slice.observe([\"dx\", \"dy\", \"x\", \"y\"], this.handleSliceMove, this);\r\n slice.tooltipText = \"{category}: {value.percent.formatNumber('#.#p')} ({value.value})\";\r\n var hoverState = slice.states.create(\"hover\");\r\n hoverState.properties.expandDistance = 0.2;\r\n };\r\n /**\r\n * [initLabel description]\r\n *\r\n * @todo Description\r\n * @param label [description]\r\n */\r\n FunnelSeries.prototype.initLabel = function (label) {\r\n _super.prototype.initLabel.call(this, label);\r\n label.verticalCenter = \"middle\";\r\n label.horizontalCenter = \"middle\";\r\n label.isMeasured = true;\r\n label.padding(5, 5, 5, 5);\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n FunnelSeries.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n this._nextY = 0;\r\n };\r\n /**\r\n * [validateDataElements description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n FunnelSeries.prototype.validateDataElements = function () {\r\n var _this = this;\r\n var slicesContainer = this.slicesContainer;\r\n var labelsContainer = this.labelsContainer;\r\n var labelTemplate = this.labels.template;\r\n if (this.alignLabels) {\r\n labelTemplate.interactionsEnabled = true;\r\n slicesContainer.isMeasured = true;\r\n labelsContainer.isMeasured = true;\r\n }\r\n else {\r\n labelTemplate.interactionsEnabled = false;\r\n slicesContainer.isMeasured = false;\r\n labelsContainer.isMeasured = false;\r\n }\r\n var total = 0;\r\n var count = 0;\r\n this.dataItems.each(function (dItem) {\r\n if ($type.hasValue(dItem.value)) {\r\n count++;\r\n if (dItem.value > 0) {\r\n total += Math.abs(dItem.getWorkingValue(\"value\") / dItem.value);\r\n }\r\n else {\r\n if (_this.ignoreZeroValues) {\r\n count--;\r\n }\r\n else {\r\n if (!dItem.visible || dItem.__disabled || dItem.isHiding) {\r\n count--;\r\n }\r\n else {\r\n total += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n this._total = 1 / count * total;\r\n this._count = count;\r\n _super.prototype.validateDataElements.call(this);\r\n this.arrangeLabels();\r\n };\r\n /**\r\n * [getNextValue description]\r\n *\r\n * @todo Description\r\n * @param dataItem [description]\r\n * @return [description]\r\n */\r\n FunnelSeries.prototype.getNextValue = function (dataItem) {\r\n var index = dataItem.index;\r\n var nextValue = dataItem.getWorkingValue(\"value\");\r\n if (index < this.dataItems.length - 1) {\r\n var nextItem = this.dataItems.getIndex(index + 1);\r\n nextValue = nextItem.getWorkingValue(\"value\");\r\n if (!nextItem.visible || nextItem.isHiding || nextItem.__disabled || (nextItem.value == 0 && this.ignoreZeroValues)) {\r\n return this.getNextValue(nextItem);\r\n }\r\n }\r\n return nextValue;\r\n };\r\n /**\r\n * [formDataElement description]\r\n *\r\n * @todo Description\r\n */\r\n FunnelSeries.prototype.formDataElement = function () {\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n FunnelSeries.prototype.validateDataElement = function (dataItem) {\r\n var _this = this;\r\n //if ($type.hasValue(dataItem.value)) {\r\n // FunnelSlice\r\n var slice = dataItem.slice;\r\n slice.orientation = this.orientation;\r\n var sliceLink = dataItem.sliceLink;\r\n sliceLink.orientation = this.orientation;\r\n var tick = dataItem.tick;\r\n var label = dataItem.label;\r\n tick.slice = slice;\r\n tick.label = label;\r\n if ($type.hasValue(dataItem.value)) {\r\n this.decorateSlice(dataItem);\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (dataItem.value == 0 && _this.ignoreZeroValues) {\r\n sprite.__disabled = true;\r\n }\r\n else {\r\n sprite.__disabled = false;\r\n }\r\n });\r\n }\r\n else {\r\n $array.each(dataItem.sprites, function (sprite) {\r\n sprite.__disabled = true;\r\n });\r\n }\r\n if (dataItem.index == this.dataItems.length - 1) {\r\n sliceLink.disabled = true;\r\n }\r\n // do this at the end, otherwise bullets won't be positioned properly\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n sliceLink.fill = slice.fill;\r\n //}\r\n };\r\n /**\r\n * [decorateSlice description]\r\n *\r\n * @todo Description\r\n * @param dataItem [description]\r\n */\r\n FunnelSeries.prototype.decorateSlice = function (dataItem) {\r\n var slice = dataItem.slice;\r\n var sliceLink = dataItem.sliceLink;\r\n var label = dataItem.label;\r\n var tick = dataItem.tick;\r\n var maxWidth = this.slicesContainer.innerWidth;\r\n var maxHeight = this.slicesContainer.innerHeight;\r\n var nextValue = this.getNextValue(dataItem);\r\n var workingValue = Math.abs(dataItem.getWorkingValue(\"value\"));\r\n var bottomRatio = this.bottomRatio;\r\n var d = 1;\r\n if (dataItem.value != 0) {\r\n d = workingValue / Math.abs(dataItem.value);\r\n }\r\n else {\r\n if (dataItem.__disabled || dataItem.isHiding || !dataItem.visible) {\r\n d = 0.000001;\r\n }\r\n }\r\n if (this.ignoreZeroValues && dataItem.value == 0) {\r\n dataItem.__disabled = true;\r\n return;\r\n }\r\n else {\r\n dataItem.__disabled = false;\r\n }\r\n if (this._nextY == Infinity) {\r\n this._nextY = 0;\r\n }\r\n if (this.orientation == \"vertical\") {\r\n var linkHeight = sliceLink.pixelHeight * d;\r\n maxHeight = maxHeight + linkHeight; // to avoid one link gap in the bottom\r\n slice.topWidth = workingValue / this.dataItem.values.value.high * maxWidth;\r\n slice.bottomWidth = (workingValue - (workingValue - nextValue) * bottomRatio) / this.dataItem.values.value.high * maxWidth;\r\n sliceLink.topWidth = slice.bottomWidth;\r\n sliceLink.bottomWidth = (workingValue - (workingValue - nextValue)) / this.dataItem.values.value.high * maxWidth;\r\n slice.y = this._nextY;\r\n slice.height = Math.min(100000, $math.max(0, maxHeight / this._count * d / this._total - linkHeight));\r\n slice.x = maxWidth / 2;\r\n if (!this.alignLabels) {\r\n label.x = slice.x;\r\n }\r\n else {\r\n label.x = undefined;\r\n }\r\n label.y = slice.pixelY + slice.pixelHeight * tick.locationY;\r\n this._nextY += slice.pixelHeight + linkHeight;\r\n sliceLink.y = this._nextY - linkHeight;\r\n sliceLink.x = slice.x;\r\n }\r\n else {\r\n var linkWidth = sliceLink.pixelWidth * d;\r\n maxWidth = maxWidth + linkWidth; // to avoid one link gap in the bottom\r\n slice.topWidth = workingValue / this.dataItem.values.value.high * maxHeight;\r\n slice.bottomWidth = (workingValue - (workingValue - nextValue) * bottomRatio) / this.dataItem.values.value.high * maxHeight;\r\n sliceLink.topWidth = slice.bottomWidth;\r\n sliceLink.bottomWidth = (workingValue - (workingValue - nextValue)) / this.dataItem.values.value.high * maxHeight;\r\n slice.x = this._nextY;\r\n slice.width = Math.min(100000, maxWidth / this._count * d * 1 / this._total - linkWidth);\r\n slice.y = maxHeight / 2;\r\n if (!this.alignLabels) {\r\n label.y = slice.y;\r\n }\r\n else {\r\n label.y = this.labelsContainer.measuredHeight;\r\n }\r\n label.x = slice.pixelX + slice.pixelWidth * tick.locationX;\r\n this._nextY += slice.pixelWidth + linkWidth;\r\n sliceLink.x = this._nextY - linkWidth;\r\n sliceLink.y = slice.y;\r\n }\r\n };\r\n FunnelSeries.prototype.getLastLabel = function (index) {\r\n if (index > 0) {\r\n var lastLabel = this.labels.getIndex(index);\r\n if (lastLabel.__disabled || !lastLabel.visible) {\r\n return this.getLastLabel(index - 1);\r\n }\r\n else {\r\n return lastLabel;\r\n }\r\n }\r\n };\r\n /**\r\n * [arrangeLabels description]\r\n *\r\n * @todo Description\r\n */\r\n FunnelSeries.prototype.arrangeLabels = function () {\r\n if (this.alignLabels) {\r\n var count = this.labels.length;\r\n if (count > 1) {\r\n var lastLabel = this.getLastLabel(count - 1);\r\n if (lastLabel) {\r\n var lastY = lastLabel.pixelY;\r\n var lastX = lastLabel.pixelX;\r\n if (count > 1) {\r\n for (var i = count - 2; i >= 0; i--) {\r\n var label = this.labels.getIndex(i);\r\n if (label.visible && !label.__disabled) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n if (this.orientation == \"vertical\") {\r\n if (label.pixelY + label.measuredHeight > lastY) {\r\n label.y = Math.min(1000000, lastY - label.measuredHeight);\r\n }\r\n }\r\n // horizontal\r\n else {\r\n if (label.pixelX + label.measuredWidth > lastX) {\r\n label.x = Math.min(1000000, lastX - label.measuredWidth);\r\n }\r\n }\r\n lastY = label.pixelY;\r\n lastX = label.pixelX;\r\n }\r\n }\r\n lastY = 0;\r\n lastX = 0;\r\n for (var i = 0; i < count; i++) {\r\n var label = this.labels.getIndex(i);\r\n if (label.visible && !label.__disabled) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n if (this.orientation == \"vertical\") {\r\n if (label.pixelY < lastY) {\r\n label.y = Math.min(1000000, lastY);\r\n }\r\n }\r\n // horizontal\r\n else {\r\n if (label.pixelX < lastX) {\r\n label.x = Math.min(1000000, lastX);\r\n }\r\n }\r\n lastY += label.measuredHeight;\r\n lastX += label.measuredWidth;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Positions series bullet.\r\n *\r\n * @ignore Exclude from docs\r\n * @param bullet Bullet\r\n */\r\n FunnelSeries.prototype.positionBullet = function (bullet) {\r\n _super.prototype.positionBullet.call(this, bullet);\r\n var dataItem = bullet.dataItem;\r\n var slice = dataItem.slice;\r\n var locationX = bullet.locationX;\r\n if (!$type.isNumber(locationX)) {\r\n locationX = 0.5;\r\n }\r\n var locationY = bullet.locationY;\r\n if (!$type.isNumber(locationY)) {\r\n locationY = 1;\r\n }\r\n bullet.x = slice.pixelX + slice.measuredWidth * locationX;\r\n bullet.y = slice.pixelY + slice.measuredHeight * locationY;\r\n };\r\n Object.defineProperty(FunnelSeries.prototype, \"orientation\", {\r\n /**\r\n * @return Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the funnel slices: \"horizontal\" or \"vertical\" (default).\r\n *\r\n * @default \"vertical\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"orientation\", value)) {\r\n this.labelsOpposite = this.labelsOpposite;\r\n this.invalidate();\r\n if (value == \"vertical\") {\r\n this.ticks.template.locationX = 1;\r\n this.ticks.template.locationY = 0.5;\r\n this.labels.template.rotation = 0;\r\n this.layout = \"horizontal\";\r\n }\r\n else {\r\n this.ticks.template.locationX = 0.5;\r\n this.ticks.template.locationY = 1;\r\n this.labels.template.rotation = -90;\r\n this.layout = \"vertical\";\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSeries.prototype, \"bottomRatio\", {\r\n /**\r\n * @return {number}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bottomRatio\");\r\n },\r\n /**\r\n * Indicates how slice's bottom will change in relation to slices top AND\r\n * next slices top.\r\n *\r\n * Basically it's a relative value (0-1) that indicates bottom width\r\n * position between current slice's top width and the top withd of the next\r\n * one.\r\n *\r\n * The scale goes from 0 (closer to current slice width) to 1 (closer to next\r\n * slice with).\r\n *\r\n * `0` (default) will mean that bottom will be the same as top, resulting in\r\n * a prefectly square slice.\r\n *\r\n * From the data-viz standpoint `0` is a correct setting, since area of the\r\n * slices will depict their value correctly.\r\n *\r\n * `1` will mean that slice will become trapezoid with its bottom matching\r\n * width of the next slice.\r\n *\r\n * `0.5` will make bottom width be in the middle of width of current slice\r\n * and the next slice.\r\n *\r\n * @default 0\r\n * @param {number}\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"bottomRatio\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FunnelSeries.prototype, \"sliceLinks\", {\r\n /**\r\n * A list of elements linking each actual slice.\r\n *\r\n * Please note that links are [[FunnelSlice]] objects, just like real links,\r\n * so they have all the same configuration options.\r\n *\r\n * You can use `template` of this link, to specify how links will look.\r\n *\r\n * ```TypeScript\r\n * series.sliceLinks.template.fillOpacity = 0.5;\r\n * ```\r\n * ```JavaScript\r\n * series.sliceLinks.template.fillOpacity = 0.5;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * \"type\": \"FunnelSeries\",\r\n * // ...\r\n * \"sliceLinks\": {\r\n * \"fillOpacity\": 0.5\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @return Funnel links\r\n */\r\n get: function () {\r\n if (!this._sliceLinks) {\r\n var sliceLink = new FunnelSlice();\r\n sliceLink.applyOnClones = true;\r\n sliceLink.fillOpacity = 0.5;\r\n sliceLink.expandDistance = -0.3;\r\n sliceLink.hiddenState.properties.opacity = 0;\r\n this._disposers.push(sliceLink);\r\n this._sliceLinks = new ListTemplate(sliceLink);\r\n this._disposers.push(new ListDisposer(this._sliceLinks));\r\n }\r\n return this._sliceLinks;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Shows hidden series.\r\n *\r\n * @param duration Duration of reveal animation (ms)\r\n * @return Animation\r\n */\r\n FunnelSeries.prototype.show = function (duration) {\r\n var _this = this;\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n if (!options.animationsEnabled) {\r\n interpolationDuration = 0;\r\n }\r\n var delay = 0;\r\n $iter.each($iter.indexed(this.dataItems.iterator()), function (a) {\r\n var i = a[0];\r\n var dataItem = a[1];\r\n if (_this.sequencedInterpolation) {\r\n delay = _this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n }\r\n dataItem.show(interpolationDuration, delay, [\"value\"]);\r\n });\r\n var animation = _super.prototype.show.call(this, duration);\r\n return animation;\r\n };\r\n /**\r\n * Hides series.\r\n *\r\n * @param duration Duration of hiding animation (ms)\r\n * @return Animation\r\n */\r\n FunnelSeries.prototype.hide = function (duration) {\r\n var _this = this;\r\n var fields = [\"value\"];\r\n var value = 0;\r\n var startIndex = this.startIndex;\r\n var endIndex = this.endIndex;\r\n var delay = 0;\r\n var interpolationDuration = this.hiddenState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n if (!options.animationsEnabled) {\r\n interpolationDuration = 0;\r\n }\r\n $iter.each($iter.indexed(this.dataItems.iterator()), function (a) {\r\n var i = a[0];\r\n var dataItem = a[1];\r\n if (_this.sequencedInterpolation) {\r\n delay = _this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n }\r\n dataItem.hide(interpolationDuration, delay, value, fields);\r\n });\r\n var animation = _super.prototype.hide.call(this, duration);\r\n if (animation && !animation.isFinished()) {\r\n animation.delay(delay);\r\n }\r\n return animation;\r\n };\r\n /**\r\n * @ignore\r\n */\r\n FunnelSeries.prototype.setAlignLabels = function (value) {\r\n _super.prototype.setAlignLabels.call(this, value);\r\n this.ticks.template.disabled = !value;\r\n var labelsContainer = this.labelsContainer;\r\n if (labelsContainer) {\r\n // do not align\r\n if (!value) {\r\n labelsContainer.width = percent(100);\r\n labelsContainer.height = percent(100);\r\n }\r\n //align\r\n else {\r\n labelsContainer.height = undefined;\r\n labelsContainer.width = undefined;\r\n labelsContainer.margin(10, 10, 10, 10);\r\n }\r\n }\r\n this.labelsOpposite = this.labelsOpposite;\r\n };\r\n Object.defineProperty(FunnelSeries.prototype, \"labelsOpposite\", {\r\n /**\r\n * @return Labels on opposite side?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"labelsOpposite\");\r\n },\r\n /**\r\n * Put labels on the oppsite side of the series?\r\n *\r\n * This setting is only used if `alignLabels = true`.\r\n *\r\n * If set to `true` (default) labels will be drawn to the right (on vertical\r\n * series), or to the bottom (on horizontal series).\r\n *\r\n * If set to `false`, labels will be positioned to the left or top\r\n * respectively.\r\n *\r\n * @default true\r\n * @since 4.1.13\r\n * @param value Labels on opposite side?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"labelsOpposite\", value);\r\n var labelTemplate = this.labels.template;\r\n var labelAlign = \"none\";\r\n var labelValign = \"none\";\r\n if (!this.alignLabels) {\r\n if (this.orientation == \"vertical\") {\r\n labelAlign = \"center\";\r\n }\r\n else {\r\n labelValign = \"middle\";\r\n }\r\n }\r\n else {\r\n // opposite (left/bottom)\r\n if (value) {\r\n this.labelsContainer.toFront();\r\n // left\r\n if (this.orientation == \"vertical\") {\r\n this.ticks.template.locationX = 1;\r\n labelTemplate.horizontalCenter = \"left\";\r\n labelAlign = \"right\";\r\n }\r\n // bottom\r\n else {\r\n this.ticks.template.locationY = 1;\r\n labelTemplate.horizontalCenter = \"right\";\r\n labelValign = \"bottom\";\r\n }\r\n }\r\n // non oposite (right/top)\r\n else {\r\n this.labelsContainer.toBack();\r\n // right\r\n if (this.orientation == \"vertical\") {\r\n this.ticks.template.locationX = 0;\r\n labelAlign = \"left\";\r\n }\r\n // top\r\n else {\r\n labelValign = \"top\";\r\n this.ticks.template.locationY = 0;\r\n }\r\n }\r\n }\r\n labelTemplate.align = labelAlign;\r\n labelTemplate.valign = labelValign;\r\n this.validateLayout();\r\n this.ticks.each(function (tick) {\r\n tick.invalidate();\r\n });\r\n this.invalidateDataItems();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FunnelSeries;\r\n}(PercentSeries));\r\nexport { FunnelSeries };\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelSeries\"] = FunnelSeries;\r\nregistry.registeredClasses[\"FunnelSeriesDataItem\"] = FunnelSeriesDataItem;\r\n//# sourceMappingURL=FunnelSeries.js.map","/**\r\n * Defines Pyramid Series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FunnelSeries, FunnelSeriesDataItem } from \"./FunnelSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo: sequenced?\r\n/**\r\n * Defines a [[DataItem]] for [[PyramidSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PyramidSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(PyramidSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PyramidSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PyramidSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return PyramidSeriesDataItem;\r\n}(FunnelSeriesDataItem));\r\nexport { PyramidSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a FunnelSlice series on a [[SlicedChart]].\r\n *\r\n * @see {@link IPyramidSeriesEvents} for a list of available Events\r\n * @see {@link IPyramidSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar PyramidSeries = /** @class */ (function (_super) {\r\n __extends(PyramidSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PyramidSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PyramidSeries\";\r\n _this.topWidth = percent(0);\r\n _this.bottomWidth = percent(100);\r\n _this.pyramidHeight = percent(100);\r\n _this.valueIs = \"area\";\r\n _this.sliceLinks.template.width = 0;\r\n _this.sliceLinks.template.height = 0;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n PyramidSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Pyramid Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n PyramidSeries.prototype.createDataItem = function () {\r\n return new PyramidSeriesDataItem();\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n PyramidSeries.prototype.validate = function () {\r\n _super.prototype.validate.call(this);\r\n this._nextWidth = undefined;\r\n };\r\n /**\r\n * [getNextValue description]\r\n *\r\n * @todo Description\r\n * @param dataItem [description]\r\n * @return [description]\r\n */\r\n PyramidSeries.prototype.getNextValue = function (dataItem) {\r\n var index = dataItem.index;\r\n var nextValue = dataItem.getWorkingValue(\"value\");\r\n if (index < this.dataItems.length - 1) {\r\n var nextItem = this.dataItems.getIndex(index + 1);\r\n nextValue = nextItem.getWorkingValue(\"value\");\r\n }\r\n if (nextValue == 0) {\r\n nextValue = 0.000001;\r\n }\r\n return nextValue;\r\n };\r\n /**\r\n * [validateDataElements description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n PyramidSeries.prototype.validateDataElements = function () {\r\n var _this = this;\r\n var maxWidth = this.slicesContainer.innerWidth;\r\n var maxHeight = this.slicesContainer.innerHeight;\r\n this.dataItems.each(function (dataItem) {\r\n if (dataItem.value > 0) {\r\n var relValue = dataItem.getWorkingValue(\"value\") / dataItem.value;\r\n var sliceLink = dataItem.sliceLink;\r\n if (_this.orientation == \"vertical\") {\r\n maxHeight -= (sliceLink.pixelHeight * relValue);\r\n }\r\n else {\r\n maxWidth -= (sliceLink.pixelWidth * relValue);\r\n }\r\n }\r\n });\r\n this._pyramidHeight = $utils.relativeToValue(this.pyramidHeight, maxHeight);\r\n this._pyramidWidth = $utils.relativeToValue(this.pyramidHeight, maxWidth);\r\n if (this.orientation == \"vertical\") {\r\n var y = (maxHeight - this._pyramidHeight) / 2;\r\n this.slicesContainer.y = y;\r\n this.labelsContainer.y = y;\r\n this.ticksContainer.y = y;\r\n }\r\n else {\r\n var x = (maxWidth - this._pyramidWidth) / 2;\r\n this.slicesContainer.x = x;\r\n this.labelsContainer.x = x;\r\n this.ticksContainer.x = x;\r\n }\r\n _super.prototype.validateDataElements.call(this);\r\n };\r\n /**\r\n * [decorateSlice description]\r\n *\r\n * @todo Description\r\n * @param dataItem [description]\r\n */\r\n PyramidSeries.prototype.decorateSlice = function (dataItem) {\r\n var sum = this.dataItem.values.value.absoluteSum;\r\n if (sum == 0) {\r\n return;\r\n }\r\n var slice = dataItem.slice;\r\n var sliceLink = dataItem.sliceLink;\r\n var label = dataItem.label;\r\n var tick = dataItem.tick;\r\n // TODO can this be removed ?\r\n this.getNextValue(dataItem);\r\n var workingValue = Math.abs(dataItem.getWorkingValue(\"value\"));\r\n var pyramidWidth = this._pyramidWidth;\r\n var pyramidHeight = this._pyramidHeight;\r\n var maxWidth = this.slicesContainer.innerWidth;\r\n var maxHeight = this.slicesContainer.innerHeight;\r\n var linkWidth = sliceLink.pixelWidth;\r\n var linkHeight = sliceLink.pixelHeight;\r\n if ((dataItem.value == 0 || dataItem.value == null) && this.ignoreZeroValues) {\r\n dataItem.__disabled = true;\r\n }\r\n else {\r\n dataItem.__disabled = false;\r\n }\r\n if (this.orientation == \"vertical\") {\r\n var topWidth = $utils.relativeToValue(this.topWidth, maxWidth);\r\n if (!$type.isNumber(this._nextWidth)) {\r\n this._nextWidth = topWidth;\r\n }\r\n var bottomWidth = $utils.relativeToValue(this.bottomWidth, maxWidth);\r\n var sliceTopWidth = this._nextWidth;\r\n var angle = Math.atan2(pyramidHeight, topWidth - bottomWidth);\r\n var c = Math.tan(Math.PI / 2 - angle);\r\n if (c == 0) {\r\n c = 0.00000001;\r\n }\r\n var sliceHeight = void 0;\r\n var sliceBottomWidth = void 0;\r\n if (this.valueIs == \"area\") {\r\n var totalSquare = (topWidth + bottomWidth) / 2 * pyramidHeight;\r\n var square = totalSquare * workingValue / sum;\r\n var s = Math.abs(sliceTopWidth * sliceTopWidth - 2 * square * c);\r\n sliceHeight = (sliceTopWidth - Math.sqrt(s)) / c;\r\n if (sliceHeight > 0) {\r\n sliceBottomWidth = (2 * square - sliceHeight * sliceTopWidth) / sliceHeight;\r\n }\r\n else {\r\n sliceBottomWidth = sliceTopWidth;\r\n }\r\n }\r\n else {\r\n sliceHeight = pyramidHeight * workingValue / sum;\r\n sliceBottomWidth = sliceTopWidth - sliceHeight * c;\r\n }\r\n slice.height = sliceHeight;\r\n slice.width = maxWidth;\r\n slice.bottomWidth = sliceBottomWidth;\r\n slice.topWidth = sliceTopWidth;\r\n sliceLink.topWidth = slice.bottomWidth;\r\n sliceLink.bottomWidth = slice.bottomWidth;\r\n slice.y = this._nextY;\r\n //slice.x = maxWidth / 2;\r\n if (!this.alignLabels) {\r\n label.x = maxWidth / 2;\r\n }\r\n else {\r\n label.x = 0;\r\n }\r\n label.y = slice.pixelY + slice.pixelHeight * tick.locationY + slice.dy;\r\n this._nextY += slice.pixelHeight + linkHeight * workingValue / Math.max(Math.abs(dataItem.value), 0.00000001);\r\n sliceLink.y = this._nextY - linkHeight;\r\n sliceLink.x = maxWidth / 2;\r\n }\r\n else {\r\n var topWidth = $utils.relativeToValue(this.topWidth, maxHeight);\r\n if (!$type.isNumber(this._nextWidth)) {\r\n this._nextWidth = topWidth;\r\n }\r\n var bottomWidth = $utils.relativeToValue(this.bottomWidth, maxHeight);\r\n var sliceTopWidth = this._nextWidth;\r\n var angle = Math.atan2(pyramidWidth, topWidth - bottomWidth);\r\n var c = Math.tan(Math.PI / 2 - angle);\r\n if (c == 0) {\r\n c = 0.00000001;\r\n }\r\n var sliceWidth = void 0;\r\n var sliceBottomWidth = void 0;\r\n if (this.valueIs == \"area\") {\r\n var totalSquare = (topWidth + bottomWidth) / 2 * pyramidWidth;\r\n var square = totalSquare * workingValue / sum;\r\n sliceWidth = (sliceTopWidth - Math.sqrt(sliceTopWidth * sliceTopWidth - 2 * square * c)) / c;\r\n sliceBottomWidth = (2 * square - sliceWidth * sliceTopWidth) / sliceWidth;\r\n }\r\n else {\r\n sliceWidth = pyramidWidth * workingValue / sum;\r\n sliceBottomWidth = sliceTopWidth - sliceWidth * c;\r\n }\r\n slice.width = sliceWidth;\r\n slice.height = maxHeight;\r\n slice.bottomWidth = sliceBottomWidth;\r\n slice.topWidth = sliceTopWidth;\r\n sliceLink.topWidth = slice.bottomWidth;\r\n sliceLink.bottomWidth = slice.bottomWidth;\r\n slice.x = this._nextY;\r\n if (!this.alignLabels) {\r\n label.y = maxHeight / 2;\r\n }\r\n else {\r\n label.y = this.labelsContainer.measuredHeight;\r\n }\r\n label.x = slice.pixelX + slice.pixelWidth * tick.locationX + slice.dx;\r\n this._nextY += slice.pixelWidth + linkWidth * workingValue / Math.max(Math.abs(dataItem.value), 0.00000001);\r\n sliceLink.x = this._nextY - linkWidth;\r\n sliceLink.y = maxHeight / 2;\r\n }\r\n this._nextWidth = slice.bottomWidth;\r\n };\r\n Object.defineProperty(PyramidSeries.prototype, \"topWidth\", {\r\n /**\r\n * @return {number | Percent}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"topWidth\");\r\n },\r\n /**\r\n * Width of the pyramid's tip in pixels or relative (`Percent`).\r\n *\r\n * `0%` (default) means the pyramid will be perfectly pointy.\r\n * `50%` will have a cut off / blunt top that is half the width of the chart.\r\n * `100%` will take the whole width of the chart.\r\n *\r\n * If you need the downward-pointing pyramid, you might want to `topWidth` to\r\n * `100%` and `bottomWidth` to `0%`.\r\n *\r\n * @default 0%\r\n * @param {number | Percent}\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"topWidth\", value, false, false, 10, false)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PyramidSeries.prototype, \"pyramidHeight\", {\r\n /**\r\n * @return {number | Percent}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"pyramidHeight\");\r\n },\r\n /**\r\n * Height of pyramid\r\n *\r\n *\r\n * @default 100%\r\n * @param {number | Percent}\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"pyramidHeight\", value, false, false, 10, false)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PyramidSeries.prototype, \"bottomWidth\", {\r\n /**\r\n * @return {number | Percent}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"bottomWidth\");\r\n },\r\n /**\r\n * Width of the pyramid's bottom (bsae) in pixels or relative (`Percent`).\r\n *\r\n * `0%` means the pyramid's botto will be pointy.\r\n * `50%` will have a cut off / blunt bottom that is half the width of the chart.\r\n * `100%` (default) will take the whole width of the chart.\r\n *\r\n * If you need the downward-pointing pyramid, you might want to `topWidth` to\r\n * `100%` and `bottomWidth` to `0%`.\r\n *\r\n * @param {number | Percent}\r\n */\r\n set: function (value) {\r\n if (this.setPercentProperty(\"bottomWidth\", value, false, false, 10, false)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PyramidSeries.prototype, \"valueIs\", {\r\n /**\r\n * @return {\"area\" | \"height\"}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"valueIs\");\r\n },\r\n /**\r\n * Indicates how slice's value will influence its size.\r\n *\r\n * `\"area\"` (default) means that the whole area of the pyramid (counting in\r\n * modifications by `topWidth` and `bottomWidth`) will be divvied up between\r\n * slices based on their value.\r\n *\r\n * With this setting at `\"area\"` the area of the trapezoids of each slice\r\n * will represent their value relatively to values of the other slices.\r\n *\r\n * This is a correct way to depict \"weight\" of each slice based on their\r\n * values.\r\n *\r\n * `\"height\"` means whole height (as opposed to area) of the pyramid will be\r\n * divvied up between slices. Actual slice width or area is not counted in.\r\n *\r\n * From the data-viz standpoint this does not make a lot of sense, since\r\n * slices with lesser values might appear more prominent if they are placed\r\n * towards thick end of the pyramid since their areas will be bigger.\r\n *\r\n * @default \"area\"\r\n * @param {\"area\" | \"height\"}\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"valueIs\", value)) {\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PyramidSeries;\r\n}(FunnelSeries));\r\nexport { PyramidSeries };\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PyramidSeries\"] = PyramidSeries;\r\nregistry.registeredClasses[\"PyramidSeriesDataItem\"] = PyramidSeriesDataItem;\r\n//# sourceMappingURL=PyramidSeries.js.map","/**\r\n * Defines Pictorial Stacked Series.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PyramidSeries, PyramidSeriesDataItem } from \"./PyramidSeries\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n//@todo: sequenced?\r\n/**\r\n * Defines a [[DataItem]] for [[PictorialStackedSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar PictorialStackedSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(PictorialStackedSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PictorialStackedSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PictorialStackedSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return PictorialStackedSeriesDataItem;\r\n}(PyramidSeriesDataItem));\r\nexport { PictorialStackedSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a PictorialStacked series on a [[SlicedChart]].\r\n *\r\n * @see {@link IPictorialStackedSeriesEvents} for a list of available Events\r\n * @see {@link IPictorialStackedSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nvar PictorialStackedSeries = /** @class */ (function (_super) {\r\n __extends(PictorialStackedSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function PictorialStackedSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"PictorialStackedSeries\";\r\n _this.topWidth = percent(100);\r\n _this.bottomWidth = percent(100);\r\n _this.valueIs = \"height\";\r\n _this.applyTheme();\r\n _this.startLocation = 0;\r\n _this.endLocation = 1;\r\n _this.align = \"center\";\r\n _this.valign = \"middle\";\r\n _this._maskSprite = _this.slicesContainer.createChild(Sprite);\r\n _this._maskSprite.visible = false;\r\n _this._maskSprite.zIndex = 100;\r\n _this._maskSprite.shouldClone = false;\r\n return _this;\r\n }\r\n /**\r\n * Sizes the mask to fit the series.\r\n *\r\n * @ignore\r\n */\r\n PictorialStackedSeries.prototype.validateDataElements = function () {\r\n var maxWidth = this.slicesContainer.maxWidth;\r\n var maxHeight = this.slicesContainer.maxHeight;\r\n var maskSprite = this._maskSprite;\r\n //maskSprite.validatePosition(); // for some reason size of the maskSprite is 0x0 after we removed validatePosition in afterdraw\r\n var pictureWidth = maskSprite.measuredWidth / maskSprite.scale;\r\n var pictureHeight = maskSprite.measuredHeight / maskSprite.scale;\r\n var scale = $math.min(maxHeight / pictureHeight, maxWidth / pictureWidth);\r\n if (scale == Infinity) {\r\n scale = 1; // can't return here, won't draw legend properly\r\n }\r\n scale = $math.max(0.001, scale);\r\n var startLocation = this.startLocation;\r\n var endLocation = this.endLocation;\r\n var newWidth = $math.min(maxWidth, pictureWidth * scale);\r\n var newHeight = $math.min(maxHeight, pictureHeight * scale);\r\n maskSprite.scale = scale;\r\n if (this.orientation == \"vertical\") {\r\n this.topWidth = newWidth + 4;\r\n this.bottomWidth = newWidth + 4;\r\n this.pyramidHeight = newHeight * (endLocation - startLocation);\r\n maskSprite.x = maxWidth / 2;\r\n maskSprite.y = newHeight / 2;\r\n }\r\n else {\r\n this.topWidth = newHeight + 4;\r\n this.bottomWidth = newHeight + 4;\r\n this.pyramidHeight = newWidth * (endLocation - startLocation);\r\n maskSprite.valign = \"middle\";\r\n maskSprite.x = newWidth / 2;\r\n maskSprite.y = maxHeight / 2;\r\n }\r\n maskSprite.verticalCenter = \"middle\";\r\n maskSprite.horizontalCenter = \"middle\";\r\n _super.prototype.validateDataElements.call(this);\r\n var y;\r\n var x;\r\n if (this.orientation == \"vertical\") {\r\n if (this.valign == \"bottom\") {\r\n y = (maxHeight - newHeight);\r\n }\r\n if (this.valign == \"middle\") {\r\n y = (maxHeight - newHeight) / 2;\r\n }\r\n if (this.valign == \"top\") {\r\n y = 0;\r\n }\r\n if (this.align == \"left\") {\r\n x = -(maxWidth - newWidth) / 2;\r\n }\r\n if (this.align == \"center\") {\r\n x = 0;\r\n }\r\n if (this.align == \"right\") {\r\n x = (maxWidth - newWidth) / 2;\r\n }\r\n this.slices.template.dy = startLocation * newHeight;\r\n if (this.alignLabels) {\r\n this.slicesContainer.dx = x;\r\n }\r\n }\r\n else {\r\n if (this.valign == \"bottom\") {\r\n y = (maxHeight - newHeight) / 2;\r\n }\r\n if (this.valign == \"middle\") {\r\n y = 0;\r\n }\r\n if (this.valign == \"top\") {\r\n y = -(maxHeight - newHeight) / 2;\r\n }\r\n if (this.align == \"left\") {\r\n x = 0;\r\n }\r\n if (this.align == \"center\") {\r\n x = (maxWidth - newWidth) / 2;\r\n }\r\n if (this.align == \"right\") {\r\n x = (maxWidth - newWidth);\r\n }\r\n this.slices.template.dx = startLocation * newWidth;\r\n if (this.alignLabels) {\r\n this.slicesContainer.dy = y;\r\n }\r\n }\r\n this.slicesContainer.x = x;\r\n this.labelsContainer.x = x;\r\n this.ticksContainer.x = x;\r\n this.slicesContainer.y = y;\r\n this.labelsContainer.y = y;\r\n this.ticksContainer.y = y;\r\n if (newWidth > 0 && newHeight > 0) {\r\n this.slicesContainer.mask = maskSprite;\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n PictorialStackedSeries.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Pyramid Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n PictorialStackedSeries.prototype.createDataItem = function () {\r\n return new PictorialStackedSeriesDataItem();\r\n };\r\n Object.defineProperty(PictorialStackedSeries.prototype, \"maskSprite\", {\r\n /**\r\n * A [[Sprite]] element that is used as a series mask.\r\n *\r\n * If set, this element's shape will be used to apply shape to the whole\r\n * stacked pictorial series.\r\n *\r\n * You can use this element's `path` property to set an SVG path for the\r\n * shape:\r\n *\r\n * ```TypeScript\r\n * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n * // ...\r\n * series.maskSprite.path = iconPath;\r\n * ```\r\n * ```JavaScript\r\n * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n * // ...\r\n * series.maskSprite.path = iconPath;\r\n * ```\r\n * ```JSON\r\n * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n * // ...\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * \"type\": \"PictorialStackedSeries\",\r\n * // ...\r\n * \"maskSprite\": {\r\n * \"path\": iconPath\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @return Mask sprite\r\n */\r\n get: function () {\r\n return this._maskSprite;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Inits FunnelSlice.\r\n *\r\n * @param slice to init\r\n */\r\n PictorialStackedSeries.prototype.initSlice = function (slice) {\r\n _super.prototype.initSlice.call(this, slice);\r\n var hs = slice.states.getKey(\"hover\");\r\n if (hs) {\r\n hs.properties.expandDistance = 0;\r\n }\r\n };\r\n Object.defineProperty(PictorialStackedSeries.prototype, \"startLocation\", {\r\n /**\r\n * @return Start location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startLocation\");\r\n },\r\n /**\r\n * Relative location to start series from.\r\n *\r\n * Range of values: 0 to 1.\r\n *\r\n * This setting indicates where actual slices will start relatively to the\r\n * whole height/width of the series.\r\n *\r\n * For example, if we want slices to start at 30% from the top/left of the\r\n * series, we can set `startLocation = 0.3`.\r\n *\r\n * To fill shape outside of the location range, use background of the\r\n * property `slicesContainer`.\r\n *\r\n * ```TypeScript\r\n * series.startLocation = 0.2;\r\n * series.endLocation = 0.8;\r\n * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n * ```\r\n * ```JavaScript\r\n * series.startLocation = 0.2;\r\n * series.endLocation = 0.8;\r\n * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"startLocation\": 0.2,\r\n * \"endLocation\": 0.8,\r\n * \"slicesContainer\": {\r\n * \"background\": {\r\n * \"fill\": \"#eee\"\r\n * }\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @default 0\r\n * @since 4.1.13\r\n * @param value Start location\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"startLocation\", value)) {\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PictorialStackedSeries.prototype, \"endLocation\", {\r\n /**\r\n * @return End location\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endLocation\");\r\n },\r\n /**\r\n * Relative location to end series at.\r\n *\r\n * Range of values: 0 to 1.\r\n *\r\n * This setting indicates where actual slices will end relatively to the\r\n * whole height/width of the series.\r\n *\r\n * For example, if we want slices to end at 70% from the top/left of the\r\n * series, we can set `endLocation = 0.7`.\r\n *\r\n * To fill shape outside of the location range, use background of the\r\n * property `slicesContainer`.\r\n *\r\n * ```TypeScript\r\n * series.startLocation = 0.2;\r\n * series.endLocation = 0.8;\r\n * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n * ```\r\n * ```JavaScript\r\n * series.startLocation = 0.2;\r\n * series.endLocation = 0.8;\r\n * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"series\": [{\r\n * // ...\r\n * \"startLocation\": 0.2,\r\n * \"endLocation\": 0.8,\r\n * \"slicesContainer\": {\r\n * \"background\": {\r\n * \"fill\": \"#eee\"\r\n * }\r\n * }\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @default 1\r\n * @since 4.1.13\r\n * @param value End location\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"endLocation\", value)) {\r\n this.invalidateDataItems();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PictorialStackedSeries;\r\n}(PyramidSeries));\r\nexport { PictorialStackedSeries };\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PictorialStackedSeries\"] = PictorialStackedSeries;\r\nregistry.registeredClasses[\"PictorialStackedSeriesDataItem\"] = PictorialStackedSeriesDataItem;\r\n//# sourceMappingURL=PictorialStackedSeries.js.map","/**\r\n * Module that defines everything related to building Cone Columns.\r\n * It is a container which has coneColumn element which is a Cone.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Cone } from \"../../core/elements/3d/Cone\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates ConeColumns.\r\n *\r\n * @see {@link IConeColumnEvents} for a list of available events\r\n * @see {@link IConeColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar ConeColumn = /** @class */ (function (_super) {\r\n __extends(ConeColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ConeColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ConeColumn\";\r\n return _this;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n ConeColumn.prototype.createAssets = function () {\r\n this.coneColumn = this.createChild(Cone);\r\n this.coneColumn.shouldClone = false;\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.coneColumn;\r\n };\r\n /**\r\n * Copies all parameters from another [[ConeColumn]].\r\n *\r\n * @param source Source ConeColumn\r\n */\r\n ConeColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.coneColumn) {\r\n this.coneColumn.copyFrom(source.coneColumn);\r\n }\r\n };\r\n return ConeColumn;\r\n}(Column));\r\nexport { ConeColumn };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ConeColumn\"] = ConeColumn;\r\n//# sourceMappingURL=ConeColumn.js.map","/**\r\n * ConeSeries module\r\n * Not recommended using if you use scrollbars or your chart is zoomable in some other way.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { ConeColumn } from \"../elements/ConeColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[ConeSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ConeSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(ConeSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ConeSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ConeSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ConeSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { ConeSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a cone graph.\r\n *\r\n * @see {@link IConeSeriesEvents} for a list of available Events\r\n * @see {@link IConeSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar ConeSeries = /** @class */ (function (_super) {\r\n __extends(ConeSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ConeSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ConeSeries\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Returns an element to use for Candlestick\r\n * @ignore\r\n * @return Element.\r\n */\r\n ConeSeries.prototype.createColumnTemplate = function () {\r\n return new ConeColumn();\r\n };\r\n /**\r\n * Returns an SVG path to use as series mask.\r\n *\r\n * @return SVG path\r\n */\r\n ConeSeries.prototype.getMaskPath = function () {\r\n var dx = 0;\r\n var dy = 0;\r\n var column = this.columns.getIndex(0);\r\n if (column) {\r\n if (this.baseAxis == this.xAxis) {\r\n dy = column.coneColumn.innerWidth / 2 + 1;\r\n }\r\n else {\r\n dx = column.coneColumn.innerHeight / 2 + 1;\r\n }\r\n return $path.rectToPath({\r\n x: -dx,\r\n y: 0,\r\n width: this.xAxis.axisLength + dx,\r\n height: this.yAxis.axisLength + dy\r\n });\r\n }\r\n };\r\n /**\r\n * Validates data item's elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n ConeSeries.prototype.validateDataElementReal = function (dataItem) {\r\n _super.prototype.validateDataElementReal.call(this, dataItem);\r\n var column = dataItem.column;\r\n if (column) {\r\n var coneColumn = dataItem.column.coneColumn;\r\n coneColumn.fill = dataItem.column.fill;\r\n if (this.baseAxis == this.yAxis) {\r\n coneColumn.orientation = \"horizontal\";\r\n }\r\n else {\r\n coneColumn.orientation = \"vertical\";\r\n }\r\n }\r\n };\r\n return ConeSeries;\r\n}(ColumnSeries));\r\nexport { ConeSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ConeSeries\"] = ConeSeries;\r\nregistry.registeredClasses[\"ConeSeriesDataItem\"] = ConeSeriesDataItem;\r\n//# sourceMappingURL=ConeSeries.js.map","/**\r\n * Module that defines everything related to building Curved Columns.\r\n * It is a container which has CurvedColumn element which is a Sprite.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column } from \"./Column\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Class used to creates CurvedColumns.\r\n *\r\n * @see {@link ICurvedColumnEvents} for a list of available events\r\n * @see {@link ICurvedColumnAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar CurvedColumn = /** @class */ (function (_super) {\r\n __extends(CurvedColumn, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CurvedColumn() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CurvedColumn\";\r\n return _this;\r\n }\r\n /**\r\n * [createAssets description]\r\n *\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\n CurvedColumn.prototype.createAssets = function () {\r\n this.curvedColumn = this.createChild(Sprite);\r\n this.curvedColumn.shouldClone = false;\r\n this.setPropertyValue(\"tension\", 0.7);\r\n this.width = percent(120);\r\n this.height = percent(120);\r\n // some dirty hack so that if user access column, it won't get error\r\n this.column = this.curvedColumn;\r\n };\r\n /**\r\n * Draws the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n CurvedColumn.prototype.draw = function () {\r\n _super.prototype.draw.call(this);\r\n var w = this.realWidth;\r\n var h = this.realHeight;\r\n var x = this.realX - this.pixelX;\r\n var y = this.realY - this.pixelY;\r\n var points;\r\n // TODO can this be removed ?\r\n $utils.used(this.width);\r\n var tensionX = 1;\r\n var tensionY = 1;\r\n if (this.orientation == \"vertical\") {\r\n tensionX = this.tension;\r\n points = [{ x: 0, y: h + y }, { x: w / 2, y: y }, { x: w, y: h + y }];\r\n }\r\n else {\r\n tensionY = this.tension;\r\n h = Math.abs(h);\r\n points = [{ x: x, y: h }, { x: x + w, y: h / 2 }, { x: x, y: 0 }];\r\n }\r\n var path = $path.moveTo(points[0]) + new $smoothing.Tension(tensionX, tensionY).smooth(points);\r\n this.column.path = path;\r\n };\r\n /**\r\n * Copies all parameters from another [[CurvedColumn]].\r\n *\r\n * @param source Source CurvedColumn\r\n */\r\n CurvedColumn.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n if (this.curvedColumn) {\r\n this.curvedColumn.copyFrom(source.curvedColumn);\r\n }\r\n };\r\n Object.defineProperty(CurvedColumn.prototype, \"tension\", {\r\n /**\r\n * @return Tension (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"tension\");\r\n },\r\n /**\r\n * Horizontal tension of the curve.\r\n *\r\n * Tension defines how \"lose\" the line will be.\r\n *\r\n * 1 is the maximum tension which would result in pointy columns with\r\n * straight edges.\r\n *\r\n * The smaller the tension th wider the column will be.\r\n *\r\n * @default 0.7\r\n * @param value tension (0-1)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"tension\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CurvedColumn.prototype, \"orientation\", {\r\n /**\r\n * Orientation\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"orientation\");\r\n },\r\n /**\r\n * Orientation of the column.\r\n *\r\n * Available options: \"vertical\" (default) and \"horizontal\".\r\n *\r\n * @default \"vertical\"\r\n * @param value Orientation\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"orientation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return CurvedColumn;\r\n}(Column));\r\nexport { CurvedColumn };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CurvedColumn\"] = CurvedColumn;\r\n//# sourceMappingURL=CurvedColumn.js.map","/**\r\n * CurvedColumnSeries module.\r\n *\r\n * Not recommended using if you use scrollbars or your chart is zoomable in some other way.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { CurvedColumn } from \"../elements/CurvedColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[CurvedColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar CurvedColumnSeriesDataItem = /** @class */ (function (_super) {\r\n __extends(CurvedColumnSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CurvedColumnSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CurvedColumnSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return CurvedColumnSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { CurvedColumnSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a curved columns graph.\r\n *\r\n * @see {@link ICurvedColumnSeriesEvents} for a list of available Events\r\n * @see {@link ICurvedColumnSeriesAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nvar CurvedColumnSeries = /** @class */ (function (_super) {\r\n __extends(CurvedColumnSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CurvedColumnSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CurvedColumnSeries\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Returns an element to use for the curved column.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Element.\r\n */\r\n CurvedColumnSeries.prototype.createColumnTemplate = function () {\r\n return new CurvedColumn();\r\n };\r\n /**\r\n * Validates data item's elements.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n CurvedColumnSeries.prototype.validateDataElementReal = function (dataItem) {\r\n _super.prototype.validateDataElementReal.call(this, dataItem);\r\n var column = dataItem.column;\r\n column = dataItem.column;\r\n if (column) {\r\n var curvedColumn = dataItem.column.curvedColumn;\r\n curvedColumn.fill = dataItem.column.fill;\r\n if (this.baseAxis == this.yAxis) {\r\n column.orientation = \"horizontal\";\r\n }\r\n else {\r\n column.orientation = \"vertical\";\r\n }\r\n }\r\n };\r\n return CurvedColumnSeries;\r\n}(ColumnSeries));\r\nexport { CurvedColumnSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CurvedColumnSeries\"] = CurvedColumnSeries;\r\nregistry.registeredClasses[\"CurvedColumnSeriesDataItem\"] = CurvedColumnSeriesDataItem;\r\n//# sourceMappingURL=CurvedColumnSeries.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { registry } from \"../../core/Registry\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar CircleBullet = /** @class */ (function (_super) {\r\n __extends(CircleBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function CircleBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"CircleBullet\";\r\n var circle = _this.createChild(Circle);\r\n circle.shouldClone = false;\r\n circle.radius = 5;\r\n circle.isMeasured = false;\r\n _this.circle = circle;\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[CircleBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n CircleBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.circle.copyFrom(source.circle);\r\n };\r\n return CircleBullet;\r\n}(Bullet));\r\nexport { CircleBullet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CircleBullet\"] = CircleBullet;\r\n//# sourceMappingURL=CircleBullet.js.map","/**\r\n * Bullet module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet } from \"./Bullet\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nvar ErrorBullet = /** @class */ (function (_super) {\r\n __extends(ErrorBullet, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ErrorBullet() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ErrorBullet\";\r\n _this.errorLine = _this.createChild(Sprite);\r\n _this.errorLine.shouldClone = false;\r\n _this.width = 20;\r\n _this.height = 20;\r\n _this.strokeOpacity = 1;\r\n _this.isDynamic = true;\r\n return _this;\r\n }\r\n ErrorBullet.prototype.validatePosition = function () {\r\n _super.prototype.validatePosition.call(this);\r\n var w = this.pixelWidth / 2;\r\n var h = this.pixelHeight / 2;\r\n this.errorLine.path = $path.moveTo({ x: -w, y: -h }) + $path.lineTo({ x: w, y: -h }) + $path.moveTo({ x: 0, y: -h }) + $path.lineTo({ x: 0, y: h }) + $path.moveTo({ x: -w, y: h }) + $path.lineTo({ x: w, y: h });\r\n };\r\n /**\r\n * Copies all proprities and related stuff from another instance of\r\n * [[ErrorBullet]].\r\n *\r\n * @param source Source element\r\n */\r\n ErrorBullet.prototype.copyFrom = function (source) {\r\n _super.prototype.copyFrom.call(this, source);\r\n this.errorLine.copyFrom(source.errorLine);\r\n };\r\n return ErrorBullet;\r\n}(Bullet));\r\nexport { ErrorBullet };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ErrorBullet\"] = ErrorBullet;\r\n//# sourceMappingURL=ErrorBullet.js.map","/**\r\n * Functionality for drawing simple NavigationBar.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../../core/Component\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { TextLink } from \"../../core/elements/TextLink\";\r\nimport { Triangle } from \"../../core/elements/Triangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[NavigationBar]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar NavigationBarDataItem = /** @class */ (function (_super) {\r\n __extends(NavigationBarDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function NavigationBarDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"NavigationBarDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(NavigationBarDataItem.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.properties[\"name\"];\r\n },\r\n /**\r\n * Name of the navigation bar item.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setProperty(\"name\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return NavigationBarDataItem;\r\n}(DataItem));\r\nexport { NavigationBarDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * NavigationBar class can be used to create a multi-level breadcrumb-style\r\n * navigation control.\r\n *\r\n * @see {@link INavigationBarEvents} for a list of available events\r\n * @see {@link INavigationBarAdapters} for a list of available Adapters\r\n * @todo Implement better\r\n * @important\r\n */\r\nvar NavigationBar = /** @class */ (function (_super) {\r\n __extends(NavigationBar, _super);\r\n /**\r\n * Constructor\r\n */\r\n function NavigationBar() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"NavigationBar\";\r\n var interfaceColors = new InterfaceColorSet();\r\n var textLink = new TextLink();\r\n textLink.valign = \"middle\";\r\n textLink.paddingTop = 8;\r\n textLink.paddingBottom = 8;\r\n _this.paddingBottom = 2;\r\n _this.links = new ListTemplate(textLink);\r\n _this._disposers.push(new ListDisposer(_this.links));\r\n _this._disposers.push(textLink);\r\n _this._linksIterator = new $iter.ListIterator(_this.links, function () { return _this.links.create(); });\r\n _this._linksIterator.createNewItems = true;\r\n var triangle = new Triangle();\r\n triangle.direction = \"right\";\r\n triangle.width = 8;\r\n triangle.height = 12;\r\n triangle.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n triangle.fillOpacity = 0.5;\r\n triangle.valign = \"middle\";\r\n triangle.marginLeft = 10;\r\n triangle.marginRight = 10;\r\n _this.separators = new ListTemplate(triangle);\r\n _this._disposers.push(new ListDisposer(_this.separators));\r\n _this._disposers.push(triangle);\r\n var activeLink = new TextLink();\r\n _this.activeLink = activeLink;\r\n activeLink.copyFrom(textLink);\r\n activeLink.valign = \"middle\";\r\n activeLink.fontWeight = \"bold\";\r\n _this.width = percent(100);\r\n _this.layout = \"grid\";\r\n _this.dataFields.name = \"name\";\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Completely redraws the navigation bar.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n NavigationBar.prototype.validateDataElements = function () {\r\n this.removeChildren();\r\n this._linksIterator.reset();\r\n _super.prototype.validateDataElements.call(this);\r\n //@todo: dispose\r\n };\r\n /**\r\n * Creates a visual element for a data item (nav item).\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n NavigationBar.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n var textLink;\r\n if (dataItem.index < this.dataItems.length - 1) {\r\n textLink = this._linksIterator.getLast();\r\n textLink.parent = this;\r\n var separator = this.separators.create();\r\n separator.parent = this;\r\n separator.valign = \"middle\";\r\n }\r\n else {\r\n textLink = this.activeLink;\r\n textLink.events.copyFrom(this.links.template.events);\r\n textLink.hide(0);\r\n textLink.show();\r\n textLink.parent = this;\r\n }\r\n textLink.dataItem = dataItem;\r\n textLink.text = dataItem.name;\r\n textLink.validate();\r\n };\r\n return NavigationBar;\r\n}(Component));\r\nexport { NavigationBar };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"NavigationBar\"] = NavigationBar;\r\nregistry.registeredClasses[\"NavigationBarDataItem\"] = NavigationBarDataItem;\r\n//# sourceMappingURL=NavigationBar.js.map","/**\r\n * Cursor module\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container } from \"../../core/Container\";\r\nimport { getInteraction } from \"../../core/interaction/Interaction\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $dom from \"../../core/utils/DOM\";\r\nimport { system } from \"../../core/System\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Main Cursor class with common cursor functionality.\r\n *\r\n * Chart-specific cursors must extend this class.\r\n *\r\n * @see {@link ICursorEvents} for a list of available events\r\n * @see {@link ICursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n * @todo Should we allow changing `_generalBehavior`?\r\n */\r\nvar Cursor = /** @class */ (function (_super) {\r\n __extends(Cursor, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Cursor() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Current cursor position during selection.\r\n *\r\n * @todo Better description\r\n */\r\n _this.point = { x: 0, y: 0 };\r\n /**\r\n * Specifies the rules when cursor needs to be moved or hidden.\r\n */\r\n _this._stick = \"none\";\r\n _this.className = \"Cursor\";\r\n // Set defaults\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.shouldClone = false;\r\n _this.hide(0);\r\n _this.trackable = true;\r\n _this.clickable = true;\r\n _this.isMeasured = false;\r\n // Add events on body to trigger down and up events (to start zooming or\r\n // selection)\r\n var interaction = getInteraction();\r\n _this._disposers.push(interaction.body.events.on(\"down\", _this.handleCursorDown, _this));\r\n _this._disposers.push(interaction.body.events.on(\"up\", _this.handleCursorUp, _this));\r\n _this._disposers.push(interaction.body.events.on(\"track\", _this.handleCursorMove, _this));\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Handle pointer movement in document and update cursor position as needed.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Event\r\n */\r\n Cursor.prototype.handleCursorMove = function (event) {\r\n if (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch)) {\r\n return;\r\n }\r\n if (((this._generalBehavior != \"zoom\" && this._generalBehavior != \"pan\") || !this.downPoint) && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n // We want to let zoom/pan continue even if cursor is outside chart area\r\n if (!this.isHidden || !this.isHiding) {\r\n this.hide();\r\n }\r\n return;\r\n }\r\n var local = $utils.documentPointToSprite(event.pointer.point, this);\r\n if (this._stick == \"hard\" && this._stickPoint) {\r\n local = this._stickPoint;\r\n }\r\n if (this._stick == \"soft\" && this._stickPoint) {\r\n if (!this.fitsToBounds(local)) {\r\n local = this._stickPoint;\r\n }\r\n }\r\n if (this._adapterO) {\r\n this._adapterO.apply(\"cursorPoint\", local);\r\n }\r\n this.triggerMove(local);\r\n return local;\r\n };\r\n /**\r\n * Hides actual SVG elements and handles hiding animations.\r\n *\r\n * @param duration Fade out duration (ms)\r\n * @return Fade out duration (ms)\r\n * @ignore\r\n */\r\n Cursor.prototype.hideReal = function (duration) {\r\n if ((this._stick == \"hard\" || this._stick == \"soft\") && this._stickPoint) {\r\n return;\r\n }\r\n return _super.prototype.hideReal.call(this, duration);\r\n };\r\n /**\r\n * Places the cursor at specific point.\r\n *\r\n * The second parameter has following options:\r\n *\r\n * `\"none\"` - placed cursor will only be there until mouse/touch moves, then\r\n * it either moves to a new place (if pointer over plot area) or is hidden.\r\n *\r\n * `\"soft\"` - cursor will stay in the place if mouse/touch is happening\r\n * outside chart, but will move to a new place whe plot area is hovered or\r\n * touched.\r\n *\r\n * `\"hard\"` - cursor will stay in place no matter what, until it is moved by\r\n * another `triggerMove()` call.\r\n *\r\n * The third parameter - `force` (since `4.9.5`) - if set to `true` will\r\n * make cursor execute all of the actions associated with cursor move,\r\n * including line redraws, tooltip updates, etc. Useful when underlying\r\n * chart data is dynamically being updated.\r\n *\r\n * @param point Point to place cursor at\r\n * @param stick Level of cursor stickiness to the place\r\n * @param force Force cursor move\r\n */\r\n Cursor.prototype.triggerMove = function (point, stick, force) {\r\n point.x = $math.round(point.x, 1);\r\n point.y = $math.round(point.y, 1);\r\n if (stick) {\r\n this._stick = stick;\r\n }\r\n if (stick == \"hard\" || stick == \"soft\") {\r\n this._stickPoint = point;\r\n }\r\n this.triggerMoveReal(point, force);\r\n };\r\n /**\r\n * Places the cursor at specific point.\r\n *\r\n * @param point Point to place cursor at\r\n */\r\n Cursor.prototype.triggerMoveReal = function (point, force) {\r\n if (this.point.x != point.x || this.point.y != point.y || force) {\r\n this.point = point;\r\n this.invalidatePosition();\r\n // hide cursor if it's out of bounds\r\n if (this.fitsToBounds(point)) {\r\n this.show(0);\r\n }\r\n else {\r\n // unless we are selecting (mouse is down)\r\n if (!this.downPoint) {\r\n this.hide(0);\r\n }\r\n }\r\n if (this.visible) {\r\n this.getPositions();\r\n this.dispatch(\"cursorpositionchanged\"); // not good to dispatch later (check step count example)\r\n }\r\n }\r\n };\r\n /**\r\n * Simulates pressing down (click/touch) action by a cursor.\r\n *\r\n * @param point Point of action\r\n */\r\n Cursor.prototype.triggerDown = function (point) {\r\n this.triggerDownReal(point);\r\n };\r\n /**\r\n * Simulates pressing down (click/touch) action by a cursor.\r\n *\r\n * @param point Point of action\r\n */\r\n Cursor.prototype.triggerDownReal = function (point) {\r\n switch (this._generalBehavior) {\r\n case \"zoom\":\r\n this.dispatchImmediately(\"zoomstarted\");\r\n break;\r\n case \"select\":\r\n this.dispatchImmediately(\"selectstarted\");\r\n break;\r\n case \"pan\":\r\n this.dispatchImmediately(\"panstarted\");\r\n getInteraction().setGlobalStyle(MouseCursorStyle.grabbing);\r\n break;\r\n }\r\n };\r\n /**\r\n * Simulates the action of release of the mouse down / touch.\r\n *\r\n * @param point Point of action\r\n */\r\n Cursor.prototype.triggerUp = function (point) {\r\n this.triggerUpReal(point);\r\n };\r\n /**\r\n * Simulates the action of release of the mouse down / touch.\r\n *\r\n * @param point Point of action\r\n */\r\n Cursor.prototype.triggerUpReal = function (point) {\r\n system.requestFrame();\r\n this.updatePoint(this.upPoint);\r\n var interaction = getInteraction();\r\n if ($math.getDistance(this._upPointOrig, this._downPointOrig) > interaction.getHitOption(this.interactions, \"hitTolerance\")) {\r\n switch (this._generalBehavior) {\r\n case \"zoom\":\r\n this.dispatch(\"zoomended\");\r\n break;\r\n case \"select\":\r\n this.dispatch(\"selectended\");\r\n break;\r\n case \"pan\":\r\n this.dispatch(\"panended\");\r\n interaction.setGlobalStyle(MouseCursorStyle.default);\r\n break;\r\n }\r\n this.downPoint = undefined;\r\n this.updateSelection();\r\n }\r\n /*\r\n else {\r\n \r\n if(this._generalBehavior == \"select\"){\r\n this.dispatchImmediately(\"selectended\");\r\n }\r\n this.dispatchImmediately(\"behaviorcanceled\");\r\n interaction.setGlobalStyle(MouseCursorStyle.default);\r\n this.downPoint = undefined;\r\n }*/\r\n };\r\n /**\r\n * Updates selection dimensions on size change.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Cursor.prototype.updateSelection = function () {\r\n };\r\n /**\r\n * Updates cursors current positions.\r\n */\r\n Cursor.prototype.getPositions = function () {\r\n // positions are used by axes or series\r\n this.xPosition = this.point.x / this.innerWidth;\r\n this.yPosition = 1 - this.point.y / this.innerHeight;\r\n };\r\n /**\r\n * Handles pointer down event so we can start zoom or selection.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Original event\r\n */\r\n Cursor.prototype.handleCursorDown = function (event) {\r\n if (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch) || !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n return;\r\n }\r\n // Initiate blur so that whatever focused element on the page is unselected\r\n $dom.blur();\r\n // Get local point\r\n var local = $utils.documentPointToSprite(event.pointer.point, this);\r\n if (this._stick == \"hard\" && this._stickPoint) {\r\n local = this._stickPoint;\r\n }\r\n if (this._adapterO) {\r\n this._adapterO.apply(\"cursorPoint\", local);\r\n }\r\n if (!this.fitsToBounds(local)) {\r\n return;\r\n }\r\n this._downPointOrig = { x: local.x, y: local.y };\r\n // We need to cancel the event to prevent gestures on touch devices\r\n if (event.event.cancelable && this.shouldPreventGestures(event.touch) && this.fitsToBounds(local)) {\r\n event.event.preventDefault();\r\n }\r\n // Make this happen\r\n this.triggerMove(local);\r\n this.triggerDown(local);\r\n };\r\n /**\r\n * Determines whether Cursor should prevent default action on move.\r\n *\r\n * Child classes should override this as necessary.\r\n *\r\n * @return Prevent default?\r\n */\r\n Cursor.prototype.shouldPreventGestures = function (touch) {\r\n return true;\r\n };\r\n /**\r\n * Updates the coordinates of where pointer down event occurred\r\n * (was pressed).\r\n */\r\n Cursor.prototype.updatePoint = function (point) {\r\n };\r\n /**\r\n * Handles pointer up event - finishes zoom or selection action.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Original event\r\n */\r\n Cursor.prototype.handleCursorUp = function (event) {\r\n if (!this.interactionsEnabled) {\r\n return;\r\n }\r\n if (!this.downPoint && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n return;\r\n }\r\n var local = $utils.documentPointToSprite(event.pointer.point, this);\r\n if (this._adapterO) {\r\n this._adapterO.apply(\"cursorPoint\", local);\r\n }\r\n if (!this.downPoint || !this.fitsToBounds(this.downPoint)) {\r\n return;\r\n }\r\n if (this._stick == \"hard\" && this._stickPoint) {\r\n local = this._stickPoint;\r\n }\r\n this._upPointOrig = { x: local.x, y: local.y };\r\n this.triggerMove(local);\r\n this.triggerUp(local);\r\n };\r\n Object.defineProperty(Cursor.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart;\r\n },\r\n /**\r\n * A reference to a [[Chart]] the cursor belongs to.\r\n *\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart = value;\r\n if ($type.hasValue(this._chart.plotContainer)) {\r\n getInteraction().lockElement(this._chart.plotContainer.interactions);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Cursor;\r\n}(Container));\r\nexport { Cursor };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Cursor\"] = Cursor;\r\n//# sourceMappingURL=Cursor.js.map","/**\r\n * Cursor for XY chart\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Cursor } from \"./Cursor\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { getInteraction } from \"../../core/interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A cursor used on [[XYChart]].\r\n *\r\n * @see {@link IXYCursorEvents} for a list of available events\r\n * @see {@link IXYCursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n */\r\nvar XYCursor = /** @class */ (function (_super) {\r\n __extends(XYCursor, _super);\r\n /**\r\n * Constructor\r\n */\r\n function XYCursor() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * Vertical cursor line element.\r\n */\r\n _this._lineX = new MutableValueDisposer();\r\n /**\r\n * Horizontal cursor line element.\r\n */\r\n _this._lineY = new MutableValueDisposer();\r\n /**\r\n * Horizontal [[Axis]].\r\n */\r\n _this._xAxis = new MutableValueDisposer();\r\n /**\r\n * Vertical [[Axis]].\r\n */\r\n _this._yAxis = new MutableValueDisposer();\r\n _this._snapToDisposers = [];\r\n _this.className = \"XYCursor\";\r\n // Defaults\r\n _this.behavior = \"zoomX\";\r\n _this.maxPanOut = 0.1;\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.snapOnPan = true;\r\n // Create selection element\r\n var selection = _this.createChild(Sprite);\r\n selection.shouldClone = false;\r\n selection.fillOpacity = 0.2;\r\n selection.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n selection.isMeasured = false;\r\n selection.visible = false;\r\n selection.interactionsEnabled = false;\r\n _this.selection = selection;\r\n _this._disposers.push(_this.selection);\r\n // Create cursor's vertical line\r\n var lineX = _this.createChild(Sprite);\r\n lineX.shouldClone = false;\r\n lineX.stroke = interfaceColors.getFor(\"grid\");\r\n lineX.fill = color();\r\n lineX.strokeDasharray = \"3,3\";\r\n lineX.isMeasured = false;\r\n lineX.strokeOpacity = 0.4;\r\n lineX.interactionsEnabled = false;\r\n lineX.y = 0; // important\r\n _this.lineX = lineX;\r\n _this._disposers.push(_this.lineX);\r\n // Create cursor's horizontal line\r\n var lineY = _this.createChild(Sprite);\r\n lineY.shouldClone = false;\r\n lineY.stroke = interfaceColors.getFor(\"grid\");\r\n lineY.fill = color();\r\n lineY.strokeDasharray = \"3,3\";\r\n lineY.isMeasured = false;\r\n lineY.strokeOpacity = 0.4;\r\n lineY.interactionsEnabled = false;\r\n lineY.x = 0; // important\r\n _this.lineY = lineY;\r\n _this._disposers.push(_this.lineY);\r\n // Add handler for size changes\r\n _this.events.on(\"sizechanged\", _this.updateSize, _this, false);\r\n _this._disposers.push(_this._lineX);\r\n _this._disposers.push(_this._lineY);\r\n _this._disposers.push(_this._xAxis);\r\n _this._disposers.push(_this._yAxis);\r\n _this.mask = _this;\r\n _this.hideSeriesTooltipsOnSelection = true;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Updates cursor element dimensions on size change.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYCursor.prototype.updateSize = function () {\r\n if (this.lineX) {\r\n this.lineX.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.innerHeight });\r\n }\r\n if (this.lineY) {\r\n this.lineY.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.innerWidth, y: 0 });\r\n }\r\n };\r\n /**\r\n * Updates selection dimensions on size change.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYCursor.prototype.updateSelection = function () {\r\n if (this._usesSelection) {\r\n var downPoint = this.downPoint;\r\n var behavior = this.behavior;\r\n if (downPoint) {\r\n var point = this.point;\r\n if (this.lineX) {\r\n point.x = this.lineX.pixelX;\r\n }\r\n if (this.lineY) {\r\n point.y = this.lineY.pixelY;\r\n }\r\n var selection = this.selection;\r\n var x = Math.min(point.x, downPoint.x);\r\n var y = Math.min(point.y, downPoint.y);\r\n var w = $math.round(Math.abs(downPoint.x - point.x), this._positionPrecision);\r\n var h = $math.round(Math.abs(downPoint.y - point.y), this._positionPrecision);\r\n switch (behavior) {\r\n case \"zoomX\":\r\n y = 0;\r\n h = this.pixelHeight;\r\n break;\r\n case \"zoomY\":\r\n x = 0;\r\n w = this.pixelWidth;\r\n break;\r\n case \"selectX\":\r\n y = 0;\r\n h = this.pixelHeight;\r\n break;\r\n case \"selectY\":\r\n x = 0;\r\n w = this.pixelWidth;\r\n break;\r\n }\r\n selection.x = x;\r\n selection.y = y;\r\n selection.path = $path.rectangle(w, h);\r\n selection.validatePosition(); // otherwise Edge shoes some incorrect size rectangle\r\n }\r\n else {\r\n if (this._generalBehavior != \"select\") {\r\n this.selection.hide();\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYCursor.prototype.fixPoint = function (point) {\r\n point.x = Math.max(0, point.x);\r\n point.y = Math.max(0, point.y);\r\n point.x = Math.min(this.pixelWidth, point.x);\r\n point.y = Math.min(this.pixelHeight, point.y);\r\n return point;\r\n };\r\n /**\r\n * Places the cursor at specific point.\r\n *\r\n * @param point Point to place cursor at\r\n */\r\n XYCursor.prototype.triggerMoveReal = function (point, force) {\r\n _super.prototype.triggerMoveReal.call(this, point, force);\r\n var snapToSeries = this.snapToSeries;\r\n if ((snapToSeries && !this.downPoint)) {\r\n if (snapToSeries instanceof XYSeries) {\r\n if (snapToSeries.isHidden) {\r\n this.updateLinePositions(point);\r\n }\r\n }\r\n else {\r\n var allHidden_1 = true;\r\n $array.each(snapToSeries, function (s) {\r\n if (!s.isHidden) {\r\n allHidden_1 = false;\r\n }\r\n });\r\n if (allHidden_1) {\r\n this.updateLinePositions(point);\r\n }\r\n }\r\n }\r\n else {\r\n this.updateLinePositions(point);\r\n }\r\n if (this.downPoint && $math.getDistance(this.downPoint, point) > 3) {\r\n if (this._generalBehavior == \"pan\") {\r\n this.getPanningRanges();\r\n this.dispatch(\"panning\");\r\n }\r\n }\r\n };\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n XYCursor.prototype.updateLinePositions = function (point) {\r\n point = this.fixPoint(this.point);\r\n if (this.lineX && this.lineX.visible && !this.xAxis) {\r\n this.lineX.x = point.x;\r\n }\r\n if (this.lineY && this.lineY.visible && !this.yAxis) {\r\n this.lineY.y = point.y;\r\n }\r\n this.updateSelection();\r\n };\r\n XYCursor.prototype.triggerDownReal = function (point) {\r\n if (this.visible && !this.isHiding) {\r\n if (this._generalBehavior == \"select\") {\r\n this.selection.parent = this.parent;\r\n }\r\n if (this.fitsToBounds(point)) {\r\n this.downPoint = { x: point.x, y: point.y };\r\n this.updatePoint(point);\r\n //this.updateLinePositions(point); // otherwise lines won't be in correct position and touch won't work fine\r\n this.point.x = this.downPoint.x;\r\n this.point.y = this.downPoint.y;\r\n var selection = this.selection;\r\n var selectionX = this.downPoint.x;\r\n var selectionY = this.downPoint.y;\r\n if (this._usesSelection) {\r\n selection.x = selectionX;\r\n selection.y = selectionY;\r\n selection.path = \"\";\r\n selection.show();\r\n }\r\n _super.prototype.triggerDownReal.call(this, point);\r\n }\r\n else {\r\n this.downPoint = undefined;\r\n }\r\n }\r\n else {\r\n this.downPoint = undefined;\r\n }\r\n };\r\n /**\r\n * Updates the coordinates of where pointer down event occurred\r\n * (was pressed).\r\n */\r\n XYCursor.prototype.updatePoint = function (point) {\r\n if (this.lineX) {\r\n point.x = this.lineX.pixelX;\r\n }\r\n if (this.lineY) {\r\n point.y = this.lineY.pixelY;\r\n }\r\n };\r\n /**\r\n * Handle action when cursor is released, which should perform an operation\r\n * based on its `behavior`, like zoom.\r\n *\r\n * @param point Release point\r\n */\r\n XYCursor.prototype.triggerUpReal = function (point) {\r\n if (this.hasMoved()) {\r\n if (this.downPoint) {\r\n this.upPoint = point;\r\n this.updatePoint(this.upPoint);\r\n if (this._generalBehavior != \"pan\") {\r\n this.getRanges();\r\n }\r\n if (this._generalBehavior != \"select\") {\r\n this.selection.hide();\r\n }\r\n _super.prototype.triggerUpReal.call(this, point);\r\n }\r\n }\r\n else {\r\n if (this._generalBehavior != \"select\") {\r\n this.selection.hide(0);\r\n }\r\n else {\r\n this.xRange = undefined;\r\n this.yRange = undefined;\r\n this.dispatchImmediately(\"selectended\");\r\n }\r\n // reset cursor style, just in case\r\n if (this._generalBehavior == \"pan\") {\r\n var interaction = getInteraction();\r\n interaction.setGlobalStyle(MouseCursorStyle.default);\r\n }\r\n this.dispatchImmediately(\"behaviorcanceled\");\r\n }\r\n this.downPoint = undefined;\r\n this.dispatch(\"cursorpositionchanged\");\r\n };\r\n /**\r\n * Calculates if the cursor has moved enough based on its `behavior`.\r\n *\r\n * @return Moved?\r\n */\r\n XYCursor.prototype.hasMoved = function () {\r\n var distance;\r\n if (this.behavior == \"zoomX\" || this.behavior == \"panX\") {\r\n distance = $math.getHorizontalDistance(this._upPointOrig, this._downPointOrig);\r\n }\r\n else if (this.behavior == \"zoomY\" || this.behavior == \"panY\") {\r\n distance = $math.getVerticalDistance(this._upPointOrig, this._downPointOrig);\r\n }\r\n else {\r\n distance = $math.getDistance(this._upPointOrig, this._downPointOrig);\r\n }\r\n return distance > getInteraction().getHitOption(this.interactions, \"hitTolerance\");\r\n };\r\n /**\r\n * [getRanges description]\r\n *\r\n * @todo Description\r\n */\r\n XYCursor.prototype.getPanningRanges = function () {\r\n var startX = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n var startY = 1 - $math.round(this.downPoint.y / this.innerHeight, 5);\r\n var currentX = $math.round(this.point.x / this.innerWidth, 5);\r\n var currentY = 1 - $math.round(this.point.y / this.innerHeight, 5);\r\n var deltaX = startX - currentX;\r\n var deltaY = startY - currentY;\r\n this.xRange = { start: deltaX, end: 1 + deltaX };\r\n this.yRange = { start: deltaY, end: 1 + deltaY };\r\n if (this.behavior == \"panX\") {\r\n this.yRange.start = 0;\r\n this.yRange.end = 1;\r\n }\r\n if (this.behavior == \"panY\") {\r\n this.xRange.start = 0;\r\n this.xRange.end = 1;\r\n }\r\n };\r\n /**\r\n * [getRanges description]\r\n *\r\n * @todo Description\r\n */\r\n XYCursor.prototype.getRanges = function () {\r\n if (this.lineX) {\r\n this.upPoint.x = this.lineX.pixelX;\r\n }\r\n if (this.lineY) {\r\n this.upPoint.y = this.lineY.pixelY;\r\n }\r\n // @todo Is this needed?\r\n $utils.used(this.selection);\r\n var startX = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n var endX = $math.round((this.upPoint.x) / this.innerWidth, 5);\r\n var startY = 1 - $math.round(this.downPoint.y / this.innerHeight, 5);\r\n var endY = 1 - $math.round((this.upPoint.y) / this.innerHeight, 5);\r\n this.xRange = { start: $math.min(startX, endX), end: $math.max(startX, endX) };\r\n this.yRange = { start: $math.min(startY, endY), end: $math.max(startY, endY) };\r\n };\r\n Object.defineProperty(XYCursor.prototype, \"behavior\", {\r\n /**\r\n * Behavior\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"behavior\");\r\n },\r\n /**\r\n * Cursor's behavior when it's moved with pointer down:\r\n *\r\n * * `\"zoomX\"` - zooms horizontally.\r\n * * `\"zoomY\"` - zooms vertically.\r\n * * `\"zoomXY\"` - zooms both horizontally and vertically.\r\n * * `\"selectX\"` - selects a range horizontally.\r\n * * `\"selectY\"` - selects a range vertically.\r\n * * `\"selectXY\"` - selects a range both horizontally and vertically.\r\n * * `\"panX\"` - moves (pans) current selection horizontally.\r\n * * `\"panY\"` - moves (pans) current selection vertically.\r\n * * `\"panXY\"` - moves (pans) current selection both horizontally and vertically.\r\n * * `\"none\"` - does nothing with pointer down.\r\n *\r\n * E.g. \"zoomXY\" will mean that pressing a mouse (or touching) over plot area\r\n * and dragging it will start zooming the chart.\r\n *\r\n * NOTE: `\"zoomXY\"` acts differently when used on a `DateAxis`.\r\n * See [this note](https://www.amcharts.com/docs/v4/concepts/chart-cursor/#zoomXY_behavior_and_DateAxis).\r\n *\r\n * @param value Bheavior\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"behavior\", value, true);\r\n this._usesSelection = false;\r\n if (value.indexOf(\"zoom\") != -1) {\r\n this._generalBehavior = \"zoom\";\r\n this._usesSelection = true;\r\n }\r\n if (value.indexOf(\"select\") != -1) {\r\n this._generalBehavior = \"select\";\r\n this._usesSelection = true;\r\n }\r\n if (value.indexOf(\"pan\") != -1) {\r\n this._generalBehavior = \"pan\";\r\n this._usesSelection = false;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Determines whether Cursor should prevent default action on move.\r\n *\r\n * If cursor's behavior is \"none\", it should not obstruct the page scrolling.\r\n *\r\n * @return Prevent default?\r\n */\r\n XYCursor.prototype.shouldPreventGestures = function (touch) {\r\n return (!this.interactions.isTouchProtected || !touch) && this.behavior != \"none\";\r\n };\r\n Object.defineProperty(XYCursor.prototype, \"fullWidthLineX\", {\r\n /**\r\n * @return Full width?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fullWidthLineX\");\r\n },\r\n /**\r\n * Cursor's horizontal line is expanded to take full width of the related\r\n * Axis' cell/category.\r\n *\r\n * NOTE: this setting will work properly if `xAxis` is set and only in case\r\n * `xAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n *\r\n * @param value Full width?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fullWidthLineX\", value);\r\n if (!value) {\r\n this.updateSize();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"fullWidthLineY\", {\r\n /**\r\n * @return Full width?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"fullWidthLineY\");\r\n },\r\n /**\r\n * Cursor's vertical line is expanded to take full width of the related\r\n * Axis' cell/category.\r\n *\r\n * NOTE: this setting will work properly if `yAxis` is set and only in case\r\n * `yAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n *\r\n * @param value Full width?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"fullWidthLineY\", value);\r\n if (!value) {\r\n this.updateSize();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"hideSeriesTooltipsOnSelection\", {\r\n /**\r\n * @return hide tooltip?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hideSeriesTooltipsOnSelection\");\r\n },\r\n /**\r\n * If set to `true` this will hide series tooltips when selecting with cursor.\r\n *\r\n * @since 4.5.15\r\n * @param value hide tooltips?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"hideSeriesTooltipsOnSelection\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"maxTooltipDistance\", {\r\n /**\r\n * @return Distance\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxTooltipDistance\");\r\n },\r\n /**\r\n * If set to a numeric value, cursor will display closest series' tooltips\r\n * plus tooltips from series that are closer to than `maxTooltipDistance` to\r\n * it.\r\n *\r\n * Set it to `-1` to always force one tooltip, even if there are multiple\r\n * data items in exactly same place.\r\n *\r\n * @since 4.7.18\r\n * @param value Distance\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxTooltipDistance\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"maxPanOut\", {\r\n /**\r\n * @return Full width?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"maxPanOut\");\r\n },\r\n /**\r\n * If cursor behavior is panX or panY, we allow to pan plot out of it's max bounds for a better user experience.\r\n * This setting specifies relative value by how much we can pan out the plot\r\n *\r\n * @param value\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"maxPanOut\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"xAxis\", {\r\n /**\r\n * @return X axis\r\n */\r\n get: function () {\r\n return this._xAxis.get();\r\n },\r\n /**\r\n * A reference to X [[Axis]].\r\n *\r\n * An XY cursor can live without `xAxis` set. You set xAxis for cursor when\r\n * you have axis tooltip enabled and you want cursor line to be at the same\r\n * position as tooltip.\r\n *\r\n * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n * [[ValueAxis]].\r\n *\r\n * @todo Description (review)\r\n * @param axis X axis\r\n */\r\n set: function (axis) {\r\n var _this = this;\r\n if (this._xAxis.get() != axis) {\r\n this._xAxis.set(axis, new MultiDisposer([\r\n axis.tooltip.events.on(\"positionchanged\", this.handleXTooltipPosition, this, false),\r\n axis.events.on(\"rangechangestarted\", function (event) {\r\n _this.hide(0);\r\n _this.preventShow = true;\r\n }, undefined, false),\r\n axis.events.on(\"rangechangeended\", function (event) {\r\n _this.preventShow = false;\r\n _this.hide(0);\r\n _this.dispatch(\"cursorpositionchanged\");\r\n }, undefined, false)\r\n ]));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"yAxis\", {\r\n /**\r\n * @return Y Axis\r\n */\r\n get: function () {\r\n return this._yAxis.get();\r\n },\r\n /**\r\n * A reference to Y [[Axis]].\r\n *\r\n * An XY cursor can live without `yAxis` set. You set xAxis for cursor when\r\n * you have axis tooltip enabled and you want cursor line to be at the same\r\n * position as tooltip.\r\n *\r\n * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n * [[ValueAxis]].\r\n *\r\n * @todo Description (review)\r\n * @param axis Y axis\r\n */\r\n set: function (axis) {\r\n var _this = this;\r\n if (this._yAxis.get() != axis) {\r\n this._yAxis.set(axis, new MultiDisposer([\r\n axis.tooltip.events.on(\"positionchanged\", this.handleYTooltipPosition, this, false),\r\n axis.events.on(\"rangechangestarted\", function (event) {\r\n _this.hide(0);\r\n _this.__disabled = true;\r\n }, undefined, false),\r\n axis.events.on(\"rangechangeended\", function (event) {\r\n _this.__disabled = false;\r\n _this.hide(0);\r\n _this.dispatch(\"cursorpositionchanged\");\r\n }, undefined, false)\r\n ]));\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates Cursor's position when axis tooltip changes position.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Original Axis event\r\n */\r\n XYCursor.prototype.handleXTooltipPosition = function (event) {\r\n var tooltip = this.xAxis.tooltip;\r\n var point = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n var x = point.x;\r\n point.y = 1;\r\n if (this.lineX) {\r\n this.lineX.x = x;\r\n if (!this.fitsToBounds(point)) {\r\n this.hide();\r\n }\r\n }\r\n if (this.xAxis && this.fullWidthLineX) {\r\n var startPoint = this.xAxis.currentItemStartPoint;\r\n var endPoint = this.xAxis.currentItemEndPoint;\r\n if (startPoint && endPoint) {\r\n this.lineX.x = x;\r\n var width = endPoint.x - startPoint.x;\r\n this.lineX.path = $path.rectangle(width, this.innerHeight, -width / 2);\r\n }\r\n }\r\n };\r\n /**\r\n * Updates Cursor's position when Y axis changes position or scale.\r\n *\r\n * @ignore Exclude from docs\r\n * @param event Original Axis event\r\n */\r\n XYCursor.prototype.handleYTooltipPosition = function (event) {\r\n var tooltip = this.yAxis.tooltip;\r\n var point = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n var y = point.y;\r\n point.x = 1;\r\n if (this.lineY) {\r\n this.lineY.y = y;\r\n if (!this.fitsToBounds(point)) {\r\n this.hide();\r\n }\r\n }\r\n if (this.yAxis && this.fullWidthLineY) {\r\n var startPoint = this.yAxis.currentItemStartPoint;\r\n var endPoint = this.yAxis.currentItemEndPoint;\r\n if (startPoint && endPoint) {\r\n this.lineY.y = y;\r\n var height = endPoint.y - startPoint.y;\r\n this.lineY.path = $path.rectangle(this.innerWidth, height, 0, -height / 2);\r\n }\r\n }\r\n };\r\n Object.defineProperty(XYCursor.prototype, \"lineX\", {\r\n /**\r\n * @return Line element\r\n */\r\n get: function () {\r\n return this._lineX.get();\r\n },\r\n /**\r\n * A Line element to use for X axis.\r\n *\r\n * @param lineX Line\r\n */\r\n set: function (lineX) {\r\n if (lineX) {\r\n lineX.setElement(this.paper.add(\"path\"));\r\n this._lineX.set(lineX, lineX.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n lineX.interactionsEnabled = false;\r\n lineX.parent = this;\r\n }\r\n else {\r\n this._lineX.reset();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"lineY\", {\r\n /**\r\n * @return Line element\r\n */\r\n get: function () {\r\n return this._lineY.get();\r\n },\r\n /**\r\n * A Line element to use Y axis.\r\n *\r\n * @param lineY Line\r\n */\r\n set: function (lineY) {\r\n if (lineY) {\r\n lineY.setElement(this.paper.add(\"path\"));\r\n this._lineY.set(lineY, lineY.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n lineY.parent = this;\r\n lineY.interactionsEnabled = false;\r\n }\r\n else {\r\n this._lineY.reset();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"selection\", {\r\n /**\r\n * @return Selection rectangle\r\n */\r\n get: function () {\r\n return this._selection;\r\n },\r\n /**\r\n * A selection element ([[Sprite]]).\r\n *\r\n * @param selection Selection rectangle\r\n */\r\n set: function (selection) {\r\n this._selection = selection;\r\n if (selection) {\r\n selection.element = this.paper.add(\"path\");\r\n selection.parent = this;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * Looks if `xAxis` and `yAxis` is set via ID in JSON config, and replaces\r\n * with real references.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n XYCursor.prototype.processConfig = function (config) {\r\n var _this = this;\r\n if (config) {\r\n // Set up axes\r\n if ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n if (this.map.hasKey(config.xAxis)) {\r\n config.xAxis = this.map.getKey(config.xAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`\");\r\n delete config.xAxis;\r\n }\r\n }\r\n if ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n if (this.map.hasKey(config.yAxis)) {\r\n config.yAxis = this.map.getKey(config.yAxis);\r\n }\r\n else {\r\n this.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`\");\r\n delete config.yAxis;\r\n }\r\n }\r\n if ($type.hasValue(config.snapToSeries)) {\r\n var snapTo_1 = $type.isArray(config.snapToSeries) ? config.snapToSeries : [config.snapToSeries];\r\n var snapError_1 = false;\r\n $array.each(snapTo_1, function (snap, index) {\r\n if ($type.isString(snap)) {\r\n if (_this.map.hasKey(snap)) {\r\n snapTo_1[index] = _this.map.getKey(snap);\r\n }\r\n else {\r\n _this.processingErrors.push(\"[XYCursor] No series with id \\\"\" + snap + \"\\\" found for `series`\");\r\n snapError_1 = true;\r\n }\r\n }\r\n });\r\n if (snapError_1) {\r\n delete config.snapToSeries;\r\n }\r\n else {\r\n config.snapToSeries = snapTo_1;\r\n }\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n Object.defineProperty(XYCursor.prototype, \"snapToSeries\", {\r\n /**\r\n * @return {XYSeries | XYSeries[]}\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"snapToSeries\");\r\n },\r\n /**\r\n * Specifies to which series cursor lines should be snapped.\r\n *\r\n * Can be a single series instance or an array of series.\r\n *\r\n * @param {XYSeries | XYSeries[]}\r\n */\r\n set: function (series) {\r\n var _this = this;\r\n if (this.setPropertyValue(\"snapToSeries\", series)) {\r\n if (series instanceof XYSeries) {\r\n series = [series];\r\n }\r\n if (this._snapToDisposers) {\r\n $array.each(this._snapToDisposers, function (disposer) {\r\n disposer.dispose();\r\n });\r\n }\r\n this._snapToDisposers = [];\r\n if (series) {\r\n $array.each(series, function (s) {\r\n _this._snapToDisposers.push(s.events.on(\"tooltipshownat\", function () { _this.handleSnap(s); }, undefined, false));\r\n });\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(XYCursor.prototype, \"snapOnPan\", {\r\n /**\r\n * Should zoom selection \"snap\" into equal categories/intervals after panning\r\n * the chart? (when `behavior == \"panX\"`)\r\n *\r\n * @default true\r\n * @since 4.10.17\r\n * @return Snap on pan?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"snapOnPan\");\r\n },\r\n /**\r\n * @param value Snap on pan?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"snapOnPan\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Snaps the zoom selection after chart is panned.\r\n *\r\n * @ignore\r\n */\r\n XYCursor.prototype.handleSnap = function (series) {\r\n if (!this.downPoint) {\r\n var x = series.getTooltipX() + series.xAxis.pixelX;\r\n var y = series.getTooltipY() + series.yAxis.pixelY;\r\n var xAxis = series.xAxis;\r\n var yAxis = series.yAxis;\r\n if (xAxis) {\r\n if (xAxis.renderer.opposite) {\r\n y -= this.pixelHeight;\r\n }\r\n }\r\n this.point = { x: x, y: y };\r\n this.getPositions();\r\n var xx = x;\r\n var yy = y;\r\n x -= this.pixelWidth;\r\n if (yAxis) {\r\n if (yAxis.renderer.opposite) {\r\n x += this.pixelWidth;\r\n }\r\n }\r\n var tooltip = series.tooltip;\r\n var duration = tooltip.animationDuration;\r\n var easing = tooltip.animationEasing;\r\n if (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis) && yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n series.yAxis.showTooltipAtPosition(this.yPosition);\r\n series.xAxis.showTooltipAtPosition(this.xPosition);\r\n }\r\n else {\r\n if (series.baseAxis == series.xAxis) {\r\n series.yAxis.showTooltipAtPosition(this.yPosition);\r\n }\r\n if (series.baseAxis == series.yAxis) {\r\n series.xAxis.showTooltipAtPosition(this.xPosition);\r\n }\r\n }\r\n //\tthis.lineX.animate([{ property: \"y\", to: y }], duration, easing);\r\n //\tthis.lineY.animate([{ property: \"x\", to: x }], duration, easing);\r\n this.lineY.x = x;\r\n this.lineX.y = y;\r\n if (!this.xAxis) {\r\n this.lineX.animate([{ property: \"x\", to: xx }], duration, easing);\r\n }\r\n if (!this.yAxis) {\r\n this.lineY.animate([{ property: \"y\", to: yy }], duration, easing);\r\n }\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n XYCursor.prototype.dispose = function () {\r\n this.hide(0);\r\n _super.prototype.dispose.call(this);\r\n };\r\n return XYCursor;\r\n}(Cursor));\r\nexport { XYCursor };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYCursor\"] = XYCursor;\r\n//# sourceMappingURL=XYCursor.js.map","import { __extends } from \"tslib\";\r\nimport { XYCursor } from \"./XYCursor\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Cursor for [[RadarChart]].\r\n *\r\n * @see {@link IRadarCursorEvents} for a list of available events\r\n * @see {@link IRadarCursorAdapters} for a list of available Adapters\r\n */\r\nvar RadarCursor = /** @class */ (function (_super) {\r\n __extends(RadarCursor, _super);\r\n /**\r\n * Constructor\r\n */\r\n function RadarCursor() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"RadarCursor\";\r\n _this.radius = percent(100);\r\n _this.innerRadius = percent(0);\r\n // Apply theme\r\n _this.applyTheme();\r\n _this.mask = undefined;\r\n return _this;\r\n }\r\n /**\r\n * Checks if point is within bounds of a container.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Point to check\r\n * @return Fits within container?\r\n */\r\n RadarCursor.prototype.fitsToBounds = function (point) {\r\n var radius = $math.getDistance(point);\r\n //if(!$math.isAngleInRange(angle, this.startAngle, this.endAngle)){\r\n //return false;\r\n //}\r\n if (radius < this.truePixelRadius + 1 && radius > this.pixelInnerRadius - 1) { // ok to add/remove some\r\n return true;\r\n }\r\n return false;\r\n };\r\n Object.defineProperty(RadarCursor.prototype, \"startAngle\", {\r\n /**\r\n * @return Start angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startAngle\");\r\n },\r\n /**\r\n * Starting angle of the cursor's radial line.\r\n *\r\n * @param value Start angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarCursor.prototype, \"endAngle\", {\r\n /**\r\n * @return End angle\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endAngle\");\r\n },\r\n /**\r\n * End angle of the cursor's radial line.\r\n *\r\n * @param value End angle\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endAngle\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n RadarCursor.prototype.triggerMoveReal = function (point, force) {\r\n if (!this.xAxis || (this.xAxis && (!this.xAxis.cursorTooltipEnabled || this.xAxis.tooltip.disabled))) {\r\n this.updateLineX(this.point);\r\n }\r\n if (!this.yAxis || (this.yAxis && (!this.yAxis.cursorTooltipEnabled || this.yAxis.tooltip.disabled))) {\r\n this.updateLineY(this.point);\r\n }\r\n this.updateSelection();\r\n _super.prototype.triggerMoveReal.call(this, point, force);\r\n };\r\n /**\r\n * (Re)draws the horizontal (circular) cursor's line.\r\n *\r\n * @param point New target point\r\n */\r\n RadarCursor.prototype.updateLineX = function (point) {\r\n var radius = this.pixelRadius;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var innerRadius = this.pixelInnerRadius;\r\n if (radius > 0 && $type.isNumber(startAngle) && $type.isNumber(endAngle) && $type.isNumber(innerRadius)) {\r\n var angle = $math.fitAngleToRange($math.getAngle(point), startAngle, endAngle);\r\n var path = void 0;\r\n if (this.lineX && this.lineX.visible) {\r\n this.lineX.moveTo({ x: 0, y: 0 });\r\n // fill\r\n if (this.xAxis && this.fullWidthLineX) {\r\n var startPoint = this.xAxis.currentItemStartPoint;\r\n var endPoint = this.xAxis.currentItemEndPoint;\r\n if (startPoint && endPoint) {\r\n var fillStartAngle = $math.fitAngleToRange($math.getAngle(startPoint), startAngle, endAngle);\r\n var fillEndAngle = $math.fitAngleToRange($math.getAngle(endPoint), startAngle, endAngle);\r\n var arc = fillEndAngle - fillStartAngle;\r\n // clockwise\r\n // this is needed, normalizeAngle doesn't solve it\r\n if (startAngle < endAngle) {\r\n if (arc < 0) {\r\n arc += 360;\r\n }\r\n }\r\n // ccw\r\n else {\r\n if (arc > 0) {\r\n arc -= 360;\r\n }\r\n }\r\n angle -= arc / 2;\r\n path = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) })\r\n + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) })\r\n + $path.arcTo(angle, arc, radius)\r\n + $path.lineTo({ x: innerRadius * $math.cos(angle + arc), y: innerRadius * $math.sin(angle + arc) })\r\n + $path.arcTo(angle + arc, -arc, innerRadius);\r\n }\r\n }\r\n // line\r\n if (!path) {\r\n path = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) }) + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n }\r\n this.lineX.path = path;\r\n }\r\n }\r\n };\r\n /**\r\n * (Re)draws the vertical (radial) cursor's line.\r\n *\r\n * @param point New target point\r\n */\r\n RadarCursor.prototype.updateLineY = function (point) {\r\n if (this.lineY && this.lineY.visible) {\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var truePixelRadius = this.truePixelRadius;\r\n var radius = $math.fitToRange($math.getDistance(point), 0, this.truePixelRadius);\r\n if ($type.isNumber(radius) && $type.isNumber(startAngle)) {\r\n this.lineY.moveTo({ x: 0, y: 0 });\r\n var path = void 0;\r\n var arc = endAngle - startAngle;\r\n if (this.yAxis && this.fullWidthLineY) {\r\n // fill\r\n var startPoint = this.yAxis.currentItemStartPoint;\r\n var endPoint = this.yAxis.currentItemEndPoint;\r\n if (startPoint && endPoint) {\r\n var innerRadius = $math.fitToRange($math.getDistance(startPoint), 0, truePixelRadius);\r\n radius = $math.fitToRange($math.getDistance(endPoint), 0, truePixelRadius);\r\n path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, arc, radius);\r\n path += $path.moveTo({ x: innerRadius * $math.cos(endAngle), y: innerRadius * $math.sin(endAngle) }) + $path.arcTo(endAngle, -arc, innerRadius);\r\n }\r\n }\r\n if (!path) {\r\n path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, radius);\r\n }\r\n this.lineY.path = path;\r\n }\r\n }\r\n };\r\n /**\r\n * Updates selection dimensions on size change.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarCursor.prototype.updateSelection = function () {\r\n if (this._usesSelection) {\r\n var downPoint = this.downPoint;\r\n if (downPoint) {\r\n var point = this.point;\r\n var radius = this.pixelRadius;\r\n var truePixelRadius = this.truePixelRadius;\r\n var innerRadius = this.pixelInnerRadius;\r\n var startAngle = Math.min(this.startAngle, this.endAngle);\r\n var endAngle = Math.max(this.startAngle, this.endAngle);\r\n var downAngle = $math.fitAngleToRange($math.getAngle(downPoint), startAngle, endAngle);\r\n var angle = $math.fitAngleToRange($math.getAngle(point), startAngle, endAngle);\r\n var downRadius = $math.getDistance(downPoint);\r\n if (downRadius < truePixelRadius) {\r\n var currentRadius = $math.fitToRange($math.getDistance(point), 0, truePixelRadius);\r\n this._prevAngle = angle;\r\n var path = $path.moveTo({ x: 0, y: 0 });\r\n var downSin = $math.sin(downAngle);\r\n var downCos = $math.cos(downAngle);\r\n var sin = $math.sin(angle);\r\n var cos = $math.cos(angle);\r\n var behavior = this.behavior;\r\n if (behavior == \"zoomX\" || behavior == \"selectX\") {\r\n path += $path.lineTo({ x: radius * downCos, y: radius * downSin }) + $path.arcTo(downAngle, angle - downAngle, radius) + $path.lineTo({ x: innerRadius * cos, y: innerRadius * sin }) + $path.arcTo(angle, downAngle - angle, innerRadius);\r\n }\r\n else if (behavior == \"zoomY\" || behavior == \"selectY\") {\r\n path = $path.moveTo({ x: currentRadius * $math.cos(startAngle), y: currentRadius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, currentRadius) + $path.lineTo({ x: downRadius * $math.cos(endAngle), y: downRadius * $math.sin(endAngle) }) + $path.arcTo(endAngle, startAngle - endAngle, downRadius) + $path.closePath();\r\n }\r\n else if (behavior == \"zoomXY\") {\r\n path = $path.moveTo({ x: currentRadius * $math.cos(downAngle), y: currentRadius * $math.sin(downAngle) }) + $path.arcTo(downAngle, angle - downAngle, currentRadius) + $path.lineTo({ x: downRadius * $math.cos(angle), y: downRadius * $math.sin(angle) }) + $path.arcTo(angle, downAngle - angle, downRadius) + $path.closePath();\r\n }\r\n this.selection.path = path;\r\n }\r\n this.selection.moveTo({ x: 0, y: 0 });\r\n }\r\n }\r\n };\r\n /**\r\n * Updates cursors current positions.\r\n */\r\n RadarCursor.prototype.getPositions = function () {\r\n // positions are used by axes or series\r\n var chart = this.chart;\r\n if (chart) {\r\n var innerRadius = this.pixelInnerRadius;\r\n var radius = this.truePixelRadius - innerRadius;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var angle = $math.fitAngleToRange($math.getAngle(this.point), startAngle, endAngle);\r\n var xPosition = ((angle - startAngle) / (endAngle - startAngle));\r\n this.xPosition = xPosition;\r\n this.yPosition = $math.fitToRange(($math.getDistance(this.point) - innerRadius) / radius, 0, 1);\r\n }\r\n };\r\n /**\r\n * Overriding inherited method, so that nothing happens when it's triggered.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarCursor.prototype.updatePoint = function (point) {\r\n };\r\n /**\r\n * Updates Cursor's position when axis tooltip changes horizontal position.\r\n *\r\n * @param event Axis event\r\n */\r\n RadarCursor.prototype.handleXTooltipPosition = function (event) {\r\n if (this.xAxis.cursorTooltipEnabled) {\r\n var tooltip = this.xAxis.tooltip;\r\n this.updateLineX($utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this));\r\n }\r\n };\r\n /**\r\n * Updates Cursor's position when axis tooltip changes vertical position.\r\n *\r\n * @todo Description\r\n * @param event Axis event\r\n */\r\n RadarCursor.prototype.handleYTooltipPosition = function (event) {\r\n if (this.yAxis.cursorTooltipEnabled) {\r\n var tooltip = this.yAxis.tooltip;\r\n this.updateLineY($utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this));\r\n }\r\n };\r\n /**\r\n * needs to be overriden\r\n * @ignore\r\n */\r\n RadarCursor.prototype.updateLinePositions = function (point) {\r\n };\r\n /**\r\n * [getRanges description]\r\n *\r\n * @todo Description\r\n */\r\n RadarCursor.prototype.getRanges = function () {\r\n var downPoint = this.downPoint;\r\n if (downPoint) {\r\n var upPoint = this.upPoint;\r\n var chart = this.chart;\r\n if (chart) {\r\n var radius = this.pixelRadius;\r\n var startAngle = this.startAngle;\r\n var endAngle = this.endAngle;\r\n var downAngle = $math.fitAngleToRange($math.getAngle(downPoint), this.startAngle, this.endAngle);\r\n var upAngle = $math.fitAngleToRange($math.getAngle(upPoint), this.startAngle, this.endAngle);\r\n var downRadius = $math.fitToRange($math.getDistance(downPoint), 0, radius);\r\n var upRadius = $math.fitToRange($math.getDistance(upPoint), 0, radius);\r\n var startX = 0;\r\n var endX = 1;\r\n var startY = 0;\r\n var endY = 1;\r\n var behavior = this.behavior;\r\n if (behavior == \"zoomX\" || behavior == \"selectX\" || behavior == \"zoomXY\" || behavior == \"selectXY\") {\r\n var arc = endAngle - startAngle;\r\n startX = $math.round((downAngle - startAngle) / arc, 5);\r\n endX = $math.round((upAngle - startAngle) / arc, 5);\r\n }\r\n if (behavior == \"zoomY\" || behavior == \"selectY\" || behavior == \"zoomXY\" || behavior == \"selectXY\") {\r\n startY = $math.round(downRadius / radius, 5);\r\n endY = $math.round(upRadius / radius, 5);\r\n }\r\n this.xRange = { start: Math.min(startX, endX), end: Math.max(startX, endX) };\r\n this.yRange = { start: Math.min(startY, endY), end: Math.max(startY, endY) };\r\n if (this.behavior == \"selectX\" || this.behavior == \"selectY\" || this.behavior == \"selectXY\") {\r\n // void\r\n }\r\n else {\r\n this.selection.hide();\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Overriding inherited method, so that nothing happens when `updateSize`\r\n * is triggered.\r\n *\r\n * RadarCursor is quite complicated and needs own sizing logic.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarCursor.prototype.updateSize = function () { };\r\n Object.defineProperty(RadarCursor.prototype, \"radius\", {\r\n /**\r\n * @return Outer radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"radius\");\r\n },\r\n /**\r\n * Outer radius of the cursor's circular line.\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Outer radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"radius\", value, false, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarCursor.prototype, \"pixelRadius\", {\r\n /**\r\n * Outer radius of the circular line in pixels.\r\n *\r\n * @return Outer radius (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n return $utils.relativeRadiusToValue(this.radius, this.truePixelRadius);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarCursor.prototype, \"truePixelRadius\", {\r\n /**\r\n * [truePixelRadius description]\r\n *\r\n * @todo Description\r\n * @return Outer radius (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n return $utils.relativeToValue(percent(100), $math.min(this.innerWidth / 2, this.innerHeight / 2));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarCursor.prototype, \"innerRadius\", {\r\n /**\r\n * @return Inner radius\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"innerRadius\");\r\n },\r\n /**\r\n * Inner radius of the cursor's circular line.\r\n * Absolute (px) or relative ([[Percent]]).\r\n *\r\n * @param value Inner radius\r\n */\r\n set: function (value) {\r\n this.setPercentProperty(\"innerRadius\", value, false, false, 10, false);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(RadarCursor.prototype, \"pixelInnerRadius\", {\r\n /**\r\n * Inner radius of the circular line in pixels.\r\n *\r\n * @return Inner radius (px)\r\n * @readonly\r\n */\r\n get: function () {\r\n var innerRadius = this.innerRadius;\r\n if (innerRadius instanceof Percent) {\r\n innerRadius = percent(100 * innerRadius.value * this.chart.innerRadiusModifyer);\r\n }\r\n return $utils.relativeRadiusToValue(innerRadius, this.truePixelRadius) || 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n RadarCursor.prototype.fixPoint = function (point) {\r\n // overriding xy method\r\n return point;\r\n };\r\n return RadarCursor;\r\n}(XYCursor));\r\nexport { RadarCursor };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarCursor\"] = RadarCursor;\r\n//# sourceMappingURL=RadarCursor.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _button = _interopRequireDefault(require(\"./button\"));\n\nvar _buttonGroup = _interopRequireDefault(require(\"./button-group\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_button[\"default\"].Group = _buttonGroup[\"default\"];\nvar _default = _button[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../grid/style\");","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","\nvar content = require(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./antd-mobile.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./antd-mobile.css\", function() {\n\t\tvar newContent = require(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./antd-mobile.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.changeConfirmLocale = changeConfirmLocale;\nexports.getConfirmLocale = getConfirmLocale;\n\nvar _default = _interopRequireDefault(require(\"../locale/default\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar runtimeLocale = _extends({}, _default[\"default\"].Modal);\n\nfunction changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, _default[\"default\"].Modal);\n }\n}\n\nfunction getConfirmLocale() {\n return runtimeLocale;\n}","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"../../grid/style\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"../../grid/style\");","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.argumentContainer = argumentContainer;\nexports.identity = identity;\nexports.flattenArray = flattenArray;\nexports.treeTraverse = treeTraverse;\nexports.flattenFields = flattenFields;\nexports.normalizeValidateRules = normalizeValidateRules;\nexports.getValidateTriggers = getValidateTriggers;\nexports.getValueFromEvent = getValueFromEvent;\nexports.getErrorStrs = getErrorStrs;\nexports.getParams = getParams;\nexports.isEmptyObject = isEmptyObject;\nexports.hasRules = hasRules;\nexports.startsWith = startsWith;\nexports.supportRef = supportRef;\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _reactIs = require('react-is');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'WrappedComponent';\n}\n\nfunction argumentContainer(Container, WrappedComponent) {\n /* eslint no-param-reassign:0 */\n Container.displayName = 'Form(' + getDisplayName(WrappedComponent) + ')';\n Container.WrappedComponent = WrappedComponent;\n return (0, _hoistNonReactStatics2['default'])(Container, WrappedComponent);\n}\n\nfunction identity(obj) {\n return obj;\n}\n\nfunction flattenArray(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n\nfunction treeTraverse() {\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var tree = arguments[1];\n var isLeafNode = arguments[2];\n var errorMessage = arguments[3];\n var callback = arguments[4];\n\n if (isLeafNode(path, tree)) {\n callback(path, tree);\n } else if (tree === undefined || tree === null) {\n // Do nothing\n } else if (Array.isArray(tree)) {\n tree.forEach(function (subTree, index) {\n return treeTraverse(path + '[' + index + ']', subTree, isLeafNode, errorMessage, callback);\n });\n } else {\n // It's object and not a leaf node\n if (typeof tree !== 'object') {\n (0, _warning2['default'])(false, errorMessage);\n return;\n }\n Object.keys(tree).forEach(function (subTreeKey) {\n var subTree = tree[subTreeKey];\n treeTraverse('' + path + (path ? '.' : '') + subTreeKey, subTree, isLeafNode, errorMessage, callback);\n });\n }\n}\n\nfunction flattenFields(maybeNestedFields, isLeafNode, errorMessage) {\n var fields = {};\n treeTraverse(undefined, maybeNestedFields, isLeafNode, errorMessage, function (path, node) {\n fields[path] = node;\n });\n return fields;\n}\n\nfunction normalizeValidateRules(validate, rules, validateTrigger) {\n var validateRules = validate.map(function (item) {\n var newItem = (0, _extends3['default'])({}, item, {\n trigger: item.trigger || []\n });\n if (typeof newItem.trigger === 'string') {\n newItem.trigger = [newItem.trigger];\n }\n return newItem;\n });\n if (rules) {\n validateRules.push({\n trigger: validateTrigger ? [].concat(validateTrigger) : [],\n rules: rules\n });\n }\n return validateRules;\n}\n\nfunction getValidateTriggers(validateRules) {\n return validateRules.filter(function (item) {\n return !!item.rules && item.rules.length;\n }).map(function (item) {\n return item.trigger;\n }).reduce(function (pre, curr) {\n return pre.concat(curr);\n }, []);\n}\n\nfunction getValueFromEvent(e) {\n // To support custom element\n if (!e || !e.target) {\n return e;\n }\n var target = e.target;\n\n return target.type === 'checkbox' ? target.checked : target.value;\n}\n\nfunction getErrorStrs(errors) {\n if (errors) {\n return errors.map(function (e) {\n if (e && e.message) {\n return e.message;\n }\n return e;\n });\n }\n return errors;\n}\n\nfunction getParams(ns, opt, cb) {\n var names = ns;\n var options = opt;\n var callback = cb;\n if (cb === undefined) {\n if (typeof names === 'function') {\n callback = names;\n options = {};\n names = undefined;\n } else if (Array.isArray(names)) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n } else {\n callback = options;\n options = names || {};\n names = undefined;\n }\n }\n return {\n names: names,\n options: options,\n callback: callback\n };\n}\n\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction hasRules(validate) {\n if (validate) {\n return validate.some(function (item) {\n return item.rules && item.rules.length;\n });\n }\n return false;\n}\n\nfunction startsWith(str, prefix) {\n return str.lastIndexOf(prefix, 0) === 0;\n}\n\nfunction supportRef(nodeOrComponent) {\n var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !(type.prototype && type.prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !(nodeOrComponent.prototype && nodeOrComponent.prototype.render)) {\n return false;\n }\n\n return true;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = wrapperRaf;\n\nvar _raf = _interopRequireDefault(require(\"raf\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar id = 0;\nvar ids = {}; // Support call raf with delay specified frame\n\nfunction wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n\n function internalCallback() {\n restFrames -= 1;\n\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = (0, _raf[\"default\"])(internalCallback);\n }\n }\n\n ids[myId] = (0, _raf[\"default\"])(internalCallback);\n return myId;\n}\n\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n\n _raf[\"default\"].cancel(ids[pid]);\n\n delete ids[pid];\n};\n\nwrapperRaf.ids = ids; // export this for test usage","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrame = void 0;\nconst react_1 = __importDefault(require(\"react\"));\n/**\n * Use the provided Frame, or fall back on the default one (if available) if none is provided.\n *\n * This hook is useful in preventing SSR issues when `window` and `document`\n * aren't defined.\n *\n * @param frame The Frame to use, if any.\n * @returns A Frame object containing references to `window` and `document`.\n */\nconst useFrame = (frame) => {\n return react_1.default.useMemo(() => {\n if (frame) {\n return frame;\n }\n return {\n document: typeof document !== 'undefined' ? document : undefined,\n window: typeof window !== 'undefined' ? window : undefined,\n };\n }, [frame]);\n};\nexports.useFrame = useFrame;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateUUID = void 0;\n// https://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid\nconst generateUUID = () => {\n // Public Domain/MIT\n let d = new Date().getTime(); //Timestamp\n let d2 = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0; //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16; //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n }\n else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\nexports.generateUUID = generateUUID;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Subs = exports.Subscribe = void 0;\n/**\n * Static functions for subscribing and unsubscribing to and from events.\n */\nclass Subscribe {\n /**\n * Call a function that adds a listener and returns a function that will unsubscribe the listener.\n *\n * The function passed in will be called immediately to add the listener,\n * and its Unsubscribe function will be returned.\n *\n * @param subscribe The subscribe function, which returns an Unsubscribe. Will be called immediately.\n * @returns The Unsubscribe function for this subscription.\n */\n static subscribe(subscribe) {\n try {\n return subscribe();\n }\n catch (e) {\n console.error(e);\n }\n return () => {\n // No-op when catching an error\n };\n }\n /**\n * Subscribe to an emitter event. Returns a function that will unsubscribe the listener.\n *\n * @param eventEmitter The [EventEmitter](https://nodejs.org/api/events.html#class-eventemitter) to subscribe to.\n * @param eventName The name of the event to listen for.\n * @param listener The listener callback that is called when the event occurs.\n * @returns The Unsubscribe function for this subscription.\n */\n static subscribeEvent(eventEmitter, eventName, listener) {\n eventEmitter.addListener(eventName, listener);\n return () => {\n eventEmitter.removeListener(eventName, listener);\n };\n }\n /**\n * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback\n * that will be invoked when the event is dispatched.\n *\n * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the\n * method behaves exactly as if the value was specified as options's capture.\n *\n * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute\n * value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute\n * value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.\n *\n * Returns a function that will unsubscribe the listener.\n *\n * @param domObj The DOM object to subscribe to for events.\n * @param eventName The name of the event to listen for.\n * @param listener The listener callback that is called when the event occurs.\n * @param options Listener-specific options. See function description.\n * @returns The Unsubscribe function for this subscription.\n */\n static subscribeDOMEvent(domObj, eventName, listener, options) {\n domObj.addEventListener(eventName, listener, options);\n return () => {\n domObj.removeEventListener(eventName, listener, options);\n };\n }\n /**\n * Sets a timer which executes a function once the timer expires using `setTimeout`.\n * Returns an unsubscribe function that clears the timeout using `clearTimeout`.\n *\n * @param handler A function to be executed after the timer expires.\n * @param delay The time, in milliseconds that the timer should wait before the specified function or code is executed. If this parameter is omitted, a value of 0 is used, meaning execute \"immediately\", or more accurately, the next event cycle.\n * @param args Additional arguments which are passed through to the handler specified.\n * @returns The Unsubscribe function for this subscription.\n */\n static setTimeout(handler, delay, ...args) {\n const timeout = setTimeout(handler, delay, args);\n return () => clearTimeout(timeout);\n }\n /**\n * Repeatedly calls a function with a fixed time delay between each call using `setInterval`.\n * Returns an unsubscribe function that clears the interval using `clearInterval`.\n *\n * @param handler A function to be executed after the timer expires.\n * @param delay The time, in milliseconds (thousandths of a second), the timer should delay in between executions of the specified function or code. Defaults to 0 if not specified.\n * @param args Additional arguments which are passed through to the handler once the timer expires.\n * @returns The Unsubscribe function for this subscription.\n */\n static setInterval(handler, delay, ...args) {\n const interval = setInterval(handler, delay, args);\n return () => clearInterval(interval);\n }\n /**\n * Call all unsubscribe functions passed in. Can pass either an array of unsubscribe functions,\n * or a single unsubscribe function.\n *\n * @param unsubs An array of unsubscribe functions, or a single unsubscribe function.\n */\n static unsubAll(unsubs) {\n if (Array.isArray(unsubs)) {\n unsubs.forEach((unsub) => {\n try {\n unsub();\n }\n catch (e) {\n console.error(e);\n }\n });\n }\n else {\n try {\n unsubs();\n }\n catch (e) {\n console.error(e);\n }\n }\n }\n /**\n * Creates and returns a cleanup function that, when called, calls all unsubscribe functions provided.\n *\n * @param unsubs All subscriptions to be unsubscribed when the returned cleanup function is called.\n * @returns A cleanup function that unsubscribes all subscriptions provided.\n */\n static createCleanup(unsubs) {\n return () => Subscribe.unsubAll(unsubs);\n }\n}\nexports.Subscribe = Subscribe;\n/**\n * A Subs object can be used to subscribe and unsubscribe to events,\n * and to collect subscriptions in an array to be unsubscribed all at once.\n *\n * Calling any of the subscribe functions will add the unsubscribe function to\n * an internal array. You can then call `unsubAll()` to unsubscribe all\n * at once and clear the list.\n */\nclass Subs {\n /**\n * Construct a new Subs object.\n *\n * A Subs object can be used to subscribe and unsubscribe to events,\n * and to collect subscriptions in an array to be unsubscribed all at once.\n *\n * Calling any of the subscribe functions will add the unsubscribe function to\n * an internal array. You can then call `unsubAll()` to unsubscribe all\n * at once and clear the list.\n *\n * You can optionally pass in an array of unsubscribe functions to start with.\n *\n * @param list Optional array of unsubscribe functions. Defaults to an empty list.\n */\n constructor(\n /** A list of unsubscribe functions for all subscribe calls that have been made. */\n list = []) {\n this.list = list;\n }\n /**\n * Call a function that adds a listener and returns a function that will unsubscribe the listener.\n *\n * The function passed in will be called immediately to add the listener,\n * and its Unsubscribe function will be returned.\n *\n * The Unsubscribe function will be added to the internal list of unsubs. You can unsubscribe all by calling `unsubAll()`.\n *\n * @param subscribe The subscribe function, which returns an Unsubscribe. Will be called immediately.\n * @returns The Unsubscribe function for this subscription.\n */\n subscribe(subscribe) {\n const unsub = Subscribe.subscribe(subscribe);\n this.push(unsub);\n return unsub;\n }\n /**\n * Subscribe to an emitter event. Returns a function that will unsubscribe the listener.\n *\n * The Unsubscribe function will be added to the internal list of unsubs. You can unsubscribe all by calling `unsubAll()`.\n *\n * @param eventEmitter The [EventEmitter](https://nodejs.org/api/events.html#class-eventemitter) to subscribe to.\n * @param eventName The name of the event to listen for.\n * @param listener The listener callback that is called when the event occurs.\n * @returns The Unsubscribe function for this subscription.\n */\n subscribeEvent(eventEmitter, eventName, listener) {\n const unsub = Subscribe.subscribeEvent(eventEmitter, eventName, listener);\n this.push(unsub);\n return unsub;\n }\n /**\n * Subscribe to an event on a DOM object (Window or Node). Returns a function that will unsubscribe the listener.\n *\n * The Unsubscribe function will be added to the internal list of unsubs. You can unsubscribe all by calling `unsubAll()`.\n *\n * @param domObj The DOM object to subscribe to for events.\n * @param eventName The name of the event to listen for.\n * @param listener The listener callback that is called when the event occurs.\n * @returns The Unsubscribe function for this subscription.\n */\n subscribeDOMEvent(domObj, eventName, listener) {\n const unsub = Subscribe.subscribeDOMEvent(domObj, eventName, listener);\n this.push(unsub);\n return unsub;\n }\n /**\n * Sets a timer which executes a function once the timer expires using `setTimeout`.\n * Returns an unsubscribe function that clears the timeout using `clearTimeout`.\n *\n * The Unsubscribe function will be added to the internal list of unsubs. You can unsubscribe all by calling `unsubAll()`.\n *\n * @param handler A function to be executed after the timer expires.\n * @param delay The time, in milliseconds that the timer should wait before the specified function or code is executed. If this parameter is omitted, a value of 0 is used, meaning execute \"immediately\", or more accurately, the next event cycle.\n * @param args Additional arguments which are passed through to the handler specified.\n * @returns The Unsubscribe function for this subscription.\n */\n setTimeout(handler, delay, ...args) {\n const timeout = setTimeout(handler, delay, args);\n const unsub = () => clearTimeout(timeout);\n this.push(unsub);\n return unsub;\n }\n /**\n * Repeatedly calls a function with a fixed time delay between each call using `setInterval`.\n * Returns an unsubscribe function that clears the interval using `clearInterval`.\n *\n * The Unsubscribe function will be added to the internal list of unsubs. You can unsubscribe all by calling `unsubAll()`.\n *\n * @param handler A function to be executed after the timer expires.\n * @param delay The time, in milliseconds (thousandths of a second), the timer should delay in between executions of the specified function or code. Defaults to 0 if not specified.\n * @param args Additional arguments which are passed through to the handler once the timer expires.\n * @returns The Unsubscribe function for this subscription.\n */\n setInterval(handler, delay, ...args) {\n const interval = setInterval(handler, delay, args);\n const unsub = () => clearInterval(interval);\n this.push(unsub);\n return unsub;\n }\n /**\n * Pushes an unsubscribe function onto the subscription list.\n *\n * You can unsubscribe all by calling `unsubAll()`.\n *\n * @param unsub The unsubscribe function to push to the subscription list.\n */\n push(unsub) {\n this.list.push(unsub);\n }\n /**\n * Call all unsubscribe functions and clear the unsubscribe list.\n */\n unsubAll() {\n Subscribe.unsubAll(this.list);\n // Empty the array, maintain the reference\n this.list.splice(0, this.list.length);\n }\n /**\n * Creates and returns a cleanup function that, when called, calls all unsubscribe functions and clears the unsubscribe list.\n *\n * @returns A cleanup function that unsubscribes all subscriptions and clears the unsubscribe list.\n */\n createCleanup() {\n return () => {\n this.unsubAll();\n };\n }\n}\nexports.Subs = Subs;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _rcCheckbox = _interopRequireDefault(require(\"rc-checkbox\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _shallowequal = _interopRequireDefault(require(\"shallowequal\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Radio = /*#__PURE__*/function (_React$Component) {\n _inherits(Radio, _React$Component);\n\n var _super = _createSuper(Radio);\n\n function Radio() {\n var _this;\n\n _classCallCheck(this, Radio);\n\n _this = _super.apply(this, arguments);\n\n _this.saveCheckbox = function (node) {\n _this.rcCheckbox = node;\n };\n\n _this.onChange = function (e) {\n if (_this.props.onChange) {\n _this.props.onChange(e);\n }\n\n if (_this.context.radioGroup && _this.context.radioGroup.onChange) {\n _this.context.radioGroup.onChange(e);\n }\n };\n\n _this.renderRadio = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props,\n context = _assertThisInitialize.context;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\"]);\n\n var radioGroup = context.radioGroup;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n\n var radioProps = _extends({}, restProps);\n\n if (radioGroup) {\n radioProps.name = radioGroup.name;\n radioProps.onChange = _this.onChange;\n radioProps.checked = props.value === radioGroup.value;\n radioProps.disabled = props.disabled || radioGroup.disabled;\n }\n\n var wrapperClassString = (0, _classnames[\"default\"])(className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), radioProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), radioProps.disabled), _classNames));\n return (\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[\"default\"], _extends({}, radioProps, {\n prefixCls: prefixCls,\n ref: _this.saveCheckbox\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n };\n\n return _this;\n }\n\n _createClass(Radio, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState, nextContext) {\n return !(0, _shallowequal[\"default\"])(this.props, nextProps) || !(0, _shallowequal[\"default\"])(this.state, nextState) || !(0, _shallowequal[\"default\"])(this.context.radioGroup, nextContext.radioGroup);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.rcCheckbox.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.rcCheckbox.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderRadio);\n }\n }]);\n\n return Radio;\n}(React.Component);\n\nexports[\"default\"] = Radio;\nRadio.defaultProps = {\n type: 'radio'\n};\nRadio.contextTypes = {\n radioGroup: PropTypes.any\n};","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar MenuContext = (0, _createReactContext[\"default\"])({\n inlineCollapsed: false\n});\nvar _default = MenuContext;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.SiderContext = void 0;\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _layout = require(\"./layout\");\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _isNumeric = _interopRequireDefault(require(\"../_util/isNumeric\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n// matchMedia polyfill for\n// https://github.com/WickyNilliams/enquire.js/issues/82\n// TODO: Will be removed in antd 4.0 because we will no longer support ie9\nif (typeof window !== 'undefined') {\n var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) {\n return {\n media: mediaQuery,\n matches: false,\n addListener: function addListener() {},\n removeListener: function removeListener() {}\n };\n }; // ref: https://github.com/ant-design/ant-design/issues/18774\n\n\n if (!window.matchMedia) window.matchMedia = matchMediaPolyfill;\n}\n\nvar 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};\nvar SiderContext = (0, _createReactContext[\"default\"])({});\nexports.SiderContext = SiderContext;\n\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\n\nvar InternalSider = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalSider, _React$Component);\n\n var _super = _createSuper(InternalSider);\n\n function InternalSider(props) {\n var _this;\n\n _classCallCheck(this, InternalSider);\n\n _this = _super.call(this, props);\n\n _this.responsiveHandler = function (mql) {\n _this.setState({\n below: mql.matches\n });\n\n var onBreakpoint = _this.props.onBreakpoint;\n\n if (onBreakpoint) {\n onBreakpoint(mql.matches);\n }\n\n if (_this.state.collapsed !== mql.matches) {\n _this.setCollapsed(mql.matches, 'responsive');\n }\n };\n\n _this.setCollapsed = function (collapsed, type) {\n if (!('collapsed' in _this.props)) {\n _this.setState({\n collapsed: collapsed\n });\n }\n\n var onCollapse = _this.props.onCollapse;\n\n if (onCollapse) {\n onCollapse(collapsed, type);\n }\n };\n\n _this.toggle = function () {\n var collapsed = !_this.state.collapsed;\n\n _this.setCollapsed(collapsed, 'clickTrigger');\n };\n\n _this.belowShowChange = function () {\n _this.setState(function (_ref) {\n var belowShow = _ref.belowShow;\n return {\n belowShow: !belowShow\n };\n });\n };\n\n _this.renderSider = function (_ref2) {\n var _classNames;\n\n var getPrefixCls = _ref2.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n theme = _a.theme,\n collapsible = _a.collapsible,\n reverseArrow = _a.reverseArrow,\n trigger = _a.trigger,\n style = _a.style,\n width = _a.width,\n collapsedWidth = _a.collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n others = __rest(_a, [\"prefixCls\", \"className\", \"theme\", \"collapsible\", \"reverseArrow\", \"trigger\", \"style\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\"]);\n\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = (0, _omit[\"default\"])(others, ['collapsed', 'defaultCollapsed', 'onCollapse', 'breakpoint', 'onBreakpoint', 'siderHook', 'zeroWidthTriggerStyle']);\n var rawWidth = _this.state.collapsed ? collapsedWidth : width; // use \"px\" as fallback unit for width\n\n var siderWidth = (0, _isNumeric[\"default\"])(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth); // special trigger when collapsedWidth == 0\n\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.toggle,\n className: \"\".concat(prefixCls, \"-zero-width-trigger \").concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left'),\n style: zeroWidthTriggerStyle\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"bars\"\n })) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"right\"\n }) : /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"left\"\n }),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"left\"\n }) : /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"right\"\n })\n };\n var status = _this.state.collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: _this.toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n\n var siderCls = (0, _classnames[\"default\"])(className, prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-collapsed\"), !!_this.state.collapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-below\"), !!_this.state.below), _defineProperty(_classNames, \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), _classNames));\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, _this.props.children), collapsible || _this.state.below && zeroWidthTrigger ? triggerDom : null);\n };\n\n _this.uniqueId = generateId('ant-sider-');\n var matchMedia;\n\n if (typeof window !== 'undefined') {\n matchMedia = window.matchMedia;\n }\n\n if (matchMedia && props.breakpoint && props.breakpoint in dimensionMaxMap) {\n _this.mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[props.breakpoint], \")\"));\n }\n\n var collapsed;\n\n if ('collapsed' in props) {\n collapsed = props.collapsed;\n } else {\n collapsed = props.defaultCollapsed;\n }\n\n _this.state = {\n collapsed: collapsed,\n below: false\n };\n return _this;\n }\n\n _createClass(InternalSider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.mql) {\n this.mql.addListener(this.responsiveHandler);\n this.responsiveHandler(this.mql);\n }\n\n if (this.props.siderHook) {\n this.props.siderHook.addSider(this.uniqueId);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.mql) {\n this.mql.removeListener(this.responsiveHandler);\n }\n\n if (this.props.siderHook) {\n this.props.siderHook.removeSider(this.uniqueId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var collapsed = this.state.collapsed;\n var collapsedWidth = this.props.collapsedWidth;\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: {\n siderCollapsed: collapsed,\n collapsedWidth: collapsedWidth\n }\n }, /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderSider));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('collapsed' in nextProps) {\n return {\n collapsed: nextProps.collapsed\n };\n }\n\n return null;\n }\n }]);\n\n return InternalSider;\n}(React.Component);\n\nInternalSider.defaultProps = {\n collapsible: false,\n defaultCollapsed: false,\n reverseArrow: false,\n width: 200,\n collapsedWidth: 80,\n style: {},\n theme: 'dark'\n};\n(0, _reactLifecyclesCompat.polyfill)(InternalSider); // eslint-disable-next-line react/prefer-stateless-function\n\nvar Sider = /*#__PURE__*/function (_React$Component2) {\n _inherits(Sider, _React$Component2);\n\n var _super2 = _createSuper(Sider);\n\n function Sider() {\n _classCallCheck(this, Sider);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Sider, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(_layout.LayoutContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalSider, _extends({}, context, _this2.props));\n });\n }\n }]);\n\n return Sider;\n}(React.Component);\n\nexports[\"default\"] = Sider;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ClearableLabeledInput = _interopRequireDefault(require(\"./ClearableLabeledInput\"));\n\nvar _ResizableTextArea = _interopRequireDefault(require(\"./ResizableTextArea\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _Input = require(\"./Input\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar TextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(TextArea, _React$Component);\n\n var _super = _createSuper(TextArea);\n\n function TextArea(props) {\n var _this;\n\n _classCallCheck(this, TextArea);\n\n _this = _super.call(this, props);\n\n _this.saveTextArea = function (resizableTextArea) {\n _this.resizableTextArea = resizableTextArea;\n };\n\n _this.saveClearableInput = function (clearableInput) {\n _this.clearableInput = clearableInput;\n };\n\n _this.handleChange = function (e) {\n _this.setValue(e.target.value, function () {\n _this.resizableTextArea.resizeTextarea();\n });\n\n (0, _Input.resolveOnChange)(_this.resizableTextArea.textArea, e, _this.props.onChange);\n };\n\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n onPressEnter = _this$props.onPressEnter,\n onKeyDown = _this$props.onKeyDown;\n\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n\n _this.handleReset = function (e) {\n _this.setValue('', function () {\n _this.resizableTextArea.renderTextArea();\n\n _this.focus();\n });\n\n (0, _Input.resolveOnChange)(_this.resizableTextArea.textArea, e, _this.props.onChange);\n };\n\n _this.renderTextArea = function (prefixCls) {\n return /*#__PURE__*/React.createElement(_ResizableTextArea[\"default\"], _extends({}, _this.props, {\n prefixCls: prefixCls,\n onKeyDown: _this.handleKeyDown,\n onChange: _this.handleChange,\n ref: _this.saveTextArea\n }));\n };\n\n _this.renderComponent = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var value = _this.state.value;\n var customizePrefixCls = _this.props.prefixCls;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n return /*#__PURE__*/React.createElement(_ClearableLabeledInput[\"default\"], _extends({}, _this.props, {\n prefixCls: prefixCls,\n inputType: \"text\",\n value: (0, _Input.fixControlledValue)(value),\n element: _this.renderTextArea(prefixCls),\n handleReset: _this.handleReset,\n ref: _this.saveClearableInput\n }));\n };\n\n var value = typeof props.value === 'undefined' ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\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: \"focus\",\n value: function focus() {\n this.resizableTextArea.textArea.focus();\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(_configProvider.ConfigConsumer, null, this.renderComponent);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n\n return null;\n }\n }]);\n\n return TextArea;\n}(React.Component);\n\n(0, _reactLifecyclesCompat.polyfill)(TextArea);\nvar _default = TextArea;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcMenu = _interopRequireWildcard(require(\"rc-menu\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _SubMenu = _interopRequireDefault(require(\"./SubMenu\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _Sider = require(\"../layout/Sider\");\n\nvar _raf = _interopRequireDefault(require(\"../_util/raf\"));\n\nvar _motion = _interopRequireDefault(require(\"../_util/motion\"));\n\nvar _MenuContext = _interopRequireDefault(require(\"./MenuContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar InternalMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalMenu, _React$Component);\n\n var _super = _createSuper(InternalMenu);\n\n function InternalMenu(props) {\n var _this;\n\n _classCallCheck(this, InternalMenu);\n\n _this = _super.call(this, props); // Restore vertical mode when menu is collapsed responsively when mounted\n // https://github.com/ant-design/ant-design/issues/13104\n // TODO: not a perfect solution, looking a new way to avoid setting switchingModeFromInline in this situation\n\n _this.handleMouseEnter = function (e) {\n _this.restoreModeVerticalFromInline();\n\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter(e);\n }\n };\n\n _this.handleTransitionEnd = function (e) {\n // when inlineCollapsed menu width animation finished\n // https://github.com/ant-design/ant-design/issues/12864\n var widthCollapsed = e.propertyName === 'width' && e.target === e.currentTarget; // Fix SVGElement e.target.className.indexOf is not a function\n // https://github.com/ant-design/ant-design/issues/15699\n\n var className = e.target.className; // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during an animation.\n\n var classNameValue = Object.prototype.toString.call(className) === '[object SVGAnimatedString]' ? className.animVal : className; // Fix for <Menu style={{ width: '100%' }} />, the width transition won't trigger when menu is collapsed\n // https://github.com/ant-design/ant-design-pro/issues/2783\n\n var iconScaled = e.propertyName === 'font-size' && classNameValue.indexOf('anticon') >= 0;\n\n if (widthCollapsed || iconScaled) {\n _this.restoreModeVerticalFromInline();\n }\n };\n\n _this.handleClick = function (e) {\n _this.handleOpenChange([]);\n\n var onClick = _this.props.onClick;\n\n if (onClick) {\n onClick(e);\n }\n };\n\n _this.handleOpenChange = function (openKeys) {\n _this.setOpenKeys(openKeys);\n\n var onOpenChange = _this.props.onOpenChange;\n\n if (onOpenChange) {\n onOpenChange(openKeys);\n }\n };\n\n _this.renderMenu = function (_ref) {\n var getPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n className = _this$props.className,\n theme = _this$props.theme,\n collapsedWidth = _this$props.collapsedWidth;\n var passProps = (0, _omit[\"default\"])(_this.props, ['collapsedWidth', 'siderCollapsed']);\n\n var menuMode = _this.getRealMenuMode();\n\n var menuOpenMotion = _this.getOpenMotionProps(menuMode);\n\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var menuClassName = (0, _classnames[\"default\"])(className, \"\".concat(prefixCls, \"-\").concat(theme), _defineProperty({}, \"\".concat(prefixCls, \"-inline-collapsed\"), _this.getInlineCollapsed()));\n\n var menuProps = _extends({\n openKeys: _this.state.openKeys,\n onOpenChange: _this.handleOpenChange,\n className: menuClassName,\n mode: menuMode\n }, menuOpenMotion);\n\n if (menuMode !== 'inline') {\n // closing vertical popup submenu after click it\n menuProps.onClick = _this.handleClick;\n } // https://github.com/ant-design/ant-design/issues/8587\n\n\n var hideMenu = _this.getInlineCollapsed() && (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px');\n\n if (hideMenu) {\n menuProps.openKeys = [];\n }\n\n return /*#__PURE__*/React.createElement(_rcMenu[\"default\"], _extends({\n getPopupContainer: getPopupContainer\n }, passProps, menuProps, {\n prefixCls: prefixCls,\n onTransitionEnd: _this.handleTransitionEnd,\n onMouseEnter: _this.handleMouseEnter\n }));\n };\n\n (0, _warning[\"default\"])(!('onOpen' in props || 'onClose' in props), 'Menu', '`onOpen` and `onClose` are removed, please use `onOpenChange` instead, ' + 'see: https://u.ant.design/menu-on-open-change.');\n (0, _warning[\"default\"])(!('inlineCollapsed' in props && props.mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.');\n (0, _warning[\"default\"])(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.');\n var openKeys;\n\n if ('openKeys' in props) {\n openKeys = props.openKeys;\n } else if ('defaultOpenKeys' in props) {\n openKeys = props.defaultOpenKeys;\n }\n\n _this.state = {\n openKeys: openKeys || [],\n switchingModeFromInline: false,\n inlineOpenKeys: [],\n prevProps: props\n };\n return _this;\n }\n\n _createClass(InternalMenu, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n _raf[\"default\"].cancel(this.mountRafId);\n }\n }, {\n key: \"setOpenKeys\",\n value: function setOpenKeys(openKeys) {\n if (!('openKeys' in this.props)) {\n this.setState({\n openKeys: openKeys\n });\n }\n }\n }, {\n key: \"getRealMenuMode\",\n value: function getRealMenuMode() {\n var inlineCollapsed = this.getInlineCollapsed();\n\n if (this.state.switchingModeFromInline && inlineCollapsed) {\n return 'inline';\n }\n\n var mode = this.props.mode;\n return inlineCollapsed ? 'vertical' : mode;\n }\n }, {\n key: \"getInlineCollapsed\",\n value: function getInlineCollapsed() {\n var inlineCollapsed = this.props.inlineCollapsed;\n\n if (this.props.siderCollapsed !== undefined) {\n return this.props.siderCollapsed;\n }\n\n return inlineCollapsed;\n }\n }, {\n key: \"getOpenMotionProps\",\n value: function getOpenMotionProps(menuMode) {\n var _this$props2 = this.props,\n openTransitionName = _this$props2.openTransitionName,\n openAnimation = _this$props2.openAnimation,\n motion = _this$props2.motion; // Provides by user\n\n if (motion) {\n return {\n motion: motion\n };\n }\n\n if (openAnimation) {\n (0, _warning[\"default\"])(typeof openAnimation === 'string', 'Menu', '`openAnimation` do not support object. Please use `motion` instead.');\n return {\n openAnimation: openAnimation\n };\n }\n\n if (openTransitionName) {\n return {\n openTransitionName: openTransitionName\n };\n } // Default logic\n\n\n if (menuMode === 'horizontal') {\n return {\n motion: {\n motionName: 'slide-up'\n }\n };\n }\n\n if (menuMode === 'inline') {\n return {\n motion: _motion[\"default\"]\n };\n } // When mode switch from inline\n // submenu should hide without animation\n\n\n return {\n motion: {\n motionName: this.state.switchingModeFromInline ? '' : 'zoom-big'\n }\n };\n }\n }, {\n key: \"restoreModeVerticalFromInline\",\n value: function restoreModeVerticalFromInline() {\n var switchingModeFromInline = this.state.switchingModeFromInline;\n\n if (switchingModeFromInline) {\n this.setState({\n switchingModeFromInline: false\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_MenuContext[\"default\"].Provider, {\n value: {\n inlineCollapsed: this.getInlineCollapsed() || false,\n antdMenuTheme: this.props.theme\n }\n }, /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderMenu));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: nextProps\n };\n\n if (prevProps.mode === 'inline' && nextProps.mode !== 'inline') {\n newState.switchingModeFromInline = true;\n }\n\n if ('openKeys' in nextProps) {\n newState.openKeys = nextProps.openKeys;\n } else {\n // [Legacy] Old code will return after `openKeys` changed.\n // Not sure the reason, we should keep this logic still.\n if (nextProps.inlineCollapsed && !prevProps.inlineCollapsed || nextProps.siderCollapsed && !prevProps.siderCollapsed) {\n newState.switchingModeFromInline = true;\n newState.inlineOpenKeys = prevState.openKeys;\n newState.openKeys = [];\n }\n\n if (!nextProps.inlineCollapsed && prevProps.inlineCollapsed || !nextProps.siderCollapsed && prevProps.siderCollapsed) {\n newState.openKeys = prevState.inlineOpenKeys;\n newState.inlineOpenKeys = [];\n }\n }\n\n return newState;\n }\n }]);\n\n return InternalMenu;\n}(React.Component);\n\nInternalMenu.defaultProps = {\n className: '',\n theme: 'light',\n focusable: false\n};\n(0, _reactLifecyclesCompat.polyfill)(InternalMenu); // We should keep this as ref-able\n\nvar Menu = /*#__PURE__*/function (_React$Component2) {\n _inherits(Menu, _React$Component2);\n\n var _super2 = _createSuper(Menu);\n\n function Menu() {\n _classCallCheck(this, Menu);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(_Sider.SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({}, _this2.props, context));\n });\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nexports[\"default\"] = Menu;\nMenu.Divider = _rcMenu.Divider;\nMenu.Item = _MenuItem[\"default\"];\nMenu.SubMenu = _SubMenu[\"default\"];\nMenu.ItemGroup = _rcMenu.ItemGroup;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcNotification = _interopRequireDefault(require(\"rc-notification\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\n\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon;\n\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n\n if (placement !== undefined) {\n defaultPlacement = placement;\n }\n\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n\n if (top !== undefined) {\n defaultTop = top;\n }\n\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n}\n\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n\n switch (placement) {\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n\n return style;\n}\n\nfunction getNotificationInstance(_ref, callback) {\n var prefixCls = _ref.prefixCls,\n _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? defaultPlacement : _ref$placement,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? defaultGetContainer : _ref$getContainer,\n top = _ref.top,\n bottom = _ref.bottom,\n _ref$closeIcon = _ref.closeIcon,\n closeIcon = _ref$closeIcon === void 0 ? defaultCloseIcon : _ref$closeIcon;\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n\n if (notificationInstance[cacheKey]) {\n callback(notificationInstance[cacheKey]);\n return;\n }\n\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n type: \"close\"\n }));\n\n _rcNotification[\"default\"].newInstance({\n prefixCls: prefixCls,\n className: \"\".concat(prefixCls, \"-\").concat(placement),\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n closeIcon: closeIconToRender\n }, function (notification) {\n notificationInstance[cacheKey] = notification;\n callback(notification);\n });\n}\n\nvar typeToIcon = {\n success: 'check-circle-o',\n info: 'info-circle-o',\n error: 'close-circle-o',\n warning: 'exclamation-circle-o'\n};\n\nfunction notice(args) {\n var outerPrefixCls = args.prefixCls || 'ant-notification';\n var prefixCls = \"\".concat(outerPrefixCls, \"-notice\");\n var duration = args.duration === undefined ? defaultDuration : args.duration;\n var iconNode = null;\n\n if (args.icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (args.type) {\n var iconType = typeToIcon[args.type];\n iconNode = /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(args.type),\n type: iconType\n });\n }\n\n var autoMarginTag = !args.description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n var placement = args.placement,\n top = args.top,\n bottom = args.bottom,\n getContainer = args.getContainer,\n closeIcon = args.closeIcon;\n getNotificationInstance({\n prefixCls: outerPrefixCls,\n placement: placement,\n top: top,\n bottom: bottom,\n getContainer: getContainer,\n closeIcon: closeIcon\n }, function (notification) {\n notification.notice({\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : ''\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, args.message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, args.description), args.btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, args.btn) : null),\n duration: duration,\n closable: true,\n onClose: args.onClose,\n onClick: args.onClick,\n key: args.key,\n style: args.style || {},\n className: args.className\n });\n });\n}\n\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return notificationInstance[cacheKey].removeNotice(key);\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n notificationInstance[cacheKey].destroy();\n delete notificationInstance[cacheKey];\n });\n }\n};\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\nvar _default = api;\nexports[\"default\"] = _default;","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Step = undefined;\n\nvar _Steps = require('./Steps');\n\nvar _Steps2 = _interopRequireDefault(_Steps);\n\nvar _Step = require('./Step');\n\nvar _Step2 = _interopRequireDefault(_Step);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n_Steps2['default'].Step = _Step2['default'];\nexports.Step = _Step2['default'];\nexports['default'] = _Steps2['default'];","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.warning = warning;\nexports.note = note;\nexports.resetWarned = resetWarned;\nexports.call = call;\nexports.warningOnce = warningOnce;\nexports.noteOnce = noteOnce;\nexports.default = void 0;\n\n/* eslint-disable no-console */\nvar warned = {};\n\nfunction warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\n\nfunction note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\n\nfunction resetWarned() {\n warned = {};\n}\n\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\n\nvar _default = warningOnce;\n/* eslint-enable */\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"rc-pagination/lib/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../date-picker/locale/en_US\"));\n\nvar _en_US3 = _interopRequireDefault(require(\"../time-picker/locale/en_US\"));\n\nvar _en_US4 = _interopRequireDefault(require(\"../calendar/locale/en_US\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n locale: 'en',\n Pagination: _en_US[\"default\"],\n DatePicker: _en_US2[\"default\"],\n TimePicker: _en_US3[\"default\"],\n Calendar: _en_US4[\"default\"],\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row'\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 },\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};\nexports[\"default\"] = _default;","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _rcTooltip = _interopRequireDefault(require(\"rc-tooltip\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _placements = _interopRequireDefault(require(\"./placements\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\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\n\n\nfunction getDisabledCompatibleChildren(element) {\n var elementType = element.type;\n\n if ((elementType.__ANT_BUTTON === true || elementType.__ANT_SWITCH === true || elementType.__ANT_CHECKBOX === true || element.type === 'button') && 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 var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = /*#__PURE__*/React.cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: element.props.className\n }, child);\n }\n\n return element;\n}\n\nvar Tooltip = /*#__PURE__*/function (_React$Component) {\n _inherits(Tooltip, _React$Component);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip(props) {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n _this = _super.call(this, props);\n\n _this.onVisibleChange = function (visible) {\n var onVisibleChange = _this.props.onVisibleChange;\n\n if (!('visible' in _this.props)) {\n _this.setState({\n visible: _this.isNoTitle() ? false : visible\n });\n }\n\n if (onVisibleChange && !_this.isNoTitle()) {\n onVisibleChange(visible);\n }\n };\n\n _this.saveTooltip = function (node) {\n _this.tooltip = node;\n }; // 动态设置动画点\n\n\n _this.onPopupAlign = function (domNode, align) {\n var placements = _this.getPlacements(); // 当前返回的位置\n\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n\n _this.renderTooltip = function (_ref) {\n var getContextPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props,\n state = _assertThisInitialize.state;\n\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getPopupContainer = props.getPopupContainer,\n getTooltipContainer = props.getTooltipContainer;\n var children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var visible = state.visible; // Hide tooltip when there is no title\n\n if (!('visible' in props) && _this.isNoTitle()) {\n visible = false;\n }\n\n var child = getDisabledCompatibleChildren( /*#__PURE__*/React.isValidElement(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children));\n var childProps = child.props;\n var childCls = (0, _classnames[\"default\"])(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true));\n return /*#__PURE__*/React.createElement(_rcTooltip[\"default\"], _extends({}, _this.props, {\n prefixCls: prefixCls,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: _this.saveTooltip,\n builtinPlacements: _this.getPlacements(),\n overlay: _this.getOverlay(),\n visible: visible,\n onVisibleChange: _this.onVisibleChange,\n onPopupAlign: _this.onPopupAlign\n }), visible ? /*#__PURE__*/React.cloneElement(child, {\n className: childCls\n }) : child);\n };\n\n _this.state = {\n visible: !!props.visible || !!props.defaultVisible\n };\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n return this.tooltip.getPopupDomNode();\n }\n }, {\n key: \"getPlacements\",\n value: function getPlacements() {\n var _this$props = this.props,\n builtinPlacements = _this$props.builtinPlacements,\n arrowPointAtCenter = _this$props.arrowPointAtCenter,\n autoAdjustOverflow = _this$props.autoAdjustOverflow;\n return builtinPlacements || (0, _placements[\"default\"])({\n arrowPointAtCenter: arrowPointAtCenter,\n verticalArrowShift: 8,\n autoAdjustOverflow: autoAdjustOverflow\n });\n }\n }, {\n key: \"isNoTitle\",\n value: function isNoTitle() {\n var _this$props2 = this.props,\n title = _this$props2.title,\n overlay = _this$props2.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n }\n }, {\n key: \"getOverlay\",\n value: function getOverlay() {\n var _this$props3 = this.props,\n title = _this$props3.title,\n overlay = _this$props3.overlay;\n\n if (title === 0) {\n return title;\n }\n\n return overlay || title || '';\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderTooltip);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('visible' in nextProps) {\n return {\n visible: nextProps.visible\n };\n }\n\n return null;\n }\n }]);\n\n return Tooltip;\n}(React.Component);\n\nTooltip.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big-fast',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true\n};\n(0, _reactLifecyclesCompat.polyfill)(Tooltip);\nvar _default = Tooltip;\nexports[\"default\"] = _default;","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n\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};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"rc-calendar/lib/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../../time-picker/locale/en_US\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n rangePlaceholder: ['Start date', 'End date']\n }, _en_US[\"default\"]),\n timePickerLocale: _extends({}, _en_US2[\"default\"])\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n placeholder: 'Select time'\n};\nvar _default = locale;\nexports[\"default\"] = _default;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.storeShape = undefined;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar storeShape = exports.storeShape = _propTypes2.default.shape({\n subscribe: _propTypes2.default.func.isRequired,\n setState: _propTypes2.default.func.isRequired,\n getState: _propTypes2.default.func.isRequired\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _RowContext = _interopRequireDefault(require(\"./RowContext\"));\n\nvar _type = require(\"../_util/type\");\n\nvar _responsiveObserve = _interopRequireWildcard(require(\"../_util/responsiveObserve\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar RowAligns = (0, _type.tuple)('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = (0, _type.tuple)('start', 'end', 'center', 'space-around', 'space-between');\n\nvar Row = /*#__PURE__*/function (_React$Component) {\n _inherits(Row, _React$Component);\n\n var _super = _createSuper(Row);\n\n function Row() {\n var _this;\n\n _classCallCheck(this, Row);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n screens: {}\n };\n\n _this.renderRow = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n type = _a.type,\n justify = _a.justify,\n align = _a.align,\n className = _a.className,\n style = _a.style,\n children = _a.children,\n others = __rest(_a, [\"prefixCls\", \"type\", \"justify\", \"align\", \"className\", \"style\", \"children\"]);\n\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n\n var gutter = _this.getGutter();\n\n var classes = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, prefixCls, !type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type, \"-\").concat(justify), type && justify), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type, \"-\").concat(align), type && align), _classNames), className);\n\n var rowStyle = _extends(_extends(_extends({}, gutter[0] > 0 ? {\n marginLeft: gutter[0] / -2,\n marginRight: gutter[0] / -2\n } : {}), gutter[1] > 0 ? {\n marginTop: gutter[1] / -2,\n marginBottom: gutter[1] / -2\n } : {}), style);\n\n var otherProps = _extends({}, others);\n\n delete otherProps.gutter;\n return /*#__PURE__*/React.createElement(_RowContext[\"default\"].Provider, {\n value: {\n gutter: gutter\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: classes,\n style: rowStyle\n }), children));\n };\n\n return _this;\n }\n\n _createClass(Row, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.token = _responsiveObserve[\"default\"].subscribe(function (screens) {\n var gutter = _this2.props.gutter;\n\n if (_typeof(gutter) === 'object' || Array.isArray(gutter) && (_typeof(gutter[0]) === 'object' || _typeof(gutter[1]) === 'object')) {\n _this2.setState({\n screens: screens\n });\n }\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n _responsiveObserve[\"default\"].unsubscribe(this.token);\n }\n }, {\n key: \"getGutter\",\n value: function getGutter() {\n var results = [0, 0];\n var gutter = this.props.gutter;\n var screens = this.state.screens;\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, 0];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < _responsiveObserve.responsiveArray.length; i++) {\n var breakpoint = _responsiveObserve.responsiveArray[i];\n\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g || 0;\n }\n });\n return results;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderRow);\n }\n }]);\n\n return Row;\n}(React.Component);\n\nexports[\"default\"] = Row;\nRow.defaultProps = {\n gutter: 0\n};\nRow.propTypes = {\n type: PropTypes.oneOf(['flex']),\n align: PropTypes.oneOf(RowAligns),\n justify: PropTypes.oneOf(RowJustify),\n className: PropTypes.string,\n children: PropTypes.node,\n gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number, PropTypes.array]),\n prefixCls: PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar RowContext = (0, _createReactContext[\"default\"])({});\nvar _default = RowContext;\nexports[\"default\"] = _default;","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _RowContext = _interopRequireDefault(require(\"./RowContext\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\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\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar objectOrNumber = PropTypes.oneOfType([PropTypes.object, PropTypes.number]);\n\nvar Col = /*#__PURE__*/function (_React$Component) {\n _inherits(Col, _React$Component);\n\n var _super = _createSuper(Col);\n\n function Col() {\n var _this;\n\n _classCallCheck(this, Col);\n\n _this = _super.apply(this, arguments);\n\n _this.renderCol = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var customizePrefixCls = props.prefixCls,\n span = props.span,\n order = props.order,\n offset = props.offset,\n push = props.push,\n pull = props.pull,\n className = props.className,\n children = props.children,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\"]);\n\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(function (size) {\n var _extends2;\n\n var sizeProps = {};\n var propSize = props[size];\n\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\n }\n\n delete others[size];\n sizeClassObj = _extends(_extends({}, sizeClassObj), (_extends2 = {}, _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), _extends2));\n });\n var classes = (0, _classnames[\"default\"])(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(span), span !== undefined), _defineProperty(_classNames, \"\".concat(prefixCls, \"-order-\").concat(order), order), _defineProperty(_classNames, \"\".concat(prefixCls, \"-offset-\").concat(offset), offset), _defineProperty(_classNames, \"\".concat(prefixCls, \"-push-\").concat(push), push), _defineProperty(_classNames, \"\".concat(prefixCls, \"-pull-\").concat(pull), pull), _classNames), className, sizeClassObj);\n return /*#__PURE__*/React.createElement(_RowContext[\"default\"].Consumer, null, function (_ref2) {\n var gutter = _ref2.gutter;\n var style = others.style;\n\n if (gutter) {\n style = _extends(_extends(_extends({}, gutter[0] > 0 ? {\n paddingLeft: gutter[0] / 2,\n paddingRight: gutter[0] / 2\n } : {}), gutter[1] > 0 ? {\n paddingTop: gutter[1] / 2,\n paddingBottom: gutter[1] / 2\n } : {}), style);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n style: style,\n className: classes\n }), children);\n });\n };\n\n return _this;\n }\n\n _createClass(Col, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderCol);\n }\n }]);\n\n return Col;\n}(React.Component);\n\nexports[\"default\"] = Col;\nCol.propTypes = {\n span: PropTypes.number,\n order: PropTypes.number,\n offset: PropTypes.number,\n push: PropTypes.number,\n pull: PropTypes.number,\n className: PropTypes.string,\n children: PropTypes.node,\n xs: objectOrNumber,\n sm: objectOrNumber,\n md: objectOrNumber,\n lg: objectOrNumber,\n xl: objectOrNumber,\n xxl: objectOrNumber\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _rcCheckbox = _interopRequireDefault(require(\"rc-checkbox\"));\n\nvar _shallowequal = _interopRequireDefault(require(\"shallowequal\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Checkbox = /*#__PURE__*/function (_React$Component) {\n _inherits(Checkbox, _React$Component);\n\n var _super = _createSuper(Checkbox);\n\n function Checkbox() {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.apply(this, arguments);\n\n _this.saveCheckbox = function (node) {\n _this.rcCheckbox = node;\n };\n\n _this.renderCheckbox = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props,\n context = _assertThisInitialize.context;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n indeterminate = props.indeterminate,\n style = props.style,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\"]);\n\n var checkboxGroup = context.checkboxGroup;\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n\n var checkboxProps = _extends({}, restProps);\n\n if (checkboxGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n\n checkboxGroup.toggleOption({\n label: children,\n value: props.value\n });\n };\n\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.indexOf(props.value) !== -1;\n checkboxProps.disabled = props.disabled || checkboxGroup.disabled;\n }\n\n var classString = (0, _classnames[\"default\"])(className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), checkboxProps.disabled), _classNames));\n var checkboxClass = (0, _classnames[\"default\"])(_defineProperty({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n return (\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[\"default\"], _extends({}, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n ref: _this.saveCheckbox\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n };\n\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var value = this.props.value;\n\n var _ref2 = this.context || {},\n _ref2$checkboxGroup = _ref2.checkboxGroup,\n checkboxGroup = _ref2$checkboxGroup === void 0 ? {} : _ref2$checkboxGroup;\n\n if (checkboxGroup.registerValue) {\n checkboxGroup.registerValue(value);\n }\n\n (0, _warning[\"default\"])('checked' in this.props || (this.context || {}).checkboxGroup || !('value' in this.props), 'Checkbox', '`value` is not validate prop, do you mean `checked`?');\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState, nextContext) {\n return !(0, _shallowequal[\"default\"])(this.props, nextProps) || !(0, _shallowequal[\"default\"])(this.state, nextState) || !(0, _shallowequal[\"default\"])(this.context.checkboxGroup, nextContext.checkboxGroup);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_ref3) {\n var prevValue = _ref3.value;\n var value = this.props.value;\n\n var _ref4 = this.context || {},\n _ref4$checkboxGroup = _ref4.checkboxGroup,\n checkboxGroup = _ref4$checkboxGroup === void 0 ? {} : _ref4$checkboxGroup;\n\n if (value !== prevValue && checkboxGroup.registerValue && checkboxGroup.cancelValue) {\n checkboxGroup.cancelValue(prevValue);\n checkboxGroup.registerValue(value);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var value = this.props.value;\n\n var _ref5 = this.context || {},\n _ref5$checkboxGroup = _ref5.checkboxGroup,\n checkboxGroup = _ref5$checkboxGroup === void 0 ? {} : _ref5$checkboxGroup;\n\n if (checkboxGroup.cancelValue) {\n checkboxGroup.cancelValue(value);\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.rcCheckbox.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.rcCheckbox.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderCheckbox);\n }\n }]);\n\n return Checkbox;\n}(React.Component);\n\nCheckbox.__ANT_CHECKBOX = true;\nCheckbox.defaultProps = {\n indeterminate: false\n};\nCheckbox.contextTypes = {\n checkboxGroup: PropTypes.any\n};\n(0, _reactLifecyclesCompat.polyfill)(Checkbox);\nvar _default = Checkbox;\nexports[\"default\"] = _default;","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _defineProperty2 = require('babel-runtime/helpers/defineProperty');\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends5 = require('babel-runtime/helpers/extends');\n\nvar _extends6 = _interopRequireDefault(_extends5);\n\nvar _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _unsafeLifecyclesPolyfill = require('rc-util/lib/unsafeLifecyclesPolyfill');\n\nvar _unsafeLifecyclesPolyfill2 = _interopRequireDefault(_unsafeLifecyclesPolyfill);\n\nvar _asyncValidator = require('async-validator');\n\nvar _asyncValidator2 = _interopRequireDefault(_asyncValidator);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _get = require('lodash/get');\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _set = require('lodash/set');\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _eq = require('lodash/eq');\n\nvar _eq2 = _interopRequireDefault(_eq);\n\nvar _createFieldsStore = require('./createFieldsStore');\n\nvar _createFieldsStore2 = _interopRequireDefault(_createFieldsStore);\n\nvar _utils = require('./utils');\n\nvar _FieldElemWrapper = require('./FieldElemWrapper');\n\nvar _FieldElemWrapper2 = _interopRequireDefault(_FieldElemWrapper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar DEFAULT_TRIGGER = 'onChange'; /* eslint-disable react/prefer-es6-class */\n/* eslint-disable prefer-promise-reject-errors */\n\nfunction createBaseForm() {\n var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var mixins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var validateMessages = option.validateMessages,\n onFieldsChange = option.onFieldsChange,\n onValuesChange = option.onValuesChange,\n _option$mapProps = option.mapProps,\n mapProps = _option$mapProps === undefined ? _utils.identity : _option$mapProps,\n mapPropsToFields = option.mapPropsToFields,\n fieldNameProp = option.fieldNameProp,\n fieldMetaProp = option.fieldMetaProp,\n fieldDataProp = option.fieldDataProp,\n _option$formPropName = option.formPropName,\n formPropName = _option$formPropName === undefined ? 'form' : _option$formPropName,\n formName = option.name,\n withRef = option.withRef;\n\n\n return function decorate(WrappedComponent) {\n var Form = (0, _createReactClass2['default'])({\n displayName: 'Form',\n\n mixins: mixins,\n\n getInitialState: function getInitialState() {\n var _this = this;\n\n var fields = mapPropsToFields && mapPropsToFields(this.props);\n this.fieldsStore = (0, _createFieldsStore2['default'])(fields || {});\n\n this.instances = {};\n this.cachedBind = {};\n this.clearedFieldMetaCache = {};\n\n this.renderFields = {};\n this.domFields = {};\n\n // HACK: https://github.com/ant-design/ant-design/issues/6406\n ['getFieldsValue', 'getFieldValue', 'setFieldsInitialValue', 'getFieldsError', 'getFieldError', 'isFieldValidating', 'isFieldsValidating', 'isFieldsTouched', 'isFieldTouched'].forEach(function (key) {\n _this[key] = function () {\n var _fieldsStore;\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2['default'])(false, 'you should not use `ref` on enhanced form, please use `wrappedComponentRef`. ' + 'See: https://github.com/react-component/form#note-use-wrappedcomponentref-instead-of-withref-after-rc-form140');\n }\n return (_fieldsStore = _this.fieldsStore)[key].apply(_fieldsStore, arguments);\n };\n });\n\n return {\n submitting: false\n };\n },\n componentDidMount: function componentDidMount() {\n this.cleanUpUselessFields();\n },\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n if (mapPropsToFields) {\n this.fieldsStore.updateFields(mapPropsToFields(nextProps));\n }\n },\n componentDidUpdate: function componentDidUpdate() {\n this.cleanUpUselessFields();\n },\n onCollectCommon: function onCollectCommon(name, action, args) {\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if (fieldMeta[action]) {\n fieldMeta[action].apply(fieldMeta, (0, _toConsumableArray3['default'])(args));\n } else if (fieldMeta.originalProps && fieldMeta.originalProps[action]) {\n var _fieldMeta$originalPr;\n\n (_fieldMeta$originalPr = fieldMeta.originalProps)[action].apply(_fieldMeta$originalPr, (0, _toConsumableArray3['default'])(args));\n }\n var value = fieldMeta.getValueFromEvent ? fieldMeta.getValueFromEvent.apply(fieldMeta, (0, _toConsumableArray3['default'])(args)) : _utils.getValueFromEvent.apply(undefined, (0, _toConsumableArray3['default'])(args));\n if (onValuesChange && value !== this.fieldsStore.getFieldValue(name)) {\n var valuesAll = this.fieldsStore.getAllValues();\n var valuesAllSet = {};\n valuesAll[name] = value;\n Object.keys(valuesAll).forEach(function (key) {\n return (0, _set2['default'])(valuesAllSet, key, valuesAll[key]);\n });\n onValuesChange((0, _extends6['default'])((0, _defineProperty3['default'])({}, formPropName, this.getForm()), this.props), (0, _set2['default'])({}, name, value), valuesAllSet);\n }\n var field = this.fieldsStore.getField(name);\n return { name: name, field: (0, _extends6['default'])({}, field, { value: value, touched: true }), fieldMeta: fieldMeta };\n },\n onCollect: function onCollect(name_, action) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var _onCollectCommon = this.onCollectCommon(name_, action, args),\n name = _onCollectCommon.name,\n field = _onCollectCommon.field,\n fieldMeta = _onCollectCommon.fieldMeta;\n\n var validate = fieldMeta.validate;\n\n\n this.fieldsStore.setFieldsAsDirty();\n\n var newField = (0, _extends6['default'])({}, field, {\n dirty: (0, _utils.hasRules)(validate)\n });\n this.setFields((0, _defineProperty3['default'])({}, name, newField));\n },\n onCollectValidate: function onCollectValidate(name_, action) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n var _onCollectCommon2 = this.onCollectCommon(name_, action, args),\n field = _onCollectCommon2.field,\n fieldMeta = _onCollectCommon2.fieldMeta;\n\n var newField = (0, _extends6['default'])({}, field, {\n dirty: true\n });\n\n this.fieldsStore.setFieldsAsDirty();\n\n this.validateFieldsInternal([newField], {\n action: action,\n options: {\n firstFields: !!fieldMeta.validateFirst\n }\n });\n },\n getCacheBind: function getCacheBind(name, action, fn) {\n if (!this.cachedBind[name]) {\n this.cachedBind[name] = {};\n }\n var cache = this.cachedBind[name];\n if (!cache[action] || cache[action].oriFn !== fn) {\n cache[action] = {\n fn: fn.bind(this, name, action),\n oriFn: fn\n };\n }\n return cache[action].fn;\n },\n getFieldDecorator: function getFieldDecorator(name, fieldOption) {\n var _this2 = this;\n\n var props = this.getFieldProps(name, fieldOption);\n return function (fieldElem) {\n // We should put field in record if it is rendered\n _this2.renderFields[name] = true;\n\n var fieldMeta = _this2.fieldsStore.getFieldMeta(name);\n var originalProps = fieldElem.props;\n if (process.env.NODE_ENV !== 'production') {\n var valuePropName = fieldMeta.valuePropName;\n (0, _warning2['default'])(!(valuePropName in originalProps), '`getFieldDecorator` will override `' + valuePropName + '`, ' + ('so please don\\'t set `' + valuePropName + '` directly ') + 'and use `setFieldsValue` to set it.');\n var defaultValuePropName = 'default' + valuePropName[0].toUpperCase() + valuePropName.slice(1);\n (0, _warning2['default'])(!(defaultValuePropName in originalProps), '`' + defaultValuePropName + '` is invalid ' + ('for `getFieldDecorator` will set `' + valuePropName + '`,') + ' please use `option.initialValue` instead.');\n }\n fieldMeta.originalProps = originalProps;\n fieldMeta.ref = fieldElem.ref;\n var decoratedFieldElem = _react2['default'].cloneElement(fieldElem, (0, _extends6['default'])({}, props, _this2.fieldsStore.getFieldValuePropValue(fieldMeta)));\n return (0, _utils.supportRef)(fieldElem) ? decoratedFieldElem : _react2['default'].createElement(\n _FieldElemWrapper2['default'],\n { name: name, form: _this2 },\n decoratedFieldElem\n );\n };\n },\n getFieldProps: function getFieldProps(name) {\n var _this3 = this;\n\n var usersFieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!name) {\n throw new Error('Must call `getFieldProps` with valid name string!');\n }\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2['default'])(this.fieldsStore.isValidNestedFieldName(name), 'One field name cannot be part of another, e.g. `a` and `a.b`. Check field: ' + name);\n (0, _warning2['default'])(!('exclusive' in usersFieldOption), '`option.exclusive` of `getFieldProps`|`getFieldDecorator` had been remove.');\n }\n\n delete this.clearedFieldMetaCache[name];\n\n var fieldOption = (0, _extends6['default'])({\n name: name,\n trigger: DEFAULT_TRIGGER,\n valuePropName: 'value',\n validate: []\n }, usersFieldOption);\n\n var rules = fieldOption.rules,\n trigger = fieldOption.trigger,\n _fieldOption$validate = fieldOption.validateTrigger,\n validateTrigger = _fieldOption$validate === undefined ? trigger : _fieldOption$validate,\n validate = fieldOption.validate;\n\n\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if ('initialValue' in fieldOption) {\n fieldMeta.initialValue = fieldOption.initialValue;\n }\n\n var inputProps = (0, _extends6['default'])({}, this.fieldsStore.getFieldValuePropValue(fieldOption), {\n ref: this.getCacheBind(name, name + '__ref', this.saveRef)\n });\n if (fieldNameProp) {\n inputProps[fieldNameProp] = formName ? formName + '_' + name : name;\n }\n\n var validateRules = (0, _utils.normalizeValidateRules)(validate, rules, validateTrigger);\n var validateTriggers = (0, _utils.getValidateTriggers)(validateRules);\n validateTriggers.forEach(function (action) {\n if (inputProps[action]) return;\n inputProps[action] = _this3.getCacheBind(name, action, _this3.onCollectValidate);\n });\n\n // make sure that the value will be collect\n if (trigger && validateTriggers.indexOf(trigger) === -1) {\n inputProps[trigger] = this.getCacheBind(name, trigger, this.onCollect);\n }\n\n var meta = (0, _extends6['default'])({}, fieldMeta, fieldOption, {\n validate: validateRules\n });\n this.fieldsStore.setFieldMeta(name, meta);\n if (fieldMetaProp) {\n inputProps[fieldMetaProp] = meta;\n }\n\n if (fieldDataProp) {\n inputProps[fieldDataProp] = this.fieldsStore.getField(name);\n }\n\n // This field is rendered, record it\n this.renderFields[name] = true;\n\n return inputProps;\n },\n getFieldInstance: function getFieldInstance(name) {\n return this.instances[name];\n },\n getRules: function getRules(fieldMeta, action) {\n var actionRules = fieldMeta.validate.filter(function (item) {\n return !action || item.trigger.indexOf(action) >= 0;\n }).map(function (item) {\n return item.rules;\n });\n return (0, _utils.flattenArray)(actionRules);\n },\n setFields: function setFields(maybeNestedFields, callback) {\n var _this4 = this;\n\n var fields = this.fieldsStore.flattenRegisteredFields(maybeNestedFields);\n this.fieldsStore.setFields(fields);\n if (onFieldsChange) {\n var changedFields = Object.keys(fields).reduce(function (acc, name) {\n return (0, _set2['default'])(acc, name, _this4.fieldsStore.getField(name));\n }, {});\n onFieldsChange((0, _extends6['default'])((0, _defineProperty3['default'])({}, formPropName, this.getForm()), this.props), changedFields, this.fieldsStore.getNestedAllFields());\n }\n this.forceUpdate(callback);\n },\n setFieldsValue: function setFieldsValue(changedValues, callback) {\n var fieldsMeta = this.fieldsStore.fieldsMeta;\n\n var values = this.fieldsStore.flattenRegisteredFields(changedValues);\n var newFields = Object.keys(values).reduce(function (acc, name) {\n var isRegistered = fieldsMeta[name];\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2['default'])(isRegistered, 'Cannot use `setFieldsValue` until ' + 'you use `getFieldDecorator` or `getFieldProps` to register it.');\n }\n if (isRegistered) {\n var value = values[name];\n acc[name] = {\n value: value\n };\n }\n return acc;\n }, {});\n this.setFields(newFields, callback);\n if (onValuesChange) {\n var allValues = this.fieldsStore.getAllValues();\n onValuesChange((0, _extends6['default'])((0, _defineProperty3['default'])({}, formPropName, this.getForm()), this.props), changedValues, allValues);\n }\n },\n saveRef: function saveRef(name, _, component) {\n if (!component) {\n var _fieldMeta = this.fieldsStore.getFieldMeta(name);\n if (!_fieldMeta.preserve) {\n // after destroy, delete data\n this.clearedFieldMetaCache[name] = {\n field: this.fieldsStore.getField(name),\n meta: _fieldMeta\n };\n this.clearField(name);\n }\n delete this.domFields[name];\n return;\n }\n this.domFields[name] = true;\n this.recoverClearedField(name);\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if (fieldMeta) {\n var ref = fieldMeta.ref;\n if (ref) {\n if (typeof ref === 'string') {\n throw new Error('can not set ref string for ' + name);\n } else if (typeof ref === 'function') {\n ref(component);\n } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {\n ref.current = component;\n }\n }\n }\n this.instances[name] = component;\n },\n cleanUpUselessFields: function cleanUpUselessFields() {\n var _this5 = this;\n\n var fieldList = this.fieldsStore.getAllFieldsName();\n var removedList = fieldList.filter(function (field) {\n var fieldMeta = _this5.fieldsStore.getFieldMeta(field);\n return !_this5.renderFields[field] && !_this5.domFields[field] && !fieldMeta.preserve;\n });\n if (removedList.length) {\n removedList.forEach(this.clearField);\n }\n this.renderFields = {};\n },\n clearField: function clearField(name) {\n this.fieldsStore.clearField(name);\n delete this.instances[name];\n delete this.cachedBind[name];\n },\n resetFields: function resetFields(ns) {\n var _this6 = this;\n\n var newFields = this.fieldsStore.resetFields(ns);\n if (Object.keys(newFields).length > 0) {\n this.setFields(newFields);\n }\n if (ns) {\n var names = Array.isArray(ns) ? ns : [ns];\n names.forEach(function (name) {\n return delete _this6.clearedFieldMetaCache[name];\n });\n } else {\n this.clearedFieldMetaCache = {};\n }\n },\n recoverClearedField: function recoverClearedField(name) {\n if (this.clearedFieldMetaCache[name]) {\n this.fieldsStore.setFields((0, _defineProperty3['default'])({}, name, this.clearedFieldMetaCache[name].field));\n this.fieldsStore.setFieldMeta(name, this.clearedFieldMetaCache[name].meta);\n delete this.clearedFieldMetaCache[name];\n }\n },\n validateFieldsInternal: function validateFieldsInternal(fields, _ref, callback) {\n var _this7 = this;\n\n var fieldNames = _ref.fieldNames,\n action = _ref.action,\n _ref$options = _ref.options,\n options = _ref$options === undefined ? {} : _ref$options;\n\n var allRules = {};\n var allValues = {};\n var allFields = {};\n var alreadyErrors = {};\n fields.forEach(function (field) {\n var name = field.name;\n if (options.force !== true && field.dirty === false) {\n if (field.errors) {\n (0, _set2['default'])(alreadyErrors, name, { errors: field.errors });\n }\n return;\n }\n var fieldMeta = _this7.fieldsStore.getFieldMeta(name);\n var newField = (0, _extends6['default'])({}, field);\n newField.errors = undefined;\n newField.validating = true;\n newField.dirty = true;\n allRules[name] = _this7.getRules(fieldMeta, action);\n allValues[name] = newField.value;\n allFields[name] = newField;\n });\n this.setFields(allFields);\n // in case normalize\n Object.keys(allValues).forEach(function (f) {\n allValues[f] = _this7.fieldsStore.getFieldValue(f);\n });\n if (callback && (0, _utils.isEmptyObject)(allFields)) {\n callback((0, _utils.isEmptyObject)(alreadyErrors) ? null : alreadyErrors, this.fieldsStore.getFieldsValue(fieldNames));\n return;\n }\n var validator = new _asyncValidator2['default'](allRules);\n if (validateMessages) {\n validator.messages(validateMessages);\n }\n validator.validate(allValues, options, function (errors) {\n var errorsGroup = (0, _extends6['default'])({}, alreadyErrors);\n if (errors && errors.length) {\n errors.forEach(function (e) {\n var errorFieldName = e.field;\n var fieldName = errorFieldName;\n\n // Handle using array validation rule.\n // ref: https://github.com/ant-design/ant-design/issues/14275\n Object.keys(allRules).some(function (ruleFieldName) {\n var rules = allRules[ruleFieldName] || [];\n\n // Exist if match rule\n if (ruleFieldName === errorFieldName) {\n fieldName = ruleFieldName;\n return true;\n }\n\n // Skip if not match array type\n if (rules.every(function (_ref2) {\n var type = _ref2.type;\n return type !== 'array';\n }) || errorFieldName.indexOf(ruleFieldName + '.') !== 0) {\n return false;\n }\n\n // Exist if match the field name\n var restPath = errorFieldName.slice(ruleFieldName.length + 1);\n if (/^\\d+$/.test(restPath)) {\n fieldName = ruleFieldName;\n return true;\n }\n\n return false;\n });\n\n var field = (0, _get2['default'])(errorsGroup, fieldName);\n if (typeof field !== 'object' || Array.isArray(field)) {\n (0, _set2['default'])(errorsGroup, fieldName, { errors: [] });\n }\n var fieldErrors = (0, _get2['default'])(errorsGroup, fieldName.concat('.errors'));\n fieldErrors.push(e);\n });\n }\n var expired = [];\n var nowAllFields = {};\n Object.keys(allRules).forEach(function (name) {\n var fieldErrors = (0, _get2['default'])(errorsGroup, name);\n var nowField = _this7.fieldsStore.getField(name);\n // avoid concurrency problems\n if (!(0, _eq2['default'])(nowField.value, allValues[name])) {\n expired.push({\n name: name\n });\n } else {\n nowField.errors = fieldErrors && fieldErrors.errors;\n nowField.value = allValues[name];\n nowField.validating = false;\n nowField.dirty = false;\n nowAllFields[name] = nowField;\n }\n });\n _this7.setFields(nowAllFields);\n if (callback) {\n if (expired.length) {\n expired.forEach(function (_ref3) {\n var name = _ref3.name;\n\n var fieldErrors = [{\n message: name + ' need to revalidate',\n field: name\n }];\n (0, _set2['default'])(errorsGroup, name, {\n expired: true,\n errors: fieldErrors\n });\n });\n }\n\n callback((0, _utils.isEmptyObject)(errorsGroup) ? null : errorsGroup, _this7.fieldsStore.getFieldsValue(fieldNames));\n }\n });\n },\n validateFields: function validateFields(ns, opt, cb) {\n var _this8 = this;\n\n var pending = new Promise(function (resolve, reject) {\n var _getParams = (0, _utils.getParams)(ns, opt, cb),\n names = _getParams.names,\n options = _getParams.options;\n\n var _getParams2 = (0, _utils.getParams)(ns, opt, cb),\n callback = _getParams2.callback;\n\n if (!callback || typeof callback === 'function') {\n var oldCb = callback;\n callback = function callback(errors, values) {\n if (oldCb) {\n oldCb(errors, values);\n }\n if (errors) {\n reject({ errors: errors, values: values });\n } else {\n resolve(values);\n }\n };\n }\n var fieldNames = names ? _this8.fieldsStore.getValidFieldsFullName(names) : _this8.fieldsStore.getValidFieldsName();\n var fields = fieldNames.filter(function (name) {\n var fieldMeta = _this8.fieldsStore.getFieldMeta(name);\n return (0, _utils.hasRules)(fieldMeta.validate);\n }).map(function (name) {\n var field = _this8.fieldsStore.getField(name);\n field.value = _this8.fieldsStore.getFieldValue(name);\n return field;\n });\n if (!fields.length) {\n callback(null, _this8.fieldsStore.getFieldsValue(fieldNames));\n return;\n }\n if (!('firstFields' in options)) {\n options.firstFields = fieldNames.filter(function (name) {\n var fieldMeta = _this8.fieldsStore.getFieldMeta(name);\n return !!fieldMeta.validateFirst;\n });\n }\n _this8.validateFieldsInternal(fields, {\n fieldNames: fieldNames,\n options: options\n }, callback);\n });\n pending['catch'](function (e) {\n // eslint-disable-next-line no-console\n if (console.error && process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return e;\n });\n return pending;\n },\n isSubmitting: function isSubmitting() {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n (0, _warning2['default'])(false, '`isSubmitting` is deprecated. ' + \"Actually, it's more convenient to handle submitting status by yourself.\");\n }\n return this.state.submitting;\n },\n submit: function submit(callback) {\n var _this9 = this;\n\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n (0, _warning2['default'])(false, '`submit` is deprecated. ' + \"Actually, it's more convenient to handle submitting status by yourself.\");\n }\n var fn = function fn() {\n _this9.setState({\n submitting: false\n });\n };\n this.setState({\n submitting: true\n });\n callback(fn);\n },\n render: function render() {\n var _props = this.props,\n wrappedComponentRef = _props.wrappedComponentRef,\n restProps = (0, _objectWithoutProperties3['default'])(_props, ['wrappedComponentRef']); // eslint-disable-line\n\n var formProps = (0, _defineProperty3['default'])({}, formPropName, this.getForm());\n if (withRef) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n (0, _warning2['default'])(false, '`withRef` is deprecated, please use `wrappedComponentRef` instead. ' + 'See: https://github.com/react-component/form#note-use-wrappedcomponentref-instead-of-withref-after-rc-form140');\n }\n formProps.ref = 'wrappedComponent';\n } else if (wrappedComponentRef) {\n formProps.ref = wrappedComponentRef;\n }\n var props = mapProps.call(this, (0, _extends6['default'])({}, formProps, restProps));\n return _react2['default'].createElement(WrappedComponent, props);\n }\n });\n\n return (0, _utils.argumentContainer)((0, _unsafeLifecyclesPolyfill2['default'])(Form), WrappedComponent);\n };\n}\n\nexports['default'] = createBaseForm;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/**\n * Rule for validating required fields.\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 */\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || util.isEmptyValue(value, type || rule.type))) {\n errors.push(util.format(options.messages.required, rule.fullField));\n }\n}\n\nexports['default'] = required;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require(\"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require(\"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nexports.isFormField = isFormField;\nexports[\"default\"] = createFormField;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Field = function Field(fields) {\n (0, _classCallCheck3[\"default\"])(this, Field);\n\n (0, _extends3[\"default\"])(this, fields);\n};\n\nfunction isFormField(obj) {\n return obj instanceof Field;\n}\n\nfunction createFormField(field) {\n if (isFormField(field)) {\n return field;\n }\n return new Field(field);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FIELD_DATA_PROP = exports.FIELD_META_PROP = void 0;\nvar FIELD_META_PROP = 'data-__meta';\nexports.FIELD_META_PROP = FIELD_META_PROP;\nvar FIELD_DATA_PROP = 'data-__field';\nexports.FIELD_DATA_PROP = FIELD_DATA_PROP;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar FormContext = (0, _createReactContext[\"default\"])({\n labelAlign: 'right',\n vertical: false\n});\nvar _default = FormContext;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasPrefixSuffix = hasPrefixSuffix;\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _type = require(\"../_util/type\");\n\nvar _Input = require(\"./Input\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ClearableInputType = (0, _type.tuple)('text', 'input');\n\nfunction hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\n\nvar ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n _inherits(ClearableLabeledInput, _React$Component);\n\n var _super = _createSuper(ClearableLabeledInput);\n\n function ClearableLabeledInput() {\n _classCallCheck(this, ClearableLabeledInput);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n var _this$props = this.props,\n allowClear = _this$props.allowClear,\n value = _this$props.value,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n inputType = _this$props.inputType,\n handleReset = _this$props.handleReset;\n\n if (!allowClear || disabled || readOnly || value === undefined || value === null || value === '') {\n return null;\n }\n\n var className = inputType === ClearableInputType[0] ? \"\".concat(prefixCls, \"-textarea-clear-icon\") : \"\".concat(prefixCls, \"-clear-icon\");\n return /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"close-circle\",\n theme: \"filled\",\n onClick: handleReset,\n className: className,\n role: \"button\"\n });\n }\n }, {\n key: \"renderSuffix\",\n value: function renderSuffix(prefixCls) {\n var _this$props2 = this.props,\n suffix = _this$props2.suffix,\n allowClear = _this$props2.allowClear;\n\n if (suffix || allowClear) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, this.renderClearIcon(prefixCls), suffix);\n }\n\n return null;\n }\n }, {\n key: \"renderLabeledIcon\",\n value: function renderLabeledIcon(prefixCls, element) {\n var _classNames;\n\n var props = this.props;\n var suffix = this.renderSuffix(prefixCls);\n\n if (!hasPrefixSuffix(props)) {\n return /*#__PURE__*/React.cloneElement(element, {\n value: props.value\n });\n }\n\n var prefix = props.prefix ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, props.prefix) : null;\n var affixWrapperCls = (0, _classnames[\"default\"])(props.className, \"\".concat(prefixCls, \"-affix-wrapper\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), props.size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-affix-wrapper-lg\"), props.size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-affix-wrapper-input-with-clear-btn\"), props.suffix && props.allowClear && this.props.value), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: props.style\n }, prefix, /*#__PURE__*/React.cloneElement(element, {\n style: null,\n value: props.value,\n className: (0, _Input.getInputClassName)(prefixCls, props.size, props.disabled)\n }), suffix);\n }\n }, {\n key: \"renderInputWithLabel\",\n value: function renderInputWithLabel(prefixCls, labeledElement) {\n var _classNames3;\n\n var _this$props3 = this.props,\n addonBefore = _this$props3.addonBefore,\n addonAfter = _this$props3.addonAfter,\n style = _this$props3.style,\n size = _this$props3.size,\n className = _this$props3.className; // Not wrap when there is not addons\n\n if (!addonBefore && !addonAfter) {\n return labeledElement;\n }\n\n var wrapperClassName = \"\".concat(prefixCls, \"-group\");\n var addonClassName = \"\".concat(wrapperClassName, \"-addon\");\n var addonBeforeNode = addonBefore ? /*#__PURE__*/React.createElement(\"span\", {\n className: addonClassName\n }, addonBefore) : null;\n var addonAfterNode = addonAfter ? /*#__PURE__*/React.createElement(\"span\", {\n className: addonClassName\n }, addonAfter) : null;\n var mergedWrapperClassName = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, wrapperClassName, addonBefore || addonAfter));\n var mergedGroupClassName = (0, _classnames[\"default\"])(className, \"\".concat(prefixCls, \"-group-wrapper\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-group-wrapper-sm\"), size === 'small'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-group-wrapper-lg\"), size === 'large'), _classNames3)); // 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 }, /*#__PURE__*/React.createElement(\"span\", {\n className: mergedWrapperClassName\n }, addonBeforeNode, /*#__PURE__*/React.cloneElement(labeledElement, {\n style: null\n }), addonAfterNode));\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element) {\n var _this$props4 = this.props,\n value = _this$props4.value,\n allowClear = _this$props4.allowClear,\n className = _this$props4.className,\n style = _this$props4.style;\n\n if (!allowClear) {\n return /*#__PURE__*/React.cloneElement(element, {\n value: value\n });\n }\n\n var affixWrapperCls = (0, _classnames[\"default\"])(className, \"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style\n }, /*#__PURE__*/React.cloneElement(element, {\n style: null,\n value: value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"renderClearableLabeledInput\",\n value: function renderClearableLabeledInput() {\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n inputType = _this$props5.inputType,\n element = _this$props5.element;\n\n if (inputType === ClearableInputType[0]) {\n return this.renderTextAreaWithClearIcon(prefixCls, element);\n }\n\n return this.renderInputWithLabel(prefixCls, this.renderLabeledIcon(prefixCls, element));\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.renderClearableLabeledInput();\n }\n }]);\n\n return ClearableLabeledInput;\n}(React.Component);\n\n(0, _reactLifecyclesCompat.polyfill)(ClearableLabeledInput);\nvar _default = ClearableLabeledInput;\nexports[\"default\"] = _default;","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BorderSpinner = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst BorderSpinner = (_a) => {\n var divProps = __rest(_a, []);\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(\"style\", null, `\n .rsme-spinner {\n border: 3px solid rgba(0,0,0,0.75);\n border-right-color: transparent;\n border-radius: 50%;\n animation: rsme-spin 1s linear infinite;\n }\n @keyframes rsme-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n } \n `),\n react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-spinner', divProps.className), style: Object.assign({ width: 10, height: 10 }, divProps.style) }))));\n};\nexports.BorderSpinner = BorderSpinner;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst React = __importStar(require(\"react\"));\nconst react_twitter_embed_1 = require(\"react-twitter-embed\");\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst minPlaceholderWidth = 250;\nconst maxPlaceholderWidth = 550;\nconst defaultPlaceholderHeight = 350;\nconst borderRadius = 12;\nconst XEmbed = (_a) => {\n var _b, _c;\n var { url, width, height, linkText = 'View post on X', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled, twitterTweetEmbedProps } = _a, divProps = __rest(_a, [\"url\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\", \"twitterTweetEmbedProps\"]);\n const postId = url.substring(url.lastIndexOf('/') + 1).replace(/[?].*$/, '');\n const isPercentageWidth = !!(width === null || width === void 0 ? void 0 : width.toString().includes('%'));\n const isPercentageHeight = !!(height === null || height === void 0 ? void 0 : height.toString().includes('%'));\n // === Placeholder ===\n const placeholderStyle = {\n minWidth: minPlaceholderWidth,\n maxWidth: maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? (isPercentageWidth ? '100%' : width) : '100%',\n height: isPercentageHeight\n ? '100%'\n : typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: 'solid 1px #c9d4d9',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (React.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (React.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-twitter-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n React.createElement(EmbedStyle_1.EmbedStyle, null),\n React.createElement(react_twitter_embed_1.TwitterTweetEmbed, Object.assign({ tweetId: postId, placeholder: placeholderDisabled ? undefined : placeholder }, twitterTweetEmbedProps))));\n};\nexports.XEmbed = XEmbed;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _Modal = _interopRequireWildcard(require(\"./Modal\"));\n\nvar _confirm = _interopRequireDefault(require(\"./confirm\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction modalWarn(props) {\n var config = _extends({\n type: 'warning',\n icon: /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"exclamation-circle\"\n }),\n okCancel: false\n }, props);\n\n return (0, _confirm[\"default\"])(config);\n}\n\n_Modal[\"default\"].info = function infoFn(props) {\n var config = _extends({\n type: 'info',\n icon: /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"info-circle\"\n }),\n okCancel: false\n }, props);\n\n return (0, _confirm[\"default\"])(config);\n};\n\n_Modal[\"default\"].success = function successFn(props) {\n var config = _extends({\n type: 'success',\n icon: /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"check-circle\"\n }),\n okCancel: false\n }, props);\n\n return (0, _confirm[\"default\"])(config);\n};\n\n_Modal[\"default\"].error = function errorFn(props) {\n var config = _extends({\n type: 'error',\n icon: /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"close-circle\"\n }),\n okCancel: false\n }, props);\n\n return (0, _confirm[\"default\"])(config);\n};\n\n_Modal[\"default\"].warning = modalWarn;\n_Modal[\"default\"].warn = modalWarn;\n\n_Modal[\"default\"].confirm = function confirmFn(props) {\n var config = _extends({\n type: 'confirm',\n okCancel: true\n }, props);\n\n return (0, _confirm[\"default\"])(config);\n};\n\n_Modal[\"default\"].destroyAll = function destroyAllFn() {\n while (_Modal.destroyFns.length) {\n var close = _Modal.destroyFns.pop();\n\n if (close) {\n close();\n }\n }\n};\n\nvar _default = _Modal[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.destroyFns = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcDialog = _interopRequireDefault(require(\"rc-dialog\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _addEventListener = _interopRequireDefault(require(\"rc-util/lib/Dom/addEventListener\"));\n\nvar _locale = require(\"./locale\");\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _button = _interopRequireDefault(require(\"../button\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar mousePosition;\nvar destroyFns = []; // ref: https://github.com/ant-design/ant-design/issues/15795\n\nexports.destroyFns = destroyFns;\n\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n }; // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n\n setTimeout(function () {\n return mousePosition = null;\n }, 100);\n}; // 只有点击事件支持从鼠标位置动画展开\n\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n (0, _addEventListener[\"default\"])(document.documentElement, 'click', getClickPosition);\n}\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n var _super = _createSuper(Modal);\n\n function Modal() {\n var _this;\n\n _classCallCheck(this, Modal);\n\n _this = _super.apply(this, arguments);\n\n _this.handleCancel = function (e) {\n var onCancel = _this.props.onCancel;\n\n if (onCancel) {\n onCancel(e);\n }\n };\n\n _this.handleOk = function (e) {\n var onOk = _this.props.onOk;\n\n if (onOk) {\n onOk(e);\n }\n };\n\n _this.renderFooter = function (locale) {\n var _this$props = _this.props,\n okText = _this$props.okText,\n okType = _this$props.okType,\n cancelText = _this$props.cancelText,\n confirmLoading = _this$props.confirmLoading;\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(_button[\"default\"], _extends({\n onClick: _this.handleCancel\n }, _this.props.cancelButtonProps), cancelText || locale.cancelText), /*#__PURE__*/React.createElement(_button[\"default\"], _extends({\n type: okType,\n loading: confirmLoading,\n onClick: _this.handleOk\n }, _this.props.okButtonProps), okText || locale.okText));\n };\n\n _this.renderModal = function (_ref) {\n var getContextPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n footer = _a.footer,\n visible = _a.visible,\n wrapClassName = _a.wrapClassName,\n centered = _a.centered,\n getContainer = _a.getContainer,\n closeIcon = _a.closeIcon,\n restProps = __rest(_a, [\"prefixCls\", \"footer\", \"visible\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\"]);\n\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var defaultFooter = /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], {\n componentName: \"Modal\",\n defaultLocale: (0, _locale.getConfirmLocale)()\n }, _this.renderFooter);\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n type: \"close\"\n }));\n return /*#__PURE__*/React.createElement(_rcDialog[\"default\"], _extends({}, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: (0, _classnames[\"default\"])(_defineProperty({}, \"\".concat(prefixCls, \"-centered\"), !!centered), wrapClassName),\n footer: footer === undefined ? defaultFooter : footer,\n visible: visible,\n mousePosition: mousePosition,\n onClose: _this.handleCancel,\n closeIcon: closeIconToRender\n }));\n };\n\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderModal);\n }\n }]);\n\n return Modal;\n}(React.Component);\n\nexports[\"default\"] = Modal;\nModal.defaultProps = {\n width: 520,\n transitionName: 'zoom',\n maskTransitionName: 'fade',\n confirmLoading: false,\n visible: false,\n okType: 'primary'\n};\nModal.propTypes = {\n prefixCls: PropTypes.string,\n onOk: PropTypes.func,\n onCancel: PropTypes.func,\n okText: PropTypes.node,\n cancelText: PropTypes.node,\n centered: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n confirmLoading: PropTypes.bool,\n visible: PropTypes.bool,\n footer: PropTypes.node,\n title: PropTypes.node,\n closable: PropTypes.bool,\n closeIcon: PropTypes.node\n};","\"use strict\";function insertRule(e){try{return sheet.insertRule(e,sheet.cssRules.length)}catch(e){console.warn(\"react-reveal - animation failed\")}}function cascade(e,n,t,o,r){var s=Math.log(o),i=Math.log(r),a=(i-s)/(t-n);return Math.exp(s+a*(e-n))}function animation(e){if(!sheet)return\"\";var n=\"@keyframes \"+(name+counter)+\"{\"+e+\"}\",t=effectMap[e];return t?\"\"+name+t:(sheet.insertRule(n,sheet.cssRules.length),effectMap[e]=counter,\"\"+name+counter++)}function hideAll(){globalHide||(exports.globalHide=globalHide=!0,window.removeEventListener(\"scroll\",hideAll,!0),insertRule(\".\"+namespace+\" { opacity: 0; }\"),window.removeEventListener(\"orientationchange\",hideAll,!0),window.document.removeEventListener(\"visibilitychange\",hideAll))}function config(e){var n=e.ssrFadeout;exports.fadeOutEnabled=fadeOutEnabled=n}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.insertRule=insertRule,exports.cascade=cascade,exports.animation=animation,exports.hideAll=hideAll,exports.default=config;var namespace=exports.namespace=\"react-reveal\",defaults=exports.defaults={duration:1e3,delay:0,count:1},ssr=exports.ssr=!0,observerMode=exports.observerMode=!1,raf=exports.raf=function(e){return window.setTimeout(e,66)},disableSsr=exports.disableSsr=function(){return exports.ssr=ssr=!1},fadeOutEnabled=exports.fadeOutEnabled=!1,ssrFadeout=exports.ssrFadeout=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_ko=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var d=_(e),t={name:\"ko\",weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),ordinal:function(e){return e+\"일\"},formats:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 A h:mm\",LLLL:\"YYYY년 MMMM D일 dddd A h:mm\",l:\"YYYY.MM.DD.\",ll:\"YYYY년 MMMM D일\",lll:\"YYYY년 MMMM D일 A h:mm\",llll:\"YYYY년 MMMM D일 dddd A h:mm\"},meridiem:function(e){return e<12?\"오전\":\"오후\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇 초\",m:\"1분\",mm:\"%d분\",h:\"한 시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한 달\",MM:\"%d달\",y:\"일 년\",yy:\"%d년\"}};return d.default.locale(t,null,!0),t}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getScroll;\n\nfunction getScroll(target, top) {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n var prop = top ? 'pageYOffset' : 'pageXOffset';\n var method = top ? 'scrollTop' : 'scrollLeft';\n var isWindow = target === window;\n var ret = isWindow ? target[prop] : target[method]; // ie6,7,8 standard mode\n\n if (isWindow && typeof ret !== 'number') {\n ret = document.documentElement[method];\n }\n\n return ret;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.targetFrameTime = exports.snowfallBaseStyle = void 0;\nvar snowfallBaseStyle = {\n pointerEvents: 'none',\n backgroundColor: 'transparent',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%'\n}; // Target of 60 frames per second\n\nexports.snowfallBaseStyle = snowfallBaseStyle;\nvar targetFrameTime = 1000 / 60;\nexports.targetFrameTime = targetFrameTime;\n//# sourceMappingURL=config.js.map","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultConfig = exports[\"default\"] = void 0;\n\nvar _reactFastCompare = _interopRequireDefault(require(\"react-fast-compare\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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\nvar defaultConfig = {\n color: '#dee4fd',\n radius: [0.5, 3.0],\n speed: [1.0, 3.0],\n wind: [-0.5, 2.0],\n changeFrequency: 200,\n rotationSpeed: [-1.0, 1.0]\n};\nexports.defaultConfig = defaultConfig;\n\n/**\r\n * An individual snowflake that will update it's location every call to `update`\r\n * and draw itself to the canvas every call to `draw`.\r\n */\nvar Snowflake = /*#__PURE__*/function () {\n function Snowflake(canvas) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Snowflake);\n\n _defineProperty(this, \"config\", void 0);\n\n _defineProperty(this, \"params\", void 0);\n\n _defineProperty(this, \"framesSinceLastUpdate\", void 0);\n\n _defineProperty(this, \"image\", void 0);\n\n // Set custom config\n this.updateConfig(config); // Setting initial parameters\n\n var _this$config = this.config,\n radius = _this$config.radius,\n wind = _this$config.wind,\n speed = _this$config.speed,\n rotationSpeed = _this$config.rotationSpeed;\n this.params = {\n x: (0, _utils.random)(0, canvas.offsetWidth),\n y: (0, _utils.random)(-canvas.offsetHeight, 0),\n rotation: (0, _utils.random)(0, 360),\n radius: _utils.random.apply(void 0, _toConsumableArray(radius)),\n speed: _utils.random.apply(void 0, _toConsumableArray(speed)),\n wind: _utils.random.apply(void 0, _toConsumableArray(wind)),\n rotationSpeed: _utils.random.apply(void 0, _toConsumableArray(rotationSpeed)),\n nextSpeed: _utils.random.apply(void 0, _toConsumableArray(wind)),\n nextWind: _utils.random.apply(void 0, _toConsumableArray(speed)),\n nextRotationSpeed: _utils.random.apply(void 0, _toConsumableArray(rotationSpeed))\n };\n this.framesSinceLastUpdate = 0;\n }\n\n _createClass(Snowflake, [{\n key: \"selectImage\",\n value: function selectImage() {\n if (this.config.images && this.config.images.length > 0) {\n this.image = (0, _utils.randomElement)(this.config.images);\n } else {\n this.image = undefined;\n }\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {\n var previousConfig = this.config;\n this.config = _objectSpread(_objectSpread({}, defaultConfig), config);\n this.config.changeFrequency = (0, _utils.random)(this.config.changeFrequency, this.config.changeFrequency * 1.5); // Update the radius if the config has changed, it won't gradually update on it's own\n\n if (this.params && !(0, _reactFastCompare[\"default\"])(this.config.radius, previousConfig === null || previousConfig === void 0 ? void 0 : previousConfig.radius)) {\n this.params.radius = _utils.random.apply(void 0, _toConsumableArray(this.config.radius));\n }\n\n if (!(0, _reactFastCompare[\"default\"])(this.config.images, previousConfig === null || previousConfig === void 0 ? void 0 : previousConfig.images)) {\n this.selectImage();\n }\n }\n }, {\n key: \"updateTargetParams\",\n value: function updateTargetParams() {\n this.params.nextSpeed = _utils.random.apply(void 0, _toConsumableArray(this.config.speed));\n this.params.nextWind = _utils.random.apply(void 0, _toConsumableArray(this.config.wind));\n\n if (this.image) {\n this.params.nextRotationSpeed = _utils.random.apply(void 0, _toConsumableArray(this.config.rotationSpeed));\n }\n }\n }, {\n key: \"update\",\n value: function update(canvas) {\n var framesPassed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var _this$params = this.params,\n x = _this$params.x,\n y = _this$params.y,\n rotation = _this$params.rotation,\n rotationSpeed = _this$params.rotationSpeed,\n nextRotationSpeed = _this$params.nextRotationSpeed,\n wind = _this$params.wind,\n speed = _this$params.speed,\n nextWind = _this$params.nextWind,\n nextSpeed = _this$params.nextSpeed,\n radius = _this$params.radius; // Update current location, wrapping around if going off the canvas\n\n this.params.x = (x + wind * framesPassed) % (canvas.offsetWidth + radius * 2);\n if (this.params.x > canvas.offsetWidth + radius) this.params.x = -radius;\n this.params.y = (y + speed * framesPassed) % (canvas.offsetHeight + radius * 2);\n if (this.params.y > canvas.offsetHeight + radius) this.params.y = -radius; // Apply rotation\n\n if (this.image) {\n this.params.rotation = (rotation + rotationSpeed) % 360;\n } // Update the wind, speed and rotation towards the desired values\n\n\n this.params.speed = (0, _utils.lerp)(speed, nextSpeed, 0.01);\n this.params.wind = (0, _utils.lerp)(wind, nextWind, 0.01);\n this.params.rotationSpeed = (0, _utils.lerp)(rotationSpeed, nextRotationSpeed, 0.01);\n\n if (this.framesSinceLastUpdate++ > this.config.changeFrequency) {\n this.updateTargetParams();\n this.framesSinceLastUpdate = 0;\n }\n }\n }, {\n key: \"getImageOffscreenCanvas\",\n value: function getImageOffscreenCanvas(image, size) {\n var _sizes$size;\n\n if (image instanceof HTMLImageElement && image.loading) return image;\n var sizes = Snowflake.offscreenCanvases.get(image);\n\n if (!sizes) {\n sizes = {};\n Snowflake.offscreenCanvases.set(image, sizes);\n }\n\n if (!(size in sizes)) {\n var _canvas$getContext;\n\n var canvas = document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n (_canvas$getContext = canvas.getContext('2d')) === null || _canvas$getContext === void 0 ? void 0 : _canvas$getContext.drawImage(image, 0, 0, size, size);\n sizes[size] = canvas;\n }\n\n return (_sizes$size = sizes[size]) !== null && _sizes$size !== void 0 ? _sizes$size : image;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n if (this.image) {\n // ctx.save()\n // ctx.translate(this.params.x, this.params.y)\n ctx.setTransform(1, 0, 0, 1, this.params.x, this.params.y);\n var radius = Math.ceil(this.params.radius);\n ctx.rotate(this.params.rotation * Math.PI / 180);\n ctx.drawImage(this.getImageOffscreenCanvas(this.image, radius), -Math.ceil(radius / 2), -Math.ceil(radius / 2), radius, radius); // ctx.restore()\n } else {\n ctx.beginPath();\n ctx.arc(this.params.x, this.params.y, this.params.radius, 0, 2 * Math.PI);\n ctx.fillStyle = this.config.color;\n ctx.closePath();\n ctx.fill();\n }\n }\n }]);\n\n return Snowflake;\n}();\n\n_defineProperty(Snowflake, \"offscreenCanvases\", new WeakMap());\n\nvar _default = Snowflake;\nexports[\"default\"] = _default;\n//# sourceMappingURL=Snowflake.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSize = getSize;\nexports.lerp = lerp;\nexports.random = random;\nexports.randomElement = randomElement;\n\n/**\r\n * Enhanced random function, selects a random value between a minimum and maximum. If the values provided are both\r\n * integers then the number returned will be an integer, otherwise the return number will be a decimal.\r\n * @param min The minimum value\r\n * @param max The maximum value\r\n */\nfunction random(min, max) {\n var randomNumber = Math.random() * (max - min + 1) + min;\n\n if (!Number.isInteger(min) || !Number.isInteger(max)) {\n return randomNumber;\n } else {\n return Math.floor(randomNumber);\n }\n}\n/**\r\n * Linear interpolation function to gradually step towards a target value\r\n * @param start The current value\r\n * @param end The target value\r\n * @param normal The rate of change between 0 and 1 (0 = no change, 1 = instant)\r\n */\n\n\nfunction lerp(start, end, normal) {\n return (1 - normal) * start + normal * end;\n}\n/**\r\n * Gets the height and width of the provided HTML element\r\n * @param element The html element to measure\r\n */\n\n\nfunction getSize(element) {\n if (!element) return {\n height: 0,\n width: 0\n };\n return {\n height: element.offsetHeight,\n width: element.offsetWidth\n };\n}\n/**\r\n * Selects a random item from an array of inputs.\r\n *\r\n * @param items The array of items to choose from\r\n * @returns A random item selected from the array\r\n */\n\n\nfunction randomElement(items) {\n var index = Math.floor(Math.random() * items.length);\n return items[index];\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.LayoutContext = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar LayoutContext = (0, _createReactContext[\"default\"])({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\nexports.LayoutContext = LayoutContext;\n\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var _a;\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(Adapter, _React$Component);\n\n var _super = _createSuper(Adapter);\n\n function Adapter() {\n var _this;\n\n _classCallCheck(this, Adapter);\n\n _this = _super.apply(this, arguments);\n\n _this.renderComponent = function (_ref2) {\n var getPrefixCls = _ref2.getPrefixCls;\n var customizePrefixCls = _this.props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n prefixCls: prefixCls,\n tagName: tagName\n }, _this.props));\n };\n\n return _this;\n }\n\n _createClass(Adapter, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderComponent);\n }\n }]);\n\n return Adapter;\n }(React.Component), _a.displayName = displayName, _a;\n };\n}\n\nvar Basic = function Basic(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n\n var classString = (0, _classnames[\"default\"])(className, prefixCls);\n return /*#__PURE__*/React.createElement(tagName, _extends({\n className: classString\n }, others), children);\n};\n\nvar BasicLayout = /*#__PURE__*/function (_React$Component2) {\n _inherits(BasicLayout, _React$Component2);\n\n var _super2 = _createSuper(BasicLayout);\n\n function BasicLayout() {\n var _this2;\n\n _classCallCheck(this, BasicLayout);\n\n _this2 = _super2.apply(this, arguments);\n _this2.state = {\n siders: []\n };\n return _this2;\n }\n\n _createClass(BasicLayout, [{\n key: \"getSiderHook\",\n value: function getSiderHook() {\n var _this3 = this;\n\n return {\n addSider: function addSider(id) {\n _this3.setState(function (state) {\n return {\n siders: [].concat(_toConsumableArray(state.siders), [id])\n };\n });\n },\n removeSider: function removeSider(id) {\n _this3.setState(function (state) {\n return {\n siders: state.siders.filter(function (currentId) {\n return currentId !== id;\n })\n };\n });\n }\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _a = this.props,\n prefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n hasSider = _a.hasSider,\n Tag = _a.tagName,\n others = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n\n var classString = (0, _classnames[\"default\"])(className, prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : this.state.siders.length > 0));\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: {\n siderHook: this.getSiderHook()\n }\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n className: classString\n }, others), children));\n }\n }]);\n\n return BasicLayout;\n}(React.Component);\n\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nLayout.Header = Header;\nLayout.Footer = Footer;\nLayout.Content = Content;\nvar _default = Layout;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ko_KR = _interopRequireDefault(require(\"rc-calendar/lib/locale/ko_KR\"));\n\nvar _ko_KR2 = _interopRequireDefault(require(\"../../time-picker/locale/ko_KR\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: '날짜 선택',\n rangePlaceholder: ['시작일', '종료일']\n }, _ko_KR[\"default\"]),\n timePickerLocale: _extends({}, _ko_KR2[\"default\"])\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n placeholder: '날짜 선택'\n};\nvar _default = locale;\nexports[\"default\"] = _default;","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport shallowEqual from 'shallowequal';\n\nvar PanelContent = function (_Component) {\n _inherits(PanelContent, _Component);\n\n function PanelContent() {\n _classCallCheck(this, PanelContent);\n\n return _possibleConstructorReturn(this, (PanelContent.__proto__ || Object.getPrototypeOf(PanelContent)).apply(this, arguments));\n }\n\n _createClass(PanelContent, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return this.props.forceRender || !shallowEqual(this.props, nextProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n this._isActived = this.props.forceRender || this._isActived || this.props.isActive;\n if (!this._isActived) {\n return null;\n }\n var _props = this.props,\n prefixCls = _props.prefixCls,\n isActive = _props.isActive,\n children = _props.children,\n destroyInactivePanel = _props.destroyInactivePanel,\n forceRender = _props.forceRender,\n role = _props.role;\n\n var contentCls = classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-content', true), _defineProperty(_classnames, prefixCls + '-content-active', isActive), _defineProperty(_classnames, prefixCls + '-content-inactive', !isActive), _classnames));\n var child = !forceRender && !isActive && destroyInactivePanel ? null : React.createElement(\n 'div',\n { className: prefixCls + '-content-box' },\n children\n );\n return React.createElement(\n 'div',\n {\n className: contentCls,\n role: role\n },\n child\n );\n }\n }]);\n\n return PanelContent;\n}(Component);\n\nPanelContent.propTypes = {\n prefixCls: PropTypes.string,\n isActive: PropTypes.bool,\n children: PropTypes.any,\n destroyInactivePanel: PropTypes.bool,\n forceRender: PropTypes.bool,\n role: PropTypes.string\n};\n\nexport default PanelContent;","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport PanelContent from './PanelContent';\nimport Animate from 'rc-animate';\nimport shallowEqual from 'shallowequal';\n\nvar CollapsePanel = function (_Component) {\n _inherits(CollapsePanel, _Component);\n\n function CollapsePanel() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, CollapsePanel);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CollapsePanel.__proto__ || Object.getPrototypeOf(CollapsePanel)).call.apply(_ref, [this].concat(args))), _this), _this.handleItemClick = function () {\n var _this$props = _this.props,\n onItemClick = _this$props.onItemClick,\n panelKey = _this$props.panelKey;\n\n\n if (typeof onItemClick === 'function') {\n onItemClick(panelKey);\n }\n }, _this.handleKeyPress = function (e) {\n if (e.key === 'Enter' || e.keyCode === 13 || e.which === 13) {\n _this.handleItemClick();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\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 _classNames2;\n\n var _props = this.props,\n className = _props.className,\n id = _props.id,\n style = _props.style,\n prefixCls = _props.prefixCls,\n header = _props.header,\n headerClass = _props.headerClass,\n children = _props.children,\n isActive = _props.isActive,\n showArrow = _props.showArrow,\n destroyInactivePanel = _props.destroyInactivePanel,\n disabled = _props.disabled,\n accordion = _props.accordion,\n forceRender = _props.forceRender,\n expandIcon = _props.expandIcon,\n extra = _props.extra;\n\n var headerCls = classNames(prefixCls + '-header', _defineProperty({}, headerClass, headerClass));\n var itemCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-item', true), _defineProperty(_classNames2, prefixCls + '-item-active', isActive), _defineProperty(_classNames2, prefixCls + '-item-disabled', disabled), _classNames2), className);\n\n var icon = React.createElement('i', { className: 'arrow' });\n if (showArrow && typeof expandIcon === 'function') {\n icon = expandIcon(this.props);\n }\n return React.createElement(\n 'div',\n { className: itemCls, style: style, id: id },\n React.createElement(\n 'div',\n {\n className: headerCls,\n onClick: this.handleItemClick,\n role: accordion ? 'tab' : 'button',\n tabIndex: disabled ? -1 : 0,\n 'aria-expanded': '' + isActive,\n onKeyPress: this.handleKeyPress\n },\n showArrow && icon,\n header,\n extra && React.createElement(\n 'div',\n { className: prefixCls + '-extra' },\n extra\n )\n ),\n React.createElement(\n Animate,\n {\n showProp: 'isActive',\n exclusive: true,\n component: '',\n animation: this.props.openAnimation\n },\n React.createElement(\n PanelContent,\n {\n prefixCls: prefixCls,\n isActive: isActive,\n destroyInactivePanel: destroyInactivePanel,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : null\n },\n children\n )\n )\n );\n }\n }]);\n\n return CollapsePanel;\n}(Component);\n\nCollapsePanel.propTypes = {\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n id: PropTypes.string,\n children: PropTypes.any,\n openAnimation: PropTypes.object,\n prefixCls: PropTypes.string,\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n headerClass: PropTypes.string,\n showArrow: PropTypes.bool,\n isActive: PropTypes.bool,\n onItemClick: PropTypes.func,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool,\n disabled: PropTypes.bool,\n accordion: PropTypes.bool,\n forceRender: PropTypes.bool,\n expandIcon: PropTypes.func,\n extra: PropTypes.node,\n panelKey: PropTypes.any\n};\n\nCollapsePanel.defaultProps = {\n showArrow: true,\n isActive: false,\n destroyInactivePanel: false,\n onItemClick: function onItemClick() {},\n\n headerClass: '',\n forceRender: false\n};\n\nexport default CollapsePanel;","import cssAnimation from 'css-animation';\n\nfunction animate(node, show, transitionName, done) {\n var height = void 0;\n return cssAnimation(node, transitionName, {\n start: function start() {\n if (!show) {\n node.style.height = node.offsetHeight + 'px';\n } else {\n height = node.offsetHeight;\n node.style.height = 0;\n }\n },\n active: function active() {\n node.style.height = (show ? height : 0) + 'px';\n },\n end: function end() {\n node.style.height = '';\n done();\n }\n });\n}\n\nfunction animation(prefixCls) {\n return {\n enter: function enter(node, done) {\n return animate(node, true, prefixCls + '-anim', done);\n },\n leave: function leave(node, done) {\n return animate(node, false, prefixCls + '-anim', done);\n }\n };\n}\n\nexport default animation;","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport CollapsePanel from './Panel';\nimport openAnimationFactory from './openAnimationFactory';\nimport classNames from 'classnames';\nimport { isFragment } from 'react-is';\nimport shallowEqual from 'shallowequal';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction toArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n currentActiveKey = currentActiveKey ? [currentActiveKey] : [];\n }\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\n\nvar Collapse = function (_Component) {\n _inherits(Collapse, _Component);\n\n function Collapse(props) {\n _classCallCheck(this, Collapse);\n\n var _this = _possibleConstructorReturn(this, (Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var activeKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey;\n\n var currentActiveKey = defaultActiveKey;\n if ('activeKey' in props) {\n currentActiveKey = activeKey;\n }\n\n _this.state = {\n openAnimation: props.openAnimation || openAnimationFactory(props.prefixCls),\n activeKey: toArray(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 _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n style = _props.style,\n accordion = _props.accordion;\n\n var collapseClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, className, !!className), _classNames));\n return React.createElement(\n 'div',\n { className: collapseClassName, style: style, role: accordion ? 'tablist' : null },\n this.getItems()\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps) {\n var newState = {};\n if ('activeKey' in nextProps) {\n newState.activeKey = toArray(nextProps.activeKey);\n }\n if ('openAnimation' in nextProps) {\n newState.openAnimation = nextProps.openAnimation;\n }\n return newState.activeKey || newState.openAnimation ? newState : null;\n }\n }]);\n\n return Collapse;\n}(Component);\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.onClickItem = function (key) {\n var activeKey = _this2.state.activeKey;\n if (_this2.props.accordion) {\n activeKey = activeKey[0] === key ? [] : [key];\n } else {\n activeKey = [].concat(_toConsumableArray(activeKey));\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n // remove active state\n activeKey.splice(index, 1);\n } else {\n activeKey.push(key);\n }\n }\n _this2.setActiveKey(activeKey);\n };\n\n this.getNewChild = function (child, index) {\n if (!child) return null;\n\n var activeKey = _this2.state.activeKey;\n var _props2 = _this2.props,\n prefixCls = _props2.prefixCls,\n accordion = _props2.accordion,\n destroyInactivePanel = _props2.destroyInactivePanel,\n expandIcon = _props2.expandIcon;\n // 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 disabled = _child$props.disabled;\n\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n\n var props = {\n key: key,\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: destroyInactivePanel,\n openAnimation: _this2.state.openAnimation,\n accordion: accordion,\n children: child.props.children,\n onItemClick: disabled ? null : _this2.onClickItem,\n expandIcon: expandIcon\n };\n\n // https://github.com/ant-design/ant-design/issues/20479\n if (typeof child.type === 'string') {\n return child;\n }\n\n return React.cloneElement(child, props);\n };\n\n this.getItems = function () {\n var children = _this2.props.children;\n\n var childList = isFragment(children) ? children.props.children : children;\n var newChildren = Children.map(childList, _this2.getNewChild);\n\n // ref: https://github.com/ant-design/ant-design/issues/13884\n if (isFragment(children)) {\n return React.createElement(\n React.Fragment,\n null,\n newChildren\n );\n }\n\n return newChildren;\n };\n\n this.setActiveKey = function (activeKey) {\n if (!('activeKey' in _this2.props)) {\n _this2.setState({ activeKey: activeKey });\n }\n _this2.props.onChange(_this2.props.accordion ? activeKey[0] : activeKey);\n };\n};\n\nCollapse.propTypes = {\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]),\n defaultActiveKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]),\n openAnimation: PropTypes.object,\n onChange: PropTypes.func,\n accordion: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool,\n expandIcon: PropTypes.func\n};\n\nCollapse.defaultProps = {\n prefixCls: 'rc-collapse',\n onChange: function onChange() {},\n\n accordion: false,\n destroyInactivePanel: false\n};\n\nCollapse.Panel = CollapsePanel;\n\npolyfill(Collapse);\n\nexport default Collapse;","import Collapse from './Collapse';\n\nexport default Collapse;\nexport var Panel = Collapse.Panel;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nvar Notice = function (_Component) {\n _inherits(Notice, _Component);\n\n function Notice() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Notice);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Notice.__proto__ || Object.getPrototypeOf(Notice)).call.apply(_ref, [this].concat(args))), _this), _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n _this.clearCloseTimer();\n _this.props.onClose();\n }, _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n }, _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Notice, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.update) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: 'restartCloseTimer',\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: 'render',\n value: function render() {\n var _className;\n\n var props = this.props;\n var componentClass = props.prefixCls + '-notice';\n var className = (_className = {}, _defineProperty(_className, '' + componentClass, 1), _defineProperty(_className, componentClass + '-closable', props.closable), _defineProperty(_className, props.className, !!props.className), _className);\n return React.createElement(\n 'div',\n {\n className: classNames(className),\n style: props.style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: props.onClick\n },\n React.createElement(\n 'div',\n { className: componentClass + '-content' },\n props.children\n ),\n props.closable ? React.createElement(\n 'a',\n { tabIndex: '0', onClick: this.close, className: componentClass + '-close' },\n props.closeIcon || React.createElement('span', { className: componentClass + '-close-x' })\n ) : null\n );\n }\n }]);\n\n return Notice;\n}(Component);\n\nNotice.propTypes = {\n duration: PropTypes.number,\n onClose: PropTypes.func,\n children: PropTypes.any,\n update: PropTypes.bool,\n closeIcon: PropTypes.node\n};\nNotice.defaultProps = {\n onEnd: function onEnd() {},\n onClose: function onClose() {},\n\n duration: 1.5,\n style: {\n right: '50%'\n }\n};\nexport default Notice;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Animate from 'rc-animate';\nimport createChainedFunction from 'rc-util/es/createChainedFunction';\nimport classnames from 'classnames';\nimport Notice from './Notice';\n\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n return 'rcNotification_' + now + '_' + seed++;\n}\n\nvar Notification = function (_Component) {\n _inherits(Notification, _Component);\n\n function Notification() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Notification);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Notification.__proto__ || Object.getPrototypeOf(Notification)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n notices: []\n }, _this.add = function (notice) {\n var key = notice.key = notice.key || getUuid();\n var maxCount = _this.props.maxCount;\n\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, notice);\n } else {\n if (maxCount && notices.length >= maxCount) {\n notice.updateKey = updatedNotices[0].updateKey || updatedNotices[0].key;\n updatedNotices.shift();\n }\n updatedNotices.push(notice);\n }\n return {\n notices: updatedNotices\n };\n });\n }, _this.remove = function (key) {\n _this.setState(function (previousState) {\n return {\n notices: previousState.notices.filter(function (notice) {\n return notice.key !== key;\n })\n };\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Notification, [{\n key: 'getTransitionName',\n value: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this,\n _className;\n\n var props = this.props;\n var notices = this.state.notices;\n\n var noticeNodes = notices.map(function (notice, index) {\n var update = Boolean(index === notices.length - 1 && notice.updateKey);\n var key = notice.updateKey ? notice.updateKey : notice.key;\n var onClose = createChainedFunction(_this2.remove.bind(_this2, notice.key), notice.onClose);\n return React.createElement(\n Notice,\n _extends({\n prefixCls: props.prefixCls\n }, notice, {\n key: key,\n update: update,\n onClose: onClose,\n onClick: notice.onClick,\n closeIcon: props.closeIcon\n }),\n notice.content\n );\n });\n var className = (_className = {}, _defineProperty(_className, props.prefixCls, 1), _defineProperty(_className, props.className, !!props.className), _className);\n return React.createElement(\n 'div',\n { className: classnames(className), style: props.style },\n React.createElement(\n Animate,\n { transitionName: this.getTransitionName() },\n noticeNodes\n )\n );\n }\n }]);\n\n return Notification;\n}(Component);\n\nNotification.propTypes = {\n prefixCls: PropTypes.string,\n transitionName: PropTypes.string,\n animation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n style: PropTypes.object,\n maxCount: PropTypes.number,\n closeIcon: PropTypes.node\n};\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\n\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref2 = properties || {},\n getContainer = _ref2.getContainer,\n props = _objectWithoutProperties(_ref2, ['getContainer']);\n\n var div = document.createElement('div');\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n var called = false;\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n\n component: notification,\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(div);\n div.parentNode.removeChild(div);\n }\n });\n }\n ReactDOM.render(React.createElement(Notification, _extends({}, props, { ref: ref })), div);\n};\n\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, log, MiniMap, withSuffix } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6'\n};\n\nvar Icon = function (_React$Component) {\n _inherits(Icon, _React$Component);\n\n function Icon() {\n _classCallCheck(this, Icon);\n\n return _possibleConstructorReturn(this, (Icon.__proto__ || Object.getPrototypeOf(Icon)).apply(this, arguments));\n }\n\n _createClass(Icon, [{\n key: 'render',\n value: function render() {\n var _extends2;\n\n var _props = this.props,\n type = _props.type,\n className = _props.className,\n onClick = _props.onClick,\n style = _props.style,\n primaryColor = _props.primaryColor,\n secondaryColor = _props.secondaryColor,\n rest = _objectWithoutProperties(_props, ['type', 'className', 'onClick', 'style', 'primaryColor', 'secondaryColor']);\n\n var target = void 0;\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n if (isIconDefinition(type)) {\n target = type;\n } else if (typeof type === 'string') {\n target = Icon.get(type, colors);\n if (!target) {\n // log(`Could not find icon: ${type}`);\n return null;\n }\n }\n if (!target) {\n log('type should be string or icon definiton, but got ' + type);\n return null;\n }\n if (target && typeof target.icon === 'function') {\n target = _extends({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, 'svg-' + target.name, _extends((_extends2 = {\n className: className,\n onClick: onClick,\n style: style\n }, _defineProperty(_extends2, 'data-icon', target.name), _defineProperty(_extends2, 'width', '1em'), _defineProperty(_extends2, 'height', '1em'), _defineProperty(_extends2, 'fill', 'currentColor'), _defineProperty(_extends2, 'aria-hidden', 'true'), _defineProperty(_extends2, 'focusable', 'false'), _extends2), rest));\n }\n }], [{\n key: 'add',\n value: function add() {\n var _this2 = this;\n\n for (var _len = arguments.length, icons = Array(_len), _key = 0; _key < _len; _key++) {\n icons[_key] = arguments[_key];\n }\n\n icons.forEach(function (icon) {\n _this2.definitions.set(withSuffix(icon.name, icon.theme), icon);\n });\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.definitions.clear();\n }\n }, {\n key: 'get',\n value: function get(key) {\n var colors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : twoToneColorPalette;\n\n if (key) {\n var target = this.definitions.get(key);\n if (target && typeof target.icon === 'function') {\n target = _extends({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return target;\n }\n }\n }, {\n key: 'setTwoToneColors',\n value: function setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n }\n }, {\n key: 'getTwoToneColors',\n value: function getTwoToneColors() {\n return _extends({}, twoToneColorPalette);\n }\n }]);\n\n return Icon;\n}(React.Component);\n\nIcon.displayName = 'IconReact';\nIcon.definitions = new MiniMap();\nexport default Icon;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { polyfill } from 'react-lifecycles-compat';\n\nvar Checkbox = function (_Component) {\n _inherits(Checkbox, _Component);\n\n function Checkbox(props) {\n _classCallCheck(this, Checkbox);\n\n var _this = _possibleConstructorReturn(this, _Component.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 if (!('checked' in _this.props)) {\n _this.setState({\n checked: e.target.checked\n });\n }\n if (onChange) {\n onChange({\n target: _extends({}, _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\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\n _this.state = {\n checked: checked\n };\n return _this;\n }\n\n Checkbox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if ('checked' in props) {\n return _extends({}, state, {\n checked: props.checked\n });\n }\n return null;\n };\n\n Checkbox.prototype.focus = function focus() {\n this.input.focus();\n };\n\n Checkbox.prototype.blur = function blur() {\n this.input.blur();\n };\n\n Checkbox.prototype.render = function render() {\n var _classNames;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n style = _props.style,\n name = _props.name,\n id = _props.id,\n type = _props.type,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n tabIndex = _props.tabIndex,\n onClick = _props.onClick,\n onFocus = _props.onFocus,\n onBlur = _props.onBlur,\n autoFocus = _props.autoFocus,\n value = _props.value,\n others = _objectWithoutProperties(_props, ['prefixCls', 'className', 'style', 'name', 'id', 'type', 'disabled', 'readOnly', 'tabIndex', 'onClick', 'onFocus', 'onBlur', 'autoFocus', 'value']);\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 prev[key] = others[key];\n }\n return prev;\n }, {});\n\n var checked = this.state.checked;\n\n var classString = classNames(prefixCls, className, (_classNames = {}, _classNames[prefixCls + '-checked'] = checked, _classNames[prefixCls + '-disabled'] = disabled, _classNames));\n\n return React.createElement(\n 'span',\n { className: classString, style: style },\n React.createElement('input', _extends({\n name: name,\n id: id,\n type: type,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n className: prefixCls + '-input',\n checked: !!checked,\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onChange: this.handleChange,\n autoFocus: autoFocus,\n ref: this.saveInput,\n value: value\n }, globalProps)),\n React.createElement('span', { className: prefixCls + '-inner' })\n );\n };\n\n return Checkbox;\n}(Component);\n\nCheckbox.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n name: PropTypes.string,\n id: PropTypes.string,\n type: PropTypes.string,\n defaultChecked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n checked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n disabled: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n readOnly: PropTypes.bool,\n autoFocus: PropTypes.bool,\n value: PropTypes.any\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};\n\n\npolyfill(Checkbox);\n\nexport default Checkbox;","import Checkbox from './Checkbox';\n\nexport default Checkbox;","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.ReactFastClick=t(require(\"react\")):e.ReactFastClick=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function u(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function c(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(1),l=r(i),s=n(2),h=r(s),f=function(e){return document.activeElement===e},p=function(e,t){return e&&\"string\"==typeof e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()},d=function(e){return p(e,\"input\")},T=function(e){return d(e)&&f(e)},v=function(e){return d(e)&&e.type&&\"checkbox\"===e.type.toLowerCase()},y=function(e){return p(e,\"select\")},m=function(e){return p(e,\"textarea\")},g=function(e){return f(e)&&m(e)},b=function(e){function t(){var e,n,r,c;o(this,t);for(var a=arguments.length,i=Array(a),l=0;l<a;l++)i[l]=arguments[l];return n=r=u(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),r.state={touchId:null,touchX:null,touchY:null,touchTime:null},r.handleTouchStart=function(e){if(1!==e.touches.length||1!==e.targetTouches.length)return void r.clearTouchData();var t=e.targetTouches[0];r.setState({touchId:t.identifier,touchX:t.screenX,touchY:t.screenY,touchTime:(new Date).getTime()})},r.handleTouchMove=function(e){var t=r.state.touchId,n=r.props.threshold;if(null!==t){if(1!==e.touches.length||1!==e.targetTouches.length)return void r.clearTouchData();var o=e.targetTouches[0];if(t!==o.identifier)return void r.clearTouchData();r.calculateTouchDistanceFromOrigin(o)>n&&r.clearTouchData()}},r.handleTouchEnd=function(e){var n=r.state,o=n.touchId,u=n.touchTime,c=r.props,a=c.timeThreshold,i=c.threshold;if(null!==o){if(null!==a&&(new Date).getTime()-u>a)return void r.clearTouchData();if(0!==e.touches.length)return void r.clearTouchData();for(var l=null,s=0;s<e.changedTouches.length;s++){var h=e.changedTouches[s];if(h.identifier===r.state.touchId){l=h;break}}if(null===l)return void r.clearTouchData();if(r.calculateTouchDistanceFromOrigin(l)>i)return void r.clearTouchData();var f=l.target;if((T(f)||g(f))&&!v(f))return void r.clearTouchData();e.preventDefault(),e.stopPropagation(),r.clearTouchData(function(){t.triggerClick(f)})}},r.handleTouchCancel=function(e){r.clearTouchData()},c=n,u(r,c)}return c(t,e),a(t,[{key:\"shouldComponentUpdate\",value:function(e){return this.props.children!==e.children}},{key:\"clearTouchData\",value:function(e){this.setState({touchId:null,touchX:null,touchY:null,touchTime:null},e)}},{key:\"calculateTouchDistanceFromOrigin\",value:function(e){var t=this.state,n=t.touchX,r=t.touchY,o=e.screenX,u=e.screenY;return Math.sqrt(Math.pow(o-n,2)+Math.pow(u-r,2))}},{key:\"render\",value:function(){var e=this.props.children,t={onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,onTouchCancel:this.handleTouchCancel};return l.default.createElement(\"span\",t,e)}}],[{key:\"triggerClick\",value:function(e){for(;e&&\"function\"!=typeof e.click;)e=e.parentNode;e&&(e.click(),(d(e)&&!v(e)||y(e)||m(e))&&e.focus())}}]),t}(i.Component);b.propTypes={threshold:h.default.number,timeThreshold:h.default.number},b.defaultProps={threshold:15,timeThreshold:125},t.default=b},function(t,n){t.exports=e},function(e,t,n){e.exports=n(3)()},function(e,t,n){\"use strict\";var r=n(4),o=n(5),u=n(6);e.exports=function(){function e(e,t,n,r,c,a){a!==u&&o(!1,\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){\"use strict\";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){\"use strict\";function r(e,t,n,r,u,c,a,i){if(o(t),!e){var l;if(void 0===t)l=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var s=[n,r,u,c,a,i],h=0;l=new Error(t.replace(/%s/g,function(){return s[h++]})),l.name=\"Invariant Violation\"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=r},function(e,t,n){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"}])});","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar generate_1 = __importDefault(require(\"./generate\"));\nexports.generate = generate_1.default;\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: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666',\n};\nexports.presetPrimaryColors = presetPrimaryColors;\nvar presetPalettes = {};\nexports.presetPalettes = presetPalettes;\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate_1.default(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n});\nvar red = presetPalettes.red;\nexports.red = red;\nvar volcano = presetPalettes.volcano;\nexports.volcano = volcano;\nvar gold = presetPalettes.gold;\nexports.gold = gold;\nvar orange = presetPalettes.orange;\nexports.orange = orange;\nvar yellow = presetPalettes.yellow;\nexports.yellow = yellow;\nvar lime = presetPalettes.lime;\nexports.lime = lime;\nvar green = presetPalettes.green;\nexports.green = green;\nvar cyan = presetPalettes.cyan;\nexports.cyan = cyan;\nvar blue = presetPalettes.blue;\nexports.blue = blue;\nvar geekblue = presetPalettes.geekblue;\nexports.geekblue = geekblue;\nvar purple = presetPalettes.purple;\nexports.purple = purple;\nvar magenta = presetPalettes.magenta;\nexports.magenta = magenta;\nvar grey = presetPalettes.grey;\nexports.grey = grey;\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar CronExpression = require('./expression');\n\nfunction CronParser() {}\n\n/**\n * Parse crontab entry\n *\n * @private\n * @param {String} entry Crontab file entry/line\n */\nCronParser._parseEntry = function _parseEntry (entry) {\n var atoms = entry.split(' ');\n\n if (atoms.length === 6) {\n return {\n interval: CronExpression.parse(entry)\n };\n } else if (atoms.length > 6) {\n return {\n interval: CronExpression.parse(\n atoms.slice(0, 6).join(' ')\n ),\n command: atoms.slice(6, atoms.length)\n };\n } else {\n throw new Error('Invalid entry: ' + entry);\n }\n};\n\n/**\n * Wrapper for CronExpression.parser method\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n * @return {Object}\n */\nCronParser.parseExpression = function parseExpression (expression, options) {\n return CronExpression.parse(expression, options);\n};\n\n/**\n * Wrapper for CronExpression.fieldsToExpression method\n *\n * @public\n * @param {Object} fields Input fields\n * @param {Object} [options] Parsing options\n * @return {Object}\n */\nCronParser.fieldsToExpression = function fieldsToExpression (fields, options) {\n return CronExpression.fieldsToExpression(fields, options);\n};\n\n/**\n * Parse content string\n *\n * @public\n * @param {String} data Crontab content\n * @return {Object}\n */\nCronParser.parseString = function parseString (data) {\n var blocks = data.split('\\n');\n\n var response = {\n variables: {},\n expressions: [],\n errors: {}\n };\n\n for (var i = 0, c = blocks.length; i < c; i++) {\n var block = blocks[i];\n var matches = null;\n var entry = block.trim(); // Remove surrounding spaces\n\n if (entry.length > 0) {\n if (entry.match(/^#/)) { // Comment\n continue;\n } else if ((matches = entry.match(/^(.*)=(.*)$/))) { // Variable\n response.variables[matches[1]] = matches[2];\n } else { // Expression?\n var result = null;\n\n try {\n result = CronParser._parseEntry('0 ' + entry);\n response.expressions.push(result.interval);\n } catch (err) {\n response.errors[entry] = err;\n }\n }\n }\n }\n\n return response;\n};\n\n/**\n * Parse crontab file\n *\n * @public\n * @param {String} filePath Path to file\n * @param {Function} callback\n */\nCronParser.parseFile = function parseFile (filePath, callback) {\n require('fs').readFile(filePath, function(err, data) {\n if (err) {\n callback(err);\n return;\n }\n\n return callback(null, CronParser.parseString(data.toString()));\n });\n};\n\nmodule.exports = CronParser;\n","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentWithPureRenderMixin\n */\nvar shallowEqual = require('shallowequal');\n\nfunction shallowCompare(instance, nextProps, nextState) {\n return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);\n}\n/**\n * If your React component's render function is \"pure\", e.g. it will render the\n * same result given the same props and state, provide this mixin for a\n * considerable performance boost.\n *\n * Most React components have pure render functions.\n *\n * Example:\n *\n * var ReactComponentWithPureRenderMixin =\n * require('ReactComponentWithPureRenderMixin');\n * React.createClass({\n * mixins: [ReactComponentWithPureRenderMixin],\n *\n * render: function() {\n * return <div className={this.props.className}>foo</div>;\n * }\n * });\n *\n * Note: This only checks shallow equality for props and state. If these contain\n * complex data structures this mixin may have false-negatives for deeper\n * differences. Only mixin to components which have simple props and state, or\n * use `forceUpdate()` when you know deep data structures have changed.\n *\n * See https://facebook.github.io/react/docs/pure-render-mixin.html\n */\n\n\nvar ReactComponentWithPureRenderMixin = {\n shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {\n return shallowCompare(this, nextProps, nextState);\n }\n};\nmodule.exports = ReactComponentWithPureRenderMixin;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/* eslint-disable fb-www/typeof-undefined */\n/* eslint-disable no-unused-vars */\n\nvar invariant = require('./invariant');\n\n/**\n * Checks if a value is empty.\n */\nfunction isEmpty(value) {\n if (Array.isArray(value)) {\n return value.length === 0;\n } else if (typeof value === 'object') {\n if (value) {\n !(!isIterable(value) || value.size === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isEmpty() does not support iterable collections.') : invariant(false) : void 0;\n for (var _ in value) {\n return false;\n }\n }\n return true;\n } else {\n return !value;\n }\n}\n\nfunction isIterable(value) {\n if (typeof Symbol === 'undefined') {\n return false;\n }\n return value[Symbol.iterator];\n}\n\nmodule.exports = isEmpty;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n","'use strict'\nvar BuiltInEmitter = require('events').EventEmitter\n\nmodule.exports = function (CustomEmitter) {\n var Emitter = CustomEmitter || BuiltInEmitter\n var emit = Emitter.prototype.emit\n\n function onevent (packet) {\n var args = packet.data || []\n if (packet.id != null) {\n args.push(this.ack(packet.id))\n }\n emit.call(this, '*', packet)\n return emit.apply(this, args)\n }\n\n return function (socket, next) {\n if (socket.onevent !== onevent) {\n socket.onevent = onevent\n }\n return next ? next() : null\n }\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","!function(root,factory){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=factory();else if(\"function\"==typeof define&&define.amd)define([],factory);else{var a=factory();for(var i in a)(\"object\"==typeof exports?exports:root)[i]=a[i]}}(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{enumerable:!0,get:getter})},__webpack_require__.r=function(exports){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(exports,\"__esModule\",{value:!0})},__webpack_require__.t=function(value,mode){if(1&mode&&(value=__webpack_require__(value)),8&mode)return value;if(4&mode&&\"object\"==typeof value&&value&&value.__esModule)return value;var ns=Object.create(null);if(__webpack_require__.r(ns),Object.defineProperty(ns,\"default\",{enumerable:!0,value:value}),2&mode&&\"string\"!=typeof value)for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,\"a\",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p=\"\",__webpack_require__(__webpack_require__.s=31)}([function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG=exports.SUBSCRIPTION_WIDGET_USE_CASE_DEFAULT=exports.SUBSCRIPTION_WIDGET_USE_CASE_NOT_SET=exports.PAGE_VISITED_URL=exports.MANUAL_UNSUBSCRIBE=exports.EVENT_PW_SITE_OPENED=exports.EVENT_GDPR_DELETE=exports.EVENT_GDPR_CONSENT=exports.EVENT_CLICK_SUBSCRIBE_BUTTON=exports.EVENT_SHOW_SUBSCRIBE_BUTTON=exports.EVENT_ON_HIDE_SUBSCRIPTION_WIDGET=exports.EVENT_ON_SHOW_SUBSCRIPTION_WIDGET=exports.EVENT_ON_HIDE_NOTIFICATION_PERMISSION_DIALOG=exports.EVENT_ON_SHOW_NOTIFICATION_PERMISSION_DIALOG=exports.EVENT_ON_UPDATE_INBOX_MESSAGES=exports.EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE=exports.EVENT_ON_CHANGE_COMMUNICATION_ENABLED=exports.EVENT_ON_NOTIFICATION_CLOSE=exports.EVENT_ON_NOTIFICATION_CLICK=exports.EVENT_ON_PUSH_DELIVERY=exports.EVENT_ON_SW_INIT_ERROR=exports.EVENT_ON_PERMISSION_GRANTED=exports.EVENT_ON_PERMISSION_DENIED=exports.EVENT_ON_PERMISSION_PROMPT=exports.EVENT_ON_REGISTER=exports.EVENT_ON_UNSUBSCRIBE=exports.EVENT_ON_SUBSCRIBE=exports.EVENT_ON_READY=exports.EVENT_ON_LOAD=exports.PERMISSION_PROMPT=exports.PERMISSION_GRANTED=exports.PERMISSION_DENIED=exports.DEVICE_REGISTRATION_STATUS_UNREGISTERED=exports.DEVICE_REGISTRATION_STATUS_REGISTERED=exports.MANUAL_SET_LOGGER_LEVEL=exports.KEY_SAFARI_PREVIOUS_PERMISSION=exports.KEY_DEVICE_REGISTRATION_STATUS=exports.KEY_CLICK_SUBSCRIBE_WIDGET=exports.KEY_SHOW_SUBSCRIBE_WIDGET=exports.DEFAULT_NOTIFICATION_IMAGE=exports.DEFAULT_NOTIFICATION_TITLE=exports.PERIOD_GOAL_EVENT=exports.PERIOD_SEND_APP_OPEN=exports.DEFAULT_API_URL=exports.DEFAULT_SERVICE_WORKER_URL=void 0,exports.DEFAULT_SERVICE_WORKER_URL=\"/pushwoosh-service-worker.js\",exports.DEFAULT_API_URL=\"https://cp.pushwoosh.com/json/1.3/\",exports.PERIOD_SEND_APP_OPEN=36e5,exports.PERIOD_GOAL_EVENT=864e5,exports.DEFAULT_NOTIFICATION_TITLE=\"Pushwoosh notification\",exports.DEFAULT_NOTIFICATION_IMAGE=\"https://cp.pushwoosh.com/img/logo-medium.png\",exports.KEY_SHOW_SUBSCRIBE_WIDGET=\"WIDGET_SHOWED\",exports.KEY_CLICK_SUBSCRIBE_WIDGET=\"WIDGET_CLICKED\",exports.KEY_DEVICE_REGISTRATION_STATUS=\"deviceRegistrationStatus\",exports.KEY_SAFARI_PREVIOUS_PERMISSION=\"safariPreviousPermission\",exports.MANUAL_SET_LOGGER_LEVEL=\"PW_SET_LOGGER_LEVEL\",exports.DEVICE_REGISTRATION_STATUS_REGISTERED=\"registered\",exports.DEVICE_REGISTRATION_STATUS_UNREGISTERED=\"unregistered\",exports.PERMISSION_DENIED=\"denied\",exports.PERMISSION_GRANTED=\"granted\",exports.PERMISSION_PROMPT=\"default\",exports.EVENT_ON_LOAD=\"onLoad\",exports.EVENT_ON_READY=\"onReady\",exports.EVENT_ON_SUBSCRIBE=\"onSubscribe\",exports.EVENT_ON_UNSUBSCRIBE=\"onUnsubscribe\",exports.EVENT_ON_REGISTER=\"onRegister\",exports.EVENT_ON_PERMISSION_PROMPT=\"onPermissionPrompt\",exports.EVENT_ON_PERMISSION_DENIED=\"onPermissionDenied\",exports.EVENT_ON_PERMISSION_GRANTED=\"onPermissionGranted\",exports.EVENT_ON_SW_INIT_ERROR=\"onSWInitError\",exports.EVENT_ON_PUSH_DELIVERY=\"onPushDelivery\",exports.EVENT_ON_NOTIFICATION_CLICK=\"onNotificationClick\",exports.EVENT_ON_NOTIFICATION_CLOSE=\"onNotificationClose\",exports.EVENT_ON_CHANGE_COMMUNICATION_ENABLED=\"onChangeCommunicationEnabled\",exports.EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE=\"onPutNewMessageToInboxStore\",exports.EVENT_ON_UPDATE_INBOX_MESSAGES=\"onUpdateInboxMessages\",exports.EVENT_ON_SHOW_NOTIFICATION_PERMISSION_DIALOG=\"onShowNotificationPermissionDialog\",exports.EVENT_ON_HIDE_NOTIFICATION_PERMISSION_DIALOG=\"onHideNotificationPermissionDialog\",exports.EVENT_ON_SHOW_SUBSCRIPTION_WIDGET=\"onShowSubscriptionWidget\",exports.EVENT_ON_HIDE_SUBSCRIPTION_WIDGET=\"onHideSubscriptionWidget\",exports.EVENT_SHOW_SUBSCRIBE_BUTTON=\"showSubscribeButton\",exports.EVENT_CLICK_SUBSCRIBE_BUTTON=\"clickSubscribeButton\",exports.EVENT_GDPR_CONSENT=\"GDPRConsent\",exports.EVENT_GDPR_DELETE=\"GDPRDelete\",exports.EVENT_PW_SITE_OPENED=\"PW_SiteOpened\",exports.MANUAL_UNSUBSCRIBE=\"MANUAL_UNSUBSCRIBE\",exports.PAGE_VISITED_URL=\"PAGE_VISITED_URL\",exports.SUBSCRIPTION_WIDGET_USE_CASE_NOT_SET=\"not-set\",exports.SUBSCRIPTION_WIDGET_USE_CASE_DEFAULT=\"default\",exports.SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG={headerText:\"Subscribe to our news\",headerTextColor:\"#000000\",subheaderText:\"Don't miss out on the latest news and updates!\",subheaderTextColor:\"#000000\",buttonAcceptText:\"Agree\",buttonAcceptTextColor:\"#1A72E8\",buttonAcceptRound:\"4px\",buttonAcceptBackgroundColor:\"#FFFFFF\",buttonAcceptBorderColor:\"#E3E4E8\",buttonCancelText:\"Deny\",buttonCancelTextColor:\"#1A72E8\",buttonCancelRound:\"4px\",buttonCancelBackgroundColor:\"#FFFFFF\",buttonCancelBorderColor:\"#E3E4E8\",cappingCount:3,cappingDelay:144e5,backgroundColor:\"#FFFFFF\"}},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Data=void 0;var storage_1=__webpack_require__(2),CONSTANTS=__webpack_require__(0),Data=function(){function Data(store){void 0===store&&(store=storage_1.keyValue),this.store=store}return Data.prototype.clearAll=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.applicationCode\",void 0)];case 1:return _a.sent(),[4,this.store.set(\"params.hwid\",void 0)];case 2:return _a.sent(),[4,this.store.set(\"params.deviceType\",void 0)];case 3:return _a.sent(),[4,this.store.set(\"params.deviceModel\",void 0)];case 4:return _a.sent(),[4,this.store.set(\"params.language\",void 0)];case 5:return _a.sent(),[4,this.store.set(\"params.apiEntrypoint\",void 0)];case 6:return _a.sent(),[4,this.store.set(\"params.tokens\",void 0)];case 7:return _a.sent(),[4,this.store.set(\"params.applicationServerKey\",void 0)];case 8:return _a.sent(),[4,this.store.set(\"params.senderId\",void 0)];case 9:return _a.sent(),[4,this.store.set(\"params.webSitePushId\",void 0)];case 10:return _a.sent(),[4,this.store.set(\"params.defaultNotificationImage\",void 0)];case 11:return _a.sent(),[4,this.store.set(\"params.defaultNotificationTitle\",void 0)];case 12:return _a.sent(),[4,this.store.set(\"params.userId\",void 0)];case 13:return _a.sent(),[4,this.store.set(\"params.userIdWasChanged\",void 0)];case 14:return _a.sent(),[4,this.store.set(\"params.isLastPermissionStatus\",void 0)];case 15:return _a.sent(),[4,this.store.set(\"params.isManualUnsubscribed\",void 0)];case 16:return _a.sent(),[4,this.store.set(\"params.isCommunicationDisabled\",void 0)];case 17:return _a.sent(),[4,this.store.set(\"params.isDropAllData\",void 0)];case 18:return _a.sent(),[4,this.store.set(\"params.sdkVersion\",void 0)];case 19:return _a.sent(),[4,this.store.set(\"params.serviceWorkerVersion\",void 0)];case 20:return _a.sent(),[4,this.store.set(\"params.serviceWorkerUrl\",void 0)];case 21:return _a.sent(),[4,this.store.set(\"params.serviceWorkerScope\",void 0)];case 22:return _a.sent(),[4,this.store.set(\"params.lastOpenMessage\",void 0)];case 23:return _a.sent(),[4,this.store.set(\"params.lastOpenApplicationTime\",void 0)];case 24:return _a.sent(),[4,this.store.set(\"params.features\",void 0)];case 25:return _a.sent(),[4,this.store.set(\"params.init\",void 0)];case 26:return _a.sent(),[4,this.store.set(\"API_PARAMS\",void 0)];case 27:return _a.sent(),[4,this.store.set(\"SENDER_ID\",void 0)];case 28:return _a.sent(),[4,this.store.set(\"COMMUNICATION_ENABLED\",void 0)];case 29:return _a.sent(),[4,this.store.set(\"DEVICE_DATA_REMOVED\",void 0)];case 30:return _a.sent(),[4,this.store.set(\"LAST_OPEN_MESSAGE\",void 0)];case 31:return _a.sent(),[4,this.store.set(\"DELAYED_EVENT\",void 0)];case 32:return _a.sent(),[2]}})})},Data.prototype.setApplicationCode=function(application){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.applicationCode\",application)];case 1:return _a.sent(),[2]}})})},Data.prototype.getApplicationCode=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.applicationCode\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setHwid=function(hwid){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.hwid\",hwid)];case 1:return _a.sent(),[2]}})})},Data.prototype.getHwid=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.hwid\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setDeviceType=function(type){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.deviceType\",type)];case 1:return _a.sent(),[2]}})})},Data.prototype.getDeviceType=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.deviceType\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setDeviceModel=function(model){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.deviceModel\",model)];case 1:return _a.sent(),[2]}})})},Data.prototype.getDeviceModel=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.deviceModel\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setLanguage=function(language){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.language\",language)];case 1:return _a.sent(),[2]}})})},Data.prototype.getLanguage=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.language\",\"en\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setApiEntrypoint=function(url){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.apiEntrypoint\",url)];case 1:return _a.sent(),[2]}})})},Data.prototype.getApiEntrypoint=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.apiEntrypoint\",CONSTANTS.DEFAULT_API_URL)];case 1:return[2,_a.sent()]}})})},Data.prototype.setTokens=function(tokens){return __awaiter(this,void 0,void 0,function(){var hwid;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getHwid()];case 1:return hwid=_a.sent(),[4,this.store.set(\"API_PARAMS\",__assign({hwid:hwid},tokens))];case 2:return _a.sent(),[4,this.store.set(\"params.tokens\",tokens)];case 3:return _a.sent(),[2]}})})},Data.prototype.getTokens=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"API_PARAMS\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.tokens\")];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setApplicationServerKey=function(key){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.applicationServerKey\",key)];case 1:return _a.sent(),[2]}})})},Data.prototype.getApplicationServerKey=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.applicationServerKey\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setSenderId=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"GCM_SENDER_ID\",senderId)];case 1:return _a.sent(),[4,this.store.set(\"params.senderId\",senderId)];case 2:return _a.sent(),[2]}})})},Data.prototype.getSenderId=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"GCM_SENDER_ID\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.senderId\")];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setWebSitePushId=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.webSitePushId\",senderId)];case 1:return _a.sent(),[2]}})})},Data.prototype.getWebSitePushId=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.webSitePushId\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setDefaultNotificationImage=function(url){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.defaultNotificationImage\",url)];case 1:return _a.sent(),[2]}})})},Data.prototype.getDefaultNotificationImage=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.defaultNotificationImage\",CONSTANTS.DEFAULT_NOTIFICATION_IMAGE)];case 1:return[2,_a.sent()]}})})},Data.prototype.setDefaultNotificationTitle=function(text){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.defaultNotificationTitle\",text)];case 1:return _a.sent(),[2]}})})},Data.prototype.getDefaultNotificationTitle=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.defaultNotificationTitle\",CONSTANTS.DEFAULT_NOTIFICATION_TITLE)];case 1:return[2,_a.sent()]}})})},Data.prototype.setUserId=function(userId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return userId?[3,2]:[4,this.store.set(\"params.userId\",void 0)];case 1:return _a.sent(),[2];case 2:return[4,this.store.set(\"params.userId\",userId.toString())];case 3:return _a.sent(),[2]}})})},Data.prototype.getUserId=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.userId\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setStatusUserIdWasChanged=function(status){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.userIdWasChanged\",status)];case 1:return _a.sent(),[2]}})})},Data.prototype.getStatusUserIdWasChanged=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.userIdWasChanged\",!1)];case 1:return[2,_a.sent()]}})})},Data.prototype.setLastPermissionStatus=function(status){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.isLastPermissionStatus\",status)];case 1:return _a.sent(),[2]}})})},Data.prototype.getLastPermissionStatus=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.isLastPermissionStatus\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setStatusManualUnsubscribed=function(status){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"MANUAL_UNSUBSCRIBE\",status)];case 1:return _a.sent(),[4,this.store.set(\"params.isManualUnsubscribed\",status)];case 2:return _a.sent(),[2]}})})},Data.prototype.getStatusManualUnsubscribed=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"MANUAL_UNSUBSCRIBE\",!1)];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.isManualUnsubscribed\",!1)];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setStatusCommunicationDisabled=function(status){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"COMMUNICATION_ENABLED\",status?0:1)];case 1:return _a.sent(),[4,this.store.set(\"params.isCommunicationDisabled\",status)];case 2:return _a.sent(),[2]}})})},Data.prototype.getStatusCommunicationDisabled=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"COMMUNICATION_ENABLED\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.isCommunicationDisabled\",!1)];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:0==oldValue]}})})},Data.prototype.setStatusDropAllData=function(status){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"DEVICE_DATA_REMOVED\",status)];case 1:return _a.sent(),[4,this.store.set(\"params.isDropAllData\",status)];case 2:return _a.sent(),[2]}})})},Data.prototype.getStatusDropAllData=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"DEVICE_DATA_REMOVED\",!1)];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.isDropAllData\",!1)];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setSdkVersion=function(version){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.sdkVersion\",version)];case 1:return _a.sent(),[2]}})})},Data.prototype.getSdkVersion=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.sdkVersion\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setServiceWorkerVersion=function(version){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"WORKER_VERSION\",version)];case 1:return _a.sent(),[4,this.store.set(\"params.serviceWorkerVersion\",version)];case 2:return _a.sent(),[2]}})})},Data.prototype.getServiceWorkerVersion=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"WORKER_VERSION\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.serviceWorkerVersion\")];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setServiceWorkerUrl=function(url){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return url?[4,this.store.set(\"params.serviceWorkerUrl\",url)]:[2];case 1:return _a.sent(),[2]}})})},Data.prototype.getServiceWorkerUrl=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.serviceWorkerUrl\",CONSTANTS.DEFAULT_SERVICE_WORKER_URL)];case 1:return[2,_a.sent()]}})})},Data.prototype.setServiceWorkerScope=function(scope){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return scope?[4,this.store.set(\"params.serviceWorkerScope\",scope)]:[2];case 1:return _a.sent(),[2]}})})},Data.prototype.getServiceWorkerScope=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.serviceWorkerScope\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setLastOpenMessage=function(message){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"LAST_OPEN_MESSAGE\",message)];case 1:return _a.sent(),[4,this.store.set(\"params.lastOpenMessage\",message)];case 2:return _a.sent(),[2]}})})},Data.prototype.getLastOpenMessage=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"LAST_OPEN_MESSAGE\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.lastOpenMessage\")];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setLastOpenApplicationTime=function(time){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.lastOpenApplicationTime\",time)];case 1:return _a.sent(),[2]}})})},Data.prototype.getLastOpenApplicationTime=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.lastOpenApplicationTime\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setFeatures=function(features){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.features\",features)];case 1:return _a.sent(),[2]}})})},Data.prototype.getFeatures=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.features\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setInitParams=function(params){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.init\",params)];case 1:return _a.sent(),[2]}})})},Data.prototype.getInitParams=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.init\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setInboxLastRequestCode=function(lastCode){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.inbox.lastRequestCode\",lastCode)];case 1:return _a.sent(),[2]}})})},Data.prototype.getInboxLastRequestCode=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"params.inbox.lastRequestCode\",\"\")];case 1:return[2,_a.sent()]}})})},Data.prototype.setInboxLastRequestTime=function(lastRequestTime){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.inbox.lastRequestTime\",lastRequestTime)];case 1:return _a.sent(),[2]}})})},Data.prototype.getInboxLastRequestTime=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.store.get(\"params.inbox.lastRequestTime\",0)]})})},Data.prototype.setInboxNewMessagesCount=function(count){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.inbox.newMessagesCount\",count)];case 1:return _a.sent(),[2]}})})},Data.prototype.getInboxNewMessagesCount=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.store.get(\"params.inbox.newMessagesCount\",0)]})})},Data.prototype.setDelayedEvent=function(event){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"DELAYED_EVENT\",event)];case 1:return _a.sent(),[4,this.store.set(\"params.delayedEvent\",event)];case 2:return _a.sent(),[2]}})})},Data.prototype.getDelayedEvent=function(){return __awaiter(this,void 0,void 0,function(){var oldValue,newValue;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.get(\"DELAYED_EVENT\")];case 1:return oldValue=_a.sent(),[4,this.store.get(\"params.delayedEvent\")];case 2:return[2,void 0!==(newValue=_a.sent())?newValue:oldValue]}})})},Data.prototype.setPromptDisplayCount=function(count){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.promptDisplayCount\",count)];case 1:return _a.sent(),[2]}})})},Data.prototype.getPromptDisplayCount=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.store.get(\"params.promptDisplayCount\",0)]})})},Data.prototype.setPromptLastSeenTime=function(time){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.store.set(\"params.promptLastSeenTime\",time)];case 1:return _a.sent(),[2]}})})},Data.prototype.getPromptLastSeenTime=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.store.get(\"params.promptLastSeenTime\",0)]})})},Data}();exports.Data=Data},function(module,exports,__webpack_require__){\"use strict\";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])})(d,b)};return function(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}}(),__assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}},__rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(null!=s&&\"function\"==typeof Object.getOwnPropertySymbols){var i=0;for(p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]])}return t};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.message=exports.log=exports.keyValue=exports.LogMessage=exports.LogLog=exports.LogBase=exports.getInstance=void 0;var databasePromise,version_1=__webpack_require__(10),MigrationExecutor_1=__webpack_require__(11),constants_1=__webpack_require__(5);function onversionchange(database,event){console.info(\"onversionchange\",event),database.close()}function getInstance(){return databasePromise||(databasePromise=new Promise(function(resolve,reject){var request=indexedDB.open(\"PUSHWOOSH_SDK_STORE\",version_1.default);request.onsuccess=function(event){var database=event.target.result;database.onversionchange=onversionchange.bind(null,database,reject),resolve(database)},request.onerror=function(){return reject(request.error)},request.onupgradeneeded=function(event){var database=event.target.result;database.onversionchange=onversionchange.bind(null,database,reject),new MigrationExecutor_1.default(database).applyMigrations()}})),databasePromise}function getInstanceWithPromise(executor){return getInstance().then(function(database){return new Promise(function(resolve,reject){return executor(database,resolve,reject)})})}exports.getInstance=getInstance;var LogBase=function(){function LogBase(){}return LogBase.prototype._add=function(obj){var _this=this;return getInstanceWithPromise(function(database,resolve,reject){var request=database.transaction([_this.name],\"readwrite\").objectStore(_this.name).add(obj);request.onsuccess=function(){resolve(obj)},request.onerror=function(){reject(request.error)}}).then(function(obj){return _this.getAll().then(function(items){if(Array.isArray(items)){var ids=items.map(function(i){return i.id}).sort(function(a,b){return a==b?0:a<b?1:-1});if(ids.length>_this.maxItems)return Promise.all(ids.slice(_this.maxItems).map(function(id){return _this.delete(id)})).then(function(){return obj})}return obj})})},LogBase.prototype.delete=function(key){var _this=this;return getInstanceWithPromise(function(database,resolve,reject){var request=database.transaction([_this.name],\"readwrite\").objectStore(_this.name).delete(key);request.onsuccess=function(){resolve(request.result)},request.onerror=function(){reject(request.error)}})},LogBase.prototype.getAll=function(){var _this=this;return getInstanceWithPromise(function(database,resolve,reject){var result=[],cursor=database.transaction(_this.name).objectStore(_this.name).openCursor();cursor.onsuccess=function(ev){var cursorResult=ev.target.result;cursorResult?(cursorResult.value&&result.push(cursorResult.value),cursorResult.continue()):resolve(result)},cursor.onerror=function(){reject(cursor.error)}})},LogBase}();exports.LogBase=LogBase;var LogLog=function(_super){function LogLog(){var _this=null!==_super&&_super.apply(this,arguments)||this;return _this.name=constants_1.STORE_NAME_MAIN_LOG,_this.maxItems=100,_this.environment=\"undefined\"!=typeof self&&self.registration?\"worker\":\"browser\",_this}return __extends(LogLog,_super),LogLog.prototype.add=function(type,message,additional){var obj={type:type,environment:this.environment,message:\"\"+message,date:new Date};return message instanceof Error&&(obj.stack=message.stack),additional&&(obj.additional=additional),this._add(obj)},LogLog}(LogBase);exports.LogLog=LogLog;var LogMessage=function(_super){function LogMessage(){var _this=null!==_super&&_super.apply(this,arguments)||this;return _this.name=constants_1.STORE_NAME_MESSAGE_LOG,_this.maxItems=25,_this}return __extends(LogMessage,_super),LogMessage.prototype.add=function(log){return this._add(__assign(__assign({},log),{date:new Date}))},LogMessage}(LogBase);exports.LogMessage=LogMessage,exports.keyValue=function(name){return{get:function(key,defaultValue){return getInstanceWithPromise(function(database,resolve,reject){var timeout,request=database.transaction(name).objectStore(name).get(key),isComplete=!1,isError=!1,check=function(){if(clearTimeout(timeout),isComplete){var result=request.result;resolve(result&&result.value||defaultValue)}else isError?reject(request.error):timeout=setTimeout(check,0)};request.onsuccess=function(){return isComplete=!0},request.onerror=function(){return isError=!0},check()})},getAll:function(){return getInstanceWithPromise(function(database,resolve,reject){var timeout,result={},cursor=database.transaction(name).objectStore(name).openCursor(),isComplete=!1,isError=!1,check=function(){clearTimeout(timeout),isComplete?resolve(result):isError?reject(cursor.error):timeout=setTimeout(check,0)};cursor.onsuccess=function(event){var cursorResult=event.target.result;cursorResult?(result[cursorResult.key]=cursorResult.value.value,cursorResult.continue()):isComplete=!0},cursor.onerror=function(){return isError=!0},check()})},extend:function(key,value){return __awaiter(this,void 0,void 0,function(){var oldValues,newValues;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.get(key)];case 1:return oldValues=_a.sent(),newValues=__rest(value,[]),[4,this.set(key,__assign(__assign({},oldValues),newValues))];case 2:return _a.sent(),[2]}})})},set:function(key,value){return getInstanceWithPromise(function(database,resolve,reject){var timeout,request=database.transaction([name],\"readwrite\").objectStore(name).put({key:key,value:value}),isComplete=!1,isError=!1,check=function(){clearTimeout(timeout),isComplete?resolve(key):isError?reject(request.error):timeout=setTimeout(check,0)};request.onsuccess=function(){return isComplete=!0},request.onerror=function(){return isError=!0},check()})}}}(constants_1.STORE_NAME_KEY_VALUE),exports.log=new LogLog,exports.message=new LogMessage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var DateModule=function(){function DateModule(date){void 0===date&&(date=new Date),this._date=date}return Object.defineProperty(DateModule.prototype,\"date\",{get:function(){return this._date},set:function(date){this._date=date},enumerable:!1,configurable:!0}),DateModule.prototype.getUtcTimestamp=function(){return Math.floor((this.date.getTime()+60*this.date.getTimezoneOffset()*1e3)/1e3)},DateModule.prototype.getTimestamp=function(){return Math.round(this.date.getTime()/1e3)},DateModule.prototype.setLocal=function(){var newDateTimestamp=this._date.getTime()-60*this.date.getTimezoneOffset()*1e3;this._date=new Date(newDateTimestamp)},DateModule.prototype.addDays=function(days){var newDateTimestamp=this._date.getTime()+24*days*60*60*1e3;this._date=new Date(newDateTimestamp)},DateModule.prototype.getInboxFakeOrder=function(){return(100*this._date.getTime()+9e9).toString()},DateModule}();exports.default=DateModule},function(module,exports,__webpack_require__){\"use strict\";var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;var r=Array(s),k=0;for(i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Logger=exports.logAndRejectError=exports.logAndThrowError=void 0;var storage_1=__webpack_require__(2),levels={error:1,info:2,debug:3},limitLevel=3;__webpack_require__(6).patchConsole();var Logger={setLevel:function(level){levels[level]||(level=\"error\"),limitLevel=levels[level]},write:function(type,message,additional){return\"error\"===type?this.error(message):this.info(message),storage_1.log.add(type,message,additional)}};exports.Logger=Logger,Object.keys(levels).forEach(function(levelName){var levelNumber=levels[levelName];Logger[levelName]=function(){for(var args=[],_i=0;_i<arguments.length;_i++)args[_i]=arguments[_i];levelNumber<=limitLevel&&(console.groupCollapsed(levelName),console.info.apply(console,__spreadArrays([\"\"],args)),console.trace(\"trace\"),console.groupEnd())}}),exports.logAndThrowError=function(error){var logText=new Error(error);throw Logger.write(\"error\",logText,\"logAndThrowError\"),logText},exports.logAndRejectError=function(error,reject){var logText=new Error(error);Logger.write(\"error\",logText,\"logAndRejectError\"),reject(logText)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.KEY_PATH_BASE_INCREMENT=exports.STORE_NAME_INBOX_MESSAGES=exports.STORE_NAME_MAIN_LOG=exports.STORE_NAME_MESSAGE_LOG=exports.STORE_NAME_KEY_VALUE=void 0,exports.STORE_NAME_KEY_VALUE=\"keyValue\",exports.STORE_NAME_MESSAGE_LOG=\"messages\",exports.STORE_NAME_MAIN_LOG=\"log\",exports.STORE_NAME_INBOX_MESSAGES=\"inboxMessages\",exports.KEY_PATH_BASE_INCREMENT=\"id\"},function(module,exports,__webpack_require__){\"use strict\";function getGlobal(){return globalThis}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.generateUUID=exports.clearLocationHash=exports.patchConsole=exports.parseSerializedNotificationParams=exports.getVersion=exports.getGlobal=void 0,exports.getGlobal=getGlobal,exports.getVersion=function(){return\"3.35.0\"},exports.parseSerializedNotificationParams=function(param,defaultValue){if(\"string\"==typeof param)try{return JSON.parse(param)}catch(e){console.log(e)}return void 0===param&&void 0!==defaultValue?defaultValue:param},exports.patchConsole=function(){for(var method,noop=function(){},methods=[\"assert\",\"clear\",\"count\",\"debug\",\"dir\",\"dirxml\",\"error\",\"exception\",\"group\",\"groupCollapsed\",\"groupEnd\",\"info\",\"log\",\"markTimeline\",\"profile\",\"profileEnd\",\"table\",\"time\",\"timeEnd\",\"timeStamp\",\"trace\",\"warn\"],len=methods.length,global=getGlobal(),console=global.console=global.console||{};len--;)console[method=methods[len]]||(console[method]=noop)},exports.clearLocationHash=function(){\"history\"in getGlobal()&&history.pushState?history.pushState(null,\"\",\"#\"):location.hash=\"#\"},exports.generateUUID=function(){var d=(new Date).getTime();return\"undefined\"!=typeof performance&&\"function\"==typeof performance.now&&(d+=performance.now()),\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(c){var r=(d+16*Math.random())%16|0;return d=Math.floor(d/16),(\"x\"===c?r:3&r|8).toString(16)})}},function(module,exports,__webpack_require__){var v1=__webpack_require__(15),v4=__webpack_require__(16),uuid=v4;uuid.v1=v1,uuid.v4=v4,module.exports=uuid},function(module,exports){var getRandomValues=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);module.exports=function(){return getRandomValues(rnds8),rnds8}}else{var rnds=new Array(16);module.exports=function(){for(var r,i=0;i<16;i++)0==(3&i)&&(r=4294967296*Math.random()),rnds[i]=r>>>((3&i)<<3)&255;return rnds}}},function(module,exports){for(var byteToHex=[],i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);module.exports=function(buf,offset){var i=offset||0,bth=byteToHex;return[bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],\"-\",bth[buf[i++]],bth[buf[i++]],\"-\",bth[buf[i++]],bth[buf[i++]],\"-\",bth[buf[i++]],bth[buf[i++]],\"-\",bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]]].join(\"\")}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=7},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var Migrations_1=__webpack_require__(20),MigrationExecutor=function(){function MigrationExecutor(db,migrationsBuilder){void 0===migrationsBuilder&&(migrationsBuilder=new Migrations_1.default),this.db=db,this.migrationsBuilder=migrationsBuilder}return MigrationExecutor.prototype.applyMigrations=function(){var _this=this;this.applyMigrationsPack(this.migrationsBuilder.initial),this.migrationsBuilder.dateSorted.forEach(function(migrationsPack){_this.applyMigrationsPack(migrationsPack)})},MigrationExecutor.prototype.applyMigrationsPack=function(migrationsPack){var _this=this;migrationsPack.forEach(function(migration){migration(_this.db)})},MigrationExecutor}();exports.default=MigrationExecutor},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.storeCreatorDecorator=void 0,exports.storeCreatorDecorator=function(name,storeCreator){return function(database){database.objectStoreNames.contains(name)||storeCreator(database)}}},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}},__spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;var r=Array(s),k=0;for(i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,\"__esModule\",{value:!0});var DateModule_1=__webpack_require__(3),InboxMessages=function(){function InboxMessages(data,api,inboxModel,dateModule){void 0===dateModule&&(dateModule=new DateModule_1.default),this.data=data,this.api=api,this.inboxModel=inboxModel,this.dateModule=dateModule,this.publicMessageBuilder=this.publicMessageBuilder.bind(this)}return InboxMessages.prototype.messageTypeFactory=function(action_type,actionParams){var messageType=0;return 2===action_type?messageType=1:\"l\"in actionParams&&null!=actionParams.l&&(messageType=actionParams.l.startsWith(\"http\")?2:3),messageType},InboxMessages.prototype.updateMessagesStatusWithCodes=function(codes,messages,status){return __awaiter(this,void 0,void 0,function(){var updatedMessages,inboxStatusQueries,_this=this;return __generator(this,function(_a){switch(_a.label){case 0:return updatedMessages=[],inboxStatusQueries=[],messages.forEach(function(msg){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){return-1===codes.indexOf(msg.inbox_id)?[2]:(msg.status=status,updatedMessages.push(msg),inboxStatusQueries.push(this.api.inboxStatus(msg.order,msg.status)),[2])})})}),[4,this.inboxModel.putBulkMessages(updatedMessages)];case 1:return _a.sent(),[4,Promise.all(inboxStatusQueries)];case 2:return _a.sent(),[2]}})})},InboxMessages.prototype.publicMessageBuilder=function(_a){var action_type=_a.action_type,action_params=_a.action_params,image=_a.image,title=_a.title,send_date=_a.send_date,inbox_id=_a.inbox_id,text=_a.text,status=_a.status;return __awaiter(this,void 0,void 0,function(){var imageUrl,_b,inboxTitle,_c,actionParams;return __generator(this,function(_d){switch(_d.label){case 0:return(_b=image)?[3,2]:[4,this.data.getDefaultNotificationImage()];case 1:_b=_d.sent(),_d.label=2;case 2:return imageUrl=_b,(_c=title)?[3,4]:[4,this.data.getDefaultNotificationTitle()];case 3:_c=_d.sent(),_d.label=4;case 4:return inboxTitle=_c,actionParams=JSON.parse(action_params),this.dateModule.date=new Date(1e3*parseInt(send_date)),this.dateModule.setLocal(),[2,{title:inboxTitle,imageUrl:imageUrl,code:inbox_id,message:text,sendDate:this.dateModule.date.toISOString(),type:this.messageTypeFactory(action_type,actionParams),link:(null===actionParams||void 0===actionParams?void 0:actionParams.l)||\"/\",isRead:2===status||3===status,isActionPerformed:3===status}]}})})},InboxMessages.prototype.messagesWithNoActionPerformedCount=function(){return this.inboxModel.getDeliveredReadMessagesCount()},InboxMessages.prototype.unreadMessagesCount=function(){return this.inboxModel.getDeliveredMessagesCount()},InboxMessages.prototype.messagesCount=function(){return this.inboxModel.messagesCount()},InboxMessages.prototype.loadMessages=function(){return __awaiter(this,void 0,void 0,function(){var readMessages,unreadMessages,buildMessagePromises;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.inboxModel.getReadOpenMessages()];case 1:return readMessages=_a.sent(),[4,this.inboxModel.getDeliveredMessages()];case 2:return unreadMessages=_a.sent(),buildMessagePromises=__spreadArrays(readMessages,unreadMessages).sort(function(msgA,msgB){return parseInt(msgB.send_date,10)-parseInt(msgA.send_date,10)}).sort(function(msgA,msgB){return parseInt(msgB.order||\"0\",10)-parseInt(msgA.order||\"0\",10)}).map(this.publicMessageBuilder),[2,Promise.all(buildMessagePromises)]}})})},InboxMessages.prototype.readMessagesWithCodes=function(codes){return __awaiter(this,void 0,void 0,function(){var unreadMessages,statusRead;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.inboxModel.getDeliveredMessages()];case 1:return unreadMessages=_a.sent(),statusRead=2,[4,this.updateMessagesStatusWithCodes(codes,unreadMessages,statusRead)];case 2:return _a.sent(),[2]}})})},InboxMessages.prototype.performActionForMessageWithCode=function(code){return __awaiter(this,void 0,void 0,function(){var message,actionParams,messageType;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.inboxModel.getMessage(code)];case 1:return message=_a.sent(),actionParams=JSON.parse(message.action_params),2===(messageType=this.messageTypeFactory(message.action_type,actionParams))&&null!=actionParams.l?document.location.href=actionParams.l:3===messageType&&null!=actionParams.l&&window.history.go(actionParams.l),message.status=3,[4,this.inboxModel.putMessage(message)];case 2:return _a.sent(),[4,this.api.inboxStatus(message.order,message.status)];case 3:return _a.sent(),[2]}})})},InboxMessages.prototype.deleteMessagesWithCodes=function(codes){return __awaiter(this,void 0,void 0,function(){var readMessages,unreadMessages,statusDeleted;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.inboxModel.getReadOpenMessages()];case 1:return readMessages=_a.sent(),[4,this.inboxModel.getDeliveredMessages()];case 2:return unreadMessages=_a.sent(),statusDeleted=4,[4,this.updateMessagesStatusWithCodes(codes,__spreadArrays(readMessages,unreadMessages),statusDeleted)];case 3:return _a.sent(),[2]}})})},InboxMessages.prototype.syncMessages=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.inboxModel.updateMessages()];case 1:return _a.sent(),[2]}})})},InboxMessages}();exports.default=InboxMessages},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ApiClient=void 0;var Data_1=__webpack_require__(1),logger_1=__webpack_require__(4),ApiClient=function(){function ApiClient(data,logger){void 0===data&&(data=new Data_1.Data),void 0===logger&&(logger=logger_1.Logger),this.data=data,this.logger=logger}return ApiClient.prototype.checkDevice=function(options){return this.createRequest(\"checkDevice\",options)},ApiClient.prototype.getConfig=function(options){return this.createRequest(\"getConfig\",options)},ApiClient.prototype.applicationOpen=function(options){return this.createRequest(\"applicationOpen\",options)},ApiClient.prototype.registerDevice=function(options){return this.createRequest(\"registerDevice\",options)},ApiClient.prototype.unregisterDevice=function(options){return this.createRequest(\"unregisterDevice\",options)},ApiClient.prototype.deleteDevice=function(options){return this.createRequest(\"deleteDevice\",options)},ApiClient.prototype.messageDeliveryEvent=function(options){return this.createRequest(\"messageDeliveryEvent\",options)},ApiClient.prototype.pushStat=function(options){return this.createRequest(\"pushStat\",options)},ApiClient.prototype.setTags=function(options){return this.createRequest(\"setTags\",options)},ApiClient.prototype.getTags=function(options){return this.createRequest(\"getTags\",options)},ApiClient.prototype.registerUser=function(options){return this.createRequest(\"registerUser\",options)},ApiClient.prototype.postEvent=function(options){return this.createRequest(\"postEvent\",options)},ApiClient.prototype.getInboxMessages=function(options){return this.createRequest(\"getInboxMessages\",options)},ApiClient.prototype.inboxStatus=function(options){return this.createRequest(\"inboxStatus\",options)},ApiClient.prototype.pageVisit=function(options,url){return this.createRequest(\"pageVisit\",options,url)},ApiClient.prototype.setPurchase=function(options){return this.createRequest(\"setPurchase\",options)},ApiClient.prototype.createRequest=function(methodName,request,customUrl){return __awaiter(this,void 0,void 0,function(){var entrypoint,response,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getApiEntrypoint()];case 1:return entrypoint=_a.sent(),[4,fetch(customUrl||entrypoint+methodName,{method:\"POST\",headers:{\"Content-Type\":\"text/plain;charset=UTF-8\"},body:JSON.stringify({request:request})})];case 2:return response=_a.sent(),[4,this.checkResponse(response)];case 3:return(result=_a.sent()).base_url?[4,this.data.setApiEntrypoint(result.base_url)]:[3,5];case 4:_a.sent(),_a.label=5;case 5:return[4,this.logger.write(\"apirequest\",methodName+\" call with arguments: \"+JSON.stringify(request)+\" to Pushwoosh has been successful. Result: \"+JSON.stringify(result.response))];case 6:return _a.sent(),[2,result.response]}})})},ApiClient.prototype.checkResponse=function(response){return __awaiter(this,void 0,void 0,function(){var data;return __generator(this,function(_a){switch(_a.label){case 0:if(200!==response.status)throw new Error(\"Error code: \"+response.status+\". Error text: \"+response.statusText);return[4,response.json()];case 1:if(200!==(data=_a.sent()).status_code)throw new Error(\"Error code: \"+data.status_code+\". Error text: \"+data.status_message);return[2,data]}})})},ApiClient}();exports.ApiClient=ApiClient},function(module,exports,__webpack_require__){var _nodeId,_clockseq,rng=__webpack_require__(8),bytesToUuid=__webpack_require__(9),_lastMSecs=0,_lastNSecs=0;module.exports=function(options,buf,offset){var i=buf&&offset||0,b=buf||[],node=(options=options||{}).node||_nodeId,clockseq=void 0!==options.clockseq?options.clockseq:_clockseq;if(null==node||null==clockseq){var seedBytes=rng();null==node&&(node=_nodeId=[1|seedBytes[0],seedBytes[1],seedBytes[2],seedBytes[3],seedBytes[4],seedBytes[5]]),null==clockseq&&(clockseq=_clockseq=16383&(seedBytes[6]<<8|seedBytes[7]))}var msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(dt<0||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq;var tl=(1e4*(268435455&(msecs+=122192928e5))+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var n=0;n<6;++n)b[i+n]=node[n];return buf||bytesToUuid(b)}},function(module,exports,__webpack_require__){var rng=__webpack_require__(8),bytesToUuid=__webpack_require__(9);module.exports=function(options,buf,offset){var i=buf&&offset||0;\"string\"==typeof options&&(buf=\"binary\"===options?new Array(16):null,options=null);var rnds=(options=options||{}).random||(options.rng||rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;++ii)buf[i+ii]=rnds[ii];return buf||bytesToUuid(rnds)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var EventBus_1=__webpack_require__(18);Object.defineProperty(exports,\"EventBus\",{enumerable:!0,get:function(){return EventBus_1.EventBus}})},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t}).apply(this,arguments)};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.EventBus=void 0;var uuid_1=__webpack_require__(7),EventBus=function(){return function(){var _this=this;this.addEventHandler=function(name,handler){var savedEventHandlers=_this.savedEventHandlersMap[name];savedEventHandlers||(savedEventHandlers=[]),savedEventHandlers.push(handler),_this.savedEventHandlersMap[name]=savedEventHandlers},this.removeEventHandler=function(name,handler){var savedEventHandlers=_this.savedEventHandlersMap[name];savedEventHandlers&&(_this.savedEventHandlersMap[name]=savedEventHandlers.filter(function(savedEventHandler){return savedEventHandler!==handler}))},this.dispatchEvent=function(name,payload){var eventId=payload.eventId||uuid_1.v4(),savedEventHandlers=_this.savedEventHandlersMap[name];return savedEventHandlers?(savedEventHandlers.forEach(function(element){\"function\"==typeof element&&setTimeout(function(){element(__assign(__assign({},payload),{eventId:eventId}))},0)}),eventId):eventId},this.savedEventHandlersMap={}}}();exports.EventBus=EventBus},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Api=void 0;var Data_1=__webpack_require__(1),ApiClient_1=__webpack_require__(14),CONSTANTS=__webpack_require__(0),Api=function(){function Api(eventBus,data,apiClient){void 0===data&&(data=new Data_1.Data),void 0===apiClient&&(apiClient=new ApiClient_1.ApiClient),this.eventBus=eventBus,this.data=data,this.apiClient=apiClient}return Api.prototype.checkDevice=function(){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.apiClient.checkDevice(params)];case 2:return[2,_a.sent()]}})})},Api.prototype.checkDeviceSubscribeForPushNotifications=function(useCache){return void 0===useCache&&(useCache=!0),__awaiter(this,void 0,void 0,function(){var status,_a,exist,push_token_exist;return __generator(this,function(_b){switch(_b.label){case 0:return void 0!==(status=localStorage.getItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS))&&useCache?[3,2]:[4,this.checkDevice()];case 1:_a=_b.sent(),exist=_a.exist,push_token_exist=_a.push_token_exist,localStorage.setItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS,exist&&push_token_exist?CONSTANTS.DEVICE_REGISTRATION_STATUS_REGISTERED:CONSTANTS.DEVICE_REGISTRATION_STATUS_UNREGISTERED),status=localStorage.getItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS),_b.label=2;case 2:return[2,status===CONSTANTS.DEVICE_REGISTRATION_STATUS_REGISTERED]}})})},Api.prototype.getConfig=function(features){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[2,this.apiClient.getConfig(__assign(__assign({},params),{features:features}))]}})})},Api.prototype.applicationOpen=function(){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.data.setLastOpenApplicationTime(Date.now())];case 2:return _a.sent(),[2,this.apiClient.applicationOpen(params)]}})})},Api.prototype.registerDevice=function(){return __awaiter(this,void 0,void 0,function(){var params,tokens,response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getStatusCommunicationDisabled()];case 1:if(_a.sent())throw new Error(\"Can't register device: Communication is disabled!\");return[4,this.getRequestParams()];case 2:return params=_a.sent(),[4,this.data.getTokens()];case 3:if(!(tokens=_a.sent()).pushToken)throw new Error(\"Can't register device: pushToken is not exist!\");return[4,this.apiClient.registerDevice(__assign(__assign({},params),{push_token:tokens.pushToken,auth_token:tokens.authToken,public_key:tokens.publicKey,fcm_push_set:tokens.fcmPushSet,fcm_token:tokens.fcmToken}))];case 4:return response=_a.sent(),[4,this.data.setStatusManualUnsubscribed(!1)];case 5:return _a.sent(),localStorage.setItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS,CONSTANTS.DEVICE_REGISTRATION_STATUS_REGISTERED),this.eventBus.dispatchEvent(\"register\",{}),[2,response]}})})},Api.prototype.unregisterDevice=function(){return __awaiter(this,void 0,void 0,function(){var params,response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),response=this.apiClient.unregisterDevice(params),localStorage.setItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS,CONSTANTS.DEVICE_REGISTRATION_STATUS_UNREGISTERED),this.eventBus.dispatchEvent(\"unsubscribe\",{}),[2,response]}})})},Api.prototype.deleteDevice=function(){return __awaiter(this,void 0,void 0,function(){var params,response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),response=this.apiClient.deleteDevice(params),[4,this.data.setStatusManualUnsubscribed(!0)];case 2:return _a.sent(),localStorage.setItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS,CONSTANTS.DEVICE_REGISTRATION_STATUS_UNREGISTERED),this.eventBus.dispatchEvent(\"unsubscribe\",{}),[2,response]}})})},Api.prototype.messageDeliveryEvent=function(hash,isTrackingLogOnFailure,metaData){return void 0===metaData&&(metaData={}),__awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return Math.round(+new Date),[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.apiClient.messageDeliveryEvent(__assign(__assign({},params),{hash:hash,metaData:metaData}))];case 2:return[2,_a.sent()]}})})},Api.prototype.pushStat=function(hash,isTrackingLogOnFailure,metaData){return void 0===metaData&&(metaData={}),__awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return Math.round(+new Date),[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.apiClient.pushStat(__assign(__assign({},params),{hash:hash,metaData:metaData}))];case 2:return[2,_a.sent()]}})})},Api.prototype.setTags=function(tags){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[2,this.apiClient.setTags(__assign(__assign({},params),{tags:tags}))]}})})},Api.prototype.getTags=function(){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[2,this.apiClient.getTags(params)]}})})},Api.prototype.registerUser=function(userId){return __awaiter(this,void 0,void 0,function(){var params,deviceType,id,response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.data.getDeviceType()];case 2:return deviceType=_a.sent(),id=\"\"+userId,[4,this.apiClient.registerUser(__assign(__assign({},params),{userId:id,ts_offset:60*-(new Date).getTimezoneOffset(),device_type:deviceType}))];case 3:return response=_a.sent(),[4,this.data.setUserId(\"\"+userId)];case 4:return _a.sent(),[4,this.data.setStatusUserIdWasChanged(!0)];case 5:return _a.sent(),[2,response]}})})},Api.prototype.postEvent=function(event,attributes){return __awaiter(this,void 0,void 0,function(){var params,date,time,timestampUTC,timestampCurrent,lastOpenMessage,response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),date=new Date,time=date.getTime(),timestampUTC=Math.floor(time/1e3),timestampCurrent=timestampUTC-date.getTimezoneOffset()/60*3600,[4,this.data.getLastOpenMessage()];case 2:if((lastOpenMessage=_a.sent())&&lastOpenMessage.expiry>Date.now()){if(attributes.msgHash)return[2,Promise.reject(\"attribute msgHash already defined\")];attributes=__assign(__assign({},attributes),{msgHash:lastOpenMessage.messageHash})}return[4,this.data.setLastOpenMessage(void 0)];case 3:return _a.sent(),[4,this.apiClient.postEvent(__assign(__assign({},params),{event:event,timestampUTC:timestampUTC,timestampCurrent:timestampCurrent,attributes:attributes}))];case 4:return(response=_a.sent())&&response.code&&this.eventBus.dispatchEvent(\"receive-in-app-code\",{code:response.code}),[2,response]}})})},Api.prototype.getInboxMessages=function(count){return void 0===count&&(count=0),__awaiter(this,void 0,void 0,function(){var params,lastCode,lastRequestTime;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.data.getInboxLastRequestCode()];case 2:return lastCode=_a.sent(),[4,this.data.getInboxLastRequestTime()];case 3:return lastRequestTime=_a.sent(),[2,this.apiClient.getInboxMessages(__assign(__assign({},params),{count:count,last_code:lastCode,last_request_time:lastRequestTime}))]}})})},Api.prototype.inboxStatus=function(order,status){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[2,this.apiClient.inboxStatus(__assign(__assign({},params),{inbox_code:order,status:status,time:(new Date).getTime()}))]}})})},Api.prototype.triggerEvent=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){throw new Error(\"Method has been deprecated, because we don't aggregate this statistics.\")})})},Api.prototype.pageVisit=function(config){return __awaiter(this,void 0,void 0,function(){var params,features,url;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[4,this.data.getFeatures()];case 2:return features=_a.sent(),(url=features&&features.page_visit&&features.page_visit.entrypoint)?[2,this.apiClient.pageVisit(__assign(__assign({},params),config),url)]:[2]}})})},Api.prototype.setPurchase=function(attributes){return __awaiter(this,void 0,void 0,function(){var params;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getRequestParams()];case 1:return params=_a.sent(),[2,this.apiClient.setPurchase(__assign(__assign({},params),attributes))]}})})},Api.prototype.getParams=function(){return __awaiter(this,void 0,void 0,function(){var applicationCode,hwid,apiParams,initParams;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getApplicationCode()];case 1:return applicationCode=_a.sent(),[4,this.data.getHwid()];case 2:return hwid=_a.sent(),[4,this.data.getTokens()];case 3:return apiParams=_a.sent(),[4,this.data.getInitParams()];case 4:return initParams=_a.sent(),[2,__assign(__assign({applicationCode:applicationCode,hwid:hwid},apiParams),initParams)]}})})},Object.defineProperty(Api.prototype,\"params\",{get:function(){throw new Error('Property \"Pushwoosh.api.params\" have been deprecated. Use the async method \"Pushwoosh.api.getParams()\"')},enumerable:!1,configurable:!0}),Api.prototype.getRequestParams=function(){return __awaiter(this,void 0,void 0,function(){var applicationCode,hwid,userId,deviceType,deviceModel,language,version,timezone;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getApplicationCode()];case 1:return applicationCode=_a.sent(),[4,this.data.getHwid()];case 2:return hwid=_a.sent(),[4,this.data.getUserId()];case 3:return userId=_a.sent(),[4,this.data.getDeviceType()];case 4:return deviceType=_a.sent(),[4,this.data.getDeviceModel()];case 5:return deviceModel=_a.sent(),[4,this.data.getLanguage()];case 6:return language=_a.sent(),[4,this.data.getSdkVersion()];case 7:return version=_a.sent(),timezone=60*-(new Date).getTimezoneOffset(),[2,{application:applicationCode,hwid:hwid,userId:userId||hwid,device_type:deviceType,device_model:deviceModel,timezone:timezone,language:language,v:version}]}})})},Api}();exports.Api=Api},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var initial_1=__webpack_require__(21),_26_11_2018_1=__webpack_require__(22),DateModule_1=__webpack_require__(3),Migrations=function(){function Migrations(dateModule){void 0===dateModule&&(dateModule=new DateModule_1.default),this.migrations={initial:initial_1.default,\"2018/11/26\":_26_11_2018_1.default},this.dateModule=dateModule}return Object.defineProperty(Migrations.prototype,\"initial\",{get:function(){return this.migrations.initial},enumerable:!1,configurable:!0}),Object.defineProperty(Migrations.prototype,\"dateSorted\",{get:function(){var _this=this;return Object.keys(this.migrations).filter(function(key){return\"initial\"!==key}).sort(function(a,b){var dateA=new DateModule_1.default(new Date(a)),dateB=new DateModule_1.default(new Date(b));return dateA.getTimestamp()-dateB.getTimestamp()}).map(function(key){return _this.migrations[key]})},enumerable:!1,configurable:!0}),Migrations}();exports.default=Migrations},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var helpers_1=__webpack_require__(12),constants_1=__webpack_require__(5);exports.default=[helpers_1.storeCreatorDecorator(constants_1.STORE_NAME_KEY_VALUE,function(database){database.createObjectStore(constants_1.STORE_NAME_KEY_VALUE,{keyPath:\"key\"})}),helpers_1.storeCreatorDecorator(constants_1.STORE_NAME_MAIN_LOG,function(database){var logStore=database.createObjectStore(constants_1.STORE_NAME_MAIN_LOG,{keyPath:constants_1.KEY_PATH_BASE_INCREMENT,autoIncrement:!0});logStore.createIndex(\"environment\",\"environment\",{unique:!1}),logStore.createIndex(\"date\",\"date\",{unique:!1}),logStore.createIndex(\"type\",\"type\",{unique:!1})}),helpers_1.storeCreatorDecorator(constants_1.STORE_NAME_MESSAGE_LOG,function(database){database.createObjectStore(constants_1.STORE_NAME_MESSAGE_LOG,{keyPath:constants_1.KEY_PATH_BASE_INCREMENT,autoIncrement:!0}).createIndex(\"date\",\"date\",{unique:!1})})]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var helpers_1=__webpack_require__(12),constants_1=__webpack_require__(5);exports.default=[helpers_1.storeCreatorDecorator(constants_1.STORE_NAME_INBOX_MESSAGES,function(database){var store=database.createObjectStore(constants_1.STORE_NAME_INBOX_MESSAGES,{keyPath:\"inbox_id\",autoIncrement:!1});store.createIndex(\"status\",\"status\",{unique:!1,multiEntry:!0}),store.createIndex(\"rt\",\"rt\",{unique:!1,multiEntry:!0})})]},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PushServiceDefault=void 0;var uuid_1=__webpack_require__(7),logger_1=__webpack_require__(4),CONSTANTS=__webpack_require__(0),PushServiceDefault=function(){function PushServiceDefault(api,data,config){this.api=api,this.data=data,this.config=config}return PushServiceDefault.prototype.getPermission=function(){return Notification.permission},PushServiceDefault.prototype.checkIsPermissionGranted=function(){return this.getPermission()===CONSTANTS.PERMISSION_GRANTED},PushServiceDefault.prototype.checkIsPermissionDefault=function(){return this.getPermission()===CONSTANTS.PERMISSION_PROMPT},PushServiceDefault.prototype.checkIsManualUnsubscribed=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.data.getStatusManualUnsubscribed()]})})},PushServiceDefault.prototype.askPermission=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Notification.requestPermission()];case 1:return _a.sent(),[2]}})})},PushServiceDefault.prototype.getTokens=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.data.getTokens()]})})},PushServiceDefault.prototype.subscribe=function(subscription){return __awaiter(this,void 0,void 0,function(){var currentSubscription,senderId_1,applicationServerKey,senderId,pushToken,_p256dn,_auth,p256dh,auth,_a,token,pushSet;return __generator(this,function(_b){switch(_b.label){case 0:return currentSubscription=subscription,this.checkIsPermissionGranted()?currentSubscription?[3,6]:[4,this.trySubscribe()]:(logger_1.Logger.error(\"You must have permission granted before subscribe!\"),[2]);case 1:return currentSubscription=_b.sent(),[4,this.getSenderIdFromManifest()];case 2:return senderId_1=_b.sent(),[4,this.checkIsChangeSenderId(senderId_1)];case 3:return _b.sent()?[4,this.unsubscribe()]:[3,6];case 4:return _b.sent(),[4,this.data.setSenderId(senderId_1)];case 5:_b.sent(),_b.label=6;case 6:return[4,this.getApplicationServerKey()];case 7:return applicationServerKey=_b.sent(),[4,this.data.getSenderId()];case 8:return senderId=_b.sent(),[4,this.getPushToken(currentSubscription)];case 9:if(pushToken=_b.sent(),_p256dn=currentSubscription.getKey(\"p256dh\"),_auth=currentSubscription.getKey(\"auth\"),!_p256dn||!_auth)throw new Error(\"Can't get subscription keys!\");return p256dh=btoa(String.fromCharCode.apply(String,new Uint8Array(_p256dn))),auth=btoa(String.fromCharCode.apply(String,new Uint8Array(_auth))),[4,this.getFcmKeys({endpoint:currentSubscription.endpoint,application_pub_key:applicationServerKey,encryption_key:p256dh,encryption_auth:auth,authorized_entity:senderId})];case 10:return _a=_b.sent(),token=_a.token,pushSet=_a.pushSet,[4,this.data.setTokens({publicKey:p256dh,pushToken:pushToken,authToken:auth,fcmPushSet:pushSet,fcmToken:token,endpoint:currentSubscription.endpoint})];case 11:return _b.sent(),[4,this.api.registerDevice()];case 12:return _b.sent(),[2]}})})},PushServiceDefault.prototype.unsubscribe=function(){return __awaiter(this,void 0,void 0,function(){var subscription;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getServiceWorkerRegistration()];case 1:return[4,_a.sent().pushManager.getSubscription()];case 2:return subscription=_a.sent(),[4,this.data.setTokens({})];case 3:return _a.sent(),[4,this.data.setStatusManualUnsubscribed(!0)];case 4:return _a.sent(),[4,this.api.unregisterDevice()];case 5:return _a.sent(),subscription?[4,subscription.unsubscribe()]:[2];case 6:return _a.sent(),[2]}})})},PushServiceDefault.prototype.checkIsRegister=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.api.checkDeviceSubscribeForPushNotifications()]})})},PushServiceDefault.prototype.checkIsNeedResubscribe=function(){return __awaiter(this,void 0,void 0,function(){var savedSenderId,isExistSavedSenderId,manifestSenderId,isChangeSenderID,lastPermission,permission,credentials,pushTokenFromSubscription,subscriptionTokensFromStore,pushTokenFromStore;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getSenderId()];case 1:return savedSenderId=_a.sent(),isExistSavedSenderId=void 0!==savedSenderId,[4,this.getSenderIdFromManifest()];case 2:return manifestSenderId=_a.sent(),isChangeSenderID=isExistSavedSenderId&&manifestSenderId!==savedSenderId,[4,this.data.setSenderId(manifestSenderId)];case 3:return _a.sent(),[4,this.data.getLastPermissionStatus()];case 4:return lastPermission=_a.sent(),permission=this.getPermission(),isExistSavedSenderId&&lastPermission!==permission?[4,this.data.setLastPermissionStatus(permission)]:[3,6];case 5:return _a.sent(),[2,!0];case 6:return[4,this.getCredentials()];case 7:return credentials=_a.sent(),[4,this.getPushToken(credentials)];case 8:return pushTokenFromSubscription=_a.sent(),[4,this.data.getTokens()];case 9:return subscriptionTokensFromStore=_a.sent(),pushTokenFromStore=subscriptionTokensFromStore&&subscriptionTokensFromStore.pushToken||\"\",[2,isChangeSenderID||!(pushTokenFromSubscription===pushTokenFromStore)]}})})},PushServiceDefault.prototype.getServiceWorkerRegistration=function(){return __awaiter(this,void 0,void 0,function(){var url,_a;return __generator(this,function(_b){switch(_b.label){case 0:return this.registration?[3,5]:[4,this.registerServiceWorker()];case 1:return _b.sent(),[4,this.data.getServiceWorkerUrl()];case 2:return url=_b.sent(),_a=this,[4,navigator.serviceWorker.getRegistration(url)];case 3:return _a.registration=_b.sent(),[4,this.registration.update()];case 4:_b.sent(),_b.label=5;case 5:if(!this.registration)throw new Error(\"Internal Error: Can't register service worker!\");return[2,this.registration]}})})},PushServiceDefault.prototype.registerServiceWorker=function(){return __awaiter(this,void 0,void 0,function(){var url,scope,sdkVersion,serviceWorkerVersion,cleanCache;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getServiceWorkerUrl()];case 1:return url=_a.sent(),[4,this.data.getServiceWorkerScope()];case 2:return scope=_a.sent(),[4,this.data.getSdkVersion()];case 3:return sdkVersion=_a.sent(),[4,this.data.getServiceWorkerVersion()];case 4:return serviceWorkerVersion=_a.sent(),cleanCache=\"\",sdkVersion!==serviceWorkerVersion&&(cleanCache=\"?cache_clean=\"+uuid_1.v4()),[4,navigator.serviceWorker.register(\"\"+url+cleanCache,{scope:scope})];case 5:return _a.sent(),[2]}})})},PushServiceDefault.prototype.trySubscribe=function(){return __awaiter(this,void 0,void 0,function(){var error_1;return __generator(this,function(_a){switch(_a.label){case 0:return _a.trys.push([0,2,,4]),[4,this.subscribePushManager()];case 1:return[2,_a.sent()];case 2:return error_1=_a.sent(),console.error(error_1),[4,this.unsubscribe()];case 3:return _a.sent(),[2,this.subscribePushManager()];case 4:return[2]}})})},PushServiceDefault.prototype.subscribePushManager=function(){return __awaiter(this,void 0,void 0,function(){var registration,applicationServerKey;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getServiceWorkerRegistration()];case 1:return registration=_a.sent(),[4,this.getApplicationServerKey()];case 2:return applicationServerKey=_a.sent(),[2,registration.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:applicationServerKey?this.urlBase64ToUint8Array(applicationServerKey):null})]}})})},PushServiceDefault.prototype.getCredentials=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getServiceWorkerRegistration()];case 1:return[4,_a.sent().pushManager.getSubscription()];case 2:return[2,_a.sent()]}})})},PushServiceDefault.prototype.getFcmKeys=function(config){return __awaiter(this,void 0,void 0,function(){var response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,fetch(this.config.entrypoint||\"https://fcm.googleapis.com/fcm/connect/subscribe\",{method:\"POST\",headers:{\"Content-Type\":\"text/plain;charset=UTF-8\"},body:JSON.stringify(config)})];case 1:return 200!==(response=_a.sent()).status?[3,3]:[4,response.json()];case 2:return[2,_a.sent()];case 3:throw new Error(\"Internal error: Can't register device in fcm. Status: \"+response.status+\". Message: \"+response.statusText)}})})},PushServiceDefault.prototype.getPushToken=function(subscription){return __awaiter(this,void 0,void 0,function(){var deviceType;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getDeviceType()];case 1:return deviceType=_a.sent(),subscription?12===deviceType?[2,subscription.endpoint]:[2,subscription.endpoint.split(\"/\").pop()||\"\"]:[2,\"\"]}})})},PushServiceDefault.prototype.getApplicationServerKey=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getDeviceType()];case 1:return 11!==_a.sent()?[2]:[4,this.data.getApplicationServerKey()];case 2:return[2,_a.sent()]}})})},PushServiceDefault.prototype.getSenderIdFromManifest=function(){return __awaiter(this,void 0,void 0,function(){var manifest,url,response,data,match;return __generator(this,function(_a){switch(_a.label){case 0:if(!(manifest=document.querySelector('link[rel=\"manifest\"]')))throw new Error(\"Error: manifest.json not found!\");if(!(url=manifest.getAttribute(\"href\")))throw new Error(\"Error: manifest.json url not found!\");return[4,fetch(url,{method:\"GET\",headers:{\"Content-Type\":\"application/json;charset=UTF-8\"}})];case 1:if(200!==(response=_a.sent()).status)throw new Error(\"Error: Can't load manifest.json! \"+response.statusText);return[4,response.text()];case 2:if(data=_a.sent(),!(match=data.match(/(\"|')?gcm_sender_id(\"|')?:\\s*(\"|')?(\\d+)(\"|')?/))||\"string\"!=typeof match[4])throw new Error(\"Error: Can't find gcm_sender_id in manifest.json!\");return[2,match[4]]}})})},PushServiceDefault.prototype.checkIsChangeSenderId=function(currentSenderId){return __awaiter(this,void 0,void 0,function(){var senderIdFromIndexedDB;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getSenderId()];case 1:return senderIdFromIndexedDB=_a.sent(),[2,currentSenderId!==senderIdFromIndexedDB]}})})},PushServiceDefault.prototype.urlBase64ToUint8Array=function(base64String){for(var base64=(base64String+\"=\".repeat((4-base64String.length%4)%4)).replace(/\\-/g,\"+\").replace(/_/g,\"/\"),rawData=window.atob(base64),outputArray=new Uint8Array(rawData.length),i=0;i<rawData.length;++i)outputArray[i]=rawData.charCodeAt(i);return outputArray},PushServiceDefault}();exports.PushServiceDefault=PushServiceDefault},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0});var Storage_1=__webpack_require__(25),DateModule_1=__webpack_require__(3),InboxMessagesPublic_1=__webpack_require__(13),InboxMessages=function(){function InboxMessages(eventBus,data,api,storage,dateModule){void 0===storage&&(storage=new Storage_1.default),void 0===dateModule&&(dateModule=new DateModule_1.default),this.eventBus=eventBus,this.data=data,this.api=api,this.storage=storage,this.storeName=\"inboxMessages\",this.dateModule=dateModule}return InboxMessages.prototype.getInboxMessages=function(){return __awaiter(this,void 0,void 0,function(){var response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.api.getInboxMessages()];case 1:return response=_a.sent(),[4,this.storeGetInboxMessagesRequestParams(response.next,response.new_inbox)];case 2:return _a.sent(),[2,response]}})})},InboxMessages.prototype.storeGetInboxMessagesRequestParams=function(next,newMessagesCount){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return this.dateModule.date=new Date,[4,this.data.setInboxLastRequestTime(this.dateModule.getUtcTimestamp())];case 1:return _a.sent(),[4,this.data.setInboxLastRequestCode(next)];case 2:return _a.sent(),[4,this.data.setInboxNewMessagesCount(newMessagesCount)];case 3:return _a.sent(),[2]}})})},InboxMessages.prototype.putServerMessages=function(messages){return __awaiter(this,void 0,void 0,function(){var putTransactions,_this=this;return __generator(this,function(_a){return putTransactions=messages.map(function(message){return __awaiter(_this,void 0,void 0,function(){var localMessage;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(this.storeName,message.inbox_id,{})];case 1:return\"status\"in(localMessage=_a.sent())&&(message.status=localMessage.status),[2,this.putMessage(message)]}})})}),[2,Promise.all(putTransactions)]})})},InboxMessages.prototype.putMessage=function(message){return this.storage.put(this.storeName,message)},InboxMessages.prototype.putBulkMessages=function(messages){var _this=this,putTransactions=messages.map(function(message){return _this.putMessage(message)});return Promise.all(putTransactions)},InboxMessages.prototype.deleteMessages=function(codes){var _this=this,deleteTransactions=codes.map(function(code){return _this.storage.delete(_this.storeName,code)});return Promise.all(deleteTransactions)},InboxMessages.prototype.deleteExpiredMessages=function(){return __awaiter(this,void 0,void 0,function(){var upperBound,allMessages,codesToDelete;return __generator(this,function(_a){switch(_a.label){case 0:return this.dateModule.date=new Date,upperBound=this.dateModule.getTimestamp().toString(),[4,this.storage.getAll(this.storeName)];case 1:return allMessages=_a.sent(),codesToDelete=allMessages.filter(function(msg){return msg.rt<upperBound}).map(function(msg){return msg.inbox_id}),[2,this.deleteMessages(codesToDelete)]}})})},InboxMessages.prototype.getMessage=function(code){return this.storage.get(this.storeName,code)},InboxMessages.prototype.getReadOpenMessages=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.getAll(this.storeName)];case 1:return[2,_a.sent().filter(function(msg){return 2===msg.status||3===msg.status})]}})})},InboxMessages.prototype.getDeliveredMessages=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.getAll(this.storeName)];case 1:return[2,_a.sent().filter(function(msg){return 1===msg.status})]}})})},InboxMessages.prototype.messagesCount=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storage.count(this.storeName)]})})},InboxMessages.prototype.getDeliveredMessagesCount=function(){return __awaiter(this,void 0,void 0,function(){var deliveredStatus,statusIndexName;return __generator(this,function(_a){return deliveredStatus=1,statusIndexName=\"status\",[2,this.storage.countByIndex(this.storeName,statusIndexName,deliveredStatus)]})})},InboxMessages.prototype.getReadMessagesCount=function(){return __awaiter(this,void 0,void 0,function(){var readStatus,statusIndexName;return __generator(this,function(_a){return readStatus=2,statusIndexName=\"status\",[2,this.storage.countByIndex(this.storeName,statusIndexName,readStatus)]})})},InboxMessages.prototype.getDeliveredReadMessagesCount=function(){return __awaiter(this,void 0,void 0,function(){var _a,readStatus,openStatus,keyRange,statusIndexName;return __generator(this,function(_b){return readStatus=(_a=[2,3])[0],openStatus=_a[1],keyRange=IDBKeyRange.bound(readStatus,openStatus),statusIndexName=\"status\",[2,this.storage.countByIndex(this.storeName,statusIndexName,keyRange)]})})},InboxMessages.prototype.updateMessages=function(){return __awaiter(this,void 0,void 0,function(){var response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getInboxMessages()];case 1:return response=_a.sent(),[4,this.deleteExpiredMessages()];case 2:return _a.sent(),response.deleted?[4,this.deleteMessages(response.deleted)]:[3,4];case 3:_a.sent(),_a.label=4;case 4:return[4,this.putServerMessages(response.messages)];case 5:return _a.sent(),this.eventBus.dispatchEvent(\"update-inbox-messages\",{messages:new InboxMessagesPublic_1.default(this.data,this.api,this)}),[2]}})})},InboxMessages}();exports.default=InboxMessages},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0});var version_1=__webpack_require__(10),MigrationExecutor_1=__webpack_require__(11),Store_1=__webpack_require__(26),Storage=function(){function Storage(){}return Storage.prototype.dbVersionChangeHandler=function(db,event){console.info(\"onversionchange\",event),db.close()},Storage.prototype.dbRequestSuccessHandler=function(resolve,event){var _this=this,database=event.target.result;database.onversionchange=function(event){_this.dbVersionChangeHandler(database,event)},resolve(database)},Storage.prototype.dbRequestUpgradeNeededHandler=function(event){var _this=this,database=event.target.result;database.onversionchange=function(event){_this.dbVersionChangeHandler(database,event)},new MigrationExecutor_1.default(database).applyMigrations()},Storage.prototype.getDB=function(){var _this=this;return new Promise(function(resolve,reject){var request=indexedDB.open(\"PUSHWOOSH_SDK_STORE\",version_1.default);request.onsuccess=function(event){_this.dbRequestSuccessHandler(resolve,event)},request.onupgradeneeded=function(event){_this.dbRequestUpgradeNeededHandler(event)},request.onerror=function(){return reject(request.error)}})},Storage.prototype.put=function(storeName,data,key){return __awaiter(this,void 0,void 0,function(){var db,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),[4,new Store_1.default(db,storeName).put(data,key)];case 2:return result=_a.sent(),db.close(),[2,result]}})})},Storage.prototype.delete=function(storeName,key){return __awaiter(this,void 0,void 0,function(){var db,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),[4,new Store_1.default(db,storeName).delete(key)];case 2:return result=_a.sent(),db.close(),[2,result]}})})},Storage.prototype.get=function(storeName,key,defaultValue){return __awaiter(this,void 0,void 0,function(){var db,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),[4,new Store_1.default(db,storeName).get(key,defaultValue)];case 2:return result=_a.sent(),db.close(),[2,result]}})})},Storage.prototype.getAll=function(storeName){return __awaiter(this,void 0,void 0,function(){var db,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),[4,new Store_1.default(db,storeName).getAll()];case 2:return result=_a.sent(),db.close(),[2,result||[]]}})})},Storage.prototype.count=function(storeName,query){return __awaiter(this,void 0,void 0,function(){var db,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),[4,new Store_1.default(db,storeName).count(query)];case 2:return result=_a.sent(),db.close(),[2,result]}})})},Storage.prototype.countByIndex=function(storeName,indexName,key){return __awaiter(this,void 0,void 0,function(){var db,store,result;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getDB()];case 1:return db=_a.sent(),(store=new Store_1.default(db,storeName)).index=indexName,[4,store.countByIndex(key)];case 2:return result=_a.sent(),db.close(),[2,result]}})})},Storage}();exports.default=Storage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var Store=function(){function Store(db,name){this.name=name,this.store=db.transaction(this.name,\"readwrite\").objectStore(this.name)}return Object.defineProperty(Store.prototype,\"index\",{set:function(index){this.store.indexNames.contains(index)?this._index=this.store.index(index):console.warn('Index \"'+index+'\" in ')},enumerable:!1,configurable:!0}),Store.prototype.writeRequestPromise=function(request,result){return new Promise(function(resolve,reject){request.onsuccess=function(){resolve(result)},request.onerror=function(){reject(request.error)}})},Store.prototype.readRequestPromise=function(request,defaultValue){return new Promise(function(resolve,reject){request.onsuccess=function(event){var target=event.target;resolve(target.result||defaultValue)},request.onerror=function(){reject(request.error)}})},Store.prototype.put=function(data,key){var request=this.store.put(data,key);return this.writeRequestPromise(request,key)},Store.prototype.add=function(data,key){return this.put(data,key)},Store.prototype.delete=function(key){var request=this.store.delete(key);return this.writeRequestPromise(request)},Store.prototype.get=function(key,defaultValue){var request=this.store.get(key);return this.readRequestPromise(request,defaultValue)},Store.prototype.getAll=function(){var cursor=this.store.openCursor(),result=[];return new Promise(function(resolve,reject){cursor.onsuccess=function(event){var cursorResult=event.target.result;cursorResult?(result.push(cursorResult.value),cursorResult.continue()):resolve(result)},cursor.onerror=function(){reject(cursor.error)}})},Store.prototype.count=function(query){var request=this.store.count(query);return this.readRequestPromise(request,0)},Store.prototype.countByIndex=function(key){var request=this._index.count(key);return this.readRequestPromise(request,0)},Store}();exports.default=Store},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE=void 0,exports.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE=\"pushwoosh-subscription-widget\"},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var PlatformChecker_1=__webpack_require__(29),PlatformChecker_2=__webpack_require__(29);Object.defineProperty(exports,\"PlatformChecker\",{enumerable:!0,get:function(){return PlatformChecker_2.PlatformChecker}}),exports.default=PlatformChecker_1.platformChecker},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.platformChecker=exports.PlatformChecker=void 0;var functions_1=__webpack_require__(6),PlatformChecker=function(){function PlatformChecker(global){this.global=global,this._isSafari=this.isSafariBrowser(),this._isOpera=this.isOperaBrowser(),this._isEdge=this.isEdgeBrowser(),this._isFirefox=this.isFirefoxBrowser(),this._isChrome=this.isChromeBrowser(),this._isMacOS=this.isMacOS(),this._isAvailablePromise=this.canUsePromise(),this._isAvailableServiceWorker=this.canUseServiceWorkers(),this._isAvailableNotifications=this.canReceiveNotifications(),this._platform=this.getPlatformType(),this._browserVersion=this.getBrowserVersion()}return Object.defineProperty(PlatformChecker.prototype,\"isEdge\",{get:function(){return this._isEdge},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"isSafari\",{get:function(){return this._isSafari},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"isOpera\",{get:function(){return this._isOpera},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"isAvailablePromise\",{get:function(){return this._isAvailablePromise},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"isAvailableServiceWorker\",{get:function(){return this._isAvailableServiceWorker},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"isAvailableNotifications\",{get:function(){return this._isAvailableNotifications},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"platform\",{get:function(){return this._platform},enumerable:!1,configurable:!0}),Object.defineProperty(PlatformChecker.prototype,\"browserVersion\",{get:function(){return this._browserVersion},enumerable:!1,configurable:!0}),PlatformChecker.prototype.isSafariBrowser=function(){return\"safari\"in this.global&&navigator.userAgent.indexOf(\"Safari\")>-1},PlatformChecker.prototype.isOperaBrowser=function(){return-1!==navigator.userAgent.indexOf(\"Opera\")||-1!==navigator.userAgent.indexOf(\"OPR\")},PlatformChecker.prototype.isEdgeBrowser=function(){return navigator.userAgent.indexOf(\"Edge\")>-1},PlatformChecker.prototype.isFirefoxBrowser=function(){return-1!==navigator.userAgent.toLowerCase().indexOf(\"firefox\")},PlatformChecker.prototype.isChromeBrowser=function(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)&&!this._isOpera&&!this._isEdge},PlatformChecker.prototype.isMacOS=function(){return\"platform\"in navigator&&-1!==navigator.platform.toLowerCase().indexOf(\"mac\")},PlatformChecker.prototype.canUseServiceWorkers=function(){return!!navigator.serviceWorker&&\"PushManager\"in this.global&&\"Notification\"in this.global},PlatformChecker.prototype.canUsePromise=function(){return\"Promise\"in this.global},PlatformChecker.prototype.canReceiveNotifications=function(){return this._isSafari&&this._isMacOS||this._isAvailableServiceWorker&&!this._isEdge},PlatformChecker.prototype.getPlatformType=function(){var platform=11;switch(!0){case this._isSafari:platform=10;break;case this._isOpera||this._isChrome:platform=11;break;case this._isFirefox:platform=12;break;case this._isEdge:platform=150}return platform},PlatformChecker.prototype.getBrowserVersion=function(){var userAgent=navigator.userAgent,matchOperaVersion=userAgent.match(/\\bOPR\\/(\\d+)/);if(null!==matchOperaVersion)return\"Opera \"+matchOperaVersion[1];var matchEdgeVersion=userAgent.match(/\\bEdge\\/(\\d+)/);if(null!==matchEdgeVersion)return\"Edge \"+matchEdgeVersion[1];var matchEdgVersion=userAgent.match(/\\bEdg\\/(\\d+)/);if(null!==matchEdgVersion)return\"Edge \"+matchEdgVersion[1];var match=userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i)||[],_a=(match[0],match[1]),browser=void 0===_a?\"\":_a;if(/trident/i.test(userAgent)){var matchIeVersion=/trident\\/([.\\d]+)/gi.exec(userAgent)||[];return\"IE \"+((\"7.0\"===matchIeVersion[1]?\"11\":matchIeVersion[1])||\"\")}match=match[2]?[browser,match[2]]:[navigator.appName,navigator.appVersion,\"-?\"];var version=userAgent.match(/version\\/([.\\d]+)/i);return null!==version&&match.splice(1,1,version[1]),match.join(\" \")},PlatformChecker}();exports.PlatformChecker=PlatformChecker,exports.platformChecker=new PlatformChecker(functions_1.getGlobal())},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SUBSCRIBE_WIDGET_DEFAULT_CONFIG=exports.WIDGET_CONTAINER_ID=exports.BELL_POSITION_TOP_LEFT=exports.BELL_POSITION_TOP_RIGHT=exports.BELL_POSITION_BOTTOM_LEFT=exports.BELL_POSITION_BOTTOM_RIGHT=void 0,exports.BELL_POSITION_BOTTOM_RIGHT=\"bottomRight\",exports.BELL_POSITION_BOTTOM_LEFT=\"bottomLeft\",exports.BELL_POSITION_TOP_RIGHT=\"topRight\",exports.BELL_POSITION_TOP_LEFT=\"topLeft\",exports.WIDGET_CONTAINER_ID=\"pushwooshBellWidget\",exports.SUBSCRIBE_WIDGET_DEFAULT_CONFIG={position:exports.BELL_POSITION_BOTTOM_LEFT,bgColor:\"#12AE7E\",bellColor:\"white\",bellStrokeColor:\"#08754f\",bellButtonBorder:\"1px solid #379676\",shadow:\"0px 0px 6px rgba(0, 0, 0, 0.75)\",size:\"48px\",indent:\"20px\",zIndex:\"999999\",tooltipText:{successSubscribe:\"You are successfully subscribed!\",needSubscribe:\"Get notifications about important news!\",blockSubscribe:\"Click to see how to get notifications\",alreadySubscribed:\"You are already subscribed\"}}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var Pushwoosh_1=__webpack_require__(32);Object.defineProperty(exports,\"Pushwoosh\",{enumerable:!0,get:function(){return Pushwoosh_1.default}}),__webpack_require__(37),__webpack_require__(43),__webpack_require__(45)},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0});var uuid_1=__webpack_require__(7),EventBus_1=__webpack_require__(17),Api_1=__webpack_require__(19),Data_1=__webpack_require__(1),ApiClient_1=__webpack_require__(14),PushService_1=__webpack_require__(33),SubscriptionPromptWidget_1=__webpack_require__(35),CONSTANTS=__webpack_require__(0),functions_1=__webpack_require__(6),PlatformChecker_1=__webpack_require__(28),logger_1=__webpack_require__(4),storage_1=__webpack_require__(2),InboxMessages_1=__webpack_require__(24),InboxMessagesPublic_1=__webpack_require__(13),Pushwoosh=function(){function Pushwoosh(){var _this=this;this.ready=!1,this.addEventHandler=function(name,handler){return _this.eventBus.addEventHandler(name,handler)},this.removeEventHandler=function(name,handler){return _this.eventBus.removeEventHandler(name,handler)},this.dispatchEvent=function(name,payload){return _this.eventBus.dispatchEvent(name,payload)},this.debug={showLog:function(){return __awaiter(this,void 0,void 0,function(){var items;return __generator(this,function(_a){switch(_a.label){case 0:return[4,storage_1.log.getAll()];case 1:return items=_a.sent(),console.log(items),[2]}})})},showKeyValues:function(){return __awaiter(this,void 0,void 0,function(){var items;return __generator(this,function(_a){switch(_a.label){case 0:return[4,storage_1.keyValue.getAll()];case 1:return items=_a.sent(),console.log(items),[2]}})})},showMessages:function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,storage_1.message.getAll()];case 1:return _a.sent().forEach(function(i){return console.log(i)}),[2]}})})}},this.eventBus=new EventBus_1.EventBus,this.data=new Data_1.Data,this.apiClient=new ApiClient_1.ApiClient(this.data),this.api=new Api_1.Api(this.eventBus,this.data,this.apiClient),this.platformChecker=new PlatformChecker_1.PlatformChecker(functions_1.getGlobal()),this.inboxModel=new InboxMessages_1.default(this.eventBus,this.data,this.api),this.pwinbox=new InboxMessagesPublic_1.default(this.data,this.api,this.inboxModel),this.onServiceWorkerMessage=this.onServiceWorkerMessage.bind(this),this.subscriptionPromptWidget=new SubscriptionPromptWidget_1.SubscriptionPromptWidget(this.eventBus,this)}return Pushwoosh.prototype.push=function(command){if(\"function\"!=typeof command){if(!Array.isArray(command))throw new Error(\"Invalid command!\");switch(command[0]){case\"init\":this.initialize(command[1]);break;case CONSTANTS.EVENT_ON_LOAD:case CONSTANTS.EVENT_ON_READY:case CONSTANTS.EVENT_ON_REGISTER:case CONSTANTS.EVENT_ON_SUBSCRIBE:case CONSTANTS.EVENT_ON_UNSUBSCRIBE:case CONSTANTS.EVENT_ON_SW_INIT_ERROR:case CONSTANTS.EVENT_ON_PUSH_DELIVERY:case CONSTANTS.EVENT_ON_NOTIFICATION_CLICK:case CONSTANTS.EVENT_ON_NOTIFICATION_CLOSE:case CONSTANTS.EVENT_ON_CHANGE_COMMUNICATION_ENABLED:case CONSTANTS.EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE:case CONSTANTS.EVENT_ON_UPDATE_INBOX_MESSAGES:case CONSTANTS.EVENT_ON_SHOW_NOTIFICATION_PERMISSION_DIALOG:case CONSTANTS.EVENT_ON_HIDE_NOTIFICATION_PERMISSION_DIALOG:case CONSTANTS.EVENT_ON_SHOW_SUBSCRIPTION_WIDGET:case CONSTANTS.EVENT_ON_HIDE_SUBSCRIPTION_WIDGET:case CONSTANTS.EVENT_ON_PERMISSION_DENIED:case CONSTANTS.EVENT_ON_PERMISSION_PROMPT:case CONSTANTS.EVENT_ON_PERMISSION_GRANTED:this.subscribeToLegacyEvents(command[0],command[1]);break;default:throw new Error(\"Unknown command!\")}}else this.subscribeToLegacyEvents(\"onReady\",command)},Pushwoosh.prototype.subscribe=function(isForceSubscribe){return void 0===isForceSubscribe&&(isForceSubscribe=!0),__awaiter(this,void 0,void 0,function(){var permission_1,permission,isManualUnsubscribed,isDeviceRegister;return __generator(this,function(_a){switch(_a.label){case 0:return this.isCommunicationDisabled&&logger_1.Logger.error(\"Communication is disabled!\"),this.driver.checkIsPermissionDefault()?(this.eventBus.dispatchEvent(\"show-notification-permission-dialog\",{}),[4,this.driver.askPermission()]):[3,2];case 1:_a.sent(),permission_1=this.driver.getPermission(),this.eventBus.dispatchEvent(\"hide-notification-permission-dialog\",{permission:permission_1}),_a.label=2;case 2:return permission=this.driver.getPermission(),[4,this.data.getStatusManualUnsubscribed()];case 3:return isManualUnsubscribed=_a.sent(),[4,this.api.checkDeviceSubscribeForPushNotifications(!1)];case 4:return isDeviceRegister=_a.sent(),permission!==CONSTANTS.PERMISSION_GRANTED?[3,7]:(this.eventBus.dispatchEvent(\"permission-granted\",{}),!(isForceSubscribe||!isManualUnsubscribed)||isDeviceRegister?[3,6]:[4,this.driver.subscribe()]);case 5:_a.sent(),_a.label=6;case 6:return this.eventBus.dispatchEvent(\"subscribe\",{}),[2];case 7:return permission!==CONSTANTS.PERMISSION_DENIED?[3,10]:(this.eventBus.dispatchEvent(\"permission-denied\",{}),isDeviceRegister?[4,this.driver.unsubscribe()]:[3,9]);case 8:_a.sent(),_a.label=9;case 9:case 10:return[2]}})})},Pushwoosh.prototype.unsubscribe=function(){return __awaiter(this,void 0,void 0,function(){var error_1;return __generator(this,function(_a){switch(_a.label){case 0:return _a.trys.push([0,2,,3]),[4,this.driver.unsubscribe()];case 1:return _a.sent(),[3,3];case 2:return error_1=_a.sent(),logger_1.Logger.error(error_1,\"Error occurred during the unsubscribe\"),[3,3];case 3:return[2]}})})},Pushwoosh.prototype.forceSubscribe=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.subscribe(!0)];case 1:return _a.sent(),[2]}})})},Pushwoosh.prototype.isDeviceRegistered=function(){return localStorage.getItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS)===CONSTANTS.DEVICE_REGISTRATION_STATUS_REGISTERED},Pushwoosh.prototype.isDeviceUnregistered=function(){return localStorage.getItem(CONSTANTS.KEY_DEVICE_REGISTRATION_STATUS)===CONSTANTS.DEVICE_REGISTRATION_STATUS_UNREGISTERED},Pushwoosh.prototype.isSubscribed=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.api.checkDeviceSubscribeForPushNotifications()]})})},Pushwoosh.prototype.isCommunicationEnabled=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getStatusCommunicationDisabled()];case 1:return[2,!_a.sent()]}})})},Pushwoosh.prototype.setCommunicationEnabled=function(isEnabled){return void 0===isEnabled&&(isEnabled=!0),__awaiter(this,void 0,void 0,function(){var deviceType,isPermissionGranted;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getDeviceType()];case 1:return deviceType=_a.sent(),isPermissionGranted=this.driver.checkIsPermissionGranted(),[4,this.data.setStatusCommunicationDisabled(!isEnabled)];case 2:return _a.sent(),isEnabled?[4,this.data.setStatusDropAllData(!1)]:[3,6];case 3:return _a.sent(),isPermissionGranted?[4,this.api.registerDevice()]:[3,5];case 4:_a.sent(),_a.label=5;case 5:return[3,8];case 6:return[4,this.api.unregisterDevice()];case 7:_a.sent(),_a.label=8;case 8:return this.eventBus.dispatchEvent(\"change-enabled-communication\",{isEnabled:isEnabled}),[4,this.api.postEvent(CONSTANTS.EVENT_GDPR_CONSENT,{channel:isEnabled,device_type:deviceType})];case 9:return _a.sent(),[2]}})})},Pushwoosh.prototype.removeAllDeviceData=function(){return __awaiter(this,void 0,void 0,function(){var deviceType;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getDeviceType()];case 1:return deviceType=_a.sent(),[4,this.api.postEvent(CONSTANTS.EVENT_GDPR_DELETE,{status:!0,device_type:deviceType})];case 2:return _a.sent(),[4,this.api.deleteDevice()];case 3:return _a.sent(),[4,this.data.clearAll()];case 4:return _a.sent(),[4,this.data.setStatusDropAllData(!0)];case 5:return _a.sent(),[2]}})})},Pushwoosh.prototype.getHWID=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getHwid()];case 1:return[2,_a.sent()]}})})},Pushwoosh.prototype.getPushToken=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getTokens()];case 1:return[2,_a.sent().pushToken]}})})},Pushwoosh.prototype.getUserId=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getUserId()];case 1:return[2,_a.sent()]}})})},Pushwoosh.prototype.getParams=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.api.getParams()];case 1:return[2,_a.sent()]}})})},Pushwoosh.prototype.isAvailableNotifications=function(){return this.platformChecker.isAvailableNotifications},Pushwoosh.prototype.sendStatisticsVisitedPage=function(){return __awaiter(this,void 0,void 0,function(){var title,_a,origin,pathname,href;return __generator(this,function(_b){switch(_b.label){case 0:return title=window.document.title,_a=window.location,origin=_a.origin,pathname=_a.pathname,href=_a.href,[4,this.api.pageVisit({title:title,url_path:\"\"+origin+pathname,url:href})];case 1:return _b.sent(),[2]}})})},Pushwoosh.prototype.initialize=function(params){return __awaiter(this,void 0,void 0,function(){var manualDebug,applicationCode,notSavedApplicationCode,isChangeApplicationCode,id,config,_a,userIdWasChange,error_2,delayedEvent,type,payload,hashReg,hash;return __generator(this,function(_b){switch(_b.label){case 0:return manualDebug=localStorage.getItem(CONSTANTS.MANUAL_SET_LOGGER_LEVEL),logger_1.Logger.setLevel(manualDebug||params.logLevel||\"error\"),this.platformChecker.isAvailableNotifications?[4,this.data.getApplicationCode()]:[2];case 1:if(applicationCode=_b.sent(),!params.applicationCode)throw new Error(\"Can't find application code!\");return notSavedApplicationCode=!applicationCode,isChangeApplicationCode=applicationCode&&applicationCode!==params.applicationCode,notSavedApplicationCode||isChangeApplicationCode?[4,this.data.clearAll()]:[3,4];case 2:return _b.sent(),[4,this.data.setApplicationCode(params.applicationCode)];case 3:_b.sent(),_b.label=4;case 4:return[4,this.data.getHwid()];case 5:return _b.sent()?[3,7]:(id=params.applicationCode+\"_\"+uuid_1.v4(),[4,this.data.setHwid(id)]);case 6:_b.sent(),_b.label=7;case 7:return[4,this.data.setDeviceType(this.platformChecker.getPlatformType())];case 8:return _b.sent(),[4,this.data.setDeviceModel(this.platformChecker.getBrowserVersion())];case 9:return _b.sent(),[4,this.data.setLanguage(params.tags&¶ms.tags.Language||navigator.language)];case 10:return _b.sent(),params.pushwooshUrl?[4,this.data.setApiEntrypoint(params.pushwooshUrl)]:[3,12];case 11:_b.sent(),_b.label=12;case 12:return[4,this.data.setSdkVersion(\"3.35.0\")];case 13:return _b.sent(),[4,this.api.getConfig([\"page_visit\",\"vapid_key\",\"web_in_apps\",\"events\",\"subscription_prompt\"])];case 14:return config=_b.sent(),this.onGetConfig(config&&config.features),this.subscribeWidgetConfig=__assign({enable:!1},params.subscribeWidget),this.inboxWidgetConfig=__assign({enable:!1},params.inboxWidget),this.subscribePopupConfig=__assign({enable:!1},params.subscribePopup),_a=this,[4,this.data.getStatusCommunicationDisabled()];case 15:return _a.isCommunicationDisabled=_b.sent(),[4,this.open()];case 16:return _b.sent(),[4,this.data.getStatusUserIdWasChanged()];case 17:return userIdWasChange=_b.sent(),!params.userId||\"user_id\"===params.userId||userIdWasChange?[3,19]:[4,this.api.registerUser(params.userId)];case 18:_b.sent(),_b.label=19;case 19:return params.tags&&this.api.setTags(params.tags),this.platformChecker.isAvailableNotifications?[4,this.initPushNotifications(params)]:[3,21];case 20:_b.sent(),_b.label=21;case 21:return _b.trys.push([21,23,,24]),[4,this.inboxModel.updateMessages()];case 22:return _b.sent(),[3,24];case 23:return error_2=_b.sent(),logger_1.Logger.write(\"error\",error_2),[3,24];case 24:return this.ready=!0,this.eventBus.dispatchEvent(\"ready\",{}),[4,this.data.getDelayedEvent()];case 25:return(delayedEvent=_b.sent())?(type=delayedEvent.type,payload=delayedEvent.payload,[4,this.emitLegacyEventsFromServiceWorker(type,payload)]):[3,28];case 26:return _b.sent(),[4,this.data.setDelayedEvent(null)];case 27:_b.sent(),_b.label=28;case 28:return\"serviceWorker\"in navigator&&(navigator.serviceWorker.onmessage=this.onServiceWorkerMessage),localStorage.setItem(\"pushwoosh-websdk-status\",\"init\"),document.dispatchEvent(new CustomEvent(\"pushwoosh.initialized\",{detail:{pw:this}})),this.platformChecker.isSafari&&(hashReg=/#P(.*)/,hash=decodeURIComponent(document.location.hash),hashReg.test(hash)&&this.api.pushStat(hashReg.exec(hash)[1]).then(functions_1.clearLocationHash)),[2]}})})},Pushwoosh.prototype.defaultProcess=function(initParams){return __awaiter(this,void 0,void 0,function(){var permission,isCommunicationDisabled,isDropAllData,isNeedResubscribe,features,currentPromptUseCase,autoSubscribe,isManualUnsubscribed,isRegister,widgetConfig,isDefaultUseCase,isNotSetUseCase;return __generator(this,function(_b){switch(_b.label){case 0:return\"granted\"!==(permission=this.driver.getPermission())?[3,2]:[4,this.data.setLastPermissionStatus(permission)];case 1:_b.sent(),_b.label=2;case 2:return[4,this.data.getStatusCommunicationDisabled()];case 3:return isCommunicationDisabled=_b.sent(),[4,this.data.getStatusDropAllData()];case 4:return isDropAllData=_b.sent(),[4,this.driver.checkIsNeedResubscribe()];case 5:return isNeedResubscribe=_b.sent(),[4,this.data.getFeatures()];case 6:return features=_b.sent(),currentPromptUseCase=features.subscription_prompt&&features.subscription_prompt.use_case,isCommunicationDisabled||isDropAllData?[4,this.unsubscribe()]:[3,8];case 7:return _b.sent(),[2];case 8:return isNeedResubscribe?[4,this.unsubscribe()]:[3,11];case 9:return _b.sent(),[4,this.data.setStatusManualUnsubscribed(!1)];case 10:_b.sent(),_b.label=11;case 11:return autoSubscribe=initParams.autoSubscribe,[4,this.data.getStatusManualUnsubscribed()];case 12:return isManualUnsubscribed=_b.sent(),[4,this.api.checkDeviceSubscribeForPushNotifications(!1)];case 13:switch(isRegister=_b.sent(),permission){case CONSTANTS.PERMISSION_PROMPT:return[3,14];case CONSTANTS.PERMISSION_DENIED:return[3,20];case CONSTANTS.PERMISSION_GRANTED:return[3,23]}return[3,28];case 14:return this.eventBus.dispatchEvent(\"permission-default\",{}),isRegister?[4,this.unsubscribe()]:[3,16];case 15:_b.sent(),_b.label=16;case 16:return[4,this.getWidgetConfig()];case 17:return widgetConfig=_b.sent(),[4,this.checkCanShowByCapping(widgetConfig)];case 18:return _b.sent()?(isDefaultUseCase=currentPromptUseCase===CONSTANTS.SUBSCRIPTION_WIDGET_USE_CASE_DEFAULT,isNotSetUseCase=currentPromptUseCase===CONSTANTS.SUBSCRIPTION_WIDGET_USE_CASE_NOT_SET&&autoSubscribe,(isDefaultUseCase||isNotSetUseCase)&&(this.subscriptionPromptWidget.init(widgetConfig),this.subscriptionPromptWidget.show()),[4,this.updateCappingParams()]):[3,28];case 19:return _b.sent(),[3,28];case 20:return this.eventBus.dispatchEvent(\"permission-denied\",{}),isRegister?[4,this.unsubscribe()]:[3,22];case 21:_b.sent(),_b.label=22;case 22:return[3,28];case 23:return this.eventBus.dispatchEvent(\"permission-granted\",{}),isManualUnsubscribed&&isRegister?[4,this.unsubscribe()]:[3,25];case 24:_b.sent(),_b.label=25;case 25:return!isRegister&&!isManualUnsubscribed||isNeedResubscribe?[4,this.subscribe(!0)]:[3,27];case 26:_b.sent(),_b.label=27;case 27:return[3,28];case 28:return[2]}})})},Pushwoosh.prototype.getWidgetConfig=function(){return __awaiter(this,void 0,void 0,function(){var features,currentConfig,configWithDefaultCapping;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getFeatures()];case 1:return features=_a.sent(),currentConfig=features.subscription_prompt_widget&&features.subscription_prompt_widget.params,configWithDefaultCapping=__assign({cappingCount:CONSTANTS.SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG.cappingCount,cappingDelay:CONSTANTS.SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG.cappingDelay},currentConfig),[2,currentConfig?configWithDefaultCapping:CONSTANTS.SUBSCRIPTION_PROMPT_WIDGET_DEFAULT_CONFIG]}})})},Pushwoosh.prototype.checkCanShowByCapping=function(widgetConfig){return __awaiter(this,void 0,void 0,function(){var currentTime,displayCount,lastSeenTime,canShowByCapping,canShowByLastTime;return __generator(this,function(_a){switch(_a.label){case 0:return currentTime=(new Date).getTime(),[4,this.data.getPromptDisplayCount()];case 1:return displayCount=_a.sent(),[4,this.data.getPromptLastSeenTime()];case 2:return lastSeenTime=_a.sent(),canShowByCapping=widgetConfig.cappingCount>displayCount,canShowByLastTime=currentTime-lastSeenTime>widgetConfig.cappingDelay,[2,canShowByCapping&&canShowByLastTime]}})})},Pushwoosh.prototype.updateCappingParams=function(){return __awaiter(this,void 0,void 0,function(){var displayCount,currentTime;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getPromptDisplayCount()];case 1:return displayCount=_a.sent(),currentTime=(new Date).getTime(),[4,this.data.setPromptDisplayCount(displayCount+1)];case 2:return _a.sent(),[4,this.data.setPromptLastSeenTime(currentTime)];case 3:return _a.sent(),[2]}})})},Pushwoosh.prototype.onServiceWorkerMessage=function(event){var _a=(event||{}).data,_b=(void 0===_a?{}:_a)||{},_c=_b.type,type=void 0===_c?\"\":_c,_d=_b.payload,payload=void 0===_d?{}:_d;this.emitLegacyEventsFromServiceWorker(type,payload)},Pushwoosh.prototype.open=function(isForce){return __awaiter(this,void 0,void 0,function(){var lastApplicationOpenTime,currentTime,isSendingPeriodExceeded;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getLastOpenApplicationTime()];case 1:return lastApplicationOpenTime=_a.sent(),currentTime=Date.now(),lastApplicationOpenTime||(lastApplicationOpenTime=0),isSendingPeriodExceeded=currentTime-lastApplicationOpenTime<CONSTANTS.PERIOD_SEND_APP_OPEN,isForce||!isSendingPeriodExceeded?[4,this.data.setLastOpenApplicationTime(currentTime)]:[2];case 2:return _a.sent(),[4,this.api.applicationOpen()];case 3:return _a.sent(),[2]}})})},Pushwoosh.prototype.onGetConfig=function(features){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.setFeatures(features)];case 1:return _a.sent(),features?features.page_visit&&features.page_visit.enabled?[4,storage_1.keyValue.set(CONSTANTS.PAGE_VISITED_URL,features.page_visit.entrypoint)]:[3,3]:[3,5];case 2:_a.sent(),this.sendStatisticsVisitedPage(),_a.label=3;case 3:return features.events&&features.events.length&&features.events.some(function(event){return event===CONSTANTS.EVENT_PW_SITE_OPENED})&&this.sendPostEventVisitedPage(),features.vapid_key?[4,this.data.setApplicationServerKey(features.vapid_key)]:[3,5];case 4:_a.sent(),_a.label=5;case 5:return[2]}})})},Pushwoosh.prototype.initPushNotifications=function(params){return __awaiter(this,void 0,void 0,function(){var error_3;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.setDefaultNotificationImage(params.defaultNotificationImage)];case 1:return _a.sent(),[4,this.data.setDefaultNotificationTitle(params.defaultNotificationTitle)];case 2:return _a.sent(),[4,this.data.setServiceWorkerUrl(params.serviceWorkerUrl)];case 3:return _a.sent(),[4,this.data.setServiceWorkerScope(params.scope)];case 4:return _a.sent(),[4,this.data.setInitParams(__assign({autoSubscribe:!0},params))];case 5:return _a.sent(),[4,this.initDriver()];case 6:_a.sent(),_a.label=7;case 7:return _a.trys.push([7,9,,10]),[4,this.defaultProcess(params)];case 8:return _a.sent(),[3,10];case 9:return error_3=_a.sent(),logger_1.Logger.error(error_3,\"Internal error: defaultProcess fail\"),[3,10];case 10:return[2]}})})},Pushwoosh.prototype.initDriver=function(){return __awaiter(this,void 0,void 0,function(){var webSitePushId;return __generator(this,function(_a){switch(_a.label){case 0:return this.platformChecker.isSafari?[4,this.data.getInitParams()]:[3,2];case 1:if(!(webSitePushId=_a.sent().safariWebsitePushID))throw new Error(\"For work with Safari Push Notification add safariWebsitePushID to initParams!\");return this.driver=new PushService_1.PushServiceSafari(this.api,this.data,{webSitePushId:webSitePushId}),[2];case 2:return this.platformChecker.isAvailableServiceWorker?(this.driver=new PushService_1.PushServiceDefault(this.api,this.data,{}),[2]):[2]}})})},Pushwoosh.prototype.sendPostEventVisitedPage=function(){return __awaiter(this,void 0,void 0,function(){var title,href;return __generator(this,function(_a){return title=window.document.title,href=window.location.href,this.api.postEvent(CONSTANTS.EVENT_PW_SITE_OPENED,{url:href,title:title,device_type:this.platformChecker.platform}),[2]})})},Pushwoosh.prototype.subscribeToLegacyEvents=function(type,handler){var _this=this;switch(type){case CONSTANTS.EVENT_ON_LOAD:handler();break;case CONSTANTS.EVENT_ON_READY:if(this.ready){handler(this.api);break}this.eventBus.addEventHandler(\"ready\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_REGISTER:this.eventBus.addEventHandler(\"register\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_SUBSCRIBE:this.eventBus.addEventHandler(\"subscribe\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_UNSUBSCRIBE:this.eventBus.addEventHandler(\"unsubscribe\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_SW_INIT_ERROR:this.eventBus.addEventHandler(\"initialize-service-worker-error\",function(_a){var error=_a.error;return handler(_this.api,error)});break;case CONSTANTS.EVENT_ON_PUSH_DELIVERY:this.eventBus.addEventHandler(\"receive-push\",function(_a){var notification=_a.notification;return handler(_this.api,notification)});break;case CONSTANTS.EVENT_ON_NOTIFICATION_CLICK:this.eventBus.addEventHandler(\"open-notification\",function(_a){var notification=_a.notification;return handler(_this.api,notification)});break;case CONSTANTS.EVENT_ON_NOTIFICATION_CLOSE:this.eventBus.addEventHandler(\"hide-notification\",function(_a){var notification=_a.notification;return handler(_this.api,notification)});break;case CONSTANTS.EVENT_ON_CHANGE_COMMUNICATION_ENABLED:this.eventBus.addEventHandler(\"change-enabled-communication\",function(_a){var isEnabled=_a.isEnabled;return handler(_this.api,isEnabled)});break;case CONSTANTS.EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE:this.eventBus.addEventHandler(\"receive-inbox-message\",function(_a){var message=_a.message;return handler(_this.api,message)});break;case CONSTANTS.EVENT_ON_UPDATE_INBOX_MESSAGES:this.eventBus.addEventHandler(\"update-inbox-messages\",function(_a){var messages=_a.messages;return handler(_this.api,messages)});break;case CONSTANTS.EVENT_ON_SHOW_NOTIFICATION_PERMISSION_DIALOG:this.eventBus.addEventHandler(\"show-notification-permission-dialog\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_HIDE_NOTIFICATION_PERMISSION_DIALOG:this.eventBus.addEventHandler(\"hide-notification-permission-dialog\",function(_a){var permission=_a.permission;return handler(_this.api,permission)});break;case CONSTANTS.EVENT_ON_SHOW_SUBSCRIPTION_WIDGET:this.eventBus.addEventHandler(\"show-subscription-widget\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_HIDE_SUBSCRIPTION_WIDGET:this.eventBus.addEventHandler(\"hide-subscription-widget\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_PERMISSION_DENIED:this.eventBus.addEventHandler(\"permission-denied\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_PERMISSION_PROMPT:this.eventBus.addEventHandler(\"permission-default\",function(){return handler(_this.api)});break;case CONSTANTS.EVENT_ON_PERMISSION_GRANTED:this.eventBus.addEventHandler(\"permission-granted\",function(){return handler(_this.api)})}},Pushwoosh.prototype.emitLegacyEventsFromServiceWorker=function(type,payload){switch(type){case CONSTANTS.EVENT_ON_PUSH_DELIVERY:this.eventBus.dispatchEvent(\"receive-push\",{notification:payload});break;case CONSTANTS.EVENT_ON_NOTIFICATION_CLICK:this.eventBus.dispatchEvent(\"open-notification\",{notification:payload});break;case CONSTANTS.EVENT_ON_NOTIFICATION_CLOSE:this.eventBus.dispatchEvent(\"hide-notification\",{notification:payload});break;case CONSTANTS.EVENT_ON_PUT_NEW_MESSAGE_TO_INBOX_STORE:this.eventBus.dispatchEvent(\"receive-inbox-message\",{message:payload})}},Pushwoosh}();exports.default=Pushwoosh},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var PushServiceDefault_1=__webpack_require__(23);Object.defineProperty(exports,\"PushServiceDefault\",{enumerable:!0,get:function(){return PushServiceDefault_1.PushServiceDefault}});var PushServiceSafari_1=__webpack_require__(34);Object.defineProperty(exports,\"PushServiceSafari\",{enumerable:!0,get:function(){return PushServiceSafari_1.PushServiceSafari}})},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PushServiceSafari=void 0;var logger_1=__webpack_require__(4),CONSTANTS=__webpack_require__(0),PushServiceSafari=function(){function PushServiceSafari(api,data,config){this.api=api,this.config=config,this.data=data}return PushServiceSafari.prototype.getPermission=function(){return this.getPermissionInfo().permission},PushServiceSafari.prototype.checkIsPermissionGranted=function(){return this.getPermission()===CONSTANTS.PERMISSION_GRANTED},PushServiceSafari.prototype.checkIsPermissionDefault=function(){return this.getPermission()===CONSTANTS.PERMISSION_PROMPT},PushServiceSafari.prototype.checkIsManualUnsubscribed=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getStatusManualUnsubscribed()];case 1:return[2,_a.sent()]}})})},PushServiceSafari.prototype.askPermission=function(){return __awaiter(this,void 0,void 0,function(){var application,hwid,payload,_this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getApplicationCode()];case 1:return application=_a.sent(),[4,this.data.getHwid()];case 2:return hwid=_a.sent(),payload={application:application,hwid:hwid},[2,new Promise(function(resolve){safari.pushNotification.requestPermission(_this.config.entrypoint||\"https://cp.pushwoosh.com/json/1.3/safari\",_this.config.webSitePushId,payload,function(){return resolve()})})]}})})},PushServiceSafari.prototype.getTokens=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.data.getTokens()]})})},PushServiceSafari.prototype.subscribe=function(){return __awaiter(this,void 0,void 0,function(){var deviceToken;return __generator(this,function(_a){switch(_a.label){case 0:return this.checkIsPermissionGranted()?[4,this.getPermissionInfo()]:(logger_1.Logger.error(\"You must have permission granted before subscribe!\"),[2]);case 1:return deviceToken=_a.sent().deviceToken,[4,this.data.setTokens({pushToken:deviceToken})];case 2:return _a.sent(),[4,this.api.registerDevice()];case 3:return _a.sent(),[2]}})})},PushServiceSafari.prototype.unsubscribe=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.setTokens({})];case 1:return _a.sent(),[4,this.data.setStatusManualUnsubscribed(!0)];case 2:return _a.sent(),[4,this.api.unregisterDevice()];case 3:return _a.sent(),[2]}})})},PushServiceSafari.prototype.checkIsRegister=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.api.checkDeviceSubscribeForPushNotifications()]})})},PushServiceSafari.prototype.checkIsNeedResubscribe=function(){return __awaiter(this,void 0,void 0,function(){var savedWebSitePushId,isChangeWebSitePushId,lastPermission,permission;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.data.getWebSitePushId()];case 1:return savedWebSitePushId=_a.sent(),isChangeWebSitePushId=void 0!==savedWebSitePushId&&this.config.webSitePushId!==savedWebSitePushId,[4,this.data.setWebSitePushId(this.config.webSitePushId)];case 2:return _a.sent(),[4,this.data.getLastPermissionStatus()];case 3:return lastPermission=_a.sent(),permission=this.getPermission(),lastPermission===permission?[3,5]:[4,this.data.setLastPermissionStatus(permission)];case 4:return _a.sent(),[2,!0];case 5:return[2,isChangeWebSitePushId]}})})},PushServiceSafari.prototype.getPermissionInfo=function(){return safari.pushNotification.permission(this.config.webSitePushId)},PushServiceSafari}();exports.PushServiceSafari=PushServiceSafari},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SubscriptionPromptWidget=void 0;var SubscriptionPromptWidget_helpers_1=__webpack_require__(36),SubscriptionPromptWidget_constants_1=__webpack_require__(27),SubscriptionPromptWidget=function(){function SubscriptionPromptWidget(eventBus,pw){this.eventBus=eventBus,this.pw=pw}return SubscriptionPromptWidget.prototype.init=function(params){if(!this.getRootElement()){var html=SubscriptionPromptWidget_helpers_1.getHTML(params),styles=SubscriptionPromptWidget_helpers_1.getStyles(params);document.body.insertAdjacentHTML(\"beforeend\",html),document.head.appendChild(styles)}this.addEventListeners()},SubscriptionPromptWidget.prototype.show=function(){var rootElement=this.getRootElementWithCheckExist();this.eventBus.dispatchEvent(\"show-subscription-widget\",{}),rootElement.classList.add(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"_show\")},SubscriptionPromptWidget.prototype.hide=function(){var rootElement=this.getRootElementWithCheckExist();rootElement.classList.contains(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"_show\")&&(this.eventBus.dispatchEvent(\"hide-subscription-widget\",{}),rootElement.classList.remove(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"_show\"))},SubscriptionPromptWidget.prototype.getRootElement=function(){return document.getElementById(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"-root\")},SubscriptionPromptWidget.prototype.getRootElementWithCheckExist=function(){var element=this.getRootElement();if(!element)throw new Error(\"Can't find element by id \\\"\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-root\", please use method init first.');return element},SubscriptionPromptWidget.prototype.getDeclineButtonWithCheckExist=function(){var element=document.getElementById(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"-decline\");if(!element)throw new Error(\"Can't find element by id \\\"\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-decline\", please use method init first.');return element},SubscriptionPromptWidget.prototype.getAcceptButtonWithCheckExist=function(){var element=document.getElementById(SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"-accept\");if(!element)throw new Error(\"Can't find element by id \\\"\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-accept\", please use method init first.');return element},SubscriptionPromptWidget.prototype.addEventListeners=function(){var _this=this,rootElement=this.getRootElementWithCheckExist(),declineElement=this.getDeclineButtonWithCheckExist(),acceptElement=this.getAcceptButtonWithCheckExist();document.addEventListener(\"click\",function(event){rootElement.contains(event.target)||_this.hide()}),declineElement.addEventListener(\"click\",function(){_this.hide()}),acceptElement.addEventListener(\"click\",function(){_this.hide(),_this.pw.subscribe()})},SubscriptionPromptWidget}();exports.SubscriptionPromptWidget=SubscriptionPromptWidget},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getStyles=exports.getHTML=void 0;var SubscriptionPromptWidget_constants_1=__webpack_require__(27);exports.getHTML=function(params){return'\\n <div id=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-root\" class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'\">\\n <div class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__body\">\\n <div class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__header\">\\n '+params.headerText+'\\n </div>\\n <div class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__description\">\\n '+params.subheaderText+'\\n </div>\\n <div class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__controls\">\\n <button type=\"button\" id=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-decline\" class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__control \"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__control_decline\">\\n '+params.buttonCancelText+'\\n </button>\\n <button type=\"button\" id=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'-accept\" class=\"'+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__control \"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+'__control_accept\">\\n '+params.buttonAcceptText+\"\\n </button>\\n </div>\\n </div>\\n </div>\\n \"},exports.getStyles=function(params){var styles=document.createElement(\"style\");return styles.innerHTML=\"\\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\" * {\\n box-sizing: border-box!important;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\" {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n margin: 0 auto;\\n width: 320px;\\n display: none;\\n z-index: 2147483648;\\n opacity: 0.99;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"_show {\\n display: block;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__body {\\n width: 320px;\\n background-color: \"+(params.backgroundColor?params.backgroundColor:\"#FFFFFF\")+\";\\n box-shadow: 0 9px 15px rgba(0, 0, 0, 0.1), 0 0 6px rgba(0, 0, 0, 0.06);\\n border-radius: 4px;\\n padding: 20px 20px 12px;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__header {\\n color: \"+params.headerTextColor+\";\\n font-size: 18px;\\n font-weight: bold; \\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__description {\\n color: \"+params.subheaderTextColor+\";\\n font-size: 14px;\\n line-height: 1.5;\\n margin-top: 14px;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__description:empty {\\n display: none;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__controls {\\n display: flex;\\n flex-wrap: nowrap;\\n justify-content: flex-end;\\n margin: 20px 0 0;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__control {\\n -webkit-appearance: none;\\n border: 1px solid transparent;\\n font-size: 12px;\\n font-weight: bold;\\n padding: 0 20px;\\n height: 32px;\\n cursor: pointer;\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__control_decline {\\n color: \"+params.buttonCancelTextColor+\";\\n background-color: \"+params.buttonCancelBackgroundColor+\";\\n border-radius: \"+params.buttonCancelRound+\";\\n border-color: \"+params.buttonCancelBorderColor+\";\\n }\\n \\n .\"+SubscriptionPromptWidget_constants_1.SUBSCRIPTION_PROMPT_WIDGET_NAMESPACE+\"__control_accept {\\n color: \"+params.buttonAcceptTextColor+\";\\n background-color: \"+params.buttonAcceptBackgroundColor+\";\\n border-radius: \"+params.buttonAcceptRound+\";\\n border-color: \"+params.buttonAcceptBorderColor+\";\\n margin: 0 0 0 12px;\\n }\\n \",styles}},function(module,exports,__webpack_require__){\"use strict\";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0});var constants_1=__webpack_require__(0),PlatformChecker_1=__webpack_require__(28),constants_2=__webpack_require__(30),positioning_1=__webpack_require__(38),bell_1=__webpack_require__(39),storage_1=__webpack_require__(2),SubscribeWidget=function(){function SubscribeWidget(pw){var _this=this;if(this.pw=pw,PlatformChecker_1.default.isAvailableNotifications){this.clickBell=this.clickBell.bind(this),this.onSubscribeEvent=this.onSubscribeEvent.bind(this),this.onUnsubscribeEvent=this.onUnsubscribeEvent.bind(this),this.onPermissionDeniedEvent=this.onPermissionDeniedEvent.bind(this),this.clickOutOfPopover=this.clickOutOfPopover.bind(this);var tooltipText=Object.assign(constants_2.SUBSCRIBE_WIDGET_DEFAULT_CONFIG.tooltipText,pw.subscribeWidgetConfig.tooltipText);this.config=Object.assign({},constants_2.SUBSCRIBE_WIDGET_DEFAULT_CONFIG,pw.subscribeWidgetConfig),this.config.tooltipText=tooltipText,pw.isSubscribed().then(function(isSubscribed){isSubscribed||_this.render()})}else console.warn(\"Browser does not support push notifications\")}return SubscribeWidget.prototype.addStylesToElement=function(styles,element){Object.keys(styles).forEach(function(st){element.style[st]=styles[st]})},SubscribeWidget.prototype.createContainer=function(){var container=document.createElement(\"div\");container.id=constants_2.WIDGET_CONTAINER_ID,container.className=\"pushwoosh-subscribe-widget\";var position=positioning_1.default.getBellPosition(this.config.position,this.config.indent),styles=Object.assign({zIndex:this.config.zIndex},position);return this.addStylesToElement(styles,container),container},SubscribeWidget.prototype.createStyle=function(){var styles=__webpack_require__(40),styleNode=document.createElement(\"style\");return styleNode.innerHTML=styles,styleNode},SubscribeWidget.prototype.createBell=function(){var bell,config=this.config;return config.buttonImage?(bell=document.createElement(\"img\")).src=config.buttonImage:(bell=document.createElement(\"div\"),this.addStylesToElement({backgroundColor:config.bgColor,boxShadow:config.shadow,lineHeight:config.size,border:config.bellButtonBorder},bell),bell.innerHTML=bell_1.default(config.bellColor,config.bellStrokeColor)),this.addStylesToElement({width:config.size,height:config.size},bell),bell.className=\"pushwoosh-subscribe-widget__bell-button\",bell},SubscribeWidget.prototype.createTooltip=function(){return __awaiter(this,void 0,void 0,function(){var tooltip,_a,position,modification,_b,_c;return __generator(this,function(_d){switch(_d.label){case 0:return tooltip=document.createElement(\"div\"),_a=positioning_1.default.getTooltipPosition(this.config.position,this.config.size),position=_a[0],modification=_a[1],tooltip.className=\"pushwoosh-subscribe-widget__tooltip pushwoosh-subscribe-widget__tooltip__\"+modification,this.addStylesToElement(position,tooltip),_c=(_b=tooltip).appendChild,[4,this.createTooltipContent()];case 1:return _c.apply(_b,[_d.sent()]),[2,tooltip]}})})},SubscribeWidget.prototype.createTooltipContent=function(){return __awaiter(this,void 0,void 0,function(){var tooltipContent,_a;return __generator(this,function(_b){switch(_b.label){case 0:return tooltipContent=document.createElement(\"div\"),_a=tooltipContent,[4,this.tooltipTextFactory()];case 1:return _a.innerText=_b.sent(),tooltipContent.className=\"pushwoosh-subscribe-widget__tooltip-content\",[2,tooltipContent]}})})},SubscribeWidget.prototype.tooltipTextFactory=function(){return __awaiter(this,void 0,void 0,function(){var permission,tooltipText,isManuallyUnsubscribed;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.pw.driver.getPermission()];case 1:return permission=_a.sent(),tooltipText=this.config.tooltipText,[4,storage_1.keyValue.get(constants_1.MANUAL_UNSUBSCRIBE)];case 2:switch(isManuallyUnsubscribed=_a.sent(),permission){case constants_1.PERMISSION_GRANTED:return[2,isManuallyUnsubscribed?tooltipText.needSubscribe:tooltipText.alreadySubscribed];case constants_1.PERMISSION_PROMPT:return[2,tooltipText.needSubscribe];case constants_1.PERMISSION_DENIED:return[2,tooltipText.blockSubscribe];default:return[2,tooltipText.needSubscribe]}return[2]}})})},SubscribeWidget.prototype.createPopover=function(){var popoverContentWrapper=document.createElement(\"div\"),popover=document.createElement(\"div\"),_a=positioning_1.default.getPopoverPosition(this.config.position,this.config.size),position=_a[0],modification=_a[1];popover.className=\"pushwoosh-subscribe-widget__popover pushwoosh-subscribe-widget__popover__\"+modification,popoverContentWrapper.className=\"pushwoosh-subscribe-widget__popover-content-wrapper\",this.style.innerHTML+=positioning_1.default.getPopoverArrowPosition(this.config.position,this.config.size);var styles=Object.assign({maxWidth:\"calc(100vw - \"+this.config.indent+\" - \"+this.config.indent+\")\"},position);return this.addStylesToElement(styles,popover),popoverContentWrapper.appendChild(this.createPopoverContent()),popover.appendChild(popoverContentWrapper),popover},SubscribeWidget.prototype.getBrowserName=function(){return PlatformChecker_1.default.isOpera?\"opera\":11===PlatformChecker_1.default.platform&&navigator.userAgent.match(/Android/i)?\"mobileChrome\":12===PlatformChecker_1.default.platform?\"firefox\":10===PlatformChecker_1.default.platform?\"safari\":150===PlatformChecker_1.default.platform?\"edge\":\"chrome\"},SubscribeWidget.prototype.createPopoverContent=function(){var config=this.config,popoverContent=document.createElement(\"div\");popoverContent.className=\"pushwoosh-subscribe-widget__popover-content\";var browser=this.getBrowserName(),userImageSrc=config.contentImages&&config.contentImages[browser];if(userImageSrc){var image=document.createElement(\"img\");image.src=userImageSrc,popoverContent.appendChild(image)}else{var standardImage={opera:\"opera\",mobileChrome:\"mobile_chrome\",firefox:\"FF\",safari:\"safari\"}[browser]||\"chrome\";[{src:this.getImageSrc(standardImage),width:500,height:130},{src:this.getImageSrc(standardImage+\"_unlock\"),width:500,height:230}].forEach(function(imageAttrs){var image=document.createElement(\"img\");Object.assign(image,imageAttrs),popoverContent.appendChild(image)})}return popoverContent},SubscribeWidget.prototype.getImageSrc=function(img){return\"https://cdn.pushwoosh.com/webpush/img/\"+img+\".jpg\"},SubscribeWidget.prototype.render=function(){return __awaiter(this,void 0,void 0,function(){var bell,_a,_b;return __generator(this,function(_c){switch(_c.label){case 0:return this.widget=this.createContainer(),this.style=this.createStyle(),bell=this.createBell(),_a=this,[4,this.createTooltip()];case 1:return _a.tooltip=_c.sent(),_b=this,[4,this.createPopover()];case 2:return _b.popover=_c.sent(),this.widget.appendChild(this.style),this.widget.appendChild(bell),this.widget.appendChild(this.tooltip),this.widget.appendChild(this.popover),document.body.appendChild(this.widget),this.pw.push([\"onSubscribe\",this.onSubscribeEvent]),this.pw.push([\"onUnsubscribe\",this.onUnsubscribeEvent]),this.pw.push([\"onPermissionDenied\",this.onPermissionDeniedEvent]),this.addEventListeners(),[2]}})})},SubscribeWidget.prototype.addEventListeners=function(){this.widget.addEventListener(\"click\",this.clickBell),window.addEventListener(\"click\",this.clickOutOfPopover)},SubscribeWidget.prototype.toggleHelpPopover=function(){this.popover.classList.toggle(\"pushwoosh-subscribe-widget__popover__visible\")},SubscribeWidget.prototype.clickBell=function(){return __awaiter(this,void 0,void 0,function(){var permission;return __generator(this,function(_b){switch(_b.label){case 0:switch(permission=this.pw.driver.getPermission(),permission){case constants_1.PERMISSION_GRANTED:return[3,1];case constants_1.PERMISSION_PROMPT:return[3,3];case constants_1.PERMISSION_DENIED:return[3,5]}return[3,6];case 1:return[4,this.pw.subscribe()];case 2:return _b.sent(),[3,7];case 3:return[4,this.pw.subscribe()];case 4:return _b.sent(),[3,7];case 5:return this.toggleHelpPopover(),[3,7];case 6:console.warn(\"Unknown browser notification permission\"),_b.label=7;case 7:return[2]}})})},SubscribeWidget.prototype.onSubscribeEvent=function(){return __awaiter(this,void 0,void 0,function(){var tooltipContent,_this=this;return __generator(this,function(_a){return null===(tooltipContent=this.tooltip.querySelector(\"div\"))?[2]:(tooltipContent.innerText=this.config.tooltipText.successSubscribe,this.tooltip.classList.add(\"pushwoosh-subscribe-widget__tooltip__visible\"),setTimeout(function(){return __awaiter(_this,void 0,void 0,function(){var _a;return __generator(this,function(_b){switch(_b.label){case 0:return this.tooltip.classList.remove(\"pushwoosh-subscribe-widget__tooltip__visible\"),_a=tooltipContent,[4,this.tooltipTextFactory()];case 1:return _a.innerText=_b.sent(),this.widget.classList.add(\"pushwoosh-subscribe-widget__subscribed\"),[2]}})})},2e3),[2])})})},SubscribeWidget.prototype.onPermissionDeniedEvent=function(){return __awaiter(this,void 0,void 0,function(){var tooltipContent,_a;return __generator(this,function(_b){switch(_b.label){case 0:return this.addEventListeners(),null===(tooltipContent=this.tooltip.querySelector(\"div\"))?[2]:(_a=tooltipContent,[4,this.tooltipTextFactory()]);case 1:return _a.innerText=_b.sent(),[2]}})})},SubscribeWidget.prototype.clickOutOfPopover=function(ev){this.popover.classList.contains(\"pushwoosh-subscribe-widget__popover__visible\")&&!ev.target.classList.contains(\"pushwoosh-subscribe-widget__popover\")&&null===ev.target.closest(\".pushwoosh-subscribe-widget__popover\")&&!ev.target.classList.contains(\"pushwoosh-subscribe-widget__bell-button\")&&null===ev.target.closest(\".pushwoosh-subscribe-widget__bell-button\")&&this.popover.classList.remove(\"pushwoosh-subscribe-widget__popover__visible\")},SubscribeWidget.prototype.onUnsubscribeEvent=function(){return __awaiter(this,void 0,void 0,function(){var tooltipContent,_a;return __generator(this,function(_b){switch(_b.label){case 0:return null===(tooltipContent=this.tooltip.querySelector(\"div\"))?[2]:(_a=tooltipContent,[4,this.tooltipTextFactory()]);case 1:return _a.innerText=_b.sent(),[2]}})})},SubscribeWidget}();document.addEventListener(\"pushwoosh.initialized\",function(ev){ev.detail.pw.subscribeWidgetConfig.enable&&new SubscribeWidget(ev.detail.pw)})},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var constants_1=__webpack_require__(30),Positioning=function(){function Positioning(){}return Positioning.getBellPosition=function(position,indent){var positionStyles;switch(position){case constants_1.BELL_POSITION_BOTTOM_RIGHT:positionStyles={top:\"auto\",left:\"auto\",bottom:indent,right:indent};break;case constants_1.BELL_POSITION_BOTTOM_LEFT:positionStyles={top:\"auto\",left:indent,bottom:indent,right:\"auto\"};break;case constants_1.BELL_POSITION_TOP_LEFT:positionStyles={top:indent,left:indent,bottom:\"auto\",right:\"auto\"};break;case constants_1.BELL_POSITION_TOP_RIGHT:positionStyles={top:indent,left:\"auto\",bottom:\"auto\",right:indent};break;default:positionStyles={top:\"auto\",left:\"auto\",bottom:indent,right:indent}}return positionStyles},Positioning.getTooltipPosition=function(bellPosition,bellSize){var positionStyles,tooltipModification,increaseIndent=parseInt(bellSize)+12+\"px\";switch(bellPosition){case constants_1.BELL_POSITION_BOTTOM_RIGHT:positionStyles={right:increaseIndent},tooltipModification=\"right\";break;case constants_1.BELL_POSITION_BOTTOM_LEFT:case constants_1.BELL_POSITION_TOP_LEFT:positionStyles={left:increaseIndent},tooltipModification=\"left\";break;case constants_1.BELL_POSITION_TOP_RIGHT:positionStyles={right:increaseIndent},tooltipModification=\"right\";break;default:positionStyles={right:increaseIndent},tooltipModification=\"right\"}return[positionStyles,tooltipModification]},Positioning.getPopoverPosition=function(bellPosition,bellSize){var positionStyles,popoverModification,increaseIndent=parseInt(bellSize)+15+\"px\";switch(bellPosition){case constants_1.BELL_POSITION_BOTTOM_RIGHT:positionStyles={bottom:increaseIndent,right:\"0\",left:\"auto\",top:\"auto\"},popoverModification=\"bottom\";break;case constants_1.BELL_POSITION_BOTTOM_LEFT:positionStyles={bottom:increaseIndent,left:\"0\",right:\"auto\",top:\"auto\"},popoverModification=\"bottom\";break;case constants_1.BELL_POSITION_TOP_LEFT:positionStyles={top:increaseIndent,left:\"0\",right:\"auto\",bottom:\"auto\"},popoverModification=\"top\";break;case constants_1.BELL_POSITION_TOP_RIGHT:positionStyles={top:increaseIndent,right:\"0\",left:\"auto\",bottom:\"auto\"},popoverModification=\"top\";break;default:positionStyles={bottom:increaseIndent,right:\"0\",left:\"auto\",top:\"auto\"},popoverModification=\"bottom\"}return[positionStyles,popoverModification]},Positioning.getPopoverArrowPosition=function(bellPosition,bellSize){var arrowAdditionalStyles;switch(bellPosition){case constants_1.BELL_POSITION_BOTTOM_RIGHT:arrowAdditionalStyles=\"\\n.pushwoosh-subscribe-widget__popover__bottom:after {left: auto; right: \"+(parseInt(bellSize)/2-4)+\"px\";break;case constants_1.BELL_POSITION_BOTTOM_LEFT:arrowAdditionalStyles=\"\\n.pushwoosh-subscribe-widget__popover__bottom:after {right: auto; left: \"+(parseInt(bellSize)/2-12)+\"px\";break;case constants_1.BELL_POSITION_TOP_LEFT:arrowAdditionalStyles=\"\\n.pushwoosh-subscribe-widget__popover__top:after {right: auto; left: \"+(parseInt(bellSize)/2-12)+\"px\";break;case constants_1.BELL_POSITION_TOP_RIGHT:arrowAdditionalStyles=\"\\n.pushwoosh-subscribe-widget__popover__top:after {left: auto; right: \"+(parseInt(bellSize)/2-4)+\"px\";break;default:arrowAdditionalStyles=\"\\n.pushwoosh-subscribe-widget__popover__bottom:after {left: auto; right: \"+(parseInt(bellSize)/2-4)+\"px\"}return arrowAdditionalStyles},Positioning}();exports.default=Positioning},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=function(fillColor,strokeColor){return'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\\n<svg\\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\\n xmlns:cc=\"http://creativecommons.org/ns#\"\\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\\n xmlns:svg=\"http://www.w3.org/2000/svg\"\\n xmlns=\"http://www.w3.org/2000/svg\"\\n xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\\n version=\"1.1\"\\n id=\"Capa_1\"\\n x=\"0px\"\\n y=\"0px\"\\n viewBox=\"0 0 346.013 346.013\"\\n style=\"enable-background:new 0 0 346.013 346.013;width: 80%; height: auto; vertical-align: middle;\"\\n xml:space=\"preserve\"\\n inkscape:version=\"0.91 r13725\"\\n sodipodi:docname=\"alarm_white.svg\"><metadata\\n id=\"metadata51\"><rdf:RDF><cc:Work\\n rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type\\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs\\n id=\"defs49\" /><sodipodi:namedview\\n borderopacity=\"1\"\\n objecttolerance=\"10\"\\n gridtolerance=\"10\"\\n guidetolerance=\"10\"\\n inkscape:pageopacity=\"0\"\\n inkscape:pageshadow=\"2\"\\n inkscape:window-width=\"1618\"\\n inkscape:window-height=\"828\"\\n id=\"namedview47\"\\n showgrid=\"false\"\\n inkscape:zoom=\"0.6820553\"\\n inkscape:cx=\"173.0065\"\\n inkscape:cy=\"173.0065\"\\n inkscape:window-x=\"0\"\\n inkscape:window-y=\"0\"\\n inkscape:window-maximized=\"0\"\\n inkscape:current-layer=\"g3\" /><g\\n id=\"g3\"><path\\n d=\"m 256.76227,220.19006 c -1.77513,-2.69766 -3.45154,-5.24564 -3.98966,-7.46382 -0.042,-0.17861 -0.0911,-0.36128 -0.16237,-0.61436 -2.28354,-7.67647 0.69147,-24.43921 2.46886,-34.45124 0.26788,-1.50394 0.52274,-2.94197 0.75286,-4.29035 0.0232,-0.13675 0.044,-0.27211 0.0724,-0.48006 1.95582,-15.28051 2.58811,-37.91956 -5.51044,-58.99147 -5.6032,-14.57978 -14.45978,-25.82612 -26.3559,-33.48393 1.26598,-9.812938 -4.85967,-19.343691 -14.66682,-22.0511 -9.80715,-2.70741 -19.95724,2.33226 -23.90298,11.405413 -14.1382,0.467533 -27.51111,5.577097 -39.80114,15.219267 -17.76129,13.9298 -28.83431,33.68757 -34.99389,47.80757 l -0.0479,0.11335 c -0.0512,0.12175 -0.0998,0.24114 -0.13249,0.32962 -0.49733,1.28292 -1.01552,2.64514 -1.55689,4.07255 -3.61311,9.51043 -9.66004,25.42824 -15.611995,30.89342 -0.106524,0.10027 -0.208228,0.20187 -0.362362,0.35435 -1.636243,1.66563 -4.382941,2.99463 -7.288979,4.40101 -7.145531,3.45301 -22.013613,10.64166 -17.206389,31.67844 0.929154,4.07105 4.008437,7.29057 8.033861,8.40185 l 167.570804,46.2604 c 4.02253,1.11048 8.31521,-0.0729 11.2052,-3.08958 14.91617,-15.58874 5.84693,-29.38668 1.48625,-36.02133 z\"\\n id=\"path5\"\\n inkscape:connector-curvature=\"0\"\\n vector-effect=\"non-scaling-stroke\"\\n style=\"fill:'+fillColor+\"; stroke: \"+strokeColor+'; stroke-width: 1; \" /><path\\n vector-effect=\"non-scaling-stroke\"\\n d=\"m 174.26737,259.72378 -38.76399,-10.70137 c -1.59243,-0.43962 -3.28183,-0.15596 -4.63548,0.7754 -2.53909,1.7494 -2.84182,4.93159 -3.02304,6.83188 l -0.0151,0.15247 c -1.22819,12.67106 6.79854,24.33046 19.08688,27.72284 12.51583,3.45518 25.8324,-2.91586 30.9681,-14.80385 l 0.0935,-0.19205 c 0.52305,-1.06418 1.74613,-3.55554 0.50882,-6.31116 -0.44302,-0.98439 -1.5794,-2.74529 -4.21964,-3.47416 z\"\\n id=\"path7\"\\n inkscape:connector-curvature=\"0\"\\n style=\"fill:'+fillColor+\"; stroke: \"+strokeColor+'; stroke-width: 1;\" /></g><g\\n id=\"g17\" /><g\\n id=\"g19\" /><g\\n id=\"g21\" /><g\\n id=\"g23\" /><g\\n id=\"g25\" /><g\\n id=\"g27\" /><g\\n id=\"g29\" /><g\\n id=\"g31\" /><g\\n id=\"g33\" /><g\\n id=\"g35\" /><g\\n id=\"g37\" /><g\\n id=\"g39\" /><g\\n id=\"g41\" /><g\\n id=\"g43\" /><g\\n id=\"g45\" /></svg>'}},function(module,exports,__webpack_require__){var result=__webpack_require__(41);result&&result.__esModule&&(result=result.default),module.exports=\"string\"==typeof result?result:result.toString()},function(module,exports,__webpack_require__){(module.exports=__webpack_require__(42)(!1)).push([module.i,'/* Widget */\\n.pushwoosh-subscribe-widget {\\n position: fixed;\\n display: block;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.pushwoosh-subscribe-widget__subscribed {\\n display: none;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__bell-button {\\n -webkit-border-radius: 50%;\\n border-radius: 50%;\\n cursor: pointer;\\n font-size: 0;\\n text-align: center;\\n -webkit-transform: scale(0.9) translate3d(0, 0, 0);\\n transform: scale(0.9) translate3d(0, 0, 0);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: -webkit-transform .3s ease-in-out;\\n -o-transition: transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n transition: transform .3s ease-in-out, -webkit-transform .3s ease-in-out;\\n position: relative;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__bell-button:hover {\\n -webkit-transform: scale(1);\\n -ms-transform: scale(1);\\n transform: scale(1);\\n}\\n\\n/* Tooltip */\\n.pushwoosh-subscribe-widget__tooltip {\\n position: absolute;\\n height: 48px;\\n max-width: 300px;\\n min-width: 200px;\\n padding: 5px 7px;\\n background-color: #3b444b;\\n color: #ffffff;\\n text-align: center;\\n vertical-align: middle;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n line-height: 38px;\\n font-size: 0;\\n font-weight: normal;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s ease-in .3s,\\n opacity .3s ease-in;\\n -o-transition: visibility 0s ease-in .3s,\\n opacity .3s ease-in;\\n transition: visibility 0s ease-in .3s,\\n opacity .3s ease-in;\\n top: 50%;\\n -webkit-transform: translate(0, -50%);\\n -ms-transform: translate(0, -50%);\\n transform: translate(0, -50%);\\n -webkit-box-shadow: 1px 1px 5px 0 rgba(0,0,0,0.5);\\n box-shadow: 1px 1px 5px 0 rgba(0,0,0,0.5);\\n}\\n\\n.pushwoosh-subscribe-widget__tooltip__right:after,\\n.pushwoosh-subscribe-widget__tooltip__left:after {\\n content: \"\";\\n top: 50%;\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n border-top: 5px solid transparent;\\n border-bottom: 5px solid transparent;\\n background: #3b444b;\\n}\\n\\n.pushwoosh-subscribe-widget__tooltip__right:after {\\n left: calc(100% - 7px);\\n border-top: 5px solid #3b444b;\\n border-left: 5px solid #3b444b;\\n border-right: 5px solid transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-transform-origin: 0 0;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n -webkit-box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25);\\n box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25);\\n}\\n\\n.pushwoosh-subscribe-widget__tooltip__left:after {\\n left: -7px;\\n border-top: 5px solid #3b444b;\\n border-right: 5px solid #3b444b;\\n border-left: 5px solid transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-transform-origin: 0 0;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n -webkit-box-shadow: -2px -2px 2px 0 rgba(0, 0, 0, 0.25);\\n box-shadow: -2px -2px 2px 0 rgba(0, 0, 0, 0.25);\\n}\\n\\n.pushwoosh-subscribe-widget__bell-button:hover + .pushwoosh-subscribe-widget__tooltip,\\n.pushwoosh-subscribe-widget__tooltip.pushwoosh-subscribe-widget__tooltip__visible {\\n display: block;\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition-delay: 0s;\\n -o-transition-delay: 0s;\\n transition-delay: 0s;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__tooltip-content {\\n display: inline-block;\\n vertical-align: middle;\\n font-size: 14px;\\n line-height: 1.4;\\n white-space: nowrap;\\n overflow: hidden;\\n padding-right: 5px;\\n -o-text-overflow: ellipsis;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n}\\n\\n/* Popover */\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover {\\n position: absolute;\\n right: auto;\\n -webkit-box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.5);\\n box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.5);\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n background: #9ca8b1;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s ease-in .5s,\\n opacity .5s ease-in;\\n -o-transition: visibility 0s ease-in .5s,\\n opacity .5s ease-in;\\n transition: visibility 0s ease-in .5s,\\n opacity .5s ease-in;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover__visible {\\n display: block;\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition-delay: 0s;\\n -o-transition-delay: 0s;\\n transition-delay: 0s;\\n}\\n\\n.pushwoosh-subscribe-widget__popover__bottom:after,\\n.pushwoosh-subscribe-widget__popover__top:after {\\n content: \"\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n border-right: 8px solid transparent;\\n border-left: 8px solid #9ca8b1;\\n background: #9ca8b1;\\n -webkit-transform-origin: 0 0;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n}\\n\\n.pushwoosh-subscribe-widget__popover__bottom:after {\\n border-bottom: 8px solid #9ca8b1;\\n border-top: 8px solid transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-box-shadow: -2px 2px 1px 0 rgba(0, 0, 0, 0.25);\\n box-shadow: -2px 2px 1px 0 rgba(0, 0, 0, 0.25);\\n bottom: -16px;\\n}\\n\\n.pushwoosh-subscribe-widget__popover__top:after {\\n top: 0;\\n border-top: 8px solid #9ca8b1;\\n border-bottom: 8px solid transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-box-shadow: 1px -1px 1px 0 rgba(0, 0, 0, 0.25);\\n box-shadow: 1px -1px 1px 0 rgba(0, 0, 0, 0.25);\\n}\\n\\n.pushwoosh-subscribe-widget__popover-content-wrapper {\\n overflow: auto;\\n max-width: 100%;\\n}\\n\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover-content {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n padding: 14px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n float: left;\\n min-width: 100%;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img {\\n display: block;\\n}\\n\\n.pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img:first-child {\\n margin-bottom: 14px;\\n}\\n\\n@media (max-width: 767px) and (orientation: portrait) {\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover-content {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n }\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img {\\n max-width: 280px;\\n height: auto;\\n }\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img:first-child {\\n margin-right: 0;\\n margin-bottom: 14px;\\n }\\n}\\n@media (max-width: 767px) and (orientation: landscape) {\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover-content {\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n }\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img {\\n max-width: 280px;\\n height: auto;\\n }\\n .pushwoosh-subscribe-widget .pushwoosh-subscribe-widget__popover img:first-child {\\n margin-right: 14px;\\n margin-bottom: 0;\\n }\\n}\\n',\"\"])},function(module,exports){module.exports=function(useSourceMap){var list=[];return list.toString=function(){return this.map(function(item){var content=function(item,useSourceMap){var content=item[1]||\"\",cssMapping=item[3];if(!cssMapping)return content;if(useSourceMap&&\"function\"==typeof btoa){var sourceMapping=function(sourceMap){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))+\" */\"}(cssMapping),sourceURLs=cssMapping.sources.map(function(source){return\"/*# sourceURL=\"+cssMapping.sourceRoot+source+\" */\"});return[content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\")}return[content].join(\"\\n\")}(item,useSourceMap);return item[2]?\"@media \"+item[2]+\"{\"+content+\"}\":content}).join(\"\")},list.i=function(modules,mediaQuery){\"string\"==typeof modules&&(modules=[[null,modules,\"\"]]);for(var alreadyImportedModules={},i=0;i<this.length;i++){var id=this[i][0];\"number\"==typeof id&&(alreadyImportedModules[id]=!0)}for(i=0;i<modules.length;i++){var item=modules[i];\"number\"==typeof item[0]&&alreadyImportedModules[item[0]]||(mediaQuery&&!item[2]?item[2]=mediaQuery:mediaQuery&&(item[2]=\"(\"+item[2]+\") and (\"+mediaQuery+\")\"),list.push(item))}},list}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var pwInboxWidget=__webpack_require__(44);document.addEventListener(\"pushwoosh.initialized\",function(ev){ev.detail.pw.pwinbox&&ev.detail.pw.inboxWidgetConfig.enable&&(ev.detail.pw.pwinboxWidget=new pwInboxWidget.PWInboxWidget(ev.detail.pw))})},function(module,exports,__webpack_require__){module.exports=function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.r=function(exports){Object.defineProperty(exports,\"__esModule\",{value:!0})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,\"a\",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p=\"\",__webpack_require__(__webpack_require__.s=2)}([function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var constants_1=__webpack_require__(1);exports.isElementFixed=function isElementFixed(element){var isFixed=\"fixed\"===window.getComputedStyle(element).position;return!isFixed&&element.parentElement&&(isFixed=isElementFixed(element.parentElement)),isFixed},exports.getGlobal=function(){return globalThis},exports.getMessageTime=function(date){var localDate=new Date(date),localTime=localDate.getHours()+localDate.getTimezoneOffset()/60;localDate.setHours(localTime);var gap=(new Date).getTime()-localDate.getTime();return gap<=6e4?\"Just now\":gap<constants_1.MILLISECONDS_IN_HOUR&&gap>0?Math.floor(gap/6e4)+\" minutes ago\":gap<constants_1.MILLISECONDS_IN_DAY&&gap>0?Math.floor(gap/36e5)+\" hours ago\":localDate.getDate()+\" \"+constants_1.MONTHS[localDate.getMonth()]+\" \"+localDate.getFullYear()+\", \"+localDate.getHours()+\":\"+(\"0\"+localDate.getMinutes().toString()).slice(-2)},exports.getValidColor=function(color){return\"transparent\"===color?color:constants_1.COLOR_TEST_REGEXP.test(color)?color:\"#333\"},exports.compareBySendDate=function(dateOne,dateTwo){var localDateOne=new Date(dateOne),localTimeOne=localDateOne.getHours()+localDateOne.getTimezoneOffset()/60,localDateTwo=new Date(dateTwo),localTimeTwo=localDateTwo.getHours()+localDateTwo.getTimezoneOffset()/60;return localDateOne.setHours(localTimeOne),localDateTwo.setHours(localTimeTwo),localDateTwo.getTime()-localDateOne.getTime()}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.MILLISECONDS_IN_DAY=864e5,exports.MILLISECONDS_IN_HOUR=36e5,exports.MONTHS=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"June\",\"July\",\"Aug\",\"Sept\",\"Oct\",\"Nov\",\"Dec\"],exports.CONFIG_STYLES=[{name:\"widgetWidth\",type:\"size\"},{name:\"borderRadius\",type:\"size\"},{name:\"zIndex\",type:\"number\"},{name:\"fontFamily\",type:\"string\"},{name:\"bgColor\",type:\"color\"},{name:\"textColor\",type:\"color\"},{name:\"arrowBorderColor\",type:\"color\"},{name:\"borderColor\",type:\"color\"},{name:\"badgeBgColor\",type:\"color\"},{name:\"badgeTextColor\",type:\"color\"},{name:\"timeTextColor\",type:\"color\"},{name:\"messageTitleColor\",type:\"color\"},{name:\"emptyInboxTitleColor\",type:\"color\"},{name:\"emptyInboxTextColor\",type:\"color\"}],exports.DEFAULT_CONFIG={enable:!1,triggerId:\"pwInbox\",position:\"bottom\",appendTo:\"body\",title:\"Inbox\",bgColor:\"#ffffff\",textColor:\"#333333\",fontFamily:\"inherit\",borderRadius:4,borderColor:\"transparent\",badgeBgColor:\"#ff4c00\",badgeTextColor:\"#ffffff\",widgetWidth:350,zIndex:100,messageTitleColor:\"#7a7a7a\",timeTextColor:\"#c4c4c4\",emptyInboxTitle:\"You're all caught up\",emptyInboxTitleColor:\"#333333\",emptyInboxText:\"There are no new messages. Stay tuned!\",emptyInboxTextColor:\"#7a7a7a\",emptyInboxIconUrl:\"https://pushon.pushwoosh.com/images/icon-empty-inbox.png\",arrowBorderColor:\"rgba(0,0,0,.1)\"},exports.COLOR_TEST_REGEXP=/^(#([\\da-f]{3}){1,2}$|(rgb|hsl)a\\((\\d{1,3}%?,\\s?){3}(1|0?\\.\\d+)\\)$|(rgb|hsl)\\(\\d{1,3}%?(,\\s?\\d{1,3}%?){2}\\)$)/},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var InboxWidget_1=__webpack_require__(3);exports.PWInboxWidget=InboxWidget_1.default},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t};Object.defineProperty(exports,\"__esModule\",{value:!0});var widgetTemplates_1=__webpack_require__(4),constants_1=__webpack_require__(1),helpers_1=__webpack_require__(0),InboxWidget=function(){function InboxWidget(pw){this.pw=pw,this.config=__assign({},constants_1.DEFAULT_CONFIG,{arrowBorderColor:this.pw.inboxWidgetConfig.borderColor&&\"transparent\"!==this.pw.inboxWidgetConfig.borderColor?this.pw.inboxWidgetConfig.borderColor:\"rgba(0,0,0,.1)\"},this.pw.inboxWidgetConfig),this.updateInbox=this.updateInbox.bind(this),this.markVisibleItemsAsRead=this.markVisibleItemsAsRead.bind(this),this.onWidgetClickHandler=this.onWidgetClickHandler.bind(this),this.onTriggerClickHandler=this.onTriggerClickHandler.bind(this),this.onWindowScrollHandler=this.onWindowScrollHandler.bind(this),this.toggle=this.toggle.bind(this);try{this.initTrigger(),this.updateInbox(),this.addListeners()}catch(err){console.warn(err)}}return InboxWidget.prototype.toggle=function(isOpened){(void 0===isOpened?!this.isOpened:isOpened)?this.openWidget():this.closeWidget()},InboxWidget.prototype.initTrigger=function(){if(!this.pw.pwinbox)throw new Error(\"Web inbox is not allowed.\");var trigger=document.getElementById(this.config.triggerId);if(!trigger)throw new Error(\"Inbox trigger element doesn't exist. You must set triggerId in inboxWidget config. See the documentation.\");this.trigger=trigger,this.trigger.classList.add(\"pw-inbox-trigger\"),this.defaultMargin=12,this.messagesElements={},this.messages=[],this.readItems=[],this.updateCounter(0),this.isOpened=!1,this.renderWidget(),this.isFixed=helpers_1.isElementFixed(this.trigger)},InboxWidget.prototype.renderWidget=function(){this.widget=document.createElement(\"div\"),this.widget.id=\"pwInboxWidget\",this.widget.className=\"pw-inbox-widget\",this.widget.classList.toggle(\"pw-open\",this.isOpened),this.widgetParent=document.querySelector(this.config.appendTo)||document.body,this.widgetParent.appendChild(this.widget),this.widgetParent.appendChild(this.getStyle()),this.renderWidgetInner()},InboxWidget.prototype.getStyle=function(){var styles=__webpack_require__(5),styleNode=document.createElement(\"style\");return styleNode.innerHTML=this.configureStyle(styles),styleNode},InboxWidget.prototype.configureStyle=function(styles){var _this=this,resultStyles=styles.toString();return constants_1.CONFIG_STYLES.forEach(function(style){var template=new RegExp(\"var\\\\(--\"+style.name+\"\\\\)\",\"ig\"),result=_this.getStyleFormatter(style);resultStyles=resultStyles.replace(template,result)}),resultStyles},InboxWidget.prototype.getStyleFormatter=function(style){switch(style.type){case\"size\":return(this.config[style.name]||0)+\"px\";case\"number\":return parseFloat(this.config[style.name].toString()).toString();case\"string\":return this.config[style.name].toString();case\"color\":return helpers_1.getValidColor(this.config[style.name].toString());default:return\"none\"}},InboxWidget.prototype.renderWidgetInner=function(){if(this.messages.length>0)this.widget.classList.remove(\"pw-inbox-widget--empty\"),this.widget.innerHTML=widgetTemplates_1.widgetTemplate(this.config.title),this.renderMessages();else{this.widget.classList.add(\"pw-inbox-widget--empty\");var _a=this.config,emptyInboxTitle=_a.emptyInboxTitle,emptyInboxText=_a.emptyInboxText,emptyInboxIconUrl=_a.emptyInboxIconUrl;this.widget.innerHTML=widgetTemplates_1.widgetTemplateEmpty(emptyInboxIconUrl,emptyInboxTitle,emptyInboxText)}},InboxWidget.prototype.renderMessages=function(){var _this=this;this.list=this.widget.querySelector(\".pw-inbox_list\")||document.createElement(\"ul\"),this.messages.forEach(function(message){var messageElement=document.createElement(\"li\");messageElement.className=\"pw-inbox_item\",messageElement.classList.toggle(\"pw-new\",!message.isRead),messageElement.classList.toggle(\"pw-unread\",!message.isActionPerformed),messageElement.setAttribute(\"data-pw-inbox-message-id\",message.code),messageElement.innerHTML=widgetTemplates_1.messageTemplate(message),_this.list.appendChild(messageElement),_this.messagesElements[message.code]=messageElement})},InboxWidget.prototype.updateCounter=function(count){this.count=count,this.trigger.setAttribute(\"data-pw-count\",\"\"+this.count),this.trigger.classList.toggle(\"pw-empty\",0===this.count)},InboxWidget.prototype.updateInboxMessages=function(messages){this.messages=messages.sort(function(_a,_b){var sendDateOne=_a.sendDate,sendDateTwo=_b.sendDate;return helpers_1.compareBySendDate(sendDateOne,sendDateTwo)}),this.renderWidgetInner()},InboxWidget.prototype.openWidget=function(){this.isOpened=!0,this.widget.classList.add(\"pw-open\"),document.addEventListener(\"click\",this.onWidgetClickHandler),window.addEventListener(\"scroll\",this.onWindowScrollHandler),window.addEventListener(\"resize\",this.onWindowScrollHandler),this.markVisibleItemsAsRead(),this.messages.length>0&&this.list.addEventListener(\"scroll\",this.markVisibleItemsAsRead),this.positionWidget()},InboxWidget.prototype.closeWidget=function(){this.isOpened=!1,document.removeEventListener(\"click\",this.onWidgetClickHandler),document.removeEventListener(\"click\",this.onWindowScrollHandler),window.removeEventListener(\"resize\",this.onWindowScrollHandler),this.updateReadStatus(),this.messages.length>0&&this.list.removeEventListener(\"scroll\",this.markVisibleItemsAsRead),this.widget.classList.remove(\"pw-open\",\"pw-top\",\"pw-bottom\",\"pw-right\",\"pw-left\"),this.widget.removeAttribute(\"style\")},InboxWidget.prototype.positionWidget=function(){this.isOpened&&(this.widgetParent===document.body?this.defaultPlaceWidget():this.customPlaceWidget())},InboxWidget.prototype.customPlaceWidget=function(){var position=this.config.position;this.widgetParent.style.position=\"relative\",this.widget.classList.add(\"pw-inbox-widget--inset\"),this.widget.classList.add(\"pw-\"+position)},InboxWidget.prototype.defaultPlaceWidget=function(){var position=this.pw.inboxWidgetConfig.position?this.config.position:this.getDefaultPosition(),widgetRect=this.widget.getBoundingClientRect();if(document.documentElement){var windowWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0),windowHeight=Math.max(document.documentElement.clientHeight,window.innerHeight||0);switch(widgetRect.width+2*this.defaultMargin>windowWidth&&(this.widget.style.width=windowWidth-2*this.defaultMargin+\"px\"),widgetRect.height+24>windowHeight&&(this.widget.style.height=windowHeight-2*this.defaultMargin+\"px\"),position){case\"top\":this.alignWidgetTop();break;case\"right\":this.alignWidgetRight();break;case\"left\":this.alignWidgetLeft();break;case\"bottom\":this.alignWidgetBottom()}}},InboxWidget.prototype.alignWidgetTop=function(){var triggerRect=this.trigger.getBoundingClientRect(),widgetRect=this.widget.getBoundingClientRect();if(document.documentElement){var windowWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0),arrow=this.widget.querySelector(\".pw-inbox__arrow\")||document.createElement(\"div\");this.widget.classList.add(\"pw-top\");var left=pageXOffset+triggerRect.left+Math.floor(triggerRect.width/2)-Math.floor(widgetRect.width/2),isUnderLeft=left<pageXOffset,isUnderRight=left+widgetRect.width>pageXOffset+windowWidth;isUnderLeft&&(left=pageXOffset+this.defaultMargin),isUnderRight&&(left=pageXOffset+windowWidth-widgetRect.width-this.defaultMargin);var top=pageYOffset+triggerRect.top-widgetRect.height;this.alignWidgetElement(left,top),arrow.style.left=triggerRect.left+Math.floor(triggerRect.width/2)-left+\"px\";var topMargin=this.widget.getBoundingClientRect().top;if(topMargin<0){var newHeight=this.widget.getBoundingClientRect().height+topMargin-this.defaultMargin,newTop=this.widget.getBoundingClientRect().top-topMargin+this.defaultMargin;this.widget.style.height=newHeight+\"px\",this.widget.style.top=newTop+\"px\"}}},InboxWidget.prototype.alignWidgetRight=function(){var triggerRect=this.trigger.getBoundingClientRect(),widgetRect=this.widget.getBoundingClientRect();if(document.documentElement){var windowWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0),windowHeight=Math.max(document.documentElement.clientHeight,window.innerHeight||0),arrow=this.widget.querySelector(\".pw-inbox__arrow\")||document.createElement(\"div\");this.widget.classList.add(\"pw-right\");var top=pageYOffset+triggerRect.top+Math.floor(triggerRect.height/2)-Math.floor(widgetRect.height/2),isUnderTop=top<pageYOffset,isUnderBottom=pageYOffset+windowHeight<top+widgetRect.height;isUnderTop&&(top=pageYOffset+this.defaultMargin),isUnderBottom&&(top=pageYOffset+windowHeight-widgetRect.height-this.defaultMargin);var left=pageXOffset+triggerRect.left+triggerRect.width;this.alignWidgetElement(left,top),arrow.style.top=triggerRect.top+Math.floor(triggerRect.height/2)-top+\"px\";var rightMargin=windowWidth-this.widget.getBoundingClientRect().right;if(rightMargin<this.defaultMargin){var newWidth=this.widget.getBoundingClientRect().width+rightMargin-this.defaultMargin;this.widget.style.width=newWidth+\"px\"}}},InboxWidget.prototype.alignWidgetLeft=function(){var triggerRect=this.trigger.getBoundingClientRect(),widgetRect=this.widget.getBoundingClientRect();if(document.documentElement){var windowHeight=Math.max(document.documentElement.clientHeight,window.innerHeight||0),arrow=this.widget.querySelector(\".pw-inbox__arrow\")||document.createElement(\"div\");this.widget.classList.add(\"pw-left\");var top=pageYOffset+triggerRect.top+Math.floor(triggerRect.height/2)-Math.floor(widgetRect.height/2),isUnderTop=top<pageYOffset,isUnderBottom=pageYOffset+windowHeight<top+widgetRect.height;isUnderTop&&(top=pageYOffset+this.defaultMargin),isUnderBottom&&(top=pageYOffset+windowHeight-widgetRect.height-this.defaultMargin);var left=pageXOffset+triggerRect.left-widgetRect.width;this.alignWidgetElement(left,top),arrow.style.top=triggerRect.top+Math.floor(triggerRect.height/2)-top+\"px\";var leftMargin=this.widget.getBoundingClientRect().left;if(leftMargin<0){var newWidth=this.widget.getBoundingClientRect().width+leftMargin-this.defaultMargin,newLeft=this.widget.getBoundingClientRect().left-leftMargin;this.widget.style.width=newWidth+\"px\",this.widget.style.left=newLeft+\"px\"}}},InboxWidget.prototype.alignWidgetBottom=function(){var triggerRect=this.trigger.getBoundingClientRect(),widgetRect=this.widget.getBoundingClientRect();if(document.documentElement){var windowWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0),windowHeight=Math.max(document.documentElement.clientHeight,window.innerHeight||0),arrow=this.widget.querySelector(\".pw-inbox__arrow\")||document.createElement(\"div\");this.widget.classList.add(\"pw-bottom\");var left=pageXOffset+triggerRect.left+Math.floor(triggerRect.width/2)-Math.floor(widgetRect.width/2),isUnderLeft=left<pageXOffset,isUnderRight=left+widgetRect.width>pageXOffset+windowWidth;isUnderLeft&&(left=pageXOffset+this.defaultMargin),isUnderRight&&(left=pageXOffset+windowWidth-widgetRect.width-12);var top=pageYOffset+triggerRect.top+triggerRect.height;this.alignWidgetElement(left,top),arrow.style.left=triggerRect.left+Math.floor(triggerRect.width/2)-left+\"px\";var bottomRange=windowHeight-this.widget.getBoundingClientRect().bottom;if(bottomRange<this.defaultMargin){var newHeight=this.widget.getBoundingClientRect().height+bottomRange-this.defaultMargin;this.widget.style.height=newHeight+\"px\"}}},InboxWidget.prototype.alignWidgetElement=function(left,top){this.widget.style.left=left+\"px\",this.widget.style.top=top+\"px\"},InboxWidget.prototype.getDefaultPosition=function(){var _a=this.trigger.getBoundingClientRect(),left=_a.left,top=_a.top,width=_a.width,height=_a.height;if(!document.documentElement)return\"\";var antiMargins={right:left,bottom:top,left:Math.max(document.documentElement.clientWidth,window.innerWidth||0)-(left+width),top:Math.max(document.documentElement.clientHeight,window.innerHeight||0)-(top+height)},leastMargin=Math.min(left,top,antiMargins.left,antiMargins.top),position=\"bottom\";return Object.keys(antiMargins).forEach(function(key){antiMargins[key]===leastMargin&&(position=key)}),position},InboxWidget.prototype.addListeners=function(){var _this=this;this.trigger.addEventListener(\"click\",this.onTriggerClickHandler),this.pw.push([\"onPutNewMessageToInboxStore\",function(){_this.updateInbox()}]),this.pw.push([\"onUpdateInboxMessages\",function(){_this.updateInbox()}])},InboxWidget.prototype.markVisibleItemsAsRead=function(){var _this=this;if(0!==this.messages.length){var scrollTop=this.list.clientHeight+this.list.scrollTop-50;Object.keys(this.messagesElements).forEach(function(code){if(_this.messagesElements[code]&&!(_this.messagesElements[code].offsetTop>scrollTop)){var message=_this.messages.find(function(message){return message.code===code});!message||message.isRead||_this.readItems.indexOf(code)+1||_this.readItems.push(code)}})}},InboxWidget.prototype.updateReadStatus=function(){this.pw.pwinbox.readMessagesWithCodes(this.readItems).then(this.updateInbox)},InboxWidget.prototype.updateInbox=function(){var _this=this;this.pw.pwinbox.loadMessages().then(function(messages){_this.updateInboxMessages(messages)}),this.pw.pwinbox.unreadMessagesCount().then(function(count){_this.updateCounter(count)})},InboxWidget.prototype.performMessageAction=function(code){var _this=this;this.pw.pwinbox.performActionForMessageWithCode(code).then(function(){_this.updateInbox()})},InboxWidget.prototype.removeMessages=function(messages){var _this=this;messages.forEach(function(code){_this.readItems=_this.readItems.slice(_this.readItems.indexOf(code),1)}),this.pw.pwinbox.deleteMessagesWithCodes(messages).then(function(){_this.updateInbox()})},InboxWidget.prototype.onTriggerClickHandler=function(event){event.stopPropagation(),event.target&&this.toggle()},InboxWidget.prototype.onWidgetClickHandler=function(event){if(event.target){var itemElement=event.target.closest(\".pw-inbox_item\");if(itemElement){var messageCode=itemElement.getAttribute(\"data-pw-inbox-message-id\");messageCode&&(event.target.closest(\".pw-inbox_item-remove\")?this.removeMessages([messageCode]):this.performMessageAction(messageCode))}else this.toggle()}},InboxWidget.prototype.onWindowScrollHandler=function(){this.isFixed&&this.isOpened?this.toggle():this.positionWidget()},InboxWidget}();exports.default=InboxWidget},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var helpers_1=__webpack_require__(0);exports.widgetTemplate=function(title){return'\\n<div class=\"pw-inbox__arrow\"></div>\\n<div class=\"pw-inbox_inner\">\\n <div class=\"pw-inbox_title\">\\n '+title+'\\n </div>\\n <ul class=\"pw-inbox_list\">\\n \\n </ul>\\n</div>'},exports.widgetTemplateEmpty=function(emptyInboxIconUrl,emptyInboxTitle,emptyInboxText){return'\\n<div class=\"pw-inbox__arrow\"></div>\\n<div class=\"pw-inbox_list--empty\">\\n <div class=\"pw-inbox_list-icon\">\\n <img src=\"'+emptyInboxIconUrl+'\" alt=\"'+emptyInboxTitle+'\">\\n </div>\\n <div class=\"pw-inbox_list-title\">\\n '+emptyInboxTitle+'\\n </div>\\n <div class=\"ipw-inbox_list-body\">\\n '+emptyInboxText+\"\\n </div>\\n</div>\"},exports.messageTemplate=function(_a){var imageUrl=_a.imageUrl,title=_a.title,message=_a.message,sendDate=_a.sendDate;return'\\n<div class=\"pw-inbox_item-inner\">\\n <div class=\"pw-inbox_icon\">\\n <img src=\"'+imageUrl+'\" alt=\"'+(title||message)+'\" class=\"pw-inbox_message-image\">\\n </div>\\n <div class=\"pw-inbox_content\">\\n '+(title?'<div class=\"pw-inbox_item-title\">\\n '+title+\"\\n </div>\":null)+'\\n <div class=\"pw-inbox_item-body\">\\n '+message+'\\n </div>\\n <div class=\"pw-inbox_item-time\">\\n '+helpers_1.getMessageTime(sendDate)+'\\n </div>\\n </div>\\n</div>\\n<span class=\"pw-inbox_item-remove\"></span>'}},function(module,exports,__webpack_require__){var result=__webpack_require__(6);module.exports=\"string\"==typeof result?result:result.toString()},function(module,exports,__webpack_require__){(module.exports=__webpack_require__(7)(void 0)).push([module.i,\".pw-inbox-trigger {\\n position: relative;\\n cursor: pointer;\\n}\\n\\n.pw-inbox-trigger:after {\\n content: attr(data-pw-count);\\n display: block;\\n position: absolute;\\n right: 0;\\n top: 0;\\n background: var(--badgeBgColor);\\n -webkit-border-radius: 8px;\\n border-radius: 8px;\\n color: var(--badgeTextColor);\\n font-size: 10px;\\n font-weight: normal;\\n line-height: 16px;\\n width: 16px;\\n padding: 0 2px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n text-align: center;\\n}\\n\\n.pw-inbox-trigger.pw-empty:after {\\n display: none;\\n}\\n\\n.pw-inbox-widget * {\\n position: static;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n font-size: 1em;\\n outline: none;\\n font-family: var(--fontFamily);\\n}\\n.pw-inbox-widget {\\n font-size: 14px;\\n position: absolute;\\n top: 0;\\n left: -1000px;\\n background: var(--bgColor);\\n border: solid 1px var(--borderColor);\\n -webkit-border-radius: var(--borderRadius);\\n border-radius: var(--borderRadius);\\n width: var(--widgetWidth);\\n -webkit-box-shadow: 0 1px 4px 0 rgba(0,0,0,.25);\\n box-shadow: 0 1px 4px 0 rgba(0,0,0,.25);\\n z-index: var(--zIndex);\\n opacity: 0;\\n -webkit-transition: opacity .6s ease;\\n -o-transition: opacity .6s ease;\\n transition: opacity .6s ease;\\n -webkit-transition-delay: 100ms;\\n -o-transition-delay: 100ms;\\n transition-delay: 100ms;\\n}\\n.pw-inbox-widget.pw-open {\\n opacity: 1;\\n -webkit-transition-delay: 0ms;\\n -o-transition-delay: 0ms;\\n transition-delay: 0ms;\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset {\\n top: auto;\\n left: auto;\\n display: none;\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset.pw-open {\\n display: block;\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset.pw-bottom {\\n top: 100%;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset.pw-top {\\n bottom: 100%;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset.pw-right {\\n left: 100%;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.pw-inbox-widget.pw-inbox-widget--inset.pw-left {\\n right: 100%;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.pw-inbox-widget.pw-inbox-widget--empty {\\n max-height: none;\\n}\\n.pw-inbox-widget .pw-inbox__arrow {\\n display: block;\\n width: 0;\\n height: 0;\\n border-width: 10px;\\n border-style: solid;\\n border-color: transparent;\\n position: absolute;\\n}\\n.pw-inbox-widget .pw-inbox__arrow:before {\\n content: \\\"\\\";\\n display: block;\\n width: 0;\\n height: 0;\\n border-width: 10px;\\n border-style: solid;\\n border-color: transparent;\\n position: absolute;\\n}\\n.pw-inbox-widget.pw-top {\\n margin-top: -12px;\\n}\\n.pw-inbox-widget.pw-top .pw-inbox__arrow {\\n border-top-color: var(--arrowBorderColor);\\n bottom: -21px;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.pw-inbox-widget.pw-top .pw-inbox__arrow:before {\\n border-top-color: var(--bgColor);\\n top: -11px;\\n left: -10px;\\n}\\n.pw-inbox-widget.pw-bottom {\\n margin-top: 12px;\\n}\\n.pw-inbox-widget.pw-bottom .pw-inbox__arrow {\\n border-bottom-color: var(--arrowBorderColor);\\n top: -21px;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.pw-inbox-widget.pw-bottom .pw-inbox__arrow:before {\\n border-bottom-color: var(--bgColor);\\n bottom: -11px;\\n left: -10px;\\n}\\n.pw-inbox-widget.pw-left {\\n margin-left: -12px;\\n}\\n.pw-inbox-widget.pw-left .pw-inbox__arrow {\\n border-left-color: var(--arrowBorderColor);\\n right: -21px;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.pw-inbox-widget.pw-left .pw-inbox__arrow:before {\\n border-left-color: var(--bgColor);\\n left: -11px;\\n top: -10px;\\n}\\n.pw-inbox-widget.pw-right {\\n margin-left: 12px;\\n}\\n.pw-inbox-widget.pw-right .pw-inbox__arrow {\\n border-right-color: var(--arrowBorderColor);\\n left: -21px;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.pw-inbox-widget.pw-right .pw-inbox__arrow:before {\\n border-right-color: var(--bgColor);\\n right: -11px;\\n top: -10px;\\n}\\n.pw-inbox_inner {\\n overflow: hidden;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: 100%;\\n}\\n.pw-inbox_title {\\n color: var(--textColor);\\n margin: 0;\\n padding: 28px 32px 12px;\\n font-size: 24px;\\n font-weight: 500;\\n line-height: 1.1;\\n text-align: left;\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 66px;\\n flex: 0 0 66px;\\n}\\n.pw-inbox_list {\\n overflow-x: hidden;\\n overflow-y: auto;\\n min-width: 200px;\\n max-height: 300px;\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n position: relative;\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n}\\n\\n.pw-inbox_item {\\n position: relative;\\n padding: 8px 32px;\\n margin: 0;\\n text-align: left;\\n}\\n.pw-inbox_item-inner {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n cursor: pointer;\\n}\\n.pw-inbox_icon {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 40px;\\n flex: 0 0 40px;\\n}\\n.pw-inbox_message-image {\\n width: 28px;\\n}\\n.pw-inbox_content {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 1 100%;\\n flex: 0 1 100%;\\n}\\n.pw-inbox_item-title {\\n color: var(--messageTitleColor);\\n font-size: 14px;\\n line-height: 20px;\\n margin-bottom: 4px;\\n}\\n.pw-inbox_item-body {\\n color: var(--textColor);\\n font-size: 14px;\\n line-height: 20px;\\n margin-bottom: 4px;\\n}\\n.pw-inbox_item-time {\\n color: var(--timeTextColor);\\n font-size: 12px;\\n line-height: 17px;\\n}\\n.pw-inbox_item-remove {\\n position: absolute;\\n z-index: 2;\\n top: 8px;\\n right: 8px;\\n display: none;\\n width: 10px;\\n height: 10px;\\n background: transparent url('https://cdn.pushwoosh.com/webpush/img/iconClose.svg') 50% no-repeat;\\n cursor: pointer;\\n}\\n.pw-inbox_item:hover .pw-inbox_item-remove {\\n display: block;\\n}\\n\\n.pw-inbox_item.pw-new .pw-inbox_item-title {\\n color: var(--textColor);\\n font-weight: 700;\\n}\\n\\n.pw-inbox_item.pw-new .pw-inbox_item-body {\\n font-weight: 700;\\n}\\n\\n.pw-inbox_list--empty {\\n padding: 50px 16px;\\n text-align: center;\\n max-height: 100%;\\n overflow: auto;\\n}\\n\\n.pw-inbox_list--empty .pw-inbox_list-icon {\\n text-align: center;\\n margin-bottom: 30px;\\n}\\n.pw-inbox_list--empty .pw-inbox_list-icon img {\\n max-width: 100%;\\n}\\n\\n.pw-inbox_list--empty .pw-inbox_list-title {\\n font-size: 28px;\\n line-height: 36px;\\n color: var(--emptyInboxTitleColor);\\n margin-bottom: 20px;\\n}\\n\\n.pw-inbox_list--empty .ipw-inbox_list-body {\\n font-size: 14px;\\n line-height: 18px;\\n color: var(--emptyInboxTextColor);\\n}\\n\",\"\"])},function(module,exports){module.exports=function(useSourceMap){var list=[];return list.toString=function(){return this.map(function(item){var content=function(item,useSourceMap){var content=item[1]||\"\",cssMapping=item[3];if(!cssMapping)return content;if(useSourceMap&&\"function\"==typeof btoa){var sourceMapping=function(sourceMap){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))+\" */\"}(cssMapping),sourceURLs=cssMapping.sources.map(function(source){return\"/*# sourceURL=\"+cssMapping.sourceRoot+source+\" */\"});return[content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\")}return[content].join(\"\\n\")}(item,useSourceMap);return item[2]?\"@media \"+item[2]+\"{\"+content+\"}\":content}).join(\"\")},list.i=function(modules,mediaQuery){\"string\"==typeof modules&&(modules=[[null,modules,\"\"]]);for(var alreadyImportedModules={},i=0;i<this.length;i++){var id=this[i][0];\"number\"==typeof id&&(alreadyImportedModules[id]=!0)}for(i=0;i<modules.length;i++){var item=modules[i];\"number\"==typeof item[0]&&alreadyImportedModules[item[0]]||(mediaQuery&&!item[2]?item[2]=mediaQuery:mediaQuery&&(item[2]=\"(\"+item[2]+\") and (\"+mediaQuery+\")\"),list.push(item))}},list}}])},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var web_push_subscribe_popup_1=__webpack_require__(46);document.addEventListener(\"pushwoosh.initialized\",function(ev){if(ev.detail.pw.subscribePopupConfig&&ev.detail.pw.subscribePopupConfig.enable){var popup_1=new web_push_subscribe_popup_1.PWSubscribePopup(ev.detail.pw);popup_1.initPopup().then(function(){ev.detail.pw.subscribePopup=popup_1})}})},function(module,exports,__webpack_require__){module.exports=function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.r=function(exports){Object.defineProperty(exports,\"__esModule\",{value:!0})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,\"a\",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p=\"\",__webpack_require__(__webpack_require__.s=1)}([function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DEFAULT_CONFIG={text:\"Don’t miss out on our news and updates! Enable push notifications\",askLaterButtonText:\"Not now\",confirmSubscriptionButtonText:\"Subscribe\",delay:5,retryOffset:604800,overlay:!1,position:\"top\",bgColor:\"#fff\",borderColor:\"transparent\",boxShadow:\"0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23)\",textColor:\"#000\",textSize:\"inherit\",textWeight:\"normal\",fontFamily:\"inherit\",subscribeBtnBgColor:\"#4285f4\",subscribeBtnTextColor:\"#fff\",subscribeBtnTextWeight:\"normal\",subscribeBtnBorderColor:\"transparent\",subscribeBtnBorderRadius:\"2px\",askLaterBtnBgColor:\"transparent\",askLaterBtnTextColor:\"#000\",askLaterBtnTextWeight:\"normal\",askLaterBtnBorderColor:\"transparent\",askLaterBtnBorderRadius:\"2px\",theme:\"material\",viewport:\"html\"},exports.COLOR_TEST_REGEXP=/^(#([\\da-f]{3}){1,2}$|(rgb|hsl)a\\((\\d{1,3}%?,\\s?){3}(1|0?\\.\\d+)\\)$|(rgb|hsl)\\(\\d{1,3}%?(,\\s?\\d{1,3}%?){2}\\)$)/,exports.PERMISSION_DENIED=\"denied\",exports.PERMISSION_GRANTED=\"granted\",exports.CONFIG_STYLES=[{name:\"bgColor\",type:\"color\"},{name:\"borderColor\",type:\"color\"},{name:\"boxShadow\",type:\"string\"},{name:\"textColor\",type:\"color\"},{name:\"textSize\",type:\"string\"},{name:\"textWeight\",type:\"string\"},{name:\"fontFamily\",type:\"string\"},{name:\"subscribeBtnBgColor\",type:\"color\"},{name:\"subscribeBtnTextColor\",type:\"color\"},{name:\"subscribeBtnTextWeight\",type:\"string\"},{name:\"subscribeBtnBorderColor\",type:\"color\"},{name:\"subscribeBtnBorderRadius\",type:\"string\"},{name:\"askLaterBtnBgColor\",type:\"color\"},{name:\"askLaterBtnTextColor\",type:\"color\"},{name:\"askLaterBtnTextWeight\",type:\"string\"},{name:\"askLaterBtnBorderColor\",type:\"color\"},{name:\"askLaterBtnBorderRadius\",type:\"string\"}]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var SubscribePopup_1=__webpack_require__(2);exports.PWSubscribePopup=SubscribePopup_1.default},function(module,exports,__webpack_require__){\"use strict\";var __assign=this&&this.__assign||Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},\"function\"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError(\"Generator is already executing.\");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,\"__esModule\",{value:!0});var constants_1=__webpack_require__(0),popupTemplates_1=__webpack_require__(3),constants_2=__webpack_require__(0),helpers_1=__webpack_require__(4),SubscribePopup=function(){function SubscribePopup(pw){this.pw=pw,this.config=__assign({},constants_1.DEFAULT_CONFIG,this.pw.subscribePopupConfig),this.onAskLaterClick=this.onAskLaterClick.bind(this),this.onSubscribeClick=this.onSubscribeClick.bind(this)}return SubscribePopup.prototype.initPopup=function(){return __awaiter(this,void 0,void 0,function(){var isSubscribed,isManualUnsubscribed,permission,lastPopupOpen,lastPopupOpenTime,now,_this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.pw.isSubscribed()];case 1:return isSubscribed=_a.sent(),[4,this.pw.data.getStatusManualUnsubscribed()];case 2:return isManualUnsubscribed=_a.sent(),isSubscribed||isManualUnsubscribed?[2]:[4,this.pw.driver.getPermission()];case 3:return(permission=_a.sent())===constants_2.PERMISSION_GRANTED||permission===constants_2.PERMISSION_DENIED?[2]:(this.renderPopup(),this.appendStyles(),lastPopupOpen=localStorage.getItem(\"LAST_OPEN_SUBSCRIPTION_POPUP\"),lastPopupOpenTime=lastPopupOpen?parseInt(lastPopupOpen):0,now=(new Date).getTime(),lastPopupOpenTime+1e3*this.config.retryOffset<now&&setTimeout(function(){_this.toggle(!0)},1e3*this.config.delay),[2])}})})},SubscribePopup.prototype.toggle=function(isShown){(\"boolean\"==typeof isShown?isShown:!this.isShown)?(this.showPopup(),this.pw.eventBus.dispatchEvent(\"subscribe-popup-show\",{})):(this.closePopup(),this.pw.eventBus.dispatchEvent(\"subscribe-popup-hide\",{}))},SubscribePopup.prototype.showPopup=function(){this.isShown=!0,this.popup.classList.add(\"pw-show\"),document.body.classList.add(\"pw-popup-opened\");var event=new CustomEvent(\"showPopup\",{bubbles:!1,cancelable:!1,detail:{popup:this.popup}});if(this.popup.dispatchEvent(event),!(Math.max(document.documentElement.clientWidth,window.innerWidth||0)<541)){var _a=this.config,theme=_a.theme,viewport=_a.viewport,position=_a.position;if(\"topbar\"===theme&&\"top\"===position){var viewportElement=document.querySelector(viewport)||document.createElement(\"div\"),currentMarginTop=window.getComputedStyle(viewportElement).marginTop||\"0\";viewportElement.style.transition=\"margin-top .3s ease-out\",viewportElement.style.marginTop=parseInt(currentMarginTop)+this.popup.getBoundingClientRect().height+\"px\"}}},SubscribePopup.prototype.closePopup=function(){this.isShown=!1,this.popup.classList.remove(\"pw-show\"),document.body.classList.remove(\"pw-popup-opened\");var event=new CustomEvent(\"hidePopup\",{bubbles:!1,cancelable:!1,detail:{popup:this.popup}});this.popup.dispatchEvent(event);var now=(new Date).getTime().toString();if(localStorage.setItem(\"LAST_OPEN_SUBSCRIPTION_POPUP\",now),!(Math.max(document.documentElement.clientWidth,window.innerWidth||0)<541)){var _a=this.config,theme=_a.theme,viewport=_a.viewport,position=_a.position;if(\"topbar\"===theme&&\"top\"===position){var viewportElement=document.querySelector(viewport)||document.createElement(\"div\"),currentMarginTop=window.getComputedStyle(viewportElement).marginTop||\"0\";viewportElement.style.marginTop=parseInt(currentMarginTop)-this.popup.getBoundingClientRect().height+\"px\"}}},SubscribePopup.prototype.renderPopup=function(){this.popup=document.createElement(\"div\"),this.popup.id=\"pwSubscribePopup\";var _a=this.config,text=_a.text,askLaterButtonText=_a.askLaterButtonText,confirmSubscriptionButtonText=_a.confirmSubscriptionButtonText,iconUrl=_a.iconUrl,position=_a.position,overlay=_a.overlay,theme=_a.theme;this.popup.className=\"pw-subscribe-popup pw-position-\"+position+\" pw-subscribe-popup-\"+theme,this.popup.classList.toggle(\"pw-subscribe-popup__overlay\",overlay),this.popup.innerHTML=popupTemplates_1.innerTemplate({text:text,askLaterButtonText:askLaterButtonText,confirmSubscriptionButtonText:confirmSubscriptionButtonText,iconUrl:iconUrl}),document.body.appendChild(this.popup),this.addListeners()},SubscribePopup.prototype.appendStyles=function(){var styles=__webpack_require__(5),style=document.createElement(\"style\");style.innerHTML=this.configureStyle(styles),document.body.appendChild(style)},SubscribePopup.prototype.getStyleFormatter=function(style){switch(style.type){case\"size\":return(this.config[style.name]||0)+\"px\";case\"number\":return parseFloat(this.config[style.name].toString()).toString();case\"string\":return this.config[style.name].toString();case\"color\":return helpers_1.getValidColor(this.config[style.name].toString());default:return\"none\"}},SubscribePopup.prototype.configureStyle=function(styles){var _this=this,resultStyles=styles.toString();return constants_1.CONFIG_STYLES.forEach(function(style){var template=new RegExp(\"var\\\\(--\"+style.name+\"\\\\)\",\"ig\"),result=_this.getStyleFormatter(style);resultStyles=resultStyles.replace(template,result)}),resultStyles},SubscribePopup.prototype.addListeners=function(){var askLaterButton=this.popup.querySelector('button[name=\"pwAskLater\"]')||document.createElement(\"button\"),subscribeButton=this.popup.querySelector('button[name=\"pwSubscribe\"]')||document.createElement(\"button\");askLaterButton.addEventListener(\"click\",this.onAskLaterClick),subscribeButton.addEventListener(\"click\",this.onSubscribeClick)},SubscribePopup.prototype.onAskLaterClick=function(){this.toggle(!1),this.pw.eventBus.dispatchEvent(\"subscribe-popup-decline\",{})},SubscribePopup.prototype.onSubscribeClick=function(){this.toggle(!1),this.pw.eventBus.dispatchEvent(\"subscribe-popup-accept\",{}),this.pw.subscribe()},SubscribePopup}();exports.default=SubscribePopup},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.innerTemplate=function(_a){var iconUrl=_a.iconUrl,text=_a.text,askLaterButtonText=_a.askLaterButtonText,confirmSubscriptionButtonText=_a.confirmSubscriptionButtonText;return'<div class=\"pw-subscription-popup-inner\">\\n <div class=\"pw-subscription-popup-content\">\\n '+(iconUrl?'<div class=\"pw-subscription-popup-icon\">\\n <img src=\"'+iconUrl+'\">\\n </div>':\"\")+'\\n <div class=\"pw-subscription-popup-text\">\\n '+text+'\\n </div>\\n </div>\\n <div class=\"pw-subscription-popup-controls\">\\n <button name=\"pwAskLater\" class=\"pw-subscribe-popup-button\">'+askLaterButtonText+'</button>\\n <button name=\"pwSubscribe\" class=\"pw-subscribe-popup-button pw-subscribe-popup-button-active\">'+confirmSubscriptionButtonText+\"</button>\\n </div>\\n </div>\"}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var constants_1=__webpack_require__(0);exports.getValidColor=function(color){return\"transparent\"===color?color:constants_1.COLOR_TEST_REGEXP.test(color)?color:\"#333\"},exports.getGlobal=function(){return globalThis}},function(module,exports,__webpack_require__){var result=__webpack_require__(6);module.exports=\"string\"==typeof result?result:result.toString()},function(module,exports,__webpack_require__){(module.exports=__webpack_require__(7)(void 0)).push([module.i,\".pw-subscribe-popup {\\n position: fixed;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n z-index: 1000000;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-transition: all .4s ease-out;\\n -o-transition: all .4s ease-out;\\n transition: all .4s ease-out;\\n}\\n\\n.pw-subscribe-popup.pw-position-top {\\n top: calc(-100% - 24px);\\n}\\n.pw-subscribe-popup.pw-position-top.pw-show {\\n top: 0;\\n}\\n\\n.pw-subscribe-popup.pw-position-bottom {\\n bottom: calc(-100% - 24px);\\n}\\n.pw-subscribe-popup.pw-position-bottom.pw-show {\\n bottom: 0;\\n}\\n\\n.pw-subscribe-popup.pw-position-center {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100vw;\\n height: 100vh;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n\\n -webkit-transform: none;\\n\\n -ms-transform: none;\\n\\n transform: none;\\n}\\n\\n.pw-subscribe-popup__overlay {\\n background: rgba(0,0,0,.4);\\n z-index: 1000000;\\n}\\n\\n.pw-subscribe-popup.pw-position-center:not(.pw-subscribe-popup__overlay) {\\n pointer-events: none;\\n}\\n\\n.pw-subscribe-popup.pw-position-center:not(.pw-show) {\\n display: none;\\n}\\n\\n\\n.pw-subscribe-popup__overlay.pw-position-top {\\n -webkit-box-align: start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n}\\n\\n.pw-subscribe-popup__overlay.pw-position-bottom {\\n -webkit-box-align: end;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n}\\n\\n.pw-subscribe-popup__overlay.pw-position-center {\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.pw-subscription-popup-inner {\\n max-width: 400px;\\n font-size: var(--textSize);\\n color: var(--textColor);\\n font-weight: var(--textWeight);\\n font-family: var(--fontFamily);\\n border-style: solid;\\n border-width: 1px;\\n border-color: var(--borderColor);\\n background: var(--bgColor);\\n -webkit-box-shadow: var(--boxShadow);\\n box-shadow: var(--boxShadow);\\n pointer-events: auto;\\n}\\n\\n.pw-subscription-popup-content {\\n padding: 16px 16px 4px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: stretch;\\n -ms-flex-pack: stretch;\\n justify-content: stretch;\\n}\\n\\n.pw-subscription-popup-icon {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 50px;\\n flex: 0 0 50px;\\n margin-right: 12px;\\n padding-top: 4px;\\n}\\n\\n.pw-subscription-popup-icon img {\\n max-width: 60px;\\n max-height: 60px;\\n}\\n\\n.pw-subscription-popup-text {\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 300px;\\n flex: 1 1 300px;\\n}\\n\\n.pw-subscription-popup-controls {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: nowrap;\\n flex-wrap: nowrap;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n padding: 8px 16px 16px;\\n}\\n\\nbutton.pw-subscribe-popup-button {\\n border: solid 1px var(--askLaterBtnBorderColor);\\n -webkit-border-radius: var(--askLaterBtnBorderRadius);\\n border-radius: var(--askLaterBtnBorderRadius);\\n display: inline-block;\\n height: 36px;\\n line-height: 36px;\\n padding: 0 16px;\\n text-transform: uppercase;\\n font-weight: var(--askLaterBtnTextWeight);\\n vertical-align: middle;\\n -webkit-tap-highlight-color: transparent;\\n font-size: 14px;\\n outline: 0;\\n text-decoration: none;\\n color: var(--askLaterBtnTextColor);\\n text-align: center;\\n letter-spacing: .5px;\\n cursor: pointer;\\n background: var(--askLaterBtnBgColor);\\n margin: 4px 8px;\\n}\\nbutton.pw-subscribe-popup-button:hover {\\n background: rgba(0,0,0,.04);\\n}\\nbutton.pw-subscribe-popup-button:active {\\n background: rgba(0,0,0,.12);\\n}\\n\\nbutton.pw-subscribe-popup-button.pw-subscribe-popup-button-active {\\n color: var(--subscribeBtnTextColor);\\n background: var(--subscribeBtnBgColor);\\n -webkit-border-radius: var(--subscribeBtnBorderRadius);\\n border-radius: var(--subscribeBtnBorderRadius);\\n border: solid 1px var(--subscribeBtnBorderColor);\\n -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),\\n 0 3px 1px -2px rgba(0,0,0,0.12),\\n 0 1px 5px 0 rgba(0,0,0,0.2);\\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),\\n 0 3px 1px -2px rgba(0,0,0,0.12),\\n 0 1px 5px 0 rgba(0,0,0,0.2);\\n font-weight: var(--subscribeBtnTextWeight);\\n}\\nbutton.pw-subscribe-popup-button.pw-subscribe-popup-button-active:hover {\\n -webkit-box-shadow: 0 3px 3px 0 rgba(0,0,0,0.14),\\n 0 1px 7px 0 rgba(0,0,0,0.12),\\n 0 3px 1px -1px rgba(0,0,0,0.2);\\n box-shadow: 0 3px 3px 0 rgba(0,0,0,0.14),\\n 0 1px 7px 0 rgba(0,0,0,0.12),\\n 0 3px 1px -1px rgba(0,0,0,0.2);\\n}\\nbutton.pw-subscribe-popup-button.pw-subscribe-popup-button-active:active {\\n -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),\\n 0 3px 1px -2px rgba(0,0,0,0.12),\\n 0 1px 5px 0 rgba(0,0,0,0.2);\\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),\\n 0 3px 1px -2px rgba(0,0,0,0.12),\\n 0 1px 5px 0 rgba(0,0,0,0.2);\\n}\\n\\n@media screen and (min-width: 541px) {\\n\\n .pw-subscribe-popup-topbar {\\n width: 100%;\\n }\\n\\n .pw-subscribe-popup-topbar .pw-subscription-popup-inner {\\n max-width: 100%;\\n width: 100%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n padding: 2px 40px;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-wrap: nowrap;\\n flex-wrap: nowrap;\\n }\\n\\n .pw-subscribe-popup-topbar .pw-subscription-popup-content {\\n padding: 0;\\n -webkit-box-pack: start;\\n -ms-flex-pack: start;\\n justify-content: flex-start;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n\\n .pw-subscribe-popup-topbar .pw-subscription-popup-icon img {\\n max-width: 28px;\\n max-height: 28px;\\n }\\n\\n .pw-subscribe-popup-topbar button.pw-subscribe-popup-button {\\n height: 32px;\\n line-height: 32px;\\n }\\n\\n .pw-subscribe-popup-topbar .pw-subscription-popup-controls {\\n padding: 0 0 0 16px;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n}\\n@media screen and (max-width: 540px) {\\n .pw-subscribe-popup,\\n .pw-subscribe-popup.pw-position-top,\\n .pw-subscribe-popup.pw-position-center,\\n .pw-subscribe-popup.pw-position-bottom {\\n top: auto;\\n bottom: -110%;\\n left: 0;\\n right: 0;\\n -webkit-transform: none;\\n -ms-transform: none;\\n transform: none;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-transition: bottom .4s ease-out;\\n -o-transition: bottom .4s ease-out;\\n transition: bottom .4s ease-out;\\n -webkit-box-align: end;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n }\\n\\n .pw-subscribe-popup.pw-subscribe-popup__overlay {\\n height: 100%;\\n -webkit-box-align: end;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n }\\n\\n .pw-subscribe-popup.pw-show {\\n bottom: 0;\\n }\\n\\n .pw-subscribe-popup__overlay .pw-subscription-popup-inner {\\n -webkit-box-align: end;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n -webkit-box-pack: stretch;\\n -ms-flex-pack: stretch;\\n justify-content: stretch;\\n }\\n\\n .pw-subscription-popup-inner {\\n max-width: 100%;\\n width: 100%;\\n }\\n}\\n\",\"\"])},function(module,exports){module.exports=function(useSourceMap){var list=[];return list.toString=function(){return this.map(function(item){var content=function(item,useSourceMap){var content=item[1]||\"\",cssMapping=item[3];if(!cssMapping)return content;if(useSourceMap&&\"function\"==typeof btoa){var sourceMapping=function(sourceMap){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))+\" */\"}(cssMapping),sourceURLs=cssMapping.sources.map(function(source){return\"/*# sourceURL=\"+cssMapping.sourceRoot+source+\" */\"});return[content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\")}return[content].join(\"\\n\")}(item,useSourceMap);return item[2]?\"@media \"+item[2]+\"{\"+content+\"}\":content}).join(\"\")},list.i=function(modules,mediaQuery){\"string\"==typeof modules&&(modules=[[null,modules,\"\"]]);for(var alreadyImportedModules={},i=0;i<this.length;i++){var id=this[i][0];\"number\"==typeof id&&(alreadyImportedModules[id]=!0)}for(i=0;i<modules.length;i++){var item=modules[i];\"number\"==typeof item[0]&&alreadyImportedModules[item[0]]||(mediaQuery&&!item[2]?item[2]=mediaQuery:mediaQuery&&(item[2]=\"(\"+item[2]+\") and (\"+mediaQuery+\")\"),list.push(item))}},list}}])}])});","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { createElement, forwardRef } from 'react';\nimport { ThemeContext } from '@emotion/core';\nimport weakMemoize from '@emotion/weak-memoize';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _objectSpread({}, outerTheme, {}, theme);\n};\n\nvar createCacheWithTheme = weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n\nvar ThemeProvider = function ThemeProvider(props) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n });\n};\n\n// should we change this to be forwardRef/withCSSContext style so it doesn't merge with props?\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nfunction useTheme() {\n return React.useContext(ThemeContext);\n}\n\nexport { ThemeProvider, useTheme, withTheme };\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.GoogleLogin=t(require(\"react\")):e.GoogleLogin=t(e.react)}(\"undefined\"!=typeof self?self:this,(function(e){return o={},t.m=n=[function(t){t.exports=e},function(e,t,n){e.exports=n(2)()},function(e,t,n){\"use strict\";function o(){}function r(){}var i=n(3);r.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,r,a){if(a!==i){var c=Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw c.name=\"Invariant Violation\",c}}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:o};return n.PropTypes=n}},function(e){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(e,t,n){\"use strict\";function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],o=!0,r=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(o=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(r)throw i}}return n}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(n):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r(e,t){null!=t&&t<=e.length||(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],o=!0,r=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(o=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(r)throw i}}return n}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(n):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function a(e,t){null!=t&&t<=e.length||(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],o=!0,r=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(o=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(r)throw i}}return n}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(n):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function u(e,t){null!=t&&t<=e.length||(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],o=!0,r=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(o=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(r)throw i}}return n}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(n):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){null!=t&&t<=e.length||(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function f(e,t,n,o,r,i){var a=e.getElementsByTagName(t)[0],c=a,u=a;(u=e.createElement(t)).id=n,u.src=o,c&&c.parentNode?c.parentNode.insertBefore(u,c):e.head.appendChild(u),u.onerror=i,u.onload=r}function d(e,t){var n=e.getElementById(t);n&&n.parentNode.removeChild(n)}function p(e){return b.a.createElement(\"span\",{style:{paddingRight:10,fontWeight:500,paddingLeft:e.icon?0:10,paddingTop:10,paddingBottom:10}},e.children)}function g(e){return b.a.createElement(\"div\",{style:{marginRight:10,background:e.active?\"#eee\":\"#fff\",padding:10,borderRadius:2}},b.a.createElement(\"svg\",{width:\"18\",height:\"18\",xmlns:\"http://www.w3.org/2000/svg\"},b.a.createElement(\"g\",{fill:\"#000\",fillRule:\"evenodd\"},b.a.createElement(\"path\",{d:\"M9 3.48c1.69 0 2.83.73 3.48 1.34l2.54-2.48C13.46.89 11.43 0 9 0 5.48 0 2.44 2.02.96 4.96l2.91 2.26C4.6 5.05 6.62 3.48 9 3.48z\",fill:\"#EA4335\"}),b.a.createElement(\"path\",{d:\"M17.64 9.2c0-.74-.06-1.28-.19-1.84H9v3.34h4.96c-.1.83-.64 2.08-1.84 2.92l2.84 2.2c1.7-1.57 2.68-3.88 2.68-6.62z\",fill:\"#4285F4\"}),b.a.createElement(\"path\",{d:\"M3.88 10.78A5.54 5.54 0 0 1 3.58 9c0-.62.11-1.22.29-1.78L.96 4.96A9.008 9.008 0 0 0 0 9c0 1.45.35 2.82.96 4.04l2.92-2.26z\",fill:\"#FBBC05\"}),b.a.createElement(\"path\",{d:\"M9 18c2.43 0 4.47-.8 5.96-2.18l-2.84-2.2c-.76.53-1.78.9-3.12.9-2.38 0-4.4-1.57-5.12-3.74L.97 13.04C2.45 15.98 5.48 18 9 18z\",fill:\"#34A853\"}),b.a.createElement(\"path\",{fill:\"none\",d:\"M0 0h18v18H0z\"}))))}function y(e){var t=i(Object(m.useState)(!1),2),n=t[0],o=t[1],r=i(Object(m.useState)(!1),2),a=r[0],c=r[1],u=e.tag,l=e.type,s=e.className,f=e.disabledStyle,d=e.buttonText,y=e.children,v=e.render,S=e.theme,j=e.icon,O=e.disabled,x=h({onSuccess:e.onSuccess,onAutoLoadFinished:e.onAutoLoadFinished,onRequest:e.onRequest,onFailure:e.onFailure,onScriptLoadFailure:e.onScriptLoadFailure,clientId:e.clientId,cookiePolicy:e.cookiePolicy,loginHint:e.loginHint,hostedDomain:e.hostedDomain,autoLoad:e.autoLoad,isSignedIn:e.isSignedIn,fetchBasicProfile:e.fetchBasicProfile,redirectUri:e.redirectUri,discoveryDocs:e.discoveryDocs,uxMode:e.uxMode,scope:e.scope,accessType:e.accessType,responseType:e.responseType,jsSrc:e.jsSrc,prompt:e.prompt}),I=x.signIn,w=O||!x.loaded;if(v)return v({onClick:I,disabled:w});var k={backgroundColor:\"dark\"===S?\"rgb(66, 133, 244)\":\"#fff\",display:\"inline-flex\",alignItems:\"center\",color:\"dark\"===S?\"#fff\":\"rgba(0, 0, 0, .54)\",boxShadow:\"0 2px 2px 0 rgba(0, 0, 0, .24), 0 0 1px 0 rgba(0, 0, 0, .24)\",padding:0,borderRadius:2,border:\"1px solid transparent\",fontSize:14,fontWeight:\"500\",fontFamily:\"Roboto, sans-serif\"},A={cursor:\"pointer\",backgroundColor:\"dark\"===S?\"#3367D6\":\"#eee\",color:\"dark\"===S?\"#fff\":\"rgba(0, 0, 0, .54)\",opacity:1},_=w?Object.assign({},k,f):a?Object.assign({},k,A):n?Object.assign({},k,{cursor:\"pointer\",opacity:.9}):k;return b.a.createElement(u,{onMouseEnter:function(){return o(!0)},onMouseLeave:function(){o(!1),c(!1)},onMouseDown:function(){return c(!0)},onMouseUp:function(){return c(!1)},onClick:I,style:_,type:l,disabled:w,className:s},[j&&b.a.createElement(g,{key:1,active:a}),b.a.createElement(p,{icon:j,key:2},y||d)])}n.r(t),n.d(t,\"default\",(function(){return S})),n.d(t,\"GoogleLogin\",(function(){return S})),n.d(t,\"GoogleLogout\",(function(){return O})),n.d(t,\"useGoogleLogin\",(function(){return h})),n.d(t,\"useGoogleLogout\",(function(){return j}));var m=n(0),b=n.n(m),h=(n(1),function(e){function t(e){var t=e.getBasicProfile(),n=e.getAuthResponse(!0);e.googleId=t.getId(),e.tokenObj=n,e.tokenId=n.id_token,e.accessToken=n.access_token,e.profileObj={googleId:t.getId(),imageUrl:t.getImageUrl(),email:t.getEmail(),name:t.getName(),givenName:t.getGivenName(),familyName:t.getFamilyName()},i(e)}function n(e){if(e&&e.preventDefault(),P){var n=window.gapi.auth2.getAuthInstance(),o={prompt:L};p(),\"code\"===_?n.grantOfflineAccess(o).then((function(e){return i(e)}),(function(e){return l(e)})):n.signIn(o).then((function(e){return t(e)}),(function(e){return l(e)}))}}var r=e.onSuccess,i=void 0===r?function(){}:r,a=e.onAutoLoadFinished,c=void 0===a?function(){}:a,u=e.onFailure,l=void 0===u?function(){}:u,s=e.onRequest,p=void 0===s?function(){}:s,g=e.onScriptLoadFailure,y=e.clientId,b=e.cookiePolicy,h=e.loginHint,v=e.hostedDomain,S=e.autoLoad,j=e.isSignedIn,O=e.fetchBasicProfile,x=e.redirectUri,I=e.discoveryDocs,w=e.uxMode,k=e.scope,A=e.accessType,_=e.responseType,E=e.jsSrc,T=void 0===E?\"https://apis.google.com/js/api.js\":E,L=e.prompt,M=o(Object(m.useState)(!1),2),P=M[0],C=M[1];return Object(m.useEffect)((function(){var e=!1,n=g||l;return f(document,\"script\",\"google-login\",T,(function(){var o={client_id:y,cookie_policy:b,login_hint:h,hosted_domain:v,fetch_basic_profile:O,discoveryDocs:I,ux_mode:w,redirect_uri:x,scope:k,access_type:A};\"code\"===_&&(o.access_type=\"offline\"),window.gapi.load(\"auth2\",(function(){var r=window.gapi.auth2.getAuthInstance();r?r.then((function(){e||(j&&r.isSignedIn.get()?(C(!0),c(!0),t(r.currentUser.get())):(C(!0),c(!1)))}),(function(e){l(e)})):window.gapi.auth2.init(o).then((function(n){if(!e){C(!0);var o=j&&n.isSignedIn.get();c(o),o&&t(n.currentUser.get())}}),(function(e){C(!0),c(!1),n(e)}))}))}),(function(e){n(e)})),function(){e=!0,d(document,\"google-login\")}}),[]),Object(m.useEffect)((function(){S&&n()}),[P]),{signIn:n,loaded:P}});function v(e){var t=l(Object(m.useState)(!1),2),n=t[0],o=t[1],r=l(Object(m.useState)(!1),2),i=r[0],a=r[1],c=e.tag,u=e.type,s=e.className,f=e.disabledStyle,d=e.buttonText,y=e.children,h=e.render,v=e.theme,S=e.icon,O=e.disabled,x=j({jsSrc:e.jsSrc,onFailure:e.onFailure,onScriptLoadFailure:e.onScriptLoadFailure,clientId:e.clientId,cookiePolicy:e.cookiePolicy,loginHint:e.loginHint,hostedDomain:e.hostedDomain,fetchBasicProfile:e.fetchBasicProfile,discoveryDocs:e.discoveryDocs,uxMode:e.uxMode,redirectUri:e.redirectUri,scope:e.scope,accessType:e.accessType,onLogoutSuccess:e.onLogoutSuccess}),I=x.signOut,w=O||!x.loaded;if(h)return h({onClick:I,disabled:w});var k={backgroundColor:\"dark\"===v?\"rgb(66, 133, 244)\":\"#fff\",display:\"inline-flex\",alignItems:\"center\",color:\"dark\"===v?\"#fff\":\"rgba(0, 0, 0, .54)\",boxShadow:\"0 2px 2px 0 rgba(0, 0, 0, .24), 0 0 1px 0 rgba(0, 0, 0, .24)\",padding:0,borderRadius:2,border:\"1px solid transparent\",fontSize:14,fontWeight:\"500\",fontFamily:\"Roboto, sans-serif\"},A={cursor:\"pointer\",backgroundColor:\"dark\"===v?\"#3367D6\":\"#eee\",color:\"dark\"===v?\"#fff\":\"rgba(0, 0, 0, .54)\",opacity:1},_=w?Object.assign({},k,f):i?Object.assign({},k,A):n?Object.assign({},k,{cursor:\"pointer\",opacity:.9}):k;return b.a.createElement(c,{onMouseEnter:function(){return o(!0)},onMouseLeave:function(){o(!1),a(!1)},onMouseDown:function(){return a(!0)},onMouseUp:function(){return a(!1)},onClick:I,style:_,type:u,disabled:w,className:s},[S&&b.a.createElement(g,{key:1,active:i}),b.a.createElement(p,{icon:S,key:2},y||d)])}y.defaultProps={type:\"button\",tag:\"button\",buttonText:\"Sign in with Google\",scope:\"profile email\",accessType:\"online\",prompt:\"\",cookiePolicy:\"single_host_origin\",fetchBasicProfile:!0,isSignedIn:!1,uxMode:\"popup\",disabledStyle:{opacity:.6},icon:!0,theme:\"light\",onRequest:function(){}};var S=y,j=function(e){var t=e.jsSrc,n=void 0===t?\"https://apis.google.com/js/api.js\":t,o=e.onFailure,r=e.onScriptLoadFailure,i=e.clientId,a=e.cookiePolicy,u=e.loginHint,l=e.hostedDomain,s=e.fetchBasicProfile,p=e.discoveryDocs,g=e.uxMode,y=e.redirectUri,b=e.scope,h=e.accessType,v=e.onLogoutSuccess,S=c(Object(m.useState)(!1),2),j=S[0],O=S[1],x=Object(m.useCallback)((function(){if(window.gapi){var e=window.gapi.auth2.getAuthInstance();null!=e&&e.then((function(){e.signOut().then((function(){e.disconnect(),v()}))}),(function(e){return o(e)}))}}),[v]);return Object(m.useEffect)((function(){var e=r||o;return f(document,\"script\",\"google-login\",n,(function(){var t={client_id:i,cookie_policy:a,login_hint:u,hosted_domain:l,fetch_basic_profile:s,discoveryDocs:p,ux_mode:g,redirect_uri:y,scope:b,access_type:h};window.gapi.load(\"auth2\",(function(){window.gapi.auth2.getAuthInstance()?O(!0):window.gapi.auth2.init(t).then((function(){return O(!0)}),(function(t){return e(t)}))}))}),(function(t){e(t)})),function(){d(document,\"google-login\")}}),[]),{signOut:x,loaded:j}};v.defaultProps={type:\"button\",tag:\"button\",buttonText:\"Logout of Google\",disabledStyle:{opacity:.6},icon:!0,theme:\"light\",jsSrc:\"https://apis.google.com/js/api.js\"};var O=v}],t.c=o,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&n&&\"string\"!=typeof e)for(var r in e)t.d(o,r,function(t){return e[t]}.bind(null,r));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=4);function t(e){if(o[e])return o[e].exports;var r=o[e]={i:e,l:!1,exports:{}};return n[e].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n,o}));","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || 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; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _reactFastCompare = require(\"react-fast-compare\");\n\nvar _reactFastCompare2 = _interopRequireDefault(_reactFastCompare);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _reactFastCompare2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _Dock = require('./Dock');\n\nvar _Dock2 = _interopRequireDefault(_Dock);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Dock2.default;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _sister = require('sister');\n\nvar _sister2 = _interopRequireDefault(_sister);\n\nvar _loadYouTubeIframeApi = require('./loadYouTubeIframeApi');\n\nvar _loadYouTubeIframeApi2 = _interopRequireDefault(_loadYouTubeIframeApi);\n\nvar _YouTubePlayer = require('./YouTubePlayer');\n\nvar _YouTubePlayer2 = _interopRequireDefault(_YouTubePlayer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @typedef YT.Player\n * @see https://developers.google.com/youtube/iframe_api_reference\n * */\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player\n */\nvar youtubeIframeAPI = void 0;\n\n/**\n * A factory function used to produce an instance of YT.Player and queue function calls and proxy events of the resulting object.\n *\n * @param maybeElementId Either An existing YT.Player instance,\n * the DOM element or the id of the HTML element where the API will insert an <iframe>.\n * @param options See `options` (Ignored when using an existing YT.Player instance).\n * @param strictState A flag designating whether or not to wait for\n * an acceptable state when calling supported functions. Default: `false`.\n * See `FunctionStateMap.js` for supported functions and acceptable states.\n */\n\nexports.default = function (maybeElementId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var strictState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var emitter = (0, _sister2.default)();\n\n if (!youtubeIframeAPI) {\n youtubeIframeAPI = (0, _loadYouTubeIframeApi2.default)(emitter);\n }\n\n if (options.events) {\n throw new Error('Event handlers cannot be overwritten.');\n }\n\n if (typeof maybeElementId === 'string' && !document.getElementById(maybeElementId)) {\n throw new Error('Element \"' + maybeElementId + '\" does not exist.');\n }\n\n options.events = _YouTubePlayer2.default.proxyEvents(emitter);\n\n var playerAPIReady = new Promise(function (resolve) {\n if ((typeof maybeElementId === 'undefined' ? 'undefined' : _typeof(maybeElementId)) === 'object' && maybeElementId.playVideo instanceof Function) {\n var player = maybeElementId;\n\n resolve(player);\n } else {\n // asume maybeElementId can be rendered inside\n // eslint-disable-next-line promise/catch-or-return\n youtubeIframeAPI.then(function (YT) {\n // eslint-disable-line promise/prefer-await-to-then\n var player = new YT.Player(maybeElementId, options);\n\n emitter.on('ready', function () {\n resolve(player);\n });\n\n return null;\n });\n }\n });\n\n var playerApi = _YouTubePlayer2.default.promisifyPlayer(playerAPIReady, strictState);\n\n playerApi.on = emitter.on;\n playerApi.off = emitter.off;\n\n return playerApi;\n};\n\nmodule.exports = exports['default'];","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","!function(n,e){if(\"object\"===typeof exports&&\"object\"===typeof module)module.exports=e(require(\"react\"));else if(\"function\"===typeof define&&define.amd)define([\"react\"],e);else{var t=e(\"object\"===typeof exports?require(\"react\"):n.react);for(var r in t)(\"object\"===typeof exports?exports:n)[r]=t[r]}}(this,function(n){return function(n){function e(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return n[r].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var t={};return e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:r})},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,\"a\",t),t},e.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},e.p=\"\",e(e.s=0)}([function(n,e,t){n.exports=t(1)},function(n,e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=t(2);e.default=r.a},function(n,e,t){\"use strict\";function r(n,e){if(!(n instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(n,e){if(!n)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!==typeof e&&\"function\"!==typeof e?n:e}function o(n,e){if(\"function\"!==typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}var u=t(3),i=t.n(u),c=t(4),f=t.n(c),s=t(9),l=t.n(s),p=function(){function n(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}}(),d=function(){},m=function(n){function e(){var n,t,o,u;r(this,e);for(var i=arguments.length,c=Array(i),f=0;f<i;f++)c[f]=arguments[f];return t=o=a(this,(n=e.__proto__||Object.getPrototypeOf(e)).call.apply(n,[this].concat(c))),o.state={animatedValue:0},o.componentDidMount=function(){o.animateValue()},o.componentDidUpdate=function(n){n.value!==o.props.value&&o.animateValue()},o.componentWillUnmount=function(){o.stopAnimation()},o.target={animatedValue:0},o.updateValue=function(n){o.props.update(n);var e=o.target.animatedValue;o.setState({animatedValue:e})},o.stopAnimation=function(){o.instance&&(o.instance.pause(),o.instance.reset(),delete o.instance)},o.animateValue=function(){o.stopAnimation();var n=o.props,e=n.duration,t=n.begin,r=n.easing,a=n.complete,u=n.run,i=n.delay,c=n.value;o.instance=l()({targets:o.target,animatedValue:c,duration:e,update:o.updateValue,easing:r,begin:t,complete:a,run:u,delay:i})},u=t,a(o,u)}return o(e,n),p(e,[{key:\"render\",value:function(){return i.a.createElement(\"span\",{className:this.props.className},this.props.formatValue(Number(this.state.animatedValue)))}}]),e}(u.Component);m.propTypes={value:f.a.oneOfType([f.a.number,f.a.string]).isRequired,duration:f.a.number,delay:f.a.number,formatValue:f.a.func,begin:f.a.func,complete:f.a.func,run:f.a.func,update:f.a.func,easing:f.a.string,className:f.a.string},m.defaultProps={duration:1e3,formatValue:function(n){return n},easing:\"linear\",run:d,complete:d,update:d,begin:d,delay:0,className:null},e.a=m},function(e,t){e.exports=n},function(n,e,t){n.exports=t(5)()},function(n,e,t){\"use strict\";var r=t(6),a=t(7),o=t(8);n.exports=function(){function n(n,e,t,r,u,i){i!==o&&a(!1,\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\")}function e(){return n}n.isRequired=n;var t={array:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:e,element:n,instanceOf:e,node:n,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return t.checkPropTypes=r,t.PropTypes=t,t}},function(n,e,t){\"use strict\";function r(n){return function(){return n}}var a=function(){};a.thatReturns=r,a.thatReturnsFalse=r(!1),a.thatReturnsTrue=r(!0),a.thatReturnsNull=r(null),a.thatReturnsThis=function(){return this},a.thatReturnsArgument=function(n){return n},n.exports=a},function(n,e,t){\"use strict\";function r(n,e,t,r,o,u,i,c){if(a(e),!n){var f;if(void 0===e)f=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var s=[t,r,o,u,i,c],l=0;f=new Error(e.replace(/%s/g,function(){return s[l++]})),f.name=\"Invariant Violation\"}throw f.framesToPop=1,f}}var a=function(n){};n.exports=r},function(n,e,t){\"use strict\";n.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(n,e){var t=this;!function(e,r){n.exports=function(){function n(n,e){for(var t=n.length,r=arguments.length>=2?arguments[1]:void 0,a=[],o=0;o<t;o+=1)if(o in n){var u=n[o];e.call(r,u,o,n)&&a.push(u)}return a}function e(n){return n.reduce(function(n,t){return n.concat(T.arr(t)?e(t):t)},[])}function r(n){return[n]}function a(n){var e={};for(var t in n)e[t]=n[t];return e}function o(n,e){var t=a(n);for(var r in n)t[r]=e.hasOwnProperty(r)?e[r]:n[r];return t}function u(n,e){var t=a(n);for(var r in e)t[r]=T.und(n[r])?e[r]:n[r];return t}function i(n,e,t){return Math.min(Math.max(n,e),t)}function c(n,e){return T.fnc(n)?n(e.target,e.id,e.total):n}function f(n,e){if(null!=n[e])return\"object\"}function s(n,e){return n[e]||0}function l(n){var e=/-?\\d*\\.?\\d+/g,t=\"\"+n;return{original:t,numbers:t.match(e)?t.match(e).map(Number):[0],strings:[]}}function p(n){var e=r(n);return e.map(function(n,t){return{target:n,id:t,total:e.length}})}function d(n,e){var t=a(e);return r(n).map(function(n,t){var r=t?0:e.delay,a={value:n};return T.und(a.delay)&&(a.delay=r),a}).map(function(n){return u(n,t)})}function m(n,e,t){var r=[],a=u(n,e);return Object.keys(t).forEach(function(n){a.hasOwnProperty(n)||\"targets\"===n||r.push({name:n,offset:a.offset,tweens:d(t[n],e)})}),r}function v(n,e){var t={};return Object.keys(n).forEach(function(r){var a=c(n[r],e);T.arr(a)&&(a=a.map(function(n){return c(n,e)}),1===a.length&&(a=a[0])),t[r]=a}),t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}function y(n,e){var t=void 0;return n.tweens.map(function(r){var a=v(r,e),o=a.value,u=e.target[n.name],c=t?t.to.original:u,f=T.arr(o)?o[0]:c,s=o;return a.from=l(f),a.to=l(s),a.start=t?t.end:n.offset,a.end=a.start+a.delay+a.duration,a.easing=j[a.easing],a.elasticity=(1e3-i(a.elasticity,1,999))/1e3,a.isColor&&(a.round=1),t=a,a})}function h(n,e){var t=f(n.target,e.name);if(t){var r=y(e,n);return{type:t,property:e.name,animatable:n,tweens:r,duration:r[r.length-1].end,delay:r[0].delay}}}function g(t,r){return n(e(t.map(function(n){return r.map(function(e){return h(n,e)})})),function(n){return!T.und(n)})}function b(n,e,t,r){var a=\"delay\"===n;return e.length?(a?Math.min:Math.max).apply(Math,e.map(function(e){return e[n]})):a?r.delay:t.offset+r.delay+r.duration}function O(n){var e=o(x,n),t=o(P,n),r=p(n.targets),a=m(e,t,n),i=g(r,a);return u(e,{children:[],animatables:r,animations:i,duration:b(\"duration\",i,e,t),delay:b(\"delay\",i,e,t)})}function w(){function e(){return window.Promise&&new Promise(function(n){return m=n})}function t(){y.reversed=!y.reversed}function r(n){return y.reversed?y.duration-n:n}function a(n){var e=y.children,t=e.length;if(n>=y.currentTime)for(var r=0;r<t;r+=1)e[r].seek(n);else for(var a=t;a--;)e[a].seek(n)}function o(e){for(var t=0,r={},a=y.animations,o=a.length;t<o;){var u=a[t],c=u.animatable,f=u.tweens,s=f.length-1,l=f[s];s&&(l=n(f,function(n){return e<n.end})[0]||l);for(var p=i(e-l.start-l.delay,0,l.duration)/l.duration,d=isNaN(p)?1:l.easing(p,l.elasticity),m=[],v=void 0,h=l.to.numbers.length,g=0;g<h;g+=1){var b=void 0,O=l.to.numbers[g],w=l.from.numbers[g];b=w+d*(O-w),m.push(b)}v=m[0],E[u.type](c.target,u.property,v,r,c.id),u.currentValue=v,t+=1}y.currentTime=e,y.progress=e/y.duration*100}function u(n){y[n]&&y[n](y)}function c(){y.remaining&&!0!==y.remaining&&(y.remaining-=1)}function f(n){var i=y.duration,f=y.offset,s=f+y.delay,h=y.currentTime,g=y.reversed,b=r(n);y.children.length&&a(b),(b>=s||!i)&&(y.began||(y.began=!0,u(\"begin\")),u(\"run\")),b>f&&b<i?o(b):(b<=f&&0!==h&&(o(0),g&&c()),(b>=i&&h!==i||!i)&&(o(i),g||c())),u(\"update\"),n>=i&&(y.remaining?(p=l,\"alternate\"===y.direction&&t()):(y.pause(),y.completed||(y.completed=!0,u(\"complete\"),\"Promise\"in window&&(m(),v=e()))),d=0)}var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},l=void 0,p=void 0,d=0,m=null,v=e(),y=O(s);return y.reset=function(){var n=y.direction,e=y.loop;y.currentTime=0,y.progress=0,y.paused=!0,y.began=!1,y.completed=!1,y.reversed=\"reverse\"===n,y.remaining=\"alternate\"===n&&1===e?2:e,o(0);for(var t=y.children.length;t--;)y.children[t].reset()},y.tick=function(n){l=n,p||(p=l),f((d+l-p)*w.speed)},y.seek=function(n){f(r(n))},y.pause=function(){var n=V.indexOf(y);n>-1&&V.splice(n,1),y.paused=!0},y.play=function(){y.paused&&(y.paused=!1,p=0,d=r(y.currentTime),V.push(y),k||M())},y.reverse=function(){t(),p=0,d=r(y.currentTime)},y.restart=function(){y.pause(),y.reset(),y.play()},y.finished=v,y.reset(),y.autoplay&&y.play(),y}var x={update:void 0,begin:void 0,run:void 0,complete:void 0,loop:1,direction:\"normal\",autoplay:!0,offset:0},P={duration:1e3,delay:0,easing:\"easeOutElastic\",elasticity:500,round:0},T={arr:function(n){return Array.isArray(n)},fnc:function(n){return\"function\"===typeof n},und:function(n){return\"undefined\"===typeof n}},_=function(){function n(n,e){return 1-3*e+3*n}function e(n,e){return 3*e-6*n}function t(n){return 3*n}function r(r,a,o){return((n(a,o)*r+e(a,o))*r+t(a))*r}function a(n,e,t,a){if(n>=0&&n<=1&&t>=0&&t<=1){var i=new Float32Array(o);if(n!==e||t!==a)for(var c=0;c<o;c+=1)i[c]=r(c*u,n,t);return function(r){return n===e&&t===a?r:0===r?0:1===r?1:void 0}}}var o=11,u=1/(o-1);return a}(),j=function(){function n(n,e){return 0===n||1===n?n:-Math.pow(2,10*(n-1))*Math.sin((n-1-e/(2*Math.PI)*Math.asin(1))*(2*Math.PI)/e)}var e=[\"Quad\",\"Cubic\",\"Quart\",\"Quint\",\"Sine\",\"Expo\",\"Circ\",\"Back\",\"Elastic\"],r={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],n],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(e,t){return 1-n(1-e,t)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(e,t){return e<.5?n(2*e,t)/2:1-n(-2*e+2,t)/2}]},a={linear:_(.25,.25,.75,.75)};return Object.keys(r).forEach(function(n){r[n].forEach(function(r,o){a[\"ease\"+n+e[o]]=T.fnc(r)?r:_.apply(t,r)})}),a}(),E={css:function(n,e,t){return n.style[e]=t},attribute:function(n,e,t){return n.setAttribute(e,t)},object:function(n,e,t){return n[e]=t},transform:function(n,e,t,r,a){r[a]||(r[a]=[]),r[a].push(e+\"(\"+t+\")\")}},V=[],k=0,M=function(){function n(){k=requestAnimationFrame(e)}function e(e){var t=V.length;if(t){for(var r=0;r<t;)V[r]&&V[r].tick(e),r+=1;n()}else cancelAnimationFrame(k),k=0}return n}();return w.speed=1,w.running=V,w.getValue=s,w.bezier=_,w.easings=j,w}()}()}])});\n//# sourceMappingURL=index.js.map","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,l=e.down,u=e.top,a=e.bottom,i=e.big,n=e.mirror,s=e.opposite,d=(r?1:0)|(t?2:0)|(u||l?4:0)|(a||p?8:0)|(n?16:0)|(s?32:0)|(o?64:0)|(i?128:0);if(lookup.hasOwnProperty(d))return lookup[d];var _=r||t||p||l||u||a,f=void 0,b=void 0;if(_){if(!n!=!(o&&s)){var y=[t,r,a,u,l,p];r=y[0],t=y[1],u=y[2],a=y[3],p=y[4],l=y[5]}var m=i?\"2000px\":\"100%\";f=r?\"-\"+m:t?m:\"0\",b=l||u?\"-\"+m:p||a?m:\"0\"}return lookup[d]=(0,_globals.animation)((o?\"to\":\"from\")+\" {\"+(_?\" transform: translate3d(\"+f+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {transform: none;} \"),lookup[d]}function Slide(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,l=void 0===p?_globals.defaults.duration:p,u=o.delay,a=void 0===u?_globals.defaults.delay:u,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?l:t,delay:a,forever:r,count:n,style:{animationFillMode:\"both\"},reverse:s.left};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Slide.propTypes=propTypes,exports.default=Slide,module.exports=exports.default;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){\"use strict\";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf(\"day\")-n(this).startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"day\")}}}));","'use strict';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n/**\r\n * Created by Sergiu Șandor (micku7zu) on 1/27/2017.\r\n * Original idea: https://github.com/gijsroge/tilt.js\r\n * MIT License.\r\n * Version 1.8.1\r\n */\n\nvar VanillaTilt = function () {\n function VanillaTilt(element) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, VanillaTilt);\n\n if (!(element instanceof Node)) {\n throw \"Can't initialize VanillaTilt because \" + element + \" is not a Node.\";\n }\n\n this.width = null;\n this.height = null;\n this.clientWidth = null;\n this.clientHeight = null;\n this.left = null;\n this.top = null;\n\n // for Gyroscope sampling\n this.gammazero = null;\n this.betazero = null;\n this.lastgammazero = null;\n this.lastbetazero = null;\n\n this.transitionTimeout = null;\n this.updateCall = null;\n this.event = null;\n\n this.updateBind = this.update.bind(this);\n this.resetBind = this.reset.bind(this);\n\n this.element = element;\n this.settings = this.extendSettings(settings);\n\n this.reverse = this.settings.reverse ? -1 : 1;\n this.resetToStart = VanillaTilt.isSettingTrue(this.settings[\"reset-to-start\"]);\n this.glare = VanillaTilt.isSettingTrue(this.settings.glare);\n this.glarePrerender = VanillaTilt.isSettingTrue(this.settings[\"glare-prerender\"]);\n this.fullPageListening = VanillaTilt.isSettingTrue(this.settings[\"full-page-listening\"]);\n this.gyroscope = VanillaTilt.isSettingTrue(this.settings.gyroscope);\n this.gyroscopeSamples = this.settings.gyroscopeSamples;\n\n this.elementListener = this.getElementListener();\n\n if (this.glare) {\n this.prepareGlare();\n }\n\n if (this.fullPageListening) {\n this.updateClientSize();\n }\n\n this.addEventListeners();\n this.reset();\n\n if (this.resetToStart === false) {\n this.settings.startX = 0;\n this.settings.startY = 0;\n }\n }\n\n VanillaTilt.isSettingTrue = function isSettingTrue(setting) {\n return setting === \"\" || setting === true || setting === 1;\n };\n\n /**\r\n * Method returns element what will be listen mouse events\r\n * @return {Node}\r\n */\n\n\n VanillaTilt.prototype.getElementListener = function getElementListener() {\n if (this.fullPageListening) {\n return window.document;\n }\n\n if (typeof this.settings[\"mouse-event-element\"] === \"string\") {\n var mouseEventElement = document.querySelector(this.settings[\"mouse-event-element\"]);\n\n if (mouseEventElement) {\n return mouseEventElement;\n }\n }\n\n if (this.settings[\"mouse-event-element\"] instanceof Node) {\n return this.settings[\"mouse-event-element\"];\n }\n\n return this.element;\n };\n\n /**\r\n * Method set listen methods for this.elementListener\r\n * @return {Node}\r\n */\n\n\n VanillaTilt.prototype.addEventListeners = function addEventListeners() {\n this.onMouseEnterBind = this.onMouseEnter.bind(this);\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseLeaveBind = this.onMouseLeave.bind(this);\n this.onWindowResizeBind = this.onWindowResize.bind(this);\n this.onDeviceOrientationBind = this.onDeviceOrientation.bind(this);\n\n this.elementListener.addEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.addEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.addEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.glare || this.fullPageListening) {\n window.addEventListener(\"resize\", this.onWindowResizeBind);\n }\n\n if (this.gyroscope) {\n window.addEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n };\n\n /**\r\n * Method remove event listeners from current this.elementListener\r\n */\n\n\n VanillaTilt.prototype.removeEventListeners = function removeEventListeners() {\n this.elementListener.removeEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.removeEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.removeEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.gyroscope) {\n window.removeEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n\n if (this.glare || this.fullPageListening) {\n window.removeEventListener(\"resize\", this.onWindowResizeBind);\n }\n };\n\n VanillaTilt.prototype.destroy = function destroy() {\n clearTimeout(this.transitionTimeout);\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.element.style.willChange = \"\";\n this.element.style.transition = \"\";\n this.element.style.transform = \"\";\n this.resetGlare();\n\n this.removeEventListeners();\n this.element.vanillaTilt = null;\n delete this.element.vanillaTilt;\n\n this.element = null;\n };\n\n VanillaTilt.prototype.onDeviceOrientation = function onDeviceOrientation(event) {\n if (event.gamma === null || event.beta === null) {\n return;\n }\n\n this.updateElementPosition();\n\n if (this.gyroscopeSamples > 0) {\n this.lastgammazero = this.gammazero;\n this.lastbetazero = this.betazero;\n\n if (this.gammazero === null) {\n this.gammazero = event.gamma;\n this.betazero = event.beta;\n } else {\n this.gammazero = (event.gamma + this.lastgammazero) / 2;\n this.betazero = (event.beta + this.lastbetazero) / 2;\n }\n\n this.gyroscopeSamples -= 1;\n }\n\n var totalAngleX = this.settings.gyroscopeMaxAngleX - this.settings.gyroscopeMinAngleX;\n var totalAngleY = this.settings.gyroscopeMaxAngleY - this.settings.gyroscopeMinAngleY;\n\n var degreesPerPixelX = totalAngleX / this.width;\n var degreesPerPixelY = totalAngleY / this.height;\n\n var angleX = event.gamma - (this.settings.gyroscopeMinAngleX + this.gammazero);\n var angleY = event.beta - (this.settings.gyroscopeMinAngleY + this.betazero);\n\n var posX = angleX / degreesPerPixelX;\n var posY = angleY / degreesPerPixelY;\n\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = {\n clientX: posX + this.left,\n clientY: posY + this.top\n };\n\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseEnter = function onMouseEnter() {\n this.updateElementPosition();\n this.element.style.willChange = \"transform\";\n this.setTransition();\n };\n\n VanillaTilt.prototype.onMouseMove = function onMouseMove(event) {\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = event;\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseLeave = function onMouseLeave() {\n this.setTransition();\n\n if (this.settings.reset) {\n requestAnimationFrame(this.resetBind);\n }\n };\n\n VanillaTilt.prototype.reset = function reset() {\n this.onMouseEnter();\n\n if (this.fullPageListening) {\n this.event = {\n clientX: (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.clientWidth,\n clientY: (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.clientHeight\n };\n } else {\n this.event = {\n clientX: this.left + (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.width,\n clientY: this.top + (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.height\n };\n }\n\n var backupScale = this.settings.scale;\n this.settings.scale = 1;\n this.update();\n this.settings.scale = backupScale;\n this.resetGlare();\n };\n\n VanillaTilt.prototype.resetGlare = function resetGlare() {\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(180deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"0\";\n }\n };\n\n VanillaTilt.prototype.getValues = function getValues() {\n var x = void 0,\n y = void 0;\n\n if (this.fullPageListening) {\n x = this.event.clientX / this.clientWidth;\n y = this.event.clientY / this.clientHeight;\n } else {\n x = (this.event.clientX - this.left) / this.width;\n y = (this.event.clientY - this.top) / this.height;\n }\n\n x = Math.min(Math.max(x, 0), 1);\n y = Math.min(Math.max(y, 0), 1);\n\n var tiltX = (this.reverse * (this.settings.max - x * this.settings.max * 2)).toFixed(2);\n var tiltY = (this.reverse * (y * this.settings.max * 2 - this.settings.max)).toFixed(2);\n var angle = Math.atan2(this.event.clientX - (this.left + this.width / 2), -(this.event.clientY - (this.top + this.height / 2))) * (180 / Math.PI);\n\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: x * 100,\n percentageY: y * 100,\n angle: angle\n };\n };\n\n VanillaTilt.prototype.updateElementPosition = function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\n\n this.width = this.element.offsetWidth;\n this.height = this.element.offsetHeight;\n this.left = rect.left;\n this.top = rect.top;\n };\n\n VanillaTilt.prototype.update = function update() {\n var values = this.getValues();\n\n this.element.style.transform = \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(\" + (this.settings.axis === \"x\" ? 0 : values.tiltY) + \"deg) \" + \"rotateY(\" + (this.settings.axis === \"y\" ? 0 : values.tiltX) + \"deg) \" + \"scale3d(\" + this.settings.scale + \", \" + this.settings.scale + \", \" + this.settings.scale + \")\";\n\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(\" + values.angle + \"deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"\" + values.percentageY * this.settings[\"max-glare\"] / 100;\n }\n\n this.element.dispatchEvent(new CustomEvent(\"tiltChange\", {\n \"detail\": values\n }));\n\n this.updateCall = null;\n };\n\n /**\r\n * Appends the glare element (if glarePrerender equals false)\r\n * and sets the default style\r\n */\n\n\n VanillaTilt.prototype.prepareGlare = function prepareGlare() {\n // If option pre-render is enabled we assume all html/css is present for an optimal glare effect.\n if (!this.glarePrerender) {\n // Create glare element\n var jsTiltGlare = document.createElement(\"div\");\n jsTiltGlare.classList.add(\"js-tilt-glare\");\n\n var jsTiltGlareInner = document.createElement(\"div\");\n jsTiltGlareInner.classList.add(\"js-tilt-glare-inner\");\n\n jsTiltGlare.appendChild(jsTiltGlareInner);\n this.element.appendChild(jsTiltGlare);\n }\n\n this.glareElementWrapper = this.element.querySelector(\".js-tilt-glare\");\n this.glareElement = this.element.querySelector(\".js-tilt-glare-inner\");\n\n if (this.glarePrerender) {\n return;\n }\n\n Object.assign(this.glareElementWrapper.style, {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"overflow\": \"hidden\",\n \"pointer-events\": \"none\",\n \"border-radius\": \"inherit\"\n });\n\n Object.assign(this.glareElement.style, {\n \"position\": \"absolute\",\n \"top\": \"50%\",\n \"left\": \"50%\",\n \"pointer-events\": \"none\",\n \"background-image\": \"linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)\",\n \"transform\": \"rotate(180deg) translate(-50%, -50%)\",\n \"transform-origin\": \"0% 0%\",\n \"opacity\": \"0\"\n });\n\n this.updateGlareSize();\n };\n\n VanillaTilt.prototype.updateGlareSize = function updateGlareSize() {\n if (this.glare) {\n var glareSize = (this.element.offsetWidth > this.element.offsetHeight ? this.element.offsetWidth : this.element.offsetHeight) * 2;\n\n Object.assign(this.glareElement.style, {\n \"width\": glareSize + \"px\",\n \"height\": glareSize + \"px\"\n });\n }\n };\n\n VanillaTilt.prototype.updateClientSize = function updateClientSize() {\n this.clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n\n this.clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n };\n\n VanillaTilt.prototype.onWindowResize = function onWindowResize() {\n this.updateGlareSize();\n this.updateClientSize();\n };\n\n VanillaTilt.prototype.setTransition = function setTransition() {\n var _this = this;\n\n clearTimeout(this.transitionTimeout);\n this.element.style.transition = this.settings.speed + \"ms \" + this.settings.easing;\n if (this.glare) this.glareElement.style.transition = \"opacity \" + this.settings.speed + \"ms \" + this.settings.easing;\n\n this.transitionTimeout = setTimeout(function () {\n _this.element.style.transition = \"\";\n if (_this.glare) {\n _this.glareElement.style.transition = \"\";\n }\n }, this.settings.speed);\n };\n\n /**\r\n * Method return patched settings of instance\r\n * @param {boolean} settings.reverse - reverse the tilt direction\r\n * @param {number} settings.max - max tilt rotation (degrees)\r\n * @param {startX} settings.startX - the starting tilt on the X axis, in degrees. Default: 0\r\n * @param {startY} settings.startY - the starting tilt on the Y axis, in degrees. Default: 0\r\n * @param {number} settings.perspective - Transform perspective, the lower the more extreme the tilt gets\r\n * @param {string} settings.easing - Easing on enter/exit\r\n * @param {number} settings.scale - 2 = 200%, 1.5 = 150%, etc..\r\n * @param {number} settings.speed - Speed of the enter/exit transition\r\n * @param {boolean} settings.transition - Set a transition on enter/exit\r\n * @param {string|null} settings.axis - What axis should be enabled. Can be \"x\" or \"y\"\r\n * @param {boolean} settings.glare - if it should have a \"glare\" effect\r\n * @param {number} settings.max-glare - the maximum \"glare\" opacity (1 = 100%, 0.5 = 50%)\r\n * @param {boolean} settings.glare-prerender - false = VanillaTilt creates the glare elements for you, otherwise\r\n * @param {boolean} settings.full-page-listening - If true, parallax effect will listen to mouse move events on the whole document, not only the selected element\r\n * @param {string|object} settings.mouse-event-element - String selector or link to HTML-element what will be listen mouse events\r\n * @param {boolean} settings.reset - false = If the tilt effect has to be reset on exit\r\n * @param {boolean} settings.reset-to-start - true = On reset event (mouse leave) will return to initial start angle (if startX or startY is set)\r\n * @param {gyroscope} settings.gyroscope - Enable tilting by deviceorientation events\r\n * @param {gyroscopeSensitivity} settings.gyroscopeSensitivity - Between 0 and 1 - The angle at which max tilt position is reached. 1 = 90deg, 0.5 = 45deg, etc..\r\n * @param {gyroscopeSamples} settings.gyroscopeSamples - How many gyroscope moves to decide the starting position.\r\n */\n\n\n VanillaTilt.prototype.extendSettings = function extendSettings(settings) {\n var defaultSettings = {\n reverse: false,\n max: 15,\n startX: 0,\n startY: 0,\n perspective: 1000,\n easing: \"cubic-bezier(.03,.98,.52,.99)\",\n scale: 1,\n speed: 300,\n transition: true,\n axis: null,\n glare: false,\n \"max-glare\": 1,\n \"glare-prerender\": false,\n \"full-page-listening\": false,\n \"mouse-event-element\": null,\n reset: true,\n \"reset-to-start\": true,\n gyroscope: true,\n gyroscopeMinAngleX: -45,\n gyroscopeMaxAngleX: 45,\n gyroscopeMinAngleY: -45,\n gyroscopeMaxAngleY: 45,\n gyroscopeSamples: 10\n };\n\n var newSettings = {};\n for (var property in defaultSettings) {\n if (property in settings) {\n newSettings[property] = settings[property];\n } else if (this.element.hasAttribute(\"data-tilt-\" + property)) {\n var attribute = this.element.getAttribute(\"data-tilt-\" + property);\n try {\n newSettings[property] = JSON.parse(attribute);\n } catch (e) {\n newSettings[property] = attribute;\n }\n } else {\n newSettings[property] = defaultSettings[property];\n }\n }\n\n return newSettings;\n };\n\n VanillaTilt.init = function init(elements, settings) {\n if (elements instanceof Node) {\n elements = [elements];\n }\n\n if (elements instanceof NodeList) {\n elements = [].slice.call(elements);\n }\n\n if (!(elements instanceof Array)) {\n return;\n }\n\n elements.forEach(function (element) {\n if (!(\"vanillaTilt\" in element)) {\n element.vanillaTilt = new VanillaTilt(element, settings);\n }\n });\n };\n\n return VanillaTilt;\n}();\n\nif (typeof document !== \"undefined\") {\n /* expose the class to window */\n window.VanillaTilt = VanillaTilt;\n\n /**\r\n * Auto load\r\n */\n VanillaTilt.init(document.querySelectorAll(\"[data-tilt]\"));\n}\n\nmodule.exports = VanillaTilt;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _config = require(\"./config\");\n\nvar _hooks = require(\"./hooks\");\n\nvar _Snowflake = require(\"./Snowflake\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar Snowfall = function Snowfall() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? _Snowflake.defaultConfig.color : _ref$color,\n _ref$changeFrequency = _ref.changeFrequency,\n changeFrequency = _ref$changeFrequency === void 0 ? _Snowflake.defaultConfig.changeFrequency : _ref$changeFrequency,\n _ref$radius = _ref.radius,\n radius = _ref$radius === void 0 ? _Snowflake.defaultConfig.radius : _ref$radius,\n _ref$speed = _ref.speed,\n speed = _ref$speed === void 0 ? _Snowflake.defaultConfig.speed : _ref$speed,\n _ref$wind = _ref.wind,\n wind = _ref$wind === void 0 ? _Snowflake.defaultConfig.wind : _ref$wind,\n _ref$rotationSpeed = _ref.rotationSpeed,\n rotationSpeed = _ref$rotationSpeed === void 0 ? _Snowflake.defaultConfig.rotationSpeed : _ref$rotationSpeed,\n _ref$snowflakeCount = _ref.snowflakeCount,\n snowflakeCount = _ref$snowflakeCount === void 0 ? 150 : _ref$snowflakeCount,\n images = _ref.images,\n style = _ref.style;\n\n var mergedStyle = (0, _hooks.useSnowfallStyle)(style);\n var canvasRef = (0, _react.useRef)(null);\n var canvasSize = (0, _hooks.useComponentSize)(canvasRef);\n var animationFrame = (0, _react.useRef)(0);\n var lastUpdate = (0, _react.useRef)(Date.now());\n var config = (0, _hooks.useDeepMemo)({\n color: color,\n changeFrequency: changeFrequency,\n radius: radius,\n speed: speed,\n wind: wind,\n rotationSpeed: rotationSpeed,\n images: images\n });\n var snowflakes = (0, _hooks.useSnowflakes)(canvasRef, snowflakeCount, config);\n var render = (0, _react.useCallback)(function () {\n var framesPassed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var canvas = canvasRef.current;\n\n if (canvas) {\n // Update the positions of the snowflakes\n snowflakes.forEach(function (snowflake) {\n return snowflake.update(canvas, framesPassed);\n }); // Render them if the canvas is available\n\n var ctx = canvas.getContext('2d');\n\n if (ctx) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.offsetWidth, canvas.offsetHeight);\n snowflakes.forEach(function (snowflake) {\n return snowflake.draw(ctx);\n });\n }\n }\n }, [snowflakes]);\n var loop = (0, _react.useCallback)(function () {\n // Update based on time passed so that a slow frame rate won't slow down the snowflake\n var now = Date.now();\n var msPassed = Date.now() - lastUpdate.current;\n lastUpdate.current = now; // Frames that would have passed if running at 60 fps\n\n var framesPassed = msPassed / _config.targetFrameTime;\n render(framesPassed);\n animationFrame.current = requestAnimationFrame(loop);\n }, [render]);\n (0, _react.useEffect)(function () {\n loop();\n return function () {\n return cancelAnimationFrame(animationFrame.current);\n };\n }, [loop]);\n return /*#__PURE__*/_react[\"default\"].createElement(\"canvas\", {\n ref: canvasRef,\n height: canvasSize.height,\n width: canvasSize.width,\n style: mergedStyle,\n \"data-testid\": \"SnowfallCanvas\"\n });\n};\n\nvar _default = Snowfall;\nexports[\"default\"] = _default;\n//# sourceMappingURL=Snowfall.js.map","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = []\n var re = pathToRegexp(str, keys, options)\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname)\n if (!m) return false\n\n var path = m[0]\n var index = m.index\n var params = {}\n var decode = (options && options.decode) || decodeURIComponent\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1]\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n })\n } else {\n params[key.name] = decode(m[i], key)\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n var validate = options ? options.validate !== false : true\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ko_KR = _interopRequireDefault(require(\"../locale/ko_KR\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _ko_KR[\"default\"];\nexports[\"default\"] = _default;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.AOS=t()}(this,function(){\"use strict\";var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},t=\"Expected a function\",n=NaN,o=\"[object Symbol]\",i=/^\\s+|\\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,u=\"object\"==typeof e&&e&&e.Object===Object&&e,d=\"object\"==typeof self&&self&&self.Object===Object&&self,l=u||d||Function(\"return this\")(),f=Object.prototype.toString,m=Math.max,p=Math.min,b=function(){return l.Date.now()};function v(e,n,o){var i,a,r,c,s,u,d=0,l=!1,f=!1,v=!0;if(\"function\"!=typeof e)throw new TypeError(t);function y(t){var n=i,o=a;return i=a=void 0,d=t,c=e.apply(o,n)}function h(e){var t=e-u;return void 0===u||t>=n||t<0||f&&e-d>=r}function k(){var e=b();if(h(e))return x(e);s=setTimeout(k,function(e){var t=n-(e-u);return f?p(t,r-(e-d)):t}(e))}function x(e){return s=void 0,v&&i?y(e):(i=a=void 0,c)}function O(){var e=b(),t=h(e);if(i=arguments,a=this,u=e,t){if(void 0===s)return function(e){return d=e,s=setTimeout(k,n),l?y(e):c}(u);if(f)return s=setTimeout(k,n),y(u)}return void 0===s&&(s=setTimeout(k,n)),c}return n=w(n)||0,g(o)&&(l=!!o.leading,r=(f=\"maxWait\"in o)?m(w(o.maxWait)||0,n):r,v=\"trailing\"in o?!!o.trailing:v),O.cancel=function(){void 0!==s&&clearTimeout(s),d=0,i=u=a=s=void 0},O.flush=function(){return void 0===s?c:x(b())},O}function g(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function w(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&f.call(e)==o}(e))return n;if(g(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(i,\"\");var u=r.test(e);return u||c.test(e)?s(e.slice(2),u?2:8):a.test(e)?n:+e}var y=function(e,n,o){var i=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(t);return g(o)&&(i=\"leading\"in o?!!o.leading:i,a=\"trailing\"in o?!!o.trailing:a),v(e,n,{leading:i,maxWait:n,trailing:a})},h=\"Expected a function\",k=NaN,x=\"[object Symbol]\",O=/^\\s+|\\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,z=parseInt,C=\"object\"==typeof e&&e&&e.Object===Object&&e,A=\"object\"==typeof self&&self&&self.Object===Object&&self,q=C||A||Function(\"return this\")(),L=Object.prototype.toString,T=Math.max,M=Math.min,S=function(){return q.Date.now()};function D(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function H(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&L.call(e)==x}(e))return k;if(D(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=D(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(O,\"\");var n=E.test(e);return n||N.test(e)?z(e.slice(2),n?2:8):j.test(e)?k:+e}var $=function(e,t,n){var o,i,a,r,c,s,u=0,d=!1,l=!1,f=!0;if(\"function\"!=typeof e)throw new TypeError(h);function m(t){var n=o,a=i;return o=i=void 0,u=t,r=e.apply(a,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||l&&e-u>=a}function b(){var e=S();if(p(e))return v(e);c=setTimeout(b,function(e){var n=t-(e-s);return l?M(n,a-(e-u)):n}(e))}function v(e){return c=void 0,f&&o?m(e):(o=i=void 0,r)}function g(){var e=S(),n=p(e);if(o=arguments,i=this,s=e,n){if(void 0===c)return function(e){return u=e,c=setTimeout(b,t),d?m(e):r}(s);if(l)return c=setTimeout(b,t),m(s)}return void 0===c&&(c=setTimeout(b,t)),r}return t=H(t)||0,D(n)&&(d=!!n.leading,a=(l=\"maxWait\"in n)?T(H(n.maxWait)||0,t):a,f=\"trailing\"in n?!!n.trailing:f),g.cancel=function(){void 0!==c&&clearTimeout(c),u=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?r:v(S())},g},W=function(){};function P(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes);if(function e(t){var n=void 0,o=void 0;for(n=0;n<t.length;n+=1){if((o=t[n]).dataset&&o.dataset.aos)return!0;if(o.children&&e(o.children))return!0}return!1}(t.concat(n)))return W()})}function Y(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}var _={isSupported:function(){return!!Y()},ready:function(e,t){var n=window.document,o=new(Y())(P);W=t,o.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}},B=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},F=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},K=/(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/i,G=/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,J=/(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,Q=/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;function R(){return navigator.userAgent||navigator.vendor||window.opera||\"\"}var U=new(function(){function e(){B(this,e)}return F(e,[{key:\"phone\",value:function(){var e=R();return!(!K.test(e)&&!G.test(e.substr(0,4)))}},{key:\"mobile\",value:function(){var e=R();return!(!J.test(e)&&!Q.test(e.substr(0,4)))}},{key:\"tablet\",value:function(){return this.mobile()&&!this.phone()}},{key:\"ie11\",value:function(){return\"-ms-scroll-limit\"in document.documentElement.style&&\"-ms-ime-align\"in document.documentElement.style}}]),e}()),V=function(e,t){var n=void 0;return U.ie11()?(n=document.createEvent(\"CustomEvent\")).initCustomEvent(e,!0,!0,{detail:t}):n=new CustomEvent(e,{detail:t}),document.dispatchEvent(n)},X=function(e){return e.forEach(function(e,t){return function(e,t){var n=e.options,o=e.position,i=e.node,a=(e.data,function(){e.animated&&(function(e,t){t&&t.forEach(function(t){return e.classList.remove(t)})}(i,n.animatedClassNames),V(\"aos:out\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!1)});n.mirror&&t>=o.out&&!n.once?a():t>=o.in?e.animated||(function(e,t){t&&t.forEach(function(t){return e.classList.add(t)})}(i,n.animatedClassNames),V(\"aos:in\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!0):e.animated&&!n.once&&a()}(e,window.pageYOffset)})},Z=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}},ee=function(e,t,n){var o=e.getAttribute(\"data-aos-\"+t);if(void 0!==o){if(\"true\"===o)return!0;if(\"false\"===o)return!1}return o||n},te=function(e,t){return e.forEach(function(e,n){var o=ee(e.node,\"mirror\",t.mirror),i=ee(e.node,\"once\",t.once),a=ee(e.node,\"id\"),r=t.useClassNames&&e.node.getAttribute(\"data-aos\"),c=[t.animatedClassName].concat(r?r.split(\" \"):[]).filter(function(e){return\"string\"==typeof e});t.initClassName&&e.node.classList.add(t.initClassName),e.position={in:function(e,t,n){var o=window.innerHeight,i=ee(e,\"anchor\"),a=ee(e,\"anchor-placement\"),r=Number(ee(e,\"offset\",a?0:t)),c=a||n,s=e;i&&document.querySelectorAll(i)&&(s=document.querySelectorAll(i)[0]);var u=Z(s).top-o;switch(c){case\"top-bottom\":break;case\"center-bottom\":u+=s.offsetHeight/2;break;case\"bottom-bottom\":u+=s.offsetHeight;break;case\"top-center\":u+=o/2;break;case\"center-center\":u+=o/2+s.offsetHeight/2;break;case\"bottom-center\":u+=o/2+s.offsetHeight;break;case\"top-top\":u+=o;break;case\"bottom-top\":u+=o+s.offsetHeight;break;case\"center-top\":u+=o+s.offsetHeight/2}return u+r}(e.node,t.offset,t.anchorPlacement),out:o&&function(e,t){window.innerHeight;var n=ee(e,\"anchor\"),o=ee(e,\"offset\",t),i=e;return n&&document.querySelectorAll(n)&&(i=document.querySelectorAll(n)[0]),Z(i).top+i.offsetHeight-o}(e.node,t.offset)},e.options={once:i,mirror:o,animatedClassNames:c,id:a}}),e},ne=function(){var e=document.querySelectorAll(\"[data-aos]\");return Array.prototype.map.call(e,function(e){return{node:e}})},oe=[],ie=!1,ae={offset:120,delay:0,easing:\"ease\",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:\"top-bottom\",startEvent:\"DOMContentLoaded\",animatedClassName:\"aos-animate\",initClassName:\"aos-init\",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50},re=function(){return document.all&&!window.atob},ce=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(ie=!0),ie&&(oe=te(oe,ae),X(oe),window.addEventListener(\"scroll\",y(function(){X(oe,ae.once)},ae.throttleDelay)))},se=function(){if(oe=ne(),de(ae.disable)||re())return ue();ce()},ue=function(){oe.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\"),ae.initClassName&&e.node.classList.remove(ae.initClassName),ae.animatedClassName&&e.node.classList.remove(ae.animatedClassName)})},de=function(e){return!0===e||\"mobile\"===e&&U.mobile()||\"phone\"===e&&U.phone()||\"tablet\"===e&&U.tablet()||\"function\"==typeof e&&!0===e()};return{init:function(e){return ae=I(ae,e),oe=ne(),ae.disableMutationObserver||_.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),ae.disableMutationObserver=!0),ae.disableMutationObserver||_.ready(\"[data-aos]\",se),de(ae.disable)||re()?ue():(document.querySelector(\"body\").setAttribute(\"data-aos-easing\",ae.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",ae.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",ae.delay),-1===[\"DOMContentLoaded\",\"load\"].indexOf(ae.startEvent)?document.addEventListener(ae.startEvent,function(){ce(!0)}):window.addEventListener(\"load\",function(){ce(!0)}),\"DOMContentLoaded\"===ae.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1&&ce(!0),window.addEventListener(\"resize\",$(ce,ae.debounceDelay,!0)),window.addEventListener(\"orientationchange\",$(ce,ae.debounceDelay,!0)),oe)},refresh:ce,refreshHard:se}});\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../select/style\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _debounce = _interopRequireDefault(require(\"lodash/debounce\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _type = require(\"../_util/type\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar SpinSizes = (0, _type.tuple)('small', 'default', 'large'); // Render indicator\n\nvar defaultIndicator = null;\n\nfunction renderIndicator(prefixCls, props) {\n var indicator = props.indicator;\n var dotClassName = \"\".concat(prefixCls, \"-dot\"); // should not be render default indicator when indicator value is null\n\n if (indicator === null) {\n return null;\n }\n\n if ( /*#__PURE__*/React.isValidElement(indicator)) {\n return /*#__PURE__*/React.cloneElement(indicator, {\n className: (0, _classnames[\"default\"])(indicator.props.className, dotClassName)\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(defaultIndicator)) {\n return /*#__PURE__*/React.cloneElement(defaultIndicator, {\n className: (0, _classnames[\"default\"])(defaultIndicator.props.className, dotClassName)\n });\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: (0, _classnames[\"default\"])(dotClassName, \"\".concat(prefixCls, \"-dot-spin\"))\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }));\n}\n\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\n\nvar Spin = /*#__PURE__*/function (_React$Component) {\n _inherits(Spin, _React$Component);\n\n var _super = _createSuper(Spin);\n\n function Spin(props) {\n var _this;\n\n _classCallCheck(this, Spin);\n\n _this = _super.call(this, props);\n\n _this.debouncifyUpdateSpinning = function (props) {\n var _ref = props || _this.props,\n delay = _ref.delay;\n\n if (delay) {\n _this.cancelExistingSpin();\n\n _this.updateSpinning = (0, _debounce[\"default\"])(_this.originalUpdateSpinning, delay);\n }\n };\n\n _this.updateSpinning = function () {\n var spinning = _this.props.spinning;\n var currentSpinning = _this.state.spinning;\n\n if (currentSpinning !== spinning) {\n _this.setState({\n spinning: spinning\n });\n }\n };\n\n _this.renderSpin = function (_ref2) {\n var _classNames;\n\n var getPrefixCls = _ref2.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n size = _a.size,\n tip = _a.tip,\n wrapperClassName = _a.wrapperClassName,\n style = _a.style,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\"]);\n\n var spinning = _this.state.spinning;\n var prefixCls = getPrefixCls('spin', customizePrefixCls);\n var spinClassName = (0, _classnames[\"default\"])(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spinning\"), spinning), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-text\"), !!tip), _classNames), className); // fix https://fb.me/react-unknown-prop\n\n var divProps = (0, _omit[\"default\"])(restProps, ['spinning', 'delay', 'indicator']);\n var spinElement = /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n style: style,\n className: spinClassName\n }), renderIndicator(prefixCls, _this.props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, tip) : null);\n\n if (_this.isNestedPattern()) {\n var containerClassName = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-container\"), _defineProperty({}, \"\".concat(prefixCls, \"-blur\"), spinning));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-nested-loading\"), wrapperClassName)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, _this.props.children));\n }\n\n return spinElement;\n };\n\n var spinning = props.spinning,\n delay = props.delay;\n var shouldBeDelayed = shouldDelay(spinning, delay);\n _this.state = {\n spinning: spinning && !shouldBeDelayed\n };\n _this.originalUpdateSpinning = _this.updateSpinning;\n\n _this.debouncifyUpdateSpinning(props);\n\n return _this;\n }\n\n _createClass(Spin, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateSpinning();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.debouncifyUpdateSpinning();\n this.updateSpinning();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelExistingSpin();\n }\n }, {\n key: \"cancelExistingSpin\",\n value: function cancelExistingSpin() {\n var updateSpinning = this.updateSpinning;\n\n if (updateSpinning && updateSpinning.cancel) {\n updateSpinning.cancel();\n }\n }\n }, {\n key: \"isNestedPattern\",\n value: function isNestedPattern() {\n return !!(this.props && this.props.children);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderSpin);\n }\n }], [{\n key: \"setDefaultIndicator\",\n value: function setDefaultIndicator(indicator) {\n defaultIndicator = indicator;\n }\n }]);\n\n return Spin;\n}(React.Component);\n\nSpin.defaultProps = {\n spinning: true,\n size: 'default',\n wrapperClassName: ''\n};\nSpin.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n spinning: PropTypes.bool,\n size: PropTypes.oneOf(SpinSizes),\n wrapperClassName: PropTypes.string,\n indicator: PropTypes.element\n};\nvar _default = Spin;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Pagination = _interopRequireDefault(require(\"./Pagination\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _Pagination[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../button/style\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = scrollTo;\n\nvar _raf = _interopRequireDefault(require(\"raf\"));\n\nvar _getScroll = _interopRequireDefault(require(\"./getScroll\"));\n\nvar _easings = require(\"./easings\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction scrollTo(y) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$getContainer = options.getContainer,\n getContainer = _options$getContainer === void 0 ? function () {\n return window;\n } : _options$getContainer,\n callback = options.callback,\n _options$duration = options.duration,\n duration = _options$duration === void 0 ? 450 : _options$duration;\n var container = getContainer();\n var scrollTop = (0, _getScroll[\"default\"])(container, true);\n var startTime = Date.now();\n\n var frameFunc = function frameFunc() {\n var timestamp = Date.now();\n var time = timestamp - startTime;\n var nextScrollTop = (0, _easings.easeInOutCubic)(time > duration ? duration : time, scrollTop, y, duration);\n\n if (container === window) {\n window.scrollTo(window.pageXOffset, nextScrollTop);\n } else {\n container.scrollTop = nextScrollTop;\n }\n\n if (time < duration) {\n (0, _raf[\"default\"])(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n\n (0, _raf[\"default\"])(frameFunc);\n}","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n/* stylelint-disable at-rule-no-unknown */\\nhtml,\\nbody {\\n width: 100%;\\n height: 100%;\\n}\\ninput::-ms-clear,\\ninput::-ms-reveal {\\n display: none;\\n}\\n*,\\n*::before,\\n*::after {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\nhtml {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -ms-text-size-adjust: 100%;\\n -ms-overflow-style: scrollbar;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n@-ms-viewport {\\n width: device-width;\\n}\\narticle,\\naside,\\ndialog,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nnav,\\nsection {\\n display: block;\\n}\\nbody {\\n margin: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n background-color: #fff;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n}\\n[tabindex='-1']:focus {\\n outline: none !important;\\n}\\nhr {\\n -webkit-box-sizing: content-box;\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n}\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin-top: 0;\\n margin-bottom: 0.5em;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: 500;\\n}\\np {\\n margin-top: 0;\\n margin-bottom: 1em;\\n}\\nabbr[title],\\nabbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n border-bottom: 0;\\n cursor: help;\\n}\\naddress {\\n margin-bottom: 1em;\\n font-style: normal;\\n line-height: inherit;\\n}\\ninput[type='text'],\\ninput[type='password'],\\ninput[type='number'],\\ntextarea {\\n -webkit-appearance: none;\\n}\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1em;\\n}\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\ndt {\\n font-weight: 500;\\n}\\ndd {\\n margin-bottom: 0.5em;\\n margin-left: 0;\\n}\\nblockquote {\\n margin: 0 0 1em;\\n}\\ndfn {\\n font-style: italic;\\n}\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\nsmall {\\n font-size: 80%;\\n}\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n}\\nsub {\\n bottom: -0.25em;\\n}\\nsup {\\n top: -0.5em;\\n}\\na {\\n color: #1890ff;\\n text-decoration: none;\\n background-color: transparent;\\n outline: none;\\n cursor: pointer;\\n -webkit-transition: color 0.3s;\\n transition: color 0.3s;\\n -webkit-text-decoration-skip: objects;\\n}\\na:hover {\\n color: #40a9ff;\\n}\\na:active {\\n color: #096dd9;\\n}\\na:active,\\na:hover {\\n text-decoration: none;\\n outline: 0;\\n}\\na[disabled] {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-size: 1em;\\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\\n}\\npre {\\n margin-top: 0;\\n margin-bottom: 1em;\\n overflow: auto;\\n}\\nfigure {\\n margin: 0 0 1em;\\n}\\nimg {\\n vertical-align: middle;\\n border-style: none;\\n}\\nsvg:not(:root) {\\n overflow: hidden;\\n}\\na,\\narea,\\nbutton,\\n[role='button'],\\ninput:not([type='range']),\\nlabel,\\nselect,\\nsummary,\\ntextarea {\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n}\\ntable {\\n border-collapse: collapse;\\n}\\ncaption {\\n padding-top: 0.75em;\\n padding-bottom: 0.3em;\\n color: rgba(0, 0, 0, 0.45);\\n text-align: left;\\n caption-side: bottom;\\n}\\nth {\\n text-align: inherit;\\n}\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0;\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n line-height: inherit;\\n}\\nbutton,\\ninput {\\n overflow: visible;\\n}\\nbutton,\\nselect {\\n text-transform: none;\\n}\\nbutton,\\nhtml [type=\\\"button\\\"],\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button;\\n}\\nbutton::-moz-focus-inner,\\n[type='button']::-moz-focus-inner,\\n[type='reset']::-moz-focus-inner,\\n[type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n}\\ninput[type='radio'],\\ninput[type='checkbox'] {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n padding: 0;\\n}\\ninput[type='date'],\\ninput[type='time'],\\ninput[type='datetime-local'],\\ninput[type='month'] {\\n -webkit-appearance: listbox;\\n}\\ntextarea {\\n overflow: auto;\\n resize: vertical;\\n}\\nfieldset {\\n min-width: 0;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n}\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n margin-bottom: 0.5em;\\n padding: 0;\\n color: inherit;\\n font-size: 1.5em;\\n line-height: inherit;\\n white-space: normal;\\n}\\nprogress {\\n vertical-align: baseline;\\n}\\n[type='number']::-webkit-inner-spin-button,\\n[type='number']::-webkit-outer-spin-button {\\n height: auto;\\n}\\n[type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n}\\n[type='search']::-webkit-search-cancel-button,\\n[type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n}\\noutput {\\n display: inline-block;\\n}\\nsummary {\\n display: list-item;\\n}\\ntemplate {\\n display: none;\\n}\\n[hidden] {\\n display: none !important;\\n}\\nmark {\\n padding: 0.2em;\\n background-color: #feffe6;\\n}\\n::-moz-selection {\\n color: #fff;\\n background: #1890ff;\\n}\\n::selection {\\n color: #fff;\\n background: #1890ff;\\n}\\n.clearfix {\\n zoom: 1;\\n}\\n.clearfix::before,\\n.clearfix::after {\\n display: table;\\n content: '';\\n}\\n.clearfix::after {\\n clear: both;\\n}\\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.anticon > * {\\n line-height: 1;\\n}\\n.anticon svg {\\n display: inline-block;\\n}\\n.anticon::before {\\n display: none;\\n}\\n.anticon .anticon-icon {\\n display: block;\\n}\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n.anticon-spin::before {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n.fade-enter,\\n.fade-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.fade-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.fade-enter.fade-enter-active,\\n.fade-appear.fade-appear-active {\\n -webkit-animation-name: antFadeIn;\\n animation-name: antFadeIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.fade-leave.fade-leave-active {\\n -webkit-animation-name: antFadeOut;\\n animation-name: antFadeOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.fade-enter,\\n.fade-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n}\\n.fade-leave {\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n}\\n@-webkit-keyframes antFadeIn {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes antFadeIn {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antFadeOut {\\n 0% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n }\\n}\\n@keyframes antFadeOut {\\n 0% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n }\\n}\\n.move-up-enter,\\n.move-up-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-up-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-up-enter.move-up-enter-active,\\n.move-up-appear.move-up-appear-active {\\n -webkit-animation-name: antMoveUpIn;\\n animation-name: antMoveUpIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.move-up-leave.move-up-leave-active {\\n -webkit-animation-name: antMoveUpOut;\\n animation-name: antMoveUpOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.move-up-enter,\\n.move-up-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.move-up-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n}\\n.move-down-enter,\\n.move-down-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-down-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-down-enter.move-down-enter-active,\\n.move-down-appear.move-down-appear-active {\\n -webkit-animation-name: antMoveDownIn;\\n animation-name: antMoveDownIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.move-down-leave.move-down-leave-active {\\n -webkit-animation-name: antMoveDownOut;\\n animation-name: antMoveDownOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.move-down-enter,\\n.move-down-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.move-down-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n}\\n.move-left-enter,\\n.move-left-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-left-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-left-enter.move-left-enter-active,\\n.move-left-appear.move-left-appear-active {\\n -webkit-animation-name: antMoveLeftIn;\\n animation-name: antMoveLeftIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.move-left-leave.move-left-leave-active {\\n -webkit-animation-name: antMoveLeftOut;\\n animation-name: antMoveLeftOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.move-left-enter,\\n.move-left-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.move-left-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n}\\n.move-right-enter,\\n.move-right-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-right-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.move-right-enter.move-right-enter-active,\\n.move-right-appear.move-right-appear-active {\\n -webkit-animation-name: antMoveRightIn;\\n animation-name: antMoveRightIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.move-right-leave.move-right-leave-active {\\n -webkit-animation-name: antMoveRightOut;\\n animation-name: antMoveRightOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.move-right-enter,\\n.move-right-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.move-right-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\\n}\\n@-webkit-keyframes antMoveDownIn {\\n 0% {\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@keyframes antMoveDownIn {\\n 0% {\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antMoveDownOut {\\n 0% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@keyframes antMoveDownOut {\\n 0% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateY(100%);\\n transform: translateY(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antMoveLeftIn {\\n 0% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@keyframes antMoveLeftIn {\\n 0% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antMoveLeftOut {\\n 0% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@keyframes antMoveLeftOut {\\n 0% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antMoveRightIn {\\n 0% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@keyframes antMoveRightIn {\\n 0% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antMoveRightOut {\\n 0% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@keyframes antMoveRightOut {\\n 0% {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antMoveUpIn {\\n 0% {\\n -webkit-transform: translateY(-100%);\\n transform: translateY(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@keyframes antMoveUpIn {\\n 0% {\\n -webkit-transform: translateY(-100%);\\n transform: translateY(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antMoveUpOut {\\n 0% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateY(-100%);\\n transform: translateY(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@keyframes antMoveUpOut {\\n 0% {\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: translateY(-100%);\\n transform: translateY(-100%);\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n[ant-click-animating='true'],\\n[ant-click-animating-without-extra-node='true'] {\\n position: relative;\\n}\\nhtml {\\n --antd-wave-shadow-color: #1890ff;\\n}\\n[ant-click-animating-without-extra-node='true']::after,\\n.ant-click-animating-node {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: block;\\n border-radius: inherit;\\n -webkit-box-shadow: 0 0 0 0 #1890ff;\\n box-shadow: 0 0 0 0 #1890ff;\\n -webkit-box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\\n opacity: 0.2;\\n -webkit-animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n content: '';\\n pointer-events: none;\\n}\\n@-webkit-keyframes waveEffect {\\n 100% {\\n -webkit-box-shadow: 0 0 0 #1890ff;\\n box-shadow: 0 0 0 #1890ff;\\n -webkit-box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\\n }\\n}\\n@keyframes waveEffect {\\n 100% {\\n -webkit-box-shadow: 0 0 0 #1890ff;\\n box-shadow: 0 0 0 #1890ff;\\n -webkit-box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\\n }\\n}\\n@-webkit-keyframes fadeEffect {\\n 100% {\\n opacity: 0;\\n }\\n}\\n@keyframes fadeEffect {\\n 100% {\\n opacity: 0;\\n }\\n}\\n.slide-up-enter,\\n.slide-up-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-up-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-up-enter.slide-up-enter-active,\\n.slide-up-appear.slide-up-appear-active {\\n -webkit-animation-name: antSlideUpIn;\\n animation-name: antSlideUpIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.slide-up-leave.slide-up-leave-active {\\n -webkit-animation-name: antSlideUpOut;\\n animation-name: antSlideUpOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.slide-up-enter,\\n.slide-up-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.slide-up-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n.slide-down-enter,\\n.slide-down-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-down-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-down-enter.slide-down-enter-active,\\n.slide-down-appear.slide-down-appear-active {\\n -webkit-animation-name: antSlideDownIn;\\n animation-name: antSlideDownIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.slide-down-leave.slide-down-leave-active {\\n -webkit-animation-name: antSlideDownOut;\\n animation-name: antSlideDownOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.slide-down-enter,\\n.slide-down-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.slide-down-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n.slide-left-enter,\\n.slide-left-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-left-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-left-enter.slide-left-enter-active,\\n.slide-left-appear.slide-left-appear-active {\\n -webkit-animation-name: antSlideLeftIn;\\n animation-name: antSlideLeftIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.slide-left-leave.slide-left-leave-active {\\n -webkit-animation-name: antSlideLeftOut;\\n animation-name: antSlideLeftOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.slide-left-enter,\\n.slide-left-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.slide-left-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n.slide-right-enter,\\n.slide-right-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-right-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.slide-right-enter.slide-right-enter-active,\\n.slide-right-appear.slide-right-appear-active {\\n -webkit-animation-name: antSlideRightIn;\\n animation-name: antSlideRightIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.slide-right-leave.slide-right-leave-active {\\n -webkit-animation-name: antSlideRightOut;\\n animation-name: antSlideRightOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.slide-right-enter,\\n.slide-right-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.slide-right-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n@-webkit-keyframes antSlideUpIn {\\n 0% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n}\\n@keyframes antSlideUpIn {\\n 0% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antSlideUpOut {\\n 0% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n}\\n@keyframes antSlideUpOut {\\n 0% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antSlideDownIn {\\n 0% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 1;\\n }\\n}\\n@keyframes antSlideDownIn {\\n 0% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antSlideDownOut {\\n 0% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 0;\\n }\\n}\\n@keyframes antSlideDownOut {\\n 0% {\\n -webkit-transform: scaleY(1);\\n transform: scaleY(1);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleY(0.8);\\n transform: scaleY(0.8);\\n -webkit-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antSlideLeftIn {\\n 0% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n}\\n@keyframes antSlideLeftIn {\\n 0% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antSlideLeftOut {\\n 0% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n}\\n@keyframes antSlideLeftOut {\\n 0% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 0% 0%;\\n transform-origin: 0% 0%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antSlideRightIn {\\n 0% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 1;\\n }\\n}\\n@keyframes antSlideRightIn {\\n 0% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antSlideRightOut {\\n 0% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 0;\\n }\\n}\\n@keyframes antSlideRightOut {\\n 0% {\\n -webkit-transform: scaleX(1);\\n transform: scaleX(1);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 1;\\n }\\n 100% {\\n -webkit-transform: scaleX(0.8);\\n transform: scaleX(0.8);\\n -webkit-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n opacity: 0;\\n }\\n}\\n.swing-enter,\\n.swing-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.swing-enter.swing-enter-active,\\n.swing-appear.swing-appear-active {\\n -webkit-animation-name: antSwingIn;\\n animation-name: antSwingIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n@-webkit-keyframes antSwingIn {\\n 0%,\\n 100% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n }\\n 20% {\\n -webkit-transform: translateX(-10px);\\n transform: translateX(-10px);\\n }\\n 40% {\\n -webkit-transform: translateX(10px);\\n transform: translateX(10px);\\n }\\n 60% {\\n -webkit-transform: translateX(-5px);\\n transform: translateX(-5px);\\n }\\n 80% {\\n -webkit-transform: translateX(5px);\\n transform: translateX(5px);\\n }\\n}\\n@keyframes antSwingIn {\\n 0%,\\n 100% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n }\\n 20% {\\n -webkit-transform: translateX(-10px);\\n transform: translateX(-10px);\\n }\\n 40% {\\n -webkit-transform: translateX(10px);\\n transform: translateX(10px);\\n }\\n 60% {\\n -webkit-transform: translateX(-5px);\\n transform: translateX(-5px);\\n }\\n 80% {\\n -webkit-transform: translateX(5px);\\n transform: translateX(5px);\\n }\\n}\\n.zoom-enter,\\n.zoom-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-enter.zoom-enter-active,\\n.zoom-appear.zoom-appear-active {\\n -webkit-animation-name: antZoomIn;\\n animation-name: antZoomIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-leave.zoom-leave-active {\\n -webkit-animation-name: antZoomOut;\\n animation-name: antZoomOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-enter,\\n.zoom-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-big-enter,\\n.zoom-big-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-big-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-big-enter.zoom-big-enter-active,\\n.zoom-big-appear.zoom-big-appear-active {\\n -webkit-animation-name: antZoomBigIn;\\n animation-name: antZoomBigIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-big-leave.zoom-big-leave-active {\\n -webkit-animation-name: antZoomBigOut;\\n animation-name: antZoomBigOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-big-enter,\\n.zoom-big-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-big-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-big-fast-enter,\\n.zoom-big-fast-appear {\\n -webkit-animation-duration: 0.1s;\\n animation-duration: 0.1s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-big-fast-leave {\\n -webkit-animation-duration: 0.1s;\\n animation-duration: 0.1s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-big-fast-enter.zoom-big-fast-enter-active,\\n.zoom-big-fast-appear.zoom-big-fast-appear-active {\\n -webkit-animation-name: antZoomBigIn;\\n animation-name: antZoomBigIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-big-fast-leave.zoom-big-fast-leave-active {\\n -webkit-animation-name: antZoomBigOut;\\n animation-name: antZoomBigOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-big-fast-enter,\\n.zoom-big-fast-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-big-fast-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-up-enter,\\n.zoom-up-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-up-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-up-enter.zoom-up-enter-active,\\n.zoom-up-appear.zoom-up-appear-active {\\n -webkit-animation-name: antZoomUpIn;\\n animation-name: antZoomUpIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-up-leave.zoom-up-leave-active {\\n -webkit-animation-name: antZoomUpOut;\\n animation-name: antZoomUpOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-up-enter,\\n.zoom-up-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-up-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-down-enter,\\n.zoom-down-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-down-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-down-enter.zoom-down-enter-active,\\n.zoom-down-appear.zoom-down-appear-active {\\n -webkit-animation-name: antZoomDownIn;\\n animation-name: antZoomDownIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-down-leave.zoom-down-leave-active {\\n -webkit-animation-name: antZoomDownOut;\\n animation-name: antZoomDownOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-down-enter,\\n.zoom-down-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-down-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-left-enter,\\n.zoom-left-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-left-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-left-enter.zoom-left-enter-active,\\n.zoom-left-appear.zoom-left-appear-active {\\n -webkit-animation-name: antZoomLeftIn;\\n animation-name: antZoomLeftIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-left-leave.zoom-left-leave-active {\\n -webkit-animation-name: antZoomLeftOut;\\n animation-name: antZoomLeftOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-left-enter,\\n.zoom-left-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-left-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.zoom-right-enter,\\n.zoom-right-appear {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-right-leave {\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.zoom-right-enter.zoom-right-enter-active,\\n.zoom-right-appear.zoom-right-appear-active {\\n -webkit-animation-name: antZoomRightIn;\\n animation-name: antZoomRightIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.zoom-right-leave.zoom-right-leave-active {\\n -webkit-animation-name: antZoomRightOut;\\n animation-name: antZoomRightOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.zoom-right-enter,\\n.zoom-right-appear {\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\\n}\\n.zoom-right-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n@-webkit-keyframes antZoomIn {\\n 0% {\\n -webkit-transform: scale(0.2);\\n transform: scale(0.2);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n@keyframes antZoomIn {\\n 0% {\\n -webkit-transform: scale(0.2);\\n transform: scale(0.2);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antZoomOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 100% {\\n -webkit-transform: scale(0.2);\\n transform: scale(0.2);\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 100% {\\n -webkit-transform: scale(0.2);\\n transform: scale(0.2);\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antZoomBigIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n@keyframes antZoomBigIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antZoomBigOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomBigOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antZoomUpIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n }\\n}\\n@keyframes antZoomUpIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n }\\n}\\n@-webkit-keyframes antZoomUpOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomUpOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 0%;\\n transform-origin: 50% 0%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antZoomLeftIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n }\\n}\\n@keyframes antZoomLeftIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n }\\n}\\n@-webkit-keyframes antZoomLeftOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomLeftOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 0% 50%;\\n transform-origin: 0% 50%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antZoomRightIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n }\\n}\\n@keyframes antZoomRightIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n }\\n}\\n@-webkit-keyframes antZoomRightOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomRightOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%;\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes antZoomDownIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n }\\n}\\n@keyframes antZoomDownIn {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n }\\n}\\n@-webkit-keyframes antZoomDownOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomDownOut {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n }\\n 100% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n -webkit-transform-origin: 50% 100%;\\n transform-origin: 50% 100%;\\n opacity: 0;\\n }\\n}\\n.ant-motion-collapse-legacy {\\n overflow: hidden;\\n}\\n.ant-motion-collapse-legacy-active {\\n -webkit-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\\n transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\\n}\\n.ant-motion-collapse {\\n overflow: hidden;\\n -webkit-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\\n transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-message {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: fixed;\\n top: 16px;\\n left: 0;\\n z-index: 1010;\\n width: 100%;\\n pointer-events: none;\\n}\\n.ant-message-notice {\\n padding: 8px;\\n text-align: center;\\n}\\n.ant-message-notice:first-child {\\n margin-top: -8px;\\n}\\n.ant-message-notice-content {\\n display: inline-block;\\n padding: 10px 16px;\\n background: #fff;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n pointer-events: all;\\n}\\n.ant-message-success .anticon {\\n color: #52c41a;\\n}\\n.ant-message-error .anticon {\\n color: #f5222d;\\n}\\n.ant-message-warning .anticon {\\n color: #faad14;\\n}\\n.ant-message-info .anticon,\\n.ant-message-loading .anticon {\\n color: #1890ff;\\n}\\n.ant-message .anticon {\\n position: relative;\\n top: 1px;\\n margin-right: 8px;\\n font-size: 16px;\\n}\\n.ant-message-notice.move-up-leave.move-up-leave-active {\\n overflow: hidden;\\n -webkit-animation-name: MessageMoveOut;\\n animation-name: MessageMoveOut;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n}\\n@-webkit-keyframes MessageMoveOut {\\n 0% {\\n max-height: 150px;\\n padding: 8px;\\n opacity: 1;\\n }\\n 100% {\\n max-height: 0;\\n padding: 0;\\n opacity: 0;\\n }\\n}\\n@keyframes MessageMoveOut {\\n 0% {\\n max-height: 150px;\\n padding: 8px;\\n opacity: 1;\\n }\\n 100% {\\n max-height: 0;\\n padding: 0;\\n opacity: 0;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/*!\\n * \\n * antd-mobile v2.3.4\\n * \\n * Copyright 2015-present, Alipay, Inc.\\n * All rights reserved.\\n * \\n */\\n/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */\\n\\n/* Document\\n ========================================================================== */\\n\\n/**\\n * 1. Correct the line height in all browsers.\\n * 2. Prevent adjustments of font size after orientation changes in\\n * IE on Windows Phone and in iOS.\\n */\\n\\nhtml {\\n line-height: 1.15; /* 1 */\\n -ms-text-size-adjust: 100%; /* 2 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n}\\n\\n/* Sections\\n ========================================================================== */\\n\\n/**\\n * Remove the margin in all browsers (opinionated).\\n */\\n\\nbody {\\n margin: 0;\\n}\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\narticle,\\naside,\\nfooter,\\nheader,\\nnav,\\nsection {\\n display: block;\\n}\\n\\n/**\\n * Correct the font size and margin on `h1` elements within `section` and\\n * `article` contexts in Chrome, Firefox, and Safari.\\n */\\n\\nh1 {\\n font-size: 2em;\\n margin: 0.67em 0;\\n}\\n\\n/* Grouping content\\n ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n * 1. Add the correct display in IE.\\n */\\n\\nfigcaption,\\nfigure,\\nmain { /* 1 */\\n display: block;\\n}\\n\\n/**\\n * Add the correct margin in IE 8.\\n */\\n\\nfigure {\\n margin: 1em 40px;\\n}\\n\\n/**\\n * 1. Add the correct box sizing in Firefox.\\n * 2. Show the overflow in Edge and IE.\\n */\\n\\nhr {\\n box-sizing: content-box; /* 1 */\\n height: 0; /* 1 */\\n overflow: visible; /* 2 */\\n}\\n\\n/**\\n * 1. Correct the inheritance and scaling of font size in all browsers.\\n * 2. Correct the odd `em` font sizing in all browsers.\\n */\\n\\npre {\\n font-family: monospace, monospace; /* 1 */\\n font-size: 1em; /* 2 */\\n}\\n\\n/* Text-level semantics\\n ========================================================================== */\\n\\n/**\\n * 1. Remove the gray background on active links in IE 10.\\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\\n */\\n\\na {\\n background-color: transparent; /* 1 */\\n -webkit-text-decoration-skip: objects; /* 2 */\\n}\\n\\n/**\\n * 1. Remove the bottom border in Chrome 57- and Firefox 39-.\\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\\n */\\n\\nabbr[title] {\\n border-bottom: none; /* 1 */\\n text-decoration: underline; /* 2 */\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted; /* 2 */\\n}\\n\\n/**\\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\\n */\\n\\nb,\\nstrong {\\n font-weight: inherit;\\n}\\n\\n/**\\n * Add the correct font weight in Chrome, Edge, and Safari.\\n */\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/**\\n * 1. Correct the inheritance and scaling of font size in all browsers.\\n * 2. Correct the odd `em` font sizing in all browsers.\\n */\\n\\ncode,\\nkbd,\\nsamp {\\n font-family: monospace, monospace; /* 1 */\\n font-size: 1em; /* 2 */\\n}\\n\\n/**\\n * Add the correct font style in Android 4.3-.\\n */\\n\\ndfn {\\n font-style: italic;\\n}\\n\\n/**\\n * Add the correct background and color in IE 9-.\\n */\\n\\nmark {\\n background-color: #ff0;\\n color: #000;\\n}\\n\\n/**\\n * Add the correct font size in all browsers.\\n */\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` elements from affecting the line height in\\n * all browsers.\\n */\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/* Embedded content\\n ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\naudio,\\nvideo {\\n display: inline-block;\\n}\\n\\n/**\\n * Add the correct display in iOS 4-7.\\n */\\n\\naudio:not([controls]) {\\n display: none;\\n height: 0;\\n}\\n\\n/**\\n * Remove the border on images inside links in IE 10-.\\n */\\n\\nimg {\\n border-style: none;\\n}\\n\\n/**\\n * Hide the overflow in IE.\\n */\\n\\nsvg:not(:root) {\\n overflow: hidden;\\n}\\n\\n/* Forms\\n ========================================================================== */\\n\\n/**\\n * 1. Change the font styles in all browsers (opinionated).\\n * 2. Remove the margin in Firefox and Safari.\\n */\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: sans-serif; /* 1 */\\n font-size: 100%; /* 1 */\\n line-height: 1.15; /* 1 */\\n margin: 0; /* 2 */\\n}\\n\\n/**\\n * Show the overflow in IE.\\n * 1. Show the overflow in Edge.\\n */\\n\\nbutton,\\ninput { /* 1 */\\n overflow: visible;\\n}\\n\\n/**\\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\\n * 1. Remove the inheritance of text transform in Firefox.\\n */\\n\\nbutton,\\nselect { /* 1 */\\n text-transform: none;\\n}\\n\\n/**\\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\\n * controls in Android 4.\\n * 2. Correct the inability to style clickable types in iOS and Safari.\\n */\\n\\nbutton,\\nhtml [type=\\\"button\\\"], /* 1 */\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button; /* 2 */\\n}\\n\\n/**\\n * Remove the inner border and padding in Firefox.\\n */\\n\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n border-style: none;\\n padding: 0;\\n}\\n\\n/**\\n * Restore the focus styles unset by the previous rule.\\n */\\n\\nbutton:-moz-focusring,\\n[type=\\\"button\\\"]:-moz-focusring,\\n[type=\\\"reset\\\"]:-moz-focusring,\\n[type=\\\"submit\\\"]:-moz-focusring {\\n outline: 1px dotted ButtonText;\\n}\\n\\n/**\\n * Correct the padding in Firefox.\\n */\\n\\nfieldset {\\n padding: 0.35em 0.75em 0.625em;\\n}\\n\\n/**\\n * 1. Correct the text wrapping in Edge and IE.\\n * 2. Correct the color inheritance from `fieldset` elements in IE.\\n * 3. Remove the padding so developers are not caught out when they zero out\\n * `fieldset` elements in all browsers.\\n */\\n\\nlegend {\\n box-sizing: border-box; /* 1 */\\n color: inherit; /* 2 */\\n display: table; /* 1 */\\n max-width: 100%; /* 1 */\\n padding: 0; /* 3 */\\n white-space: normal; /* 1 */\\n}\\n\\n/**\\n * 1. Add the correct display in IE 9-.\\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\\n */\\n\\nprogress {\\n display: inline-block; /* 1 */\\n vertical-align: baseline; /* 2 */\\n}\\n\\n/**\\n * Remove the default vertical scrollbar in IE.\\n */\\n\\ntextarea {\\n overflow: auto;\\n}\\n\\n/**\\n * 1. Add the correct box sizing in IE 10-.\\n * 2. Remove the padding in IE 10-.\\n */\\n\\n[type=\\\"checkbox\\\"],\\n[type=\\\"radio\\\"] {\\n box-sizing: border-box; /* 1 */\\n padding: 0; /* 2 */\\n}\\n\\n/**\\n * Correct the cursor style of increment and decrement buttons in Chrome.\\n */\\n\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/**\\n * 1. Correct the odd appearance in Chrome and Safari.\\n * 2. Correct the outline style in Safari.\\n */\\n\\n[type=\\\"search\\\"] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/**\\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\\n */\\n\\n[type=\\\"search\\\"]::-webkit-search-cancel-button,\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/**\\n * 1. Correct the inability to style clickable types in iOS and Safari.\\n * 2. Change font properties to `inherit` in Safari.\\n */\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/* Interactive\\n ========================================================================== */\\n\\n/*\\n * Add the correct display in IE 9-.\\n * 1. Add the correct display in Edge, IE, and Firefox.\\n */\\n\\ndetails, /* 1 */\\nmenu {\\n display: block;\\n}\\n\\n/*\\n * Add the correct display in all browsers.\\n */\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/* Scripting\\n ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\ncanvas {\\n display: inline-block;\\n}\\n\\n/**\\n * Add the correct display in IE.\\n */\\n\\ntemplate {\\n display: none;\\n}\\n\\n/* Hidden\\n ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 10-.\\n */\\n\\n[hidden] {\\n display: none;\\n}\\n/*do not import this file except components/style/index.less*/\\n.am-fade-enter,\\n.am-fade-appear {\\n opacity: 0;\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-play-state: paused;\\n}\\n.am-fade-leave {\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-play-state: paused;\\n}\\n.am-fade-enter.am-fade-enter-active,\\n.am-fade-appear.am-fade-appear-active {\\n animation-name: amFadeIn;\\n animation-play-state: running;\\n}\\n.am-fade-leave.am-fade-leave-active {\\n animation-name: amFadeOut;\\n animation-play-state: running;\\n}\\n@keyframes amFadeIn {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes amFadeOut {\\n 0% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n }\\n}\\n.am-slide-up-enter,\\n.am-slide-up-appear {\\n transform: translate(0, 100%);\\n}\\n.am-slide-up-enter,\\n.am-slide-up-appear,\\n.am-slide-up-leave {\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-play-state: paused;\\n}\\n.am-slide-up-enter.am-slide-up-enter-active,\\n.am-slide-up-appear.am-slide-up-appear-active {\\n animation-name: amSlideUpIn;\\n animation-play-state: running;\\n}\\n.am-slide-up-leave.am-slide-up-leave-active {\\n animation-name: amSlideUpOut;\\n animation-play-state: running;\\n}\\n@keyframes amSlideUpIn {\\n 0% {\\n transform: translate(0, 100%);\\n }\\n 100% {\\n transform: translate(0, 0);\\n }\\n}\\n@keyframes amSlideUpOut {\\n 0% {\\n transform: translate(0, 0);\\n }\\n 100% {\\n transform: translate(0, 100%);\\n }\\n}\\n.am.am-zoom-enter,\\n.am.am-zoom-leave {\\n display: block;\\n}\\n.am-zoom-enter,\\n.am-zoom-appear {\\n opacity: 0;\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-timing-function: cubic-bezier(0.18, 0.89, 0.32, 1.28);\\n animation-play-state: paused;\\n}\\n.am-zoom-leave {\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-timing-function: cubic-bezier(0.6, -0.3, 0.74, 0.05);\\n animation-play-state: paused;\\n}\\n.am-zoom-enter.am-zoom-enter-active,\\n.am-zoom-appear.am-zoom-appear-active {\\n animation-name: amZoomIn;\\n animation-play-state: running;\\n}\\n.am-zoom-leave.am-zoom-leave-active {\\n animation-name: amZoomOut;\\n animation-play-state: running;\\n}\\n@keyframes amZoomIn {\\n 0% {\\n opacity: 0;\\n transform-origin: 50% 50%;\\n transform: scale(0, 0);\\n }\\n 100% {\\n opacity: 1;\\n transform-origin: 50% 50%;\\n transform: scale(1, 1);\\n }\\n}\\n@keyframes amZoomOut {\\n 0% {\\n opacity: 1;\\n transform-origin: 50% 50%;\\n transform: scale(1, 1);\\n }\\n 100% {\\n opacity: 0;\\n transform-origin: 50% 50%;\\n transform: scale(0, 0);\\n }\\n}\\n.am-slide-down-enter,\\n.am-slide-down-appear {\\n transform: translate(0, -100%);\\n}\\n.am-slide-down-enter,\\n.am-slide-down-appear,\\n.am-slide-down-leave {\\n animation-duration: .2s;\\n animation-fill-mode: both;\\n animation-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2);\\n animation-play-state: paused;\\n}\\n.am-slide-down-enter.am-slide-down-enter-active,\\n.am-slide-down-appear.am-slide-down-appear-active {\\n animation-name: amSlideDownIn;\\n animation-play-state: running;\\n}\\n.am-slide-down-leave.am-slide-down-leave-active {\\n animation-name: amSlideDownOut;\\n animation-play-state: running;\\n}\\n@keyframes amSlideDownIn {\\n 0% {\\n transform: translate(0, -100%);\\n }\\n 100% {\\n transform: translate(0, 0);\\n }\\n}\\n@keyframes amSlideDownOut {\\n 0% {\\n transform: translate(0, 0);\\n }\\n 100% {\\n transform: translate(0, -100%);\\n }\\n}\\n*,\\n*:before,\\n*:after {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\nbody {\\n background-color: #f5f5f9;\\n font-size: 14px;\\n}\\n*[contenteditable] {\\n -webkit-user-select: auto !important;\\n}\\n*:focus {\\n outline: none;\\n}\\na {\\n background: transparent;\\n text-decoration: none;\\n outline: none;\\n}\\n.am-accordion {\\n position: relative;\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-accordion {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-accordion::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-accordion::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-accordion-anim-active {\\n transition: all 0.2s ease-out;\\n}\\n.am-accordion .am-accordion-item .am-accordion-header {\\n position: relative;\\n color: #000;\\n font-size: 17px;\\n height: 44px;\\n line-height: 44px;\\n background-color: #fff;\\n box-sizing: content-box;\\n padding-left: 15px;\\n padding-right: 30px;\\n border-bottom: 1PX solid #ddd;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-header {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-header::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-header::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-accordion .am-accordion-item .am-accordion-header i {\\n position: absolute;\\n display: block;\\n top: 15px;\\n right: 15px;\\n width: 15px;\\n height: 15px;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2216%22%20height%3D%2226%22%20viewBox%3D%220%200%2016%2026%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cg%20id%3D%22UI-KIT_%E5%9F%BA%E7%A1%80%E5%85%83%E4%BB%B6%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%229.9%E5%9F%BA%E7%A1%80%E5%85%83%E4%BB%B6%22%20transform%3D%22translate(-5809.000000%2C%20-8482.000000)%22%20fill%3D%22%23C7C7CC%22%3E%3Cpolygon%20id%3D%22Disclosure-Indicator%22%20points%3D%225811%208482%205809%208484%205820.5%208495%205809%208506%205811%208508%205825%208495%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: 50% 50%;\\n transform: rotate(90deg);\\n transition: transform .2s ease;\\n}\\n.am-accordion .am-accordion-item .am-accordion-header[aria-expanded~=\\\"true\\\"] i {\\n transform: rotate(270deg);\\n}\\n.am-accordion .am-accordion-item .am-accordion-content {\\n overflow: hidden;\\n background: #fff;\\n}\\n.am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box {\\n font-size: 15px;\\n color: #333;\\n position: relative;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box .am-list-body {\\n border-top: 0;\\n}\\n.am-accordion .am-accordion-item .am-accordion-content .am-accordion-content-box .am-list-body:before {\\n display: none !important;\\n}\\n.am-accordion .am-accordion-item .am-accordion-content.am-accordion-content-inactive {\\n display: none;\\n}\\n.am-badge {\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n vertical-align: middle;\\n}\\n.am-badge-text {\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n position: absolute;\\n top: -6px;\\n height: 18px;\\n line-height: 18px;\\n min-width: 9px;\\n border-radius: 12px;\\n padding: 0 5px;\\n text-align: center;\\n font-size: 12px;\\n color: #fff;\\n background-color: #ff5b05;\\n white-space: nowrap;\\n transform: translateX(-45%);\\n transform-origin: -10% center;\\n z-index: 10;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, \\\"PingFang SC\\\", \\\"Hiragino Sans GB\\\", \\\"Microsoft YaHei\\\", \\\"\\\\5FAE\\\\8F6F\\\\96C5\\\\9ED1\\\", SimSun, sans-serif;\\n}\\n.am-badge-text a {\\n color: #fff;\\n}\\n.am-badge-text p {\\n margin: 0;\\n padding: 0;\\n}\\n.am-badge-hot .am-badge-text {\\n background-color: #f96268;\\n}\\n.am-badge-dot {\\n position: absolute;\\n transform: translateX(-50%);\\n transform-origin: 0 center;\\n top: -4px;\\n height: 8px;\\n width: 8px;\\n border-radius: 100%;\\n background: #ff5b05;\\n z-index: 10;\\n}\\n.am-badge-dot-large {\\n height: 16px;\\n width: 16px;\\n}\\n.am-badge-not-a-wrapper .am-badge-text,\\n.am-badge-not-a-wrapper .am-badge-dot {\\n top: auto;\\n display: block;\\n position: relative;\\n transform: translateX(0);\\n}\\n.am-badge-corner {\\n width: 80px;\\n padding: 8px;\\n position: absolute;\\n right: -32px;\\n top: 8px;\\n background-color: #ff5b05;\\n color: #fff;\\n white-space: nowrap;\\n transform: rotate(45deg);\\n text-align: center;\\n font-size: 15px;\\n}\\n.am-badge-corner-wrapper {\\n overflow: hidden;\\n}\\n.am-action-sheet-wrap {\\n position: fixed;\\n overflow: auto;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n -webkit-overflow-scrolling: touch;\\n outline: 0;\\n}\\n.am-action-sheet-mask {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.4);\\n height: 100%;\\n z-index: 1000;\\n}\\n.am-action-sheet-mask-hidden {\\n display: none;\\n}\\n.am-action-sheet-close {\\n display: none;\\n}\\n.am-action-sheet {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: #fff;\\n padding-bottom: env(safe-area-inset-bottom);\\n}\\n.am-action-sheet.am-action-sheet-share {\\n background-color: #f2f2f2;\\n}\\n.am-action-sheet-title,\\n.am-action-sheet-message {\\n margin: 15px auto;\\n padding: 0 15px;\\n text-align: center;\\n}\\n.am-action-sheet-title {\\n font-size: 17px;\\n}\\n.am-action-sheet-message {\\n color: #888;\\n font-size: 14px;\\n}\\n.am-action-sheet-button-list {\\n text-align: center;\\n color: #000;\\n}\\n.am-action-sheet-button-list-item {\\n font-size: 18px;\\n padding: 0 8px;\\n margin: 0;\\n position: relative;\\n height: 50px;\\n line-height: 50px;\\n box-sizing: border-box;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow-x: hidden;\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list-item {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-action-sheet-button-list-item::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list-item::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-action-sheet-button-list-item.am-action-sheet-button-list-item-active {\\n background-color: #ddd;\\n}\\n.am-action-sheet-button-list-badge {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.am-action-sheet-button-list-badge .am-badge {\\n margin-left: 8px;\\n flex-shrink: 0;\\n}\\n.am-action-sheet-button-list-item-content {\\n display: inline-block;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.am-action-sheet-button-list .am-action-sheet-cancel-button {\\n padding-top: 6px;\\n position: relative;\\n}\\n.am-action-sheet-button-list .am-action-sheet-cancel-button-mask {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 6px;\\n background-color: #e7e7ed;\\n border-top: 1PX solid #ddd;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-action-sheet-button-list .am-action-sheet-cancel-button-mask::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-action-sheet-button-list .am-action-sheet-destructive-button {\\n color: #f4333c;\\n}\\n.am-action-sheet-share-list {\\n display: flex;\\n position: relative;\\n border-top: 1PX solid #ddd;\\n padding: 21px 0 21px 15px;\\n overflow-y: scroll;\\n -webkit-overflow-scrolling: touch;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-action-sheet-share-list {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-action-sheet-share-list::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-action-sheet-share-list::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-action-sheet-share-list-item {\\n flex: none;\\n margin: 0 12px 0 0;\\n}\\n.am-action-sheet-share-list-item-icon {\\n margin-bottom: 9px;\\n width: 60px;\\n height: 60px;\\n background-color: #fff;\\n border-radius: 3px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.am-action-sheet-share-list-item-title {\\n color: #888;\\n font-size: 10px;\\n text-align: center;\\n}\\n.am-action-sheet-share-cancel-button {\\n height: 50px;\\n line-height: 50px;\\n text-align: center;\\n background-color: #fff;\\n color: #000;\\n font-size: 18px;\\n position: relative;\\n border-top: 1PX solid #ddd;\\n box-sizing: border-box;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-action-sheet-share-cancel-button {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-action-sheet-share-cancel-button::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-action-sheet-share-cancel-button::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-action-sheet-share-cancel-button.am-action-sheet-share-cancel-button-active {\\n background-color: #ddd;\\n}\\n.am-activity-indicator {\\n display: flex;\\n align-items: center;\\n z-index: 99;\\n}\\n.am-activity-indicator-spinner {\\n display: inline-block;\\n width: 20px;\\n height: 20px;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-2.125%20-1.875%2064%2064%22%3E%3Cpath%20fill%3D%22%23CCC%22%20d%3D%22M29.875-1.875c-17.673%200-32%2014.327-32%2032s14.327%2032%2032%2032%2032-14.327%2032-32-14.327-32-32-32zm0%2060.7c-15.85%200-28.7-12.85-28.7-28.7s12.85-28.7%2028.7-28.7%2028.7%2012.85%2028.7%2028.7-12.85%2028.7-28.7%2028.7z%22%2F%3E%3Cpath%20fill%3D%22%23108ee9%22%20d%3D%22M61.858%2030.34c.003-.102.008-.203.008-.305%200-11.43-5.996-21.452-15.01-27.113l-.013.026c-.24-.137-.515-.22-.81-.22-.912%200-1.65.738-1.65%201.65%200%20.654.384%201.215.937%201.482%207.963%205.1%2013.247%2014.017%2013.247%2024.176%200%20.147-.01.293-.01.44h.022c0%20.01-.004.02-.004.03%200%20.91.74%201.65%201.65%201.65s1.65-.74%201.65-1.65c0-.06-.012-.112-.018-.167z%22%2F%3E%3C%2Fsvg%3E\\\");\\n background-position: 50%;\\n background-size: 100%;\\n background-repeat: no-repeat;\\n animation: spinner-anime 1s linear infinite;\\n}\\n.am-activity-indicator-tip {\\n font-size: 14px;\\n margin-left: 8px;\\n color: #000;\\n opacity: 0.4;\\n}\\n.am-activity-indicator.am-activity-indicator-toast {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n z-index: 1999;\\n}\\n.am-activity-indicator.am-activity-indicator-toast .am-activity-indicator-spinner {\\n margin: 0;\\n}\\n.am-activity-indicator.am-activity-indicator-toast .am-activity-indicator-toast {\\n display: inline-block;\\n position: relative;\\n top: 4px;\\n}\\n.am-activity-indicator-content {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n padding: 15px 15px;\\n border-radius: 7px;\\n background-clip: padding-box;\\n color: #fff;\\n background-color: rgba(58, 58, 58, 0.9);\\n font-size: 15px;\\n line-height: 20px;\\n}\\n.am-activity-indicator-spinner-lg {\\n width: 32px;\\n height: 32px;\\n}\\n@keyframes spinner-anime {\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.am-icon {\\n fill: currentColor;\\n background-size: cover;\\n width: 22px;\\n height: 22px;\\n}\\n.am-icon-xxs {\\n width: 15px;\\n height: 15px;\\n}\\n.am-icon-xs {\\n width: 18px;\\n height: 18px;\\n}\\n.am-icon-sm {\\n width: 21px;\\n height: 21px;\\n}\\n.am-icon-md {\\n width: 22px;\\n height: 22px;\\n}\\n.am-icon-lg {\\n width: 36px;\\n height: 36px;\\n}\\n.am-icon-loading {\\n animation: cirle-anim 1s linear infinite;\\n}\\n@keyframes cirle-anim {\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.am-button {\\n display: block;\\n outline: 0 none;\\n -webkit-appearance: none;\\n box-sizing: border-box;\\n padding: 0;\\n text-align: center;\\n font-size: 18px;\\n height: 47px;\\n line-height: 47px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n word-break: break-word;\\n white-space: nowrap;\\n color: #000;\\n background-color: #fff;\\n border: 1PX solid #ddd;\\n border-radius: 5px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-button {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-button::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-button-borderfix:before {\\n transform: scale(0.49) !important;\\n}\\n.am-button.am-button-active {\\n background-color: #ddd;\\n}\\n.am-button.am-button-disabled {\\n color: rgba(0, 0, 0, 0.3);\\n opacity: 0.6;\\n}\\n.am-button-primary {\\n color: #fff;\\n background-color: #108ee9;\\n border: 1PX solid #108ee9;\\n border-radius: 5px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-button-primary {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-button-primary::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #108ee9;\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-button-primary.am-button-active {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: #0e80d2;\\n}\\n.am-button-primary.am-button-disabled {\\n color: rgba(255, 255, 255, 0.6);\\n opacity: 0.4;\\n}\\n.am-button-ghost {\\n color: #108ee9;\\n background-color: transparent;\\n border: 1PX solid #108ee9;\\n border-radius: 5px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-button-ghost {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-button-ghost::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #108ee9;\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-button-ghost.am-button-active {\\n color: rgba(16, 142, 233, 0.6);\\n background-color: transparent;\\n border: 1PX solid rgba(16, 142, 233, 0.6);\\n border-radius: 5px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-button-ghost.am-button-active {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-button-ghost.am-button-active::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid rgba(16, 142, 233, 0.6);\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-button-ghost.am-button-disabled {\\n color: rgba(0, 0, 0, 0.1);\\n border: 1PX solid rgba(0, 0, 0, 0.1);\\n border-radius: 5px;\\n opacity: 1;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-button-ghost.am-button-disabled {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-button-ghost.am-button-disabled::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid rgba(0, 0, 0, 0.1);\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-button-warning {\\n color: #fff;\\n background-color: #e94f4f;\\n}\\n.am-button-warning.am-button-active {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: #d24747;\\n}\\n.am-button-warning.am-button-disabled {\\n color: rgba(255, 255, 255, 0.6);\\n opacity: 0.4;\\n}\\n.am-button-inline {\\n display: inline-block;\\n padding: 0 15px;\\n}\\n.am-button-inline.am-button-icon {\\n display: inline-flex;\\n}\\n.am-button-small {\\n font-size: 13px;\\n height: 30px;\\n line-height: 30px;\\n padding: 0 15px;\\n}\\n.am-button-icon {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.am-button > .am-button-icon {\\n margin-right: 0.5em;\\n}\\n.am-picker-col {\\n display: block;\\n position: relative;\\n height: 238px;\\n overflow: hidden;\\n width: 100%;\\n}\\n.am-picker-col-content {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n z-index: 1;\\n padding: 102px 0;\\n}\\n.am-picker-col-item {\\n touch-action: manipulation;\\n text-align: center;\\n font-size: 16px;\\n height: 34px;\\n line-height: 34px;\\n color: #000;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.am-picker-col-item-selected {\\n font-size: 17px;\\n}\\n.am-picker-col-mask {\\n position: absolute;\\n left: 0;\\n top: 0;\\n height: 100%;\\n margin: 0 auto;\\n width: 100%;\\n z-index: 3;\\n background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(to top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));\\n background-position: top, bottom;\\n background-size: 100% 102px;\\n background-repeat: no-repeat;\\n}\\n.am-picker-col-indicator {\\n box-sizing: border-box;\\n width: 100%;\\n height: 34px;\\n position: absolute;\\n left: 0;\\n top: 102px;\\n z-index: 3;\\n border-top: 1PX solid #ddd;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-picker-col-indicator {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-picker-col-indicator::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-picker-col-indicator::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-picker-col-indicator {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-picker-col-indicator::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-picker-col-indicator::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-picker {\\n display: flex;\\n align-items: center;\\n}\\n.am-picker-item {\\n flex: 1;\\n text-align: center;\\n}\\n.am-picker-popup {\\n left: 0;\\n bottom: 0;\\n position: fixed;\\n width: 100%;\\n background-color: #fff;\\n padding-bottom: env(safe-area-inset-bottom);\\n}\\n.am-picker-popup-wrap {\\n position: fixed;\\n overflow: auto;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n -webkit-overflow-scrolling: touch;\\n outline: 0;\\n transform: translateZ(1px);\\n}\\n.am-picker-popup-mask {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.4);\\n height: 100%;\\n z-index: 1000;\\n transform: translateZ(1px);\\n}\\n.am-picker-popup-mask-hidden {\\n display: none;\\n}\\n.am-picker-popup-header {\\n background-image: linear-gradient(to bottom, #e7e7e7, #e7e7e7, transparent, transparent);\\n background-position: bottom;\\n background-size: 100% 1PX;\\n background-repeat: no-repeat;\\n display: flex;\\n align-items: center;\\n position: relative;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-picker-popup-header {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-picker-popup-header::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-picker-popup-header::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-picker-popup-header .am-picker-popup-header-right {\\n text-align: right;\\n}\\n.am-picker-popup-item {\\n color: #108ee9;\\n font-size: 17px;\\n padding: 9px 15px;\\n height: 42px;\\n box-sizing: border-box;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.am-picker-popup-item-active {\\n background-color: #ddd;\\n}\\n.am-picker-popup-title {\\n flex: 1;\\n text-align: center;\\n color: #000;\\n}\\n.am-picker-popup .am-picker-popup-close {\\n display: none;\\n}\\n.am-picker-col {\\n flex: 1;\\n}\\n.am-calendar .animate {\\n animation-duration: .3s;\\n animation-fill-mode: both;\\n}\\n@keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n@keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n.am-calendar .fade-enter {\\n animation-name: fadeIn;\\n}\\n.am-calendar .fade-leave {\\n animation-name: fadeOut;\\n}\\n@keyframes slideInUp {\\n 0% {\\n transform: translate3d(0, 100%, 0);\\n visibility: visible;\\n }\\n to {\\n transform: translateZ(0);\\n }\\n}\\n@keyframes slideInDown {\\n 0% {\\n transform: translateZ(0);\\n visibility: visible;\\n }\\n to {\\n transform: translate3d(0, 100%, 0);\\n }\\n}\\n@keyframes slideInLeft {\\n 0% {\\n transform: translate3d(100%, 0, 0);\\n visibility: visible;\\n }\\n to {\\n transform: translateZ(0);\\n }\\n}\\n@keyframes slideInRight {\\n 0% {\\n transform: translateZ(0);\\n visibility: visible;\\n }\\n to {\\n transform: translate3d(100%, 0, 0);\\n }\\n}\\n.am-calendar .slideV-enter {\\n animation-name: slideInUp;\\n}\\n.am-calendar .slideV-leave {\\n animation-name: slideInDown;\\n}\\n.am-calendar .slideH-enter {\\n animation-name: slideInLeft;\\n}\\n.am-calendar .slideH-leave {\\n animation-name: slideInRight;\\n}\\n.am-calendar .mask {\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n z-index: 999;\\n background: rgba(0, 0, 0, 0.5);\\n}\\n.am-calendar .content {\\n position: fixed;\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n z-index: 999;\\n background: #fff;\\n}\\n.am-calendar .header {\\n margin: 5px;\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n}\\n.am-calendar .header .title {\\n text-align: center;\\n width: 100%;\\n font-size: 16px;\\n font-weight: bold;\\n}\\n.am-calendar .header .left {\\n position: absolute;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n padding: 0 8px;\\n height: 24px;\\n left: 5px;\\n top: 5px;\\n color: #068EEF;\\n}\\n.am-calendar .header .right {\\n position: absolute;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n padding: 0 8px;\\n height: 24px;\\n right: 5px;\\n top: 5px;\\n color: #068EEF;\\n font-size: 14px;\\n}\\n.am-calendar .timePicker {\\n border-top: 1PX #ccc solid;\\n}\\n.am-calendar .week-panel {\\n background: #fff;\\n display: flex;\\n flex-shrink: 0;\\n padding: 0 2px;\\n border-bottom: 1PX #ddd solid;\\n}\\n.am-calendar .week-panel .cell {\\n height: 24px;\\n display: flex;\\n width: 14.28571429%;\\n justify-content: center;\\n align-items: center;\\n color: #000;\\n font-size: 14px;\\n}\\n.am-calendar .week-panel .cell-grey {\\n color: #bbb;\\n}\\n.am-calendar .date-picker {\\n display: flex;\\n flex-direction: column;\\n background: #eee;\\n padding-bottom: env(safe-area-inset-bottom);\\n flex: 1;\\n min-height: 0;\\n}\\n.am-calendar .date-picker .wrapper {\\n height: auto;\\n position: relative;\\n flex: 1;\\n min-height: 0;\\n}\\n.am-calendar .date-picker .months {\\n background: #fff;\\n}\\n.am-calendar .date-picker .load-tip {\\n position: absolute;\\n display: flex;\\n justify-content: center;\\n align-items: flex-end;\\n left: 0;\\n right: 0;\\n padding: 10px 0;\\n top: -40px;\\n color: #bbb;\\n}\\n.am-calendar .confirm-panel {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n background: #f7f7f7;\\n padding: 8px 15px;\\n border-top: #ddd 1PX solid;\\n}\\n.am-calendar .confirm-panel .info {\\n font-size: 12px;\\n}\\n.am-calendar .confirm-panel .info p {\\n margin: 0;\\n}\\n.am-calendar .confirm-panel .info p + p {\\n margin-top: 8px;\\n}\\n.am-calendar .confirm-panel .info .grey {\\n color: #bbb;\\n}\\n.am-calendar .confirm-panel .button {\\n text-align: center;\\n width: 80px;\\n margin: 0 0 0 auto;\\n padding: 8px 0;\\n border-radius: 5px;\\n color: #fff;\\n font-size: 18px;\\n background: #108ee9;\\n}\\n.am-calendar .confirm-panel .button-disable {\\n color: #bbb;\\n background: #ddd;\\n}\\n.am-calendar .confirm-panel .button-full {\\n width: 100%;\\n text-align: center;\\n}\\n.am-calendar .time-picker {\\n flex-shrink: 0;\\n text-align: center;\\n background: #fff;\\n}\\n.am-calendar .time-picker .title {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 44px;\\n font-size: 16px;\\n border-top: 1PX #ddd solid;\\n border-bottom: 1PX #ddd solid;\\n}\\n.am-calendar .single-month {\\n padding: 0;\\n}\\n.am-calendar .single-month .month-title {\\n margin: 0;\\n padding: 21px 0 6px 15px;\\n}\\n.am-calendar .single-month .row {\\n display: flex;\\n align-items: baseline;\\n}\\n.am-calendar .single-month .row .cell {\\n display: flex;\\n flex-direction: column;\\n width: 14.28571429%;\\n justify-content: center;\\n align-items: center;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper {\\n display: flex;\\n height: 35px;\\n width: 100%;\\n justify-content: center;\\n align-items: center;\\n margin-bottom: 2px;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .date {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 35px;\\n height: 35px;\\n flex-shrink: 0;\\n color: #000;\\n font-size: 17px;\\n font-weight: bold;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .disable {\\n color: #bbb;\\n background: #eee;\\n border: none;\\n border-radius: 100%;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .grey {\\n color: #bbb;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .important {\\n border: 1PX #ddd solid;\\n border-radius: 100%;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .left,\\n.am-calendar .single-month .row .cell .date-wrapper .right {\\n border: none;\\n width: 100%;\\n height: 35px;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .date-selected {\\n border: none;\\n background: #108ee9;\\n color: #fff;\\n font-size: 17px;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .selected-start {\\n border-radius: 100% 0 0 100%;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .selected-single {\\n border-radius: 100%;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .selected-middle {\\n border-radius: 0;\\n}\\n.am-calendar .single-month .row .cell .date-wrapper .selected-end {\\n border-radius: 0 100% 100% 0;\\n}\\n.am-calendar .single-month .row .cell .info {\\n height: 15px;\\n width: 100%;\\n padding: 0 5px;\\n font-size: 10px;\\n color: #888;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n text-align: center;\\n}\\n.am-calendar .single-month .row .cell .date-selected {\\n color: #108ee9;\\n}\\n.am-calendar .single-month .row + .row {\\n margin-top: 6px;\\n}\\n.am-calendar .single-month .row-xl + .row-xl {\\n margin-top: 21px;\\n}\\n.am-calendar .shortcut-panel {\\n display: flex;\\n flex-direction: row;\\n flex-shrink: 0;\\n justify-content: space-between;\\n align-items: center;\\n padding: 0 30px;\\n border-top: #ddd 1PX solid;\\n height: 42px;\\n}\\n.am-calendar .shortcut-panel .item {\\n display: inline-block;\\n color: #108ee9;\\n font-size: 16px;\\n}\\n.am-card {\\n min-height: 96px;\\n padding-bottom: 6px;\\n display: flex;\\n flex-direction: column;\\n background-color: #fff;\\n}\\n.am-card:not(.am-card-full) {\\n border: 1PX solid #ddd;\\n border-radius: 5px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-card:not(.am-card-full) {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-card:not(.am-card-full)::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 10px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-card.am-card-full {\\n position: relative;\\n border-top: 1PX solid #ddd;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-card.am-card-full {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-card.am-card-full::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-card.am-card-full::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-card.am-card-full {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-card.am-card-full::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-card.am-card-full::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-card-header {\\n display: flex;\\n align-items: center;\\n font-size: 17px;\\n padding: 9px 15px;\\n}\\n.am-card-header-content {\\n flex: 1;\\n text-align: left;\\n color: #000;\\n display: flex;\\n align-items: center;\\n}\\n.am-card-header-content img {\\n margin-right: 5px;\\n}\\n.am-card-header-extra {\\n flex: 1;\\n text-align: right;\\n font-size: 17px;\\n color: #888;\\n}\\n.am-card-body {\\n position: relative;\\n border-top: 1PX solid #ddd;\\n padding: 15px 15px 6px;\\n font-size: 15px;\\n color: #333;\\n min-height: 40px;\\n flex: 1;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-card-body {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-card-body::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-card-body::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-card-footer {\\n font-size: 14px;\\n color: #888;\\n padding: 0 15px;\\n display: flex;\\n}\\n.am-card-footer-content {\\n flex: 1;\\n}\\n.am-card-footer-extra {\\n flex: 1;\\n text-align: right;\\n}\\n.am-carousel {\\n position: relative;\\n}\\n.am-carousel-wrap {\\n font-size: 18px;\\n color: #000;\\n background: none;\\n text-align: center;\\n zoom: 1;\\n width: 100%;\\n}\\n.am-carousel-wrap-dot {\\n display: inline-block;\\n zoom: 1;\\n}\\n.am-carousel-wrap-dot > span {\\n display: block;\\n width: 8px;\\n height: 8px;\\n margin: 0 3px;\\n border-radius: 50%;\\n background: #ccc;\\n}\\n.am-carousel-wrap-dot-active > span {\\n background: #888;\\n}\\n.am-list-header {\\n padding: 15px 15px 9px 15px;\\n font-size: 14px;\\n color: #888;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n.am-list-footer {\\n padding: 9px 15px 15px 15px;\\n font-size: 14px;\\n color: #888;\\n}\\n.am-list-body {\\n position: relative;\\n background-color: #fff;\\n border-top: 1PX solid #ddd;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-list-body {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-list-body::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-list-body::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-list-body {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-list-body::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-list-body::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-list-body div:not(:last-child) .am-list-line {\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-list-body div:not(:last-child) .am-list-line {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-list-body div:not(:last-child) .am-list-line::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-list-body div:not(:last-child) .am-list-line::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-list-item {\\n position: relative;\\n display: flex;\\n padding-left: 15px;\\n min-height: 44px;\\n background-color: #fff;\\n vertical-align: middle;\\n overflow: hidden;\\n transition: background-color 200ms;\\n align-items: center;\\n /* list左图片显示*/\\n}\\n.am-list-item .am-list-ripple {\\n position: absolute;\\n background: transparent;\\n display: inline-block;\\n overflow: hidden;\\n will-change: box-shadow, transform;\\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n outline: none;\\n cursor: pointer;\\n border-radius: 100%;\\n transform: scale(0);\\n}\\n.am-list-item .am-list-ripple.am-list-ripple-animate {\\n background-color: rgba(158, 158, 158, 0.2);\\n animation: ripple 1s linear;\\n}\\n.am-list-item.am-list-item-top .am-list-line {\\n align-items: flex-start;\\n}\\n.am-list-item.am-list-item-top .am-list-line .am-list-arrow {\\n margin-top: 2px;\\n}\\n.am-list-item.am-list-item-middle .am-list-line {\\n align-items: center;\\n}\\n.am-list-item.am-list-item-bottom .am-list-line {\\n align-items: flex-end;\\n}\\n.am-list-item.am-list-item-error .am-list-line .am-list-extra {\\n color: #f50;\\n}\\n.am-list-item.am-list-item-error .am-list-line .am-list-extra .am-list-brief {\\n color: #f50;\\n}\\n.am-list-item.am-list-item-active {\\n background-color: #ddd;\\n}\\n.am-list-item.am-list-item-disabled .am-list-line .am-list-content,\\n.am-list-item.am-list-item-disabled .am-list-line .am-list-extra {\\n color: #bbb;\\n}\\n.am-list-item img {\\n width: 22px;\\n height: 22px;\\n vertical-align: middle;\\n}\\n.am-list-item .am-list-thumb:first-child {\\n margin-right: 15px;\\n}\\n.am-list-item .am-list-thumb:last-child {\\n margin-left: 8px;\\n}\\n.am-list-item .am-list-line {\\n position: relative;\\n display: flex;\\n flex: 1;\\n align-self: stretch;\\n padding-right: 15px;\\n overflow: hidden;\\n /* list左侧主内容*/\\n /* list右补充内容*/\\n /* 辅助性文字*/\\n /* list右侧箭头*/\\n}\\n.am-list-item .am-list-line .am-list-content {\\n flex: 1;\\n color: #000;\\n font-size: 17px;\\n line-height: 1.5;\\n text-align: left;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n padding-top: 7px;\\n padding-bottom: 7px;\\n}\\n.am-list-item .am-list-line .am-list-extra {\\n flex-basis: 36%;\\n color: #888;\\n font-size: 16px;\\n line-height: 1.5;\\n text-align: right;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n padding-top: 7px;\\n padding-bottom: 7px;\\n}\\n.am-list-item .am-list-line .am-list-title {\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.am-list-item .am-list-line .am-list-brief {\\n color: #888;\\n font-size: 15px;\\n line-height: 1.5;\\n margin-top: 6px;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.am-list-item .am-list-line .am-list-arrow {\\n display: block;\\n width: 15px;\\n height: 15px;\\n margin-left: 8px;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2216%22%20height%3D%2226%22%20viewBox%3D%220%200%2016%2026%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cg%20id%3D%22UI-KIT_%E5%9F%BA%E7%A1%80%E5%85%83%E4%BB%B6%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%229.9%E5%9F%BA%E7%A1%80%E5%85%83%E4%BB%B6%22%20transform%3D%22translate(-5809.000000%2C%20-8482.000000)%22%20fill%3D%22%23C7C7CC%22%3E%3Cpolygon%20id%3D%22Disclosure-Indicator%22%20points%3D%225811%208482%205809%208484%205820.5%208495%205809%208506%205811%208508%205825%208495%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: 50% 50%;\\n visibility: hidden;\\n}\\n.am-list-item .am-list-line .am-list-arrow-horizontal {\\n visibility: visible;\\n}\\n.am-list-item .am-list-line .am-list-arrow-vertical {\\n visibility: visible;\\n transform: rotate(90deg);\\n}\\n.am-list-item .am-list-line .am-list-arrow-vertical-up {\\n visibility: visible;\\n transform: rotate(270deg);\\n}\\n.am-list-item .am-list-line-multiple {\\n padding: 12.5px 15px 12.5px 0;\\n}\\n.am-list-item .am-list-line-multiple .am-list-content {\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n.am-list-item .am-list-line-multiple .am-list-extra {\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n.am-list-item .am-list-line-wrap .am-list-content {\\n white-space: normal;\\n}\\n.am-list-item .am-list-line-wrap .am-list-extra {\\n white-space: normal;\\n}\\n.am-list-item select {\\n position: relative;\\n display: block;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n border: 0;\\n font-size: 17px;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n background-color: transparent;\\n}\\n@keyframes ripple {\\n 100% {\\n opacity: 0;\\n transform: scale(2.5);\\n }\\n}\\n.am-checkbox {\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n width: 21px;\\n height: 21px;\\n}\\n.am-checkbox-inner {\\n position: absolute;\\n right: 0;\\n width: 21px;\\n height: 21px;\\n border: 1px solid #ccc;\\n border-radius: 50%;\\n transform: rotate(0deg);\\n box-sizing: border-box;\\n}\\n.am-checkbox-inner:after {\\n position: absolute;\\n display: none;\\n top: 1.5px;\\n right: 6px;\\n z-index: 999;\\n width: 5px;\\n height: 11px;\\n border-style: solid;\\n border-width: 0 1px 1px 0;\\n content: ' ';\\n transform: rotate(45deg);\\n}\\n.am-checkbox-input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 2;\\n border: 0 none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n.am-checkbox.am-checkbox-checked .am-checkbox-inner {\\n border-color: #108ee9;\\n background: #108ee9;\\n}\\n.am-checkbox.am-checkbox-checked .am-checkbox-inner:after {\\n display: block;\\n border-color: #fff;\\n}\\n.am-checkbox.am-checkbox-disabled {\\n opacity: 0.3;\\n}\\n.am-checkbox.am-checkbox-disabled.am-checkbox-checked .am-checkbox-inner {\\n border-color: #888;\\n background: none;\\n}\\n.am-checkbox.am-checkbox-disabled.am-checkbox-checked .am-checkbox-inner:after {\\n border-color: #888;\\n}\\n.am-list .am-list-item.am-checkbox-item .am-list-thumb {\\n width: 21px;\\n height: 21px;\\n}\\n.am-list .am-list-item.am-checkbox-item .am-list-thumb .am-checkbox {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n width: 100%;\\n height: 44px;\\n}\\n.am-list .am-list-item.am-checkbox-item .am-list-thumb .am-checkbox-inner {\\n left: 15px;\\n top: 12px;\\n}\\n.am-list .am-list-item.am-checkbox-item.am-checkbox-item-disabled .am-list-content {\\n color: #bbb;\\n}\\n.am-checkbox-agree {\\n position: relative;\\n display: flex;\\n align-items: stretch;\\n margin-left: 15px;\\n padding-top: 9px;\\n padding-bottom: 9px;\\n}\\n.am-checkbox-agree .am-checkbox {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 30px;\\n height: 100%;\\n}\\n.am-checkbox-agree .am-checkbox-inner {\\n left: 0;\\n top: 12px;\\n}\\n.am-checkbox-agree .am-checkbox-agree-label {\\n display: inline-block;\\n font-size: 15px;\\n color: #000;\\n line-height: 1.5;\\n margin-left: 30px;\\n margin-top: 1PX;\\n}\\n.am-drawer {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n overflow: hidden;\\n}\\n.am-drawer-sidebar {\\n z-index: 4;\\n position: absolute;\\n transition: transform 0.3s ease-out;\\n will-change: transform;\\n overflow-y: auto;\\n}\\n.am-drawer-draghandle {\\n z-index: 1;\\n position: absolute;\\n background-color: rgba(50, 50, 50, 0.1);\\n}\\n.am-drawer-overlay {\\n z-index: 3;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n opacity: 0;\\n visibility: hidden;\\n transition: opacity 0.5s ease-out;\\n background-color: rgba(0, 0, 0, 0.4);\\n}\\n.am-drawer-content {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n overflow: auto;\\n transition: left 0.3s ease-out, right 0.3s ease-out;\\n}\\n.am-drawer.am-drawer-left .am-drawer-sidebar,\\n.am-drawer.am-drawer-right .am-drawer-sidebar,\\n.am-drawer.am-drawer-left .am-drawer-draghandle,\\n.am-drawer.am-drawer-right .am-drawer-draghandle {\\n top: 0;\\n bottom: 0;\\n}\\n.am-drawer.am-drawer-left .am-drawer-draghandle,\\n.am-drawer.am-drawer-right .am-drawer-draghandle {\\n width: 10px;\\n height: 100%;\\n}\\n.am-drawer.am-drawer-top .am-drawer-sidebar,\\n.am-drawer.am-drawer-bottom .am-drawer-sidebar,\\n.am-drawer.am-drawer-top .am-drawer-draghandle,\\n.am-drawer.am-drawer-bottom .am-drawer-draghandle {\\n left: 0;\\n right: 0;\\n}\\n.am-drawer.am-drawer-top .am-drawer-draghandle,\\n.am-drawer.am-drawer-bottom .am-drawer-draghandle {\\n width: 100%;\\n height: 10px;\\n}\\n.am-drawer.am-drawer-left .am-drawer-sidebar {\\n left: 0;\\n transform: translateX(-100%);\\n}\\n.am-drawer-open.am-drawer.am-drawer-left .am-drawer-sidebar {\\n box-shadow: 1PX 1PX 2px rgba(0, 0, 0, 0.15);\\n}\\n.am-drawer.am-drawer-left .am-drawer-draghandle {\\n left: 0;\\n}\\n.am-drawer.am-drawer-right .am-drawer-sidebar {\\n right: 0;\\n transform: translateX(100%);\\n}\\n.am-drawer-open.am-drawer.am-drawer-right .am-drawer-sidebar {\\n box-shadow: -1PX 1PX 2px rgba(0, 0, 0, 0.15);\\n}\\n.am-drawer.am-drawer-right .am-drawer-draghandle {\\n right: 0;\\n}\\n.am-drawer.am-drawer-top .am-drawer-sidebar {\\n top: 0;\\n transform: translateY(-100%);\\n}\\n.am-drawer-open.am-drawer.am-drawer-top .am-drawer-sidebar {\\n box-shadow: 1PX 1PX 2px rgba(0, 0, 0, 0.15);\\n}\\n.am-drawer.am-drawer-top .am-drawer-draghandle {\\n top: 0;\\n}\\n.am-drawer.am-drawer-bottom .am-drawer-sidebar {\\n bottom: 0;\\n transform: translateY(100%);\\n}\\n.am-drawer-open.am-drawer.am-drawer-bottom .am-drawer-sidebar {\\n box-shadow: 1PX -1PX 2px rgba(0, 0, 0, 0.15);\\n}\\n.am-drawer.am-drawer-bottom .am-drawer-draghandle {\\n bottom: 0;\\n}\\n/* flexbox */\\n.am-flexbox {\\n text-align: left;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n}\\n.am-flexbox.am-flexbox-dir-row {\\n flex-direction: row;\\n}\\n.am-flexbox.am-flexbox-dir-row-reverse {\\n flex-direction: row-reverse;\\n}\\n.am-flexbox.am-flexbox-dir-column {\\n flex-direction: column;\\n}\\n.am-flexbox.am-flexbox-dir-column .am-flexbox-item {\\n margin-left: 0;\\n}\\n.am-flexbox.am-flexbox-dir-column-reverse {\\n flex-direction: column-reverse;\\n}\\n.am-flexbox.am-flexbox-dir-column-reverse .am-flexbox-item {\\n margin-left: 0;\\n}\\n.am-flexbox.am-flexbox-nowrap {\\n flex-wrap: nowrap;\\n}\\n.am-flexbox.am-flexbox-wrap {\\n flex-wrap: wrap;\\n}\\n.am-flexbox.am-flexbox-wrap-reverse {\\n flex-wrap: wrap-reverse;\\n}\\n.am-flexbox.am-flexbox-justify-start {\\n justify-content: flex-start;\\n}\\n.am-flexbox.am-flexbox-justify-end {\\n justify-content: flex-end;\\n}\\n.am-flexbox.am-flexbox-justify-center {\\n justify-content: center;\\n}\\n.am-flexbox.am-flexbox-justify-between {\\n justify-content: space-between;\\n}\\n.am-flexbox.am-flexbox-justify-around {\\n justify-content: space-around;\\n}\\n.am-flexbox.am-flexbox-align-start {\\n align-items: flex-start;\\n}\\n.am-flexbox.am-flexbox-align-end {\\n align-items: flex-end;\\n}\\n.am-flexbox.am-flexbox-align-center {\\n align-items: center;\\n}\\n.am-flexbox.am-flexbox-align-stretch {\\n align-items: stretch;\\n}\\n.am-flexbox.am-flexbox-align-baseline {\\n align-items: baseline;\\n}\\n.am-flexbox.am-flexbox-align-content-start {\\n align-content: flex-start;\\n}\\n.am-flexbox.am-flexbox-align-content-end {\\n align-content: flex-end;\\n}\\n.am-flexbox.am-flexbox-align-content-center {\\n align-content: center;\\n}\\n.am-flexbox.am-flexbox-align-content-between {\\n align-content: space-between;\\n}\\n.am-flexbox.am-flexbox-align-content-around {\\n align-content: space-around;\\n}\\n.am-flexbox.am-flexbox-align-content-stretch {\\n align-content: stretch;\\n}\\n.am-flexbox .am-flexbox-item {\\n box-sizing: border-box;\\n flex: 1;\\n margin-left: 8px;\\n min-width: 10px;\\n}\\n.am-flexbox .am-flexbox-item:first-child {\\n margin-left: 0;\\n}\\n/* flexbox */\\n.am-grid .am-flexbox {\\n background: #fff;\\n}\\n.am-grid .am-flexbox .am-flexbox-item {\\n margin-left: 0;\\n}\\n.am-grid .am-flexbox .am-flexbox-item.am-grid-item {\\n position: relative;\\n}\\n.am-grid .am-flexbox .am-flexbox-item.am-grid-item-active .am-grid-item-content {\\n background-color: #ddd;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content {\\n text-align: center;\\n width: 100%;\\n height: 100%;\\n padding: 15px 0;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content .am-grid-item-inner-content {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content .am-grid-item-inner-content .am-grid-icon {\\n max-width: 100%;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content .am-grid-item-inner-content .am-grid-text {\\n margin-top: 9px;\\n font-size: 12px;\\n color: #000;\\n text-align: center;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content .am-grid-item-inner-content.column-num-3 .am-grid-text {\\n font-size: 16px;\\n}\\n.am-grid .am-flexbox .am-flexbox-item .am-grid-item-content .am-grid-item-inner-content.column-num-2 .am-grid-text {\\n margin-top: 15px;\\n font-size: 18px;\\n}\\n.am-grid.am-grid-line {\\n position: relative;\\n}\\n.am-grid.am-grid-line:not(.am-grid-carousel) {\\n border-top: 1PX solid #ddd;\\n border-right: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel) {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel)::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel)::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel) {\\n border-right: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel)::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: auto;\\n left: auto;\\n width: 1PX;\\n height: 100%;\\n background: #ddd;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line:not(.am-grid-carousel)::after {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-grid.am-grid-line .am-flexbox {\\n position: relative;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-grid.am-grid-line .am-flexbox .am-flexbox-item {\\n position: relative;\\n}\\n.am-grid.am-grid-line .am-flexbox .am-flexbox-item:first-child {\\n border-left: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:first-child {\\n border-left: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:first-child::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 1PX;\\n height: 100%;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:first-child::before {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-grid.am-grid-line .am-flexbox .am-flexbox-item:not(:last-child) {\\n border-right: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:not(:last-child) {\\n border-right: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:not(:last-child)::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: auto;\\n left: auto;\\n width: 1PX;\\n height: 100%;\\n background: #ddd;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line .am-flexbox .am-flexbox-item:not(:last-child)::after {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page {\\n border-top: 1PX solid #ddd;\\n border-right: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page::before {\\n transform: scaleY(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page {\\n border-right: none;\\n }\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: auto;\\n left: auto;\\n width: 1PX;\\n height: 100%;\\n background: #ddd;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-grid.am-grid-line.am-grid-carousel .am-grid-carousel-page::after {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-grid .am-carousel .am-carousel-wrap-dot > span {\\n background: #dcdee3;\\n}\\n.am-grid .am-carousel .am-carousel-wrap-dot-active > span {\\n background: #0ae;\\n}\\n.am-grid.am-grid-square .am-grid-item:before {\\n display: block;\\n content: ' ';\\n padding-bottom: 100%;\\n}\\n.am-grid.am-grid-square .am-grid-item .am-grid-item-content {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.am-grid.am-grid-square .am-grid-item .am-grid-item-inner-content {\\n height: 100%;\\n}\\n.am-grid.am-grid-square .am-grid-item .am-grid-item-inner-content .am-grid-icon {\\n margin-top: 9px;\\n width: 28%!important;\\n}\\n.am-image-picker-list {\\n padding: 9px 8px 0;\\n margin-bottom: 15px;\\n}\\n.am-image-picker-list .am-flexbox {\\n margin-bottom: 6px;\\n}\\n.am-image-picker-list .am-flexbox .am-flexbox-item {\\n position: relative;\\n margin-right: 5px;\\n margin-left: 0;\\n}\\n.am-image-picker-list .am-flexbox .am-flexbox-item:after {\\n display: block;\\n content: ' ';\\n padding-bottom: 100%;\\n}\\n.am-image-picker-list .am-image-picker-item {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n width: 100%;\\n height: 100%;\\n}\\n.am-image-picker-list .am-image-picker-item .am-image-picker-item-remove {\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n right: 6px;\\n top: 6px;\\n text-align: right;\\n vertical-align: top;\\n z-index: 2;\\n background-size: 15px auto;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D'16'%20height%3D'16'%20viewBox%3D'0%200%2016%2016'%20version%3D'1.1'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20id%3D'Page-1'%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Ccircle%20id%3D'Oval-98'%20fill-opacity%3D'0.4'%20fill%3D'%23404040'%20cx%3D'8'%20cy%3D'8'%20r%3D'8'%3E%3C%2Fcircle%3E%3Cpath%20d%3D'M11.8979743%2C11.8990375%20L11.8979743%2C11.8990375%20C11.7633757%2C12.0336542%2011.5447877%2C12.0336542%2011.4101891%2C11.8990375%20L8%2C8.48838931%20L4.5887341%2C11.8990375%20C4.45413554%2C12.0336542%204.23554748%2C12.0336542%204.10094892%2C11.8990375%20L4.10094892%2C11.8990375%20C3.96635036%2C11.7644208%203.96635036%2C11.5458033%204.10094892%2C11.4111866%20L7.51221482%2C8.00053847%20L4.10202571%2C4.58881335%20C3.96742715%2C4.45419667%203.96742715%2C4.23557919%204.10202571%2C4.10096251%20L4.10202571%2C4.10096251%20C4.23662427%2C3.96634583%204.45521233%2C3.96634583%204.58981089%2C4.10096251%20L8%2C7.51268762%20L11.4112659%2C4.10203944%20C11.5458645%2C3.96742276%2011.7644525%2C3.96742276%2011.8990511%2C4.10203944%20L11.8990511%2C4.10203944%20C12.0336496%2C4.23665612%2012.0336496%2C4.45527361%2011.8990511%2C4.58989029%20L8.48778518%2C8.00053847%20L11.8979743%2C11.4122636%20C12.0325729%2C11.5468803%2012.0325729%2C11.7644208%2011.8979743%2C11.8990375%20L11.8979743%2C11.8990375%20Z'%20id%3D'Shape'%20fill%3D'%23FFFFFF'%20transform%3D'translate(8.000000%2C%208.000000)%20scale(1%2C%20-1)%20translate(-8.000000%2C%20-8.000000)%20'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-image-picker-list .am-image-picker-item .am-image-picker-item-content {\\n height: 100%;\\n width: 100%;\\n border-radius: 3px;\\n background-size: cover;\\n}\\n.am-image-picker-list .am-image-picker-item img {\\n width: 100%;\\n}\\n.am-image-picker-list .am-image-picker-upload-btn {\\n box-sizing: border-box;\\n border-radius: 3px;\\n border: 1PX solid #ddd;\\n background-color: #fff;\\n}\\n.am-image-picker-list .am-image-picker-upload-btn:before,\\n.am-image-picker-list .am-image-picker-upload-btn:after {\\n width: 1PX;\\n height: 25px;\\n content: \\\" \\\";\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: #ccc;\\n}\\n.am-image-picker-list .am-image-picker-upload-btn:after {\\n width: 25px;\\n height: 1PX;\\n}\\n.am-image-picker-list .am-image-picker-upload-btn-active {\\n background-color: #ddd;\\n}\\n.am-image-picker-list .am-image-picker-upload-btn input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n opacity: 0;\\n}\\n.am-list-item .am-input-control .fake-input-container {\\n height: 30px;\\n line-height: 30px;\\n position: relative;\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding-right: 2px;\\n margin-right: 3px;\\n -webkit-text-decoration: rtl;\\n text-decoration: rtl;\\n text-align: right;\\n color: #000;\\n font-size: 17px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input.fake-input-disabled {\\n color: #bbb;\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input.focus {\\n transition: color .2s;\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input.focus::before {\\n content: \\\"\\\";\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input.focus::after {\\n content: \\\"\\\";\\n position: absolute;\\n right: 1.5px;\\n top: 10%;\\n height: 80%;\\n border-right: 1.5px solid #108ee9;\\n animation: keyboard-cursor infinite 1s step-start;\\n}\\n.am-list-item .am-input-control .fake-input-container .fake-input-placeholder {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n color: #bbb;\\n text-align: right;\\n}\\n.am-list-item .am-input-control .fake-input-container-left .fake-input {\\n text-align: left;\\n}\\n.am-list-item .am-input-control .fake-input-container-left .fake-input.focus:after {\\n position: static;\\n}\\n.am-list-item .am-input-control .fake-input-container-left .fake-input-placeholder {\\n text-align: left;\\n}\\n.am-number-keyboard-wrapper {\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n width: 100%;\\n z-index: 10000;\\n font-family: 'PingFang SC';\\n background-color: #f6f6f7;\\n transition-duration: 0.2s;\\n transition-property: transform display;\\n transform: translateZ(0);\\n padding-bottom: env(safe-area-inset-bottom);\\n}\\n.am-number-keyboard-wrapper.am-number-keyboard-wrapper-hide {\\n bottom: -500px;\\n}\\n.am-number-keyboard-wrapper table {\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n border-collapse: collapse;\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-number-keyboard-wrapper table::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-number-keyboard-wrapper table tr {\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item {\\n width: 25%;\\n padding: 0;\\n margin: 0;\\n height: 50px;\\n text-align: center;\\n font-size: 25.5px;\\n color: #2a2b2c;\\n position: relative;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm) {\\n border-left: 1PX solid #ddd;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm) {\\n border-left: none;\\n }\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm)::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 1PX;\\n height: 100%;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm)::before {\\n transform: scaleX(0.33);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm) {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm)::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item:not(.keyboard-confirm)::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.am-number-keyboard-item-active {\\n background-color: #ddd;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm {\\n color: #fff;\\n font-size: 21px;\\n background-color: #108ee9;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm.am-number-keyboard-item-active {\\n background-color: #0e80d2;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-confirm.am-number-keyboard-item-disabled {\\n background-color: #0e80d2;\\n color: rgba(255, 255, 255, 0.45);\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-delete {\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22204%22%20height%3D%22148%22%20viewBox%3D%220%200%20153.000000%20111.000000%22%3E%3Cpath%20d%3D%22M46.9%204.7c-2.5%202.6-14.1%2015.5-25.8%2028.6L-.1%2057l25.6%2027%2025.7%2027.1%2047.4-.3%2047.4-.3%203.2-3.3%203.3-3.2V7l-3.3-3.2L146%20.5%2098.7.2%2051.5-.1l-4.6%204.8zm97.9%203.5c1.7%201.7%201.7%2092.9%200%2094.6-.9.9-12.6%201.2-46.3%201.2H53.4L31.2%2080.4%209%2056.9l5.1-5.7c2.8-3.1%2012.8-14.4%2022.2-24.9L53.5%207h45c33.8%200%2045.4.3%2046.3%201.2z%22%2F%3E%3Cpath%20d%3D%22M69.5%2031c-1.9%202.1-1.7%202.2%209.3%2013.3L90%2055.5%2078.8%2066.7%2067.5%2078l2.3%202.2%202.2%202.3%2011.3-11.3L94.5%2060l11.2%2011.2L117%2082.5l2.2-2.3%202.3-2.2-11.3-11.3L99%2055.5l11.2-11.2L121.5%2033l-2.3-2.2-2.2-2.3-11.3%2011.3L94.5%2051l-11-11c-6-6-11.2-11-11.6-11-.3%200-1.4.9-2.4%202z%22%2F%3E%3C%2Fsvg%3E\\\");\\n background-size: 25.5px 18.5px;\\n background-position: 50% 50%;\\n background-repeat: no-repeat;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item.keyboard-hide {\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22260%22%20height%3D%22188%22%20viewBox%3D%220%200%20195.000000%20141.000000%22%3E%3Cpath%20d%3D%22M0%2057v57h195V0H0v57zm183%200v45H12V12h171v45z%22%2F%3E%3Cpath%20d%3D%22M21%2031.5V39h15V24H21v7.5zM48%2031.5V39h15V24H48v7.5zM75%2031.5V39h15V24H75v7.5zM102%2031.5V39h15V24h-15v7.5zM129%2031.5V39h15V24h-15v7.5zM156%2031.5V39h15V24h-15v7.5zM36%2055.5V63h15V48H36v7.5zM63%2055.5V63h15V48H63v7.5zM90%2055.5V63h15V48H90v7.5zM117%2055.5V63h15V48h-15v7.5zM144%2055.5V63h15V48h-15v7.5zM27%2079.5V87h15V72H27v7.5zM48%2079.5V87h96V72H48v7.5zM150%2079.5V87h15V72h-15v7.5zM81%20124.5c0%20.8.7%201.5%201.5%201.5s1.5.7%201.5%201.5.7%201.5%201.5%201.5%201.5.7%201.5%201.5.7%201.5%201.5%201.5%201.5.7%201.5%201.5.7%201.5%201.5%201.5%201.5.7%201.5%201.5.7%201.5%201.5%201.5%201.5.7%201.5%201.5.7%201.5%201.5%201.5%201.5-.7%201.5-1.5.7-1.5%201.5-1.5%201.5-.7%201.5-1.5.7-1.5%201.5-1.5%201.5-.7%201.5-1.5.7-1.5%201.5-1.5%201.5-.7%201.5-1.5.7-1.5%201.5-1.5%201.5-.7%201.5-1.5.7-1.5%201.5-1.5%201.5-.7%201.5-1.5c0-1.3-2.5-1.5-16.5-1.5s-16.5.2-16.5%201.5z%22%2F%3E%3C%2Fsvg%3E\\\");\\n background-size: 32.5px 23.5px;\\n background-position: 50% 50%;\\n background-repeat: no-repeat;\\n}\\n.am-number-keyboard-wrapper table tr .am-number-keyboard-item-disabled {\\n color: #bbb;\\n}\\n@keyframes keyboard-cursor {\\n 0% {\\n opacity: 0;\\n }\\n 50% {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n.am-list-item.am-input-item {\\n height: 44px;\\n padding-left: 15px;\\n}\\n.am-list-item:not(:last-child) .am-list-line {\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-list-item:not(:last-child) .am-list-line {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-list-item:not(:last-child) .am-list-line::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-list-item:not(:last-child) .am-list-line::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-list-item .am-input-label {\\n color: #000;\\n font-size: 17px;\\n margin-left: 0;\\n margin-right: 5px;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n padding: 2px 0;\\n}\\n.am-list-item .am-input-label.am-input-label-2 {\\n width: 34px;\\n}\\n.am-list-item .am-input-label.am-input-label-3 {\\n width: 51px;\\n}\\n.am-list-item .am-input-label.am-input-label-4 {\\n width: 68px;\\n}\\n.am-list-item .am-input-label.am-input-label-5 {\\n width: 85px;\\n}\\n.am-list-item .am-input-label.am-input-label-6 {\\n width: 102px;\\n}\\n.am-list-item .am-input-label.am-input-label-7 {\\n width: 119px;\\n}\\n.am-list-item .am-input-control {\\n font-size: 17px;\\n flex: 1;\\n}\\n.am-list-item .am-input-control input {\\n color: #000;\\n font-size: 17px;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n width: 100%;\\n padding: 2px 0;\\n border: 0;\\n background-color: transparent;\\n line-height: 1;\\n box-sizing: border-box;\\n}\\n.am-list-item .am-input-control input::-moz-placeholder {\\n color: #bbb;\\n line-height: 1.2;\\n}\\n.am-list-item .am-input-control input::placeholder {\\n color: #bbb;\\n line-height: 1.2;\\n}\\n.am-list-item .am-input-control input:disabled {\\n color: #bbb;\\n background-color: #fff;\\n}\\n.am-list-item .am-input-clear {\\n display: none;\\n width: 21px;\\n height: 21px;\\n border-radius: 50%;\\n overflow: hidden;\\n font-style: normal;\\n color: #fff;\\n background-color: #ccc;\\n background-repeat: no-repeat;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23fff'%20viewBox%3D'0%200%2030%2030'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E\\\");\\n background-size: 21px auto;\\n background-position: 2px 2px;\\n}\\n.am-list-item .am-input-clear-active {\\n background-color: #108ee9;\\n}\\n.am-list-item.am-input-focus .am-input-clear {\\n display: block;\\n}\\n.am-list-item .am-input-extra {\\n flex: initial;\\n min-width: 0;\\n max-height: 21px;\\n overflow: hidden;\\n padding-right: 0;\\n line-height: 1;\\n color: #888;\\n font-size: 15px;\\n margin-left: 5px;\\n}\\n.am-list-item.am-input-error .am-input-control input {\\n color: #f50;\\n}\\n.am-list-item.am-input-error .am-input-error-extra {\\n height: 21px;\\n width: 21px;\\n margin-left: 6px;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D'18'%20height%3D'18'%20viewBox%3D'0%200%2018%2018'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Cg%20transform%3D'translate(-300.000000%2C%20-1207.000000)'%20fill%3D'%23FF5500'%3E%3Cg%20id%3D'exclamation-circle-o'%20transform%3D'translate(300.000000%2C%201207.000000)'%3E%3Cpath%20d%3D'M9%2C16.734375%20C10.0441406%2C16.734375%2011.0566406%2C16.5304688%2012.009375%2C16.1279297%20C12.9304688%2C15.7376953%2013.7566406%2C15.1804687%2014.4685547%2C14.4703125%20C15.1787109%2C13.7601563%2015.7376953%2C12.9322266%2016.1261719%2C12.0111328%20C16.5304688%2C11.0566406%2016.734375%2C10.0441406%2016.734375%2C9%20C16.734375%2C7.95585938%2016.5304688%2C6.94335938%2016.1279297%2C5.990625%20C15.7376953%2C5.06953125%2015.1804687%2C4.24335938%2014.4703125%2C3.53144531%20C13.7601563%2C2.82128906%2012.9322266%2C2.26230469%2012.0111328%2C1.87382813%20C11.0566406%2C1.46953125%2010.0441406%2C1.265625%209%2C1.265625%20C7.95585938%2C1.265625%206.94335938%2C1.46953125%205.990625%2C1.87207031%20C5.06953125%2C2.26230469%204.24335938%2C2.81953125%203.53144531%2C3.5296875%20C2.82128906%2C4.23984375%202.26230469%2C5.06777344%201.87382813%2C5.98886719%20C1.46953125%2C6.94335938%201.265625%2C7.95585938%201.265625%2C9%20C1.265625%2C10.0441406%201.46953125%2C11.0566406%201.87207031%2C12.009375%20C2.26230469%2C12.9304688%202.81953125%2C13.7566406%203.5296875%2C14.4685547%20C4.23984375%2C15.1787109%205.06777344%2C15.7376953%205.98886719%2C16.1261719%20C6.94335938%2C16.5304688%207.95585938%2C16.734375%209%2C16.734375%20L9%2C16.734375%20Z%20M9%2C18%20C4.02890625%2C18%200%2C13.9710937%200%2C9%20C0%2C4.02890625%204.02890625%2C0%209%2C0%20C13.9710937%2C0%2018%2C4.02890625%2018%2C9%20C18%2C13.9710937%2013.9710937%2C18%209%2C18%20L9%2C18%20L9%2C18%20Z%20M9%2C6.75%20C8.61152344%2C6.75%208.296875%2C7.06464844%208.296875%2C7.453125%20L8.296875%2C13.9394531%20C8.296875%2C14.3279297%208.61152344%2C14.6425781%209%2C14.6425781%20C9.38847656%2C14.6425781%209.703125%2C14.3279297%209.703125%2C13.9394531%20L9.703125%2C7.453125%20C9.703125%2C7.06464844%209.38847656%2C6.75%209%2C6.75%20L9%2C6.75%20Z%20M8.20898438%2C4.83398438%20C8.20898438%2C5.27085024%208.56313413%2C5.625%209%2C5.625%20C9.43686587%2C5.625%209.79101562%2C5.27085024%209.79101562%2C4.83398438%20C9.79101562%2C4.39711851%209.43686587%2C4.04296875%209%2C4.04296875%20C8.56313413%2C4.04296875%208.20898438%2C4.39711851%208.20898438%2C4.83398438%20L8.20898438%2C4.83398438%20Z'%20id%3D'Shape'%20transform%3D'translate(9.000000%2C%209.000000)%20scale(1%2C%20-1)%20translate(-9.000000%2C%20-9.000000)%20'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n background-size: 21px auto;\\n}\\n.am-list-item.am-input-disabled .am-input-label {\\n color: #bbb;\\n}\\n.sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border: 0;\\n}\\n.am-indexed-list-section-body.am-list-body,\\n.am-indexed-list-section-body.am-list-body .am-list-item:last-child .am-list-line {\\n border-bottom: 0;\\n}\\n.am-indexed-list-section-body.am-list-body:after,\\n.am-indexed-list-section-body.am-list-body .am-list-item:last-child .am-list-line:after {\\n display: none !important;\\n}\\n.am-indexed-list-section-header.am-list-body,\\n.am-indexed-list-section-header.am-list-body .am-list-item .am-list-line {\\n border-bottom: 0;\\n}\\n.am-indexed-list-section-header.am-list-body:after,\\n.am-indexed-list-section-header.am-list-body .am-list-item .am-list-line:after {\\n display: none !important;\\n}\\n.am-indexed-list-section-header .am-list-item {\\n height: 30px;\\n min-height: 30px;\\n background-color: #f5f5f9;\\n}\\n.am-indexed-list-section-header .am-list-item .am-list-line {\\n height: 30px;\\n min-height: 30px;\\n}\\n.am-indexed-list-section-header .am-list-item .am-list-content {\\n font-size: 14px !important;\\n color: #888 !important;\\n}\\n.am-indexed-list-quick-search-bar {\\n position: fixed;\\n top: 0;\\n right: 0;\\n z-index: 0;\\n text-align: center;\\n color: #108ee9;\\n font-size: 16px;\\n list-style: none;\\n padding: 0;\\n}\\n.am-indexed-list-quick-search-bar li {\\n padding: 0 5px;\\n}\\n.am-indexed-list-quick-search-bar-over {\\n background-color: rgba(0, 0, 0, 0.4);\\n}\\n.am-indexed-list-qsindicator {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n margin: -15px auto auto -30px;\\n width: 60px;\\n height: 30px;\\n background: transparent;\\n opacity: 0.7;\\n color: #0af;\\n font-size: 20px;\\n border-radius: 30px;\\n z-index: 1999;\\n text-align: center;\\n line-height: 30px;\\n}\\n.am-indexed-list-qsindicator-hide {\\n display: none;\\n}\\n.am-radio {\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n width: 15px;\\n height: 15px;\\n}\\n.am-radio-inner {\\n position: absolute;\\n right: 0;\\n width: 15px;\\n height: 15px;\\n box-sizing: border-box;\\n transform: rotate(0deg);\\n}\\n.am-radio-inner:after {\\n position: absolute;\\n display: none;\\n top: -2.5px;\\n right: 5px;\\n z-index: 999;\\n width: 7px;\\n height: 14px;\\n border-style: solid;\\n border-width: 0 1.5px 1.5px 0;\\n content: ' ';\\n transform: rotate(45deg);\\n}\\n.am-radio-input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 2;\\n border: 0 none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n.am-radio.am-radio-checked .am-radio-inner {\\n border-width: 0;\\n}\\n.am-radio.am-radio-checked .am-radio-inner:after {\\n display: block;\\n border-color: #108ee9;\\n}\\n.am-radio.am-radio-disabled.am-radio-checked .am-radio-inner:after {\\n display: block;\\n border-color: #bbb;\\n}\\n.am-list .am-list-item.am-radio-item .am-list-line .am-list-extra {\\n flex: 0;\\n}\\n.am-list .am-list-item.am-radio-item .am-list-line .am-list-extra .am-radio {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n width: 100%;\\n height: 44px;\\n overflow: visible;\\n}\\n.am-list .am-list-item.am-radio-item .am-list-line .am-list-extra .am-radio-inner {\\n right: 15px;\\n top: 15px;\\n}\\n.am-list .am-list-item.am-radio-item.am-radio-item-disabled .am-list-content {\\n color: #bbb;\\n}\\n.am-menu {\\n background-color: #f5f5f9;\\n}\\n.am-menu .am-menu-select-container {\\n flex-grow: 2;\\n}\\n.am-menu .am-menu-select-container .am-menu-select-container-submenu {\\n align-self: stretch;\\n}\\n.am-menu .am-multi-select-btns {\\n height: 47px;\\n width: 100%;\\n}\\n.am-menu .am-multi-select-btns .am-multi-select-btns-btn {\\n width: 50%;\\n height: 100%;\\n border: 1PX solid #ddd;\\n border-radius: 0;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-menu .am-multi-select-btns .am-multi-select-btns-btn {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-menu .am-multi-select-btns .am-multi-select-btns-btn::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 0;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-menu .am-flexbox .am-flexbox-item {\\n margin-left: 0;\\n -webkit-overflow-scrolling: touch;\\n overflow-y: scroll;\\n}\\n.am-menu .am-flexbox .am-flexbox-item .am-list {\\n padding: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item .am-list .am-list-item .am-list-line .am-list-content {\\n font-size: 16px;\\n}\\n.am-menu .am-flexbox .am-flexbox-item .am-list .am-list-item .am-list-line .am-list-extra .am-checkbox-wrapper .am-checkbox {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n width: 100%;\\n height: 100%;\\n overflow: visible;\\n}\\n.am-menu .am-flexbox .am-flexbox-item .am-list .am-list-item .am-list-line .am-list-extra .am-checkbox-wrapper .am-checkbox .am-checkbox-inner {\\n top: 12px;\\n right: 15px;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child {\\n background-color: #f7f7f7;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-body {\\n background-color: #f7f7f7;\\n border-bottom: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-body:after {\\n display: none !important;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item {\\n background-color: #f7f7f7;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item .am-list-line {\\n border-bottom: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item .am-list-line:after {\\n display: none !important;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item .am-list-line .am-list-content {\\n color: #000;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item:last-child {\\n border-bottom: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item:last-child:after {\\n display: none !important;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:first-child .am-list .am-list-item.am-menu-selected {\\n background-color: #fff;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child {\\n background-color: #fff;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child .am-list .am-list-item {\\n background-color: #fff;\\n border-bottom: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child .am-list .am-list-item:after {\\n display: none !important;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child .am-list .am-list-item .am-list-line .am-list-extra {\\n flex: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child .am-list .am-list-item.am-sub-menu-item-selected .am-list-line .am-list-content {\\n color: #108ee9;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:last-child .am-list .am-list-item.am-sub-menu-item-disabled .am-list-line .am-list-content {\\n color: #bbb;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item .am-list-line {\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item .am-list-line {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item .am-list-line::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item .am-list-line::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child {\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child .am-list-line {\\n border-bottom: 0;\\n}\\n.am-menu .am-flexbox .am-flexbox-item:only-child .am-list .am-list-item:last-child .am-list-line:after {\\n display: none !important;\\n}\\n.am-modal {\\n position: relative;\\n}\\n.am-modal:not(.am-modal-transparent):not(.am-modal-popup) {\\n width: 100%;\\n height: 100%;\\n}\\n.am-modal-mask {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n height: 100%;\\n z-index: 999;\\n background-color: rgba(0, 0, 0, 0.4);\\n}\\n.am-modal-mask-hidden {\\n display: none;\\n}\\n.am-modal-wrap {\\n position: fixed;\\n overflow: auto;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n height: 100%;\\n z-index: 999;\\n -webkit-overflow-scrolling: touch;\\n outline: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: translateZ(1px);\\n}\\n.am-modal-wrap-popup {\\n display: block;\\n}\\n.am-modal-transparent {\\n width: 270px;\\n}\\n.am-modal-transparent .am-modal-content {\\n border-radius: 7px;\\n padding-top: 15px;\\n}\\n.am-modal-transparent .am-modal-content .am-modal-body {\\n padding: 0 15px 15px;\\n}\\n.am-modal-popup {\\n position: fixed;\\n left: 0;\\n width: 100%;\\n}\\n.am-modal-popup-slide-down {\\n top: 0;\\n}\\n.am-modal-popup-slide-up {\\n bottom: 0;\\n}\\n.am-modal-popup .am-modal-content {\\n padding-bottom: env(safe-area-inset-bottom);\\n}\\n.am-modal-title {\\n margin: 0;\\n font-size: 18px;\\n line-height: 1;\\n color: #000;\\n text-align: center;\\n}\\n.am-modal-header {\\n padding: 6px 15px 15px;\\n}\\n.am-modal-content {\\n position: relative;\\n background-color: #fff;\\n border: 0;\\n background-clip: padding-box;\\n text-align: center;\\n height: 100%;\\n overflow: hidden;\\n}\\n.am-modal-close {\\n border: 0;\\n padding: 0;\\n background-color: transparent;\\n outline: none;\\n position: absolute;\\n right: 15px;\\n z-index: 999;\\n height: 21px;\\n width: 21px;\\n}\\n.am-modal-close-x {\\n display: inline-block;\\n width: 15px;\\n height: 15px;\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D'30'%20height%3D'30'%20viewBox%3D'0%200%2030%2030'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cdefs%3E%3C%2Fdefs%3E%20%3Cg%20id%3D'ALL-ICON'%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%20%3Cg%20id%3D'Rectangle-283-%2B-Rectangle-283'%20fill%3D'%23888888'%3E%20%3Crect%20id%3D'Rectangle-283'%20transform%3D'translate(14.849242%2C%2014.849242)%20rotate(-315.000000)%20translate(-14.849242%2C%20-14.849242)%20'%20x%3D'-5.1507576'%20y%3D'13.8492424'%20width%3D'40'%20height%3D'2'%3E%3C%2Frect%3E%20%3Crect%20id%3D'Rectangle-283'%20transform%3D'translate(14.849242%2C%2014.849242)%20scale(-1%2C%201)%20rotate(-315.000000)%20translate(-14.849242%2C%20-14.849242)%20'%20x%3D'-5.1507576'%20y%3D'13.8492424'%20width%3D'40'%20height%3D'2'%3E%3C%2Frect%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\\\");\\n}\\n.am-modal-body {\\n font-size: 15px;\\n color: #888;\\n height: 100%;\\n line-height: 1.5;\\n overflow: auto;\\n}\\n.am-modal-button-group-h {\\n position: relative;\\n border-top: 1PX solid #ddd;\\n display: flex;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal-button-group-h {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-modal-button-group-h::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-modal-button-group-h::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-modal-button-group-h .am-modal-button {\\n -webkit-touch-callout: none;\\n flex: 1;\\n box-sizing: border-box;\\n text-align: center;\\n text-decoration: none;\\n outline: none;\\n color: #108ee9;\\n font-size: 18px;\\n height: 50px;\\n line-height: 50px;\\n display: block;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.am-modal-button-group-h .am-modal-button:first-child {\\n color: #000;\\n}\\n.am-modal-button-group-h .am-modal-button:last-child {\\n position: relative;\\n border-left: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal-button-group-h .am-modal-button:last-child {\\n border-left: none;\\n }\\n html:not([data-scale]) .am-modal-button-group-h .am-modal-button:last-child::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 1PX;\\n height: 100%;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-modal-button-group-h .am-modal-button:last-child::before {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-modal-button-group-v .am-modal-button {\\n -webkit-touch-callout: none;\\n position: relative;\\n border-top: 1PX solid #ddd;\\n box-sizing: border-box;\\n text-align: center;\\n text-decoration: none;\\n outline: none;\\n color: #108ee9;\\n font-size: 18px;\\n height: 50px;\\n line-height: 50px;\\n display: block;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal-button-group-v .am-modal-button {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-modal-button-group-v .am-modal-button::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-modal-button-group-v .am-modal-button::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-modal-button-active {\\n background-color: #ddd;\\n}\\n.am-modal-input-container {\\n margin-top: 9px;\\n border: 1PX solid #ddd;\\n border-radius: 3px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal-input-container {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-modal-input-container::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 6px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-modal-input {\\n height: 36px;\\n line-height: 1;\\n}\\n.am-modal-input:nth-child(2) {\\n position: relative;\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal-input:nth-child(2) {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-modal-input:nth-child(2)::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-modal-input:nth-child(2)::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-modal-input input {\\n position: relative;\\n border: 0;\\n width: 98%;\\n height: 34px;\\n top: 1PX;\\n box-sizing: border-box;\\n margin: 0;\\n}\\n.am-modal-input input::-moz-placeholder {\\n font-size: 14px;\\n color: #ccc;\\n padding-left: 8px;\\n}\\n.am-modal-input input::placeholder {\\n font-size: 14px;\\n color: #ccc;\\n padding-left: 8px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content {\\n border-radius: 0;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-header {\\n padding: 9px 24px 12px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-header .am-modal-title {\\n text-align: left;\\n font-size: 21px;\\n color: #000;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body {\\n color: #000;\\n text-align: left;\\n padding: 0 24px 15px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container {\\n border: 0;\\n border-bottom: 1PX solid #ddd;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container:before {\\n display: none !important;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container .am-modal-input:first-child {\\n border-top: 0;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-body .am-modal-input-container .am-modal-input:first-child:before {\\n display: none !important;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer {\\n padding-bottom: 12px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h {\\n overflow: hidden;\\n border-top: 0;\\n justify-content: flex-end;\\n padding: 0 12px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h:before {\\n display: none !important;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h .am-modal-button {\\n flex: initial;\\n margin-left: 3px;\\n padding: 0 15px;\\n height: 48px;\\n box-sizing: border-box;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h .am-modal-button:first-child {\\n color: #777;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h .am-modal-button:last-child {\\n border-left: 0;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-h .am-modal-button:last-child:before {\\n display: none !important;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-v.am-modal-button-group-normal {\\n display: flex;\\n justify-content: flex-end;\\n overflow: hidden;\\n padding: 0 12px;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-v.am-modal-button-group-normal .am-modal-button {\\n border-top: 0;\\n padding: 0 15px;\\n margin-left: 3px;\\n height: 48px;\\n box-sizing: border-box;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-v.am-modal-button-group-normal .am-modal-button:before {\\n display: none !important;\\n}\\n.am-modal.am-modal-transparent.am-modal-android .am-modal-content .am-modal-footer .am-modal-button-group-operation .am-modal-button {\\n text-align: start;\\n padding-left: 15px;\\n}\\n.am-modal.am-modal-operation .am-modal-content {\\n border-radius: 7px;\\n height: auto;\\n padding-top: 0;\\n}\\n.am-modal.am-modal-operation .am-modal-content .am-modal-body {\\n padding: 0!important;\\n}\\n.am-modal.am-modal-operation .am-modal-content .am-modal-button {\\n color: #000;\\n text-align: left;\\n padding-left: 15px;\\n}\\n.am-modal-alert-content,\\n.am-modal-propmt-content {\\n zoom: 1;\\n overflow: hidden;\\n}\\n.am-navbar {\\n display: flex;\\n align-items: center;\\n height: 45px;\\n background-color: #108ee9;\\n color: #fff;\\n}\\n.am-navbar-left,\\n.am-navbar-title,\\n.am-navbar-right {\\n flex: 1;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n}\\n.am-navbar-left {\\n padding-left: 15px;\\n font-size: 16px;\\n}\\n.am-navbar-left-icon {\\n margin-right: 5px;\\n display: inherit;\\n}\\n.am-navbar-title {\\n justify-content: center;\\n font-size: 18px;\\n white-space: nowrap;\\n}\\n.am-navbar-right {\\n justify-content: flex-end;\\n font-size: 16px;\\n margin-right: 15px;\\n}\\n.am-navbar-light {\\n background-color: #fff;\\n color: #108ee9;\\n}\\n.am-navbar-light .am-navbar-title {\\n color: #000;\\n}\\n.am-notice-bar {\\n background-color: #fefcec;\\n height: 36px;\\n overflow: hidden;\\n font-size: 14px;\\n line-height: 36px;\\n color: #f76a24;\\n display: flex;\\n}\\n.am-notice-bar-content {\\n flex: 1;\\n width: 100%;\\n margin: auto 15px;\\n width: auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.am-notice-bar-icon {\\n margin-left: 15px;\\n display: flex;\\n align-items: center;\\n}\\n.am-notice-bar-icon .am-notice-bar-trips {\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2238%22%20height%3D%2233%22%20viewBox%3D%220%200%2038%2033%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Etrips%3C%2Ftitle%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M17.838%2028.8c-.564-.468-1.192-.983-1.836-1.496-4.244-3.385-5.294-3.67-6.006-3.67-.014%200-.027.005-.04.005-.015%200-.028-.005-.042-.005H3.562c-.734%200-.903-.203-.903-.928V10.085c0-.49.058-.8.66-.8h5.782c.693%200%201.758-.28%206.4-3.628.828-.597%201.637-1.197%202.336-1.723V28.8zM19.682.19c-.463-.22-1.014-.158-1.417.157-.02.016-1.983%201.552-4.152%203.125C10.34%206.21%209.243%206.664%209.02%206.737H3.676c-.027%200-.053.003-.08.004H1.183c-.608%200-1.1.486-1.1%201.085V25.14c0%20.598.492%201.084%201.1%201.084h8.71c.22.08%201.257.55%204.605%203.24%201.947%201.562%203.694%203.088%203.712%203.103.25.22.568.333.89.333.186%200%20.373-.038.55-.116.48-.213.79-.684.79-1.204V1.38c0-.506-.294-.968-.758-1.19z%22%20mask%3D%22url(%23mask-2)%22%2F%3E%3Cpath%20d%3D%22M31.42%2016.475c0-3.363-1.854-6.297-4.606-7.876-.125-.066-.42-.192-.625-.192-.612%200-1.108.488-1.108%201.09%200%20.404.22.764.55.952%202.128%201.19%203.565%203.442%203.565%206.025%200%202.627-1.486%204.913-3.677%206.087-.318.19-.53.54-.53.934%200%20.602.496%201.09%201.107%201.09.26.002.568-.15.568-.15%202.835-1.556%204.754-4.538%204.754-7.96%22%20mask%3D%22url(%23mask-4)%22%2F%3E%3Cg%3E%3Cpath%20d%3D%22M30.14%203.057c-.205-.122-.41-.22-.658-.22-.608%200-1.1.485-1.1%201.084%200%20.433.26.78.627.977%204.043%202.323%206.762%206.636%206.762%2011.578%200%204.938-2.716%209.248-6.755%2011.572-.354.19-.66.55-.66.993%200%20.6.494%201.084%201.102%201.084.243%200%20.438-.092.65-.213%204.692-2.695%207.848-7.7%207.848-13.435%200-5.723-3.142-10.718-7.817-13.418%22%20mask%3D%22url(%23mask-6)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-notice-bar-icon + div {\\n margin-left: 5px;\\n}\\n.am-notice-bar-operation {\\n display: flex;\\n align-items: center;\\n padding-right: 8px;\\n}\\n.am-pagination-wrap {\\n font-size: 18px;\\n color: #000;\\n background: none;\\n text-align: center;\\n}\\n.am-pagination-wrap .active {\\n color: #108ee9;\\n}\\n.am-pagination-wrap-btn {\\n text-align: center;\\n}\\n.am-pagination-wrap-btn-prev {\\n text-align: left;\\n}\\n.am-pagination-wrap-btn-next {\\n text-align: right;\\n}\\n.am-pagination-wrap-dot {\\n display: inline-block;\\n zoom: 1;\\n}\\n.am-pagination-wrap-dot > span {\\n display: block;\\n width: 8px;\\n height: 8px;\\n margin-right: 5px;\\n border-radius: 50%;\\n background: #ccc;\\n}\\n.am-pagination-wrap-dot-active > span {\\n background: #888;\\n}\\n.am-popover {\\n position: absolute;\\n z-index: 1999;\\n}\\n.am-popover-hidden {\\n display: none;\\n}\\n.am-popover-mask {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.4);\\n height: 100%;\\n z-index: 999;\\n}\\n.am-popover-mask-hidden {\\n display: none;\\n}\\n.am-popover-arrow {\\n position: absolute;\\n width: 7px;\\n height: 7px;\\n border-radius: 1PX;\\n background-color: #fff;\\n transform: rotate(45deg);\\n z-index: 0;\\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.21);\\n}\\n.am-popover-placement-top .am-popover-arrow,\\n.am-popover-placement-topLeft .am-popover-arrow,\\n.am-popover-placement-topRight .am-popover-arrow {\\n transform: rotate(225deg);\\n bottom: -3.5px;\\n}\\n.am-popover-placement-top .am-popover-arrow {\\n left: 50%;\\n}\\n.am-popover-placement-topLeft .am-popover-arrow {\\n left: 8px;\\n}\\n.am-popover-placement-topRight .am-popover-arrow {\\n right: 8px;\\n}\\n.am-popover-placement-right .am-popover-arrow,\\n.am-popover-placement-rightTop .am-popover-arrow,\\n.am-popover-placement-rightBottom .am-popover-arrow {\\n transform: rotate(-45deg);\\n left: -3.5px;\\n}\\n.am-popover-placement-right .am-popover-arrow {\\n top: 50%;\\n}\\n.am-popover-placement-rightTop .am-popover-arrow {\\n top: 8px;\\n}\\n.am-popover-placement-rightBottom .am-popover-arrow {\\n bottom: 8px;\\n}\\n.am-popover-placement-left .am-popover-arrow,\\n.am-popover-placement-leftTop .am-popover-arrow,\\n.am-popover-placement-leftBottom .am-popover-arrow {\\n transform: rotate(135deg);\\n right: -3.5px;\\n}\\n.am-popover-placement-left .am-popover-arrow {\\n top: 50%;\\n}\\n.am-popover-placement-leftTop .am-popover-arrow {\\n top: 8px;\\n}\\n.am-popover-placement-leftBottom .am-popover-arrow {\\n bottom: 8px;\\n}\\n.am-popover-placement-bottom .am-popover-arrow,\\n.am-popover-placement-bottomLeft .am-popover-arrow,\\n.am-popover-placement-bottomRight .am-popover-arrow {\\n top: -3.5px;\\n}\\n.am-popover-placement-bottom .am-popover-arrow {\\n left: 50%;\\n}\\n.am-popover-placement-bottomLeft .am-popover-arrow {\\n left: 8px;\\n}\\n.am-popover-placement-bottomRight .am-popover-arrow {\\n right: 8px;\\n}\\n.am-popover-inner {\\n font-size: 15px;\\n color: #000;\\n background-color: #fff;\\n border-radius: 3px;\\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.21);\\n overflow: hidden;\\n}\\n.am-popover-inner-wrapper {\\n position: relative;\\n background-color: #fff;\\n}\\n.am-popover .am-popover-item {\\n padding: 0 8px;\\n}\\n.am-popover .am-popover-item-container {\\n position: relative;\\n display: flex;\\n align-items: center;\\n height: 39px;\\n box-sizing: border-box;\\n padding: 0 8px;\\n}\\n.am-popover .am-popover-item:not(:first-child) .am-popover-item-container {\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-popover .am-popover-item:not(:first-child) .am-popover-item-container {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-popover .am-popover-item:not(:first-child) .am-popover-item-container::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-popover .am-popover-item:not(:first-child) .am-popover-item-container::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-popover .am-popover-item.am-popover-item-active .am-popover-item-container {\\n border-top: 0;\\n}\\n.am-popover .am-popover-item.am-popover-item-active .am-popover-item-container:before {\\n display: none !important;\\n}\\n.am-popover .am-popover-item.am-popover-item-active + .am-popover-item .am-popover-item-container {\\n border-top: 0;\\n}\\n.am-popover .am-popover-item.am-popover-item-active + .am-popover-item .am-popover-item-container:before {\\n display: none !important;\\n}\\n.am-popover .am-popover-item.am-popover-item-active {\\n background-color: #ddd;\\n}\\n.am-popover .am-popover-item.am-popover-item-active.am-popover-item-fix-active-arrow {\\n position: relative;\\n}\\n.am-popover .am-popover-item.am-popover-item-disabled {\\n color: #bbb;\\n}\\n.am-popover .am-popover-item.am-popover-item-disabled.am-popover-item-active {\\n background-color: transparent;\\n}\\n.am-popover .am-popover-item-icon {\\n margin-right: 8px;\\n width: 18px;\\n height: 18px;\\n}\\n.am-progress-outer {\\n background-color: #ddd;\\n display: block;\\n}\\n.am-progress-fixed-outer {\\n position: fixed;\\n width: 100%;\\n top: 0;\\n left: 0;\\n z-index: 2000;\\n}\\n.am-progress-hide-outer {\\n background-color: transparent;\\n}\\n.am-progress-bar {\\n border: 2px solid #108ee9;\\n transition: all .3s linear 0s;\\n}\\n.am-pull-to-refresh-content {\\n transform-origin: left top 0;\\n}\\n.am-pull-to-refresh-content-wrapper {\\n overflow: hidden;\\n}\\n.am-pull-to-refresh-transition {\\n transition: transform 0.3s;\\n}\\n.am-pull-to-refresh-indicator {\\n color: grey;\\n text-align: center;\\n height: 25px;\\n}\\n.am-pull-to-refresh-down .am-pull-to-refresh-indicator {\\n margin-top: -25px;\\n}\\n.am-pull-to-refresh-up .am-pull-to-refresh-indicator {\\n margin-bottom: -25px;\\n}\\n.am-slider {\\n position: relative;\\n}\\n.am-slider-rail {\\n position: absolute;\\n width: 100%;\\n background-color: #ddd;\\n height: 2px;\\n box-sizing: border-box;\\n}\\n.am-slider-track {\\n position: absolute;\\n left: 0;\\n height: 2px;\\n border-radius: 2px;\\n background-color: #108ee9;\\n}\\n.am-slider-handle {\\n position: absolute;\\n margin-left: -12px;\\n margin-top: -10px;\\n width: 22px;\\n height: 22px;\\n cursor: pointer;\\n border-radius: 50%;\\n border: 2px solid #108ee9;\\n background-color: #fff;\\n box-sizing: border-box;\\n}\\n.am-slider-handle:focus {\\n background-color: #40a5ed;\\n}\\n.am-slider-mark {\\n position: absolute;\\n top: 20px;\\n left: 0;\\n width: 100%;\\n font-size: 12px;\\n}\\n.am-slider-mark-text {\\n position: absolute;\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n color: #000;\\n}\\n.am-slider-mark-text-active {\\n opacity: 0.3;\\n}\\n.am-slider-step {\\n position: absolute;\\n width: 100%;\\n height: 4px;\\n background: transparent;\\n}\\n.am-slider-dot {\\n position: absolute;\\n bottom: -5px;\\n margin-left: -4px;\\n width: 12px;\\n height: 12px;\\n border: 2px solid #ddd;\\n background-color: #fff;\\n cursor: pointer;\\n border-radius: 50%;\\n vertical-align: middle;\\n}\\n.am-slider-dot:first-child {\\n margin-left: -4px;\\n}\\n.am-slider-dot:last-child {\\n margin-left: -4px;\\n}\\n.am-slider-dot-active {\\n border-color: #108ee9;\\n}\\n.am-slider-disabled {\\n opacity: 0.3;\\n}\\n.am-slider-disabled .am-slider-track {\\n height: 2px;\\n}\\n.am-slider-disabled .am-slider-handle,\\n.am-slider-disabled .am-slider-mark-text,\\n.am-slider-disabled .am-slider-dot {\\n cursor: not-allowed;\\n box-shadow: none;\\n}\\n.am-result {\\n position: relative;\\n text-align: center;\\n width: 100%;\\n padding-top: 30px;\\n padding-bottom: 21px;\\n background-color: #fff;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-result {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-result::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-result::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-result .am-result-pic {\\n width: 60px;\\n height: 60px;\\n margin: 0 auto;\\n line-height: 60px;\\n background-size: 60px 60px;\\n}\\n.am-result .am-result-title,\\n.am-result .am-result-message {\\n font-size: 21px;\\n color: #000;\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n.am-result .am-result-title {\\n margin-top: 15px;\\n line-height: 1;\\n}\\n.am-result .am-result-message {\\n margin-top: 9px;\\n line-height: 1.5;\\n font-size: 16px;\\n color: #888;\\n}\\n.am-result .am-result-button {\\n padding: 0 15px;\\n margin-top: 15px;\\n}\\n/* 默认搜索bar */\\n.am-search {\\n position: relative;\\n display: flex;\\n align-items: center;\\n height: 44px;\\n padding: 0 8px;\\n overflow: hidden;\\n background-color: #efeff4;\\n}\\n.am-search-input {\\n flex: 1;\\n position: relative;\\n width: 100%;\\n height: 28px;\\n overflow: hidden;\\n background-color: #fff;\\n background-clip: padding-box;\\n border-radius: 3px;\\n}\\n.am-search-input .am-search-synthetic-ph,\\n.am-search-input input[type=\\\"search\\\"] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n.am-search-input .am-search-synthetic-ph {\\n box-sizing: content-box;\\n z-index: 1;\\n height: 28px;\\n line-height: 28px;\\n width: 100%;\\n transition: width .3s;\\n display: block;\\n text-align: center;\\n}\\n.am-search-input .am-search-synthetic-ph-icon {\\n display: inline-block;\\n margin-right: 5px;\\n width: 15px;\\n height: 15px;\\n overflow: hidden;\\n vertical-align: -2.5px;\\n background-repeat: no-repeat;\\n background-size: 15px auto;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D'38'%20height%3D'36'%20viewBox%3D'0%200%2038%2036'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M29.05%2025.23a15.81%2015.81%200%200%200%203.004-9.294c0-8.8-7.17-15.934-16.017-15.934C7.192.002.02%207.136.02%2015.936c0%208.802%207.172%2015.937%2016.017%2015.937%204.148%200%207.928-1.569%2010.772-4.143l8.873%208.232%202.296-2.45-8.927-8.282zM16.2%2028.933c-7.19%200-13.04-5.788-13.04-12.903%200-7.113%205.85-12.904%2013.04-12.904%207.19%200%2012.9%205.79%2012.9%2012.904%200%207.115-5.71%2012.903-12.9%2012.903z'%20fill%3D'%23bbb'%20fill-rule%3D'evenodd'%2F%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-search-input .am-search-synthetic-ph-placeholder {\\n color: #bbb;\\n font-size: 15px;\\n}\\n.am-search-input input[type=\\\"search\\\"] {\\n z-index: 2;\\n opacity: 0;\\n width: 100%;\\n text-align: left;\\n display: block;\\n color: #000;\\n height: 28px;\\n font-size: 15px;\\n background-color: transparent;\\n border: 0;\\n}\\n.am-search-input input[type=\\\"search\\\"]::-moz-placeholder {\\n background: none;\\n text-align: left;\\n color: transparent;\\n}\\n.am-search-input input[type=\\\"search\\\"]::placeholder {\\n background: none;\\n text-align: left;\\n color: transparent;\\n}\\n.am-search-input input[type=\\\"search\\\"]::-webkit-search-cancel-button {\\n -webkit-appearance: none;\\n}\\n.am-search-input .am-search-clear {\\n box-sizing: content-box;\\n position: absolute;\\n display: none;\\n z-index: 3;\\n width: 15px;\\n height: 15px;\\n padding: 6.5px;\\n border-radius: 50%;\\n top: 0;\\n right: 0;\\n background-color: transparent;\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 15px 15px;\\n transition: all .3s;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2028%2028'%3E%3Ccircle%20cx%3D'14'%20cy%3D'14'%20r%3D'14'%20fill%3D'%23ccc'%2F%3E%3Cline%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'8'%20y1%3D'8'%20x2%3D'20'%20y2%3D'20'%2F%3E%3Cline%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'20'%20y1%3D'8'%20x2%3D'8'%20y2%3D'20'%2F%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-search-input .am-search-clear-active {\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2028%2028'%3E%3Ccircle%20cx%3D'14'%20cy%3D'14'%20r%3D'14'%20fill%3D'%23108ee9'%2F%3E%3Cline%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'8'%20y1%3D'8'%20x2%3D'20'%20y2%3D'20'%2F%3E%3Cline%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20stroke-miterlimit%3D'10'%20x1%3D'20'%20y1%3D'8'%20x2%3D'8'%20y2%3D'20'%2F%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-search-input .am-search-clear-show {\\n display: block;\\n}\\n.am-search-cancel {\\n flex: none;\\n opacity: 0;\\n padding-left: 8px;\\n height: 44px;\\n line-height: 44px;\\n font-size: 16px;\\n color: #108ee9;\\n text-align: right;\\n}\\n.am-search-cancel-anim {\\n transition: margin-right 0.3s, opacity 0.3s;\\n transition-delay: .1s;\\n}\\n.am-search-cancel-show {\\n opacity: 1;\\n}\\n.am-search.am-search-start .am-search-input input[type=\\\"search\\\"] {\\n opacity: 1;\\n padding: 0 28px 0 35px;\\n}\\n.am-search.am-search-start .am-search-input input[type=\\\"search\\\"]::-moz-placeholder {\\n color: transparent;\\n}\\n.am-search.am-search-start .am-search-input input[type=\\\"search\\\"]::placeholder {\\n color: transparent;\\n}\\n.am-search.am-search-start .am-search-input .am-search-synthetic-ph {\\n padding-left: 15px;\\n width: auto;\\n}\\n.am-segment {\\n display: flex;\\n border-radius: 5px;\\n overflow: hidden;\\n min-height: 27px;\\n opacity: 1;\\n}\\n.am-segment.am-segment-disabled {\\n opacity: 0.5;\\n}\\n.am-segment-item {\\n display: flex;\\n flex: 1;\\n justify-content: center;\\n align-items: center;\\n color: #108ee9;\\n font-size: 14px;\\n line-height: 1;\\n transition: background .2s;\\n position: relative;\\n border: 1PX solid #108ee9;\\n width: 100%;\\n box-sizing: border-box;\\n border-left-width: 0;\\n}\\n.am-segment-item-tintcolor {\\n border-color: #108ee9;\\n}\\n.am-segment-item:first-child {\\n border-left-width: 1PX;\\n border-radius: 5px 0 0 5px;\\n}\\n.am-segment-item:last-child {\\n border-radius: 0 5px 5px 0;\\n}\\n.am-segment-item-selected {\\n background: #108ee9;\\n color: #fff;\\n}\\n.am-segment-item-active .am-segment-item-inner {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n opacity: 0.1;\\n transition: background .2s;\\n background-color: #108ee9;\\n}\\n.am-slider {\\n position: relative;\\n}\\n.am-slider-rail {\\n position: absolute;\\n width: 100%;\\n background-color: #ddd;\\n height: 2px;\\n box-sizing: border-box;\\n}\\n.am-slider-track {\\n position: absolute;\\n left: 0;\\n height: 2px;\\n border-radius: 2px;\\n background-color: #108ee9;\\n}\\n.am-slider-handle {\\n position: absolute;\\n margin-left: -12px;\\n margin-top: -10px;\\n width: 22px;\\n height: 22px;\\n cursor: pointer;\\n border-radius: 50%;\\n border: 2px solid #108ee9;\\n background-color: #fff;\\n box-sizing: border-box;\\n}\\n.am-slider-handle:focus {\\n background-color: #40a5ed;\\n}\\n.am-slider-mark {\\n position: absolute;\\n top: 20px;\\n left: 0;\\n width: 100%;\\n font-size: 12px;\\n}\\n.am-slider-mark-text {\\n position: absolute;\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n color: #000;\\n}\\n.am-slider-mark-text-active {\\n opacity: 0.3;\\n}\\n.am-slider-step {\\n position: absolute;\\n width: 100%;\\n height: 4px;\\n background: transparent;\\n}\\n.am-slider-dot {\\n position: absolute;\\n bottom: -5px;\\n margin-left: -4px;\\n width: 12px;\\n height: 12px;\\n border: 2px solid #ddd;\\n background-color: #fff;\\n cursor: pointer;\\n border-radius: 50%;\\n vertical-align: middle;\\n}\\n.am-slider-dot:first-child {\\n margin-left: -4px;\\n}\\n.am-slider-dot:last-child {\\n margin-left: -4px;\\n}\\n.am-slider-dot-active {\\n border-color: #108ee9;\\n}\\n.am-slider-disabled {\\n opacity: 0.3;\\n}\\n.am-slider-disabled .am-slider-track {\\n height: 2px;\\n}\\n.am-slider-disabled .am-slider-handle,\\n.am-slider-disabled .am-slider-mark-text,\\n.am-slider-disabled .am-slider-dot {\\n cursor: not-allowed;\\n box-shadow: none;\\n}\\n.am-stepper {\\n position: relative;\\n margin: 0;\\n padding: 2px 0;\\n display: inline-block;\\n box-sizing: content-box;\\n width: 63px;\\n height: 35px;\\n line-height: 35px;\\n font-size: 14px;\\n vertical-align: middle;\\n overflow: hidden;\\n}\\n.am-stepper-handler-wrap {\\n position: absolute;\\n width: 100%;\\n font-size: 24px;\\n}\\n.am-stepper-handler,\\n.am-stepper-handler-up-inner,\\n.am-stepper-handler-down-inner {\\n width: 30px;\\n height: 30px;\\n line-height: 30px;\\n}\\n.am-stepper-handler {\\n text-align: center;\\n border: 1PX solid #ddd;\\n border-radius: 5px;\\n overflow: hidden;\\n color: #000;\\n position: absolute;\\n display: inline-block;\\n box-sizing: content-box;\\n}\\n.am-stepper-handler-active {\\n z-index: 2;\\n background-color: #ddd;\\n}\\n.am-stepper-handler-up-inner,\\n.am-stepper-handler-down-inner {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n right: 2px;\\n color: #000;\\n}\\n.am-stepper-input-wrap {\\n display: none;\\n width: 100%;\\n height: 30px;\\n line-height: 30px;\\n text-align: center;\\n overflow: hidden;\\n}\\n.am-stepper-input {\\n display: none;\\n width: 60px;\\n font-size: 16px;\\n color: #000;\\n text-align: center;\\n border: 0;\\n padding: 0;\\n background: none;\\n vertical-align: middle;\\n}\\n.am-stepper-input[disabled] {\\n opacity: 1;\\n color: #000;\\n}\\n.am-stepper.showNumber {\\n width: 138px;\\n}\\n.am-stepper.showNumber .am-stepper-input-wrap {\\n display: inline-block;\\n}\\n.am-stepper.showNumber .am-stepper-input {\\n display: inline-block;\\n}\\n.am-stepper.showNumber .am-stepper-handler-down-disabled {\\n right: -1PX;\\n}\\n.am-stepper-handler-up {\\n cursor: pointer;\\n right: 0;\\n}\\n.am-stepper-handler-up-inner:before {\\n text-align: center;\\n content: \\\"+\\\";\\n}\\n.am-stepper-handler-down {\\n cursor: pointer;\\n left: 0;\\n}\\n.am-stepper-handler-down-inner:before {\\n text-align: center;\\n content: \\\"-\\\";\\n}\\n.am-stepper-handler-down-disabled,\\n.am-stepper-handler-up-disabled {\\n opacity: 0.3;\\n}\\n.am-stepper-handler-up-disabled .am-stepper-handler-active {\\n background: none;\\n}\\n.am-stepper-disabled .am-stepper-handler-down,\\n.am-stepper-disabled .am-stepper-handler-up {\\n opacity: 0.3;\\n background: none;\\n}\\n.am-stepper-disabled .am-stepper-handler {\\n opacity: 0.3;\\n}\\n.am-stepper-disabled .am-stepper-input-wrap {\\n opacity: 0.3;\\n}\\n.am-steps {\\n font-size: 0;\\n width: 100%;\\n line-height: 1.5;\\n display: flex;\\n}\\n.am-steps,\\n.am-steps * {\\n box-sizing: border-box;\\n}\\n.am-steps-item {\\n position: relative;\\n display: inline-block;\\n vertical-align: top;\\n flex: 1;\\n overflow: hidden;\\n}\\n.am-steps-item:last-child {\\n flex: none;\\n}\\n.am-steps-item:last-child .am-steps-item-tail,\\n.am-steps-item:last-child .am-steps-item-title:after {\\n display: none;\\n}\\n.am-steps-item-icon,\\n.am-steps-item-content {\\n display: inline-block;\\n vertical-align: top;\\n}\\n.am-steps-item-icon {\\n border: 1px solid #bbb;\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n border-radius: 22px;\\n text-align: center;\\n font-size: 14px;\\n margin-right: 8px;\\n transition: background-color 0.3s, border-color 0.3s;\\n}\\n.am-steps-item-icon > .am-steps-icon {\\n line-height: 1;\\n top: -1px;\\n color: #108ee9;\\n position: relative;\\n}\\n.am-steps-item-icon > .am-steps-icon .am-icon {\\n font-size: 12px;\\n position: relative;\\n float: left;\\n}\\n.am-steps-item-tail {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n top: 12px;\\n padding: 0 10px;\\n}\\n.am-steps-item-tail:after {\\n content: '';\\n display: inline-block;\\n background: #ddd;\\n height: 1px;\\n border-radius: 1px;\\n width: 100%;\\n transition: background .3s;\\n position: relative;\\n left: -2px;\\n}\\n.am-steps-item-content {\\n margin-top: 3px;\\n}\\n.am-steps-item-title {\\n font-size: 16px;\\n margin-bottom: 4px;\\n color: #000;\\n font-weight: bold;\\n display: inline-block;\\n padding-right: 10px;\\n position: relative;\\n}\\n.am-steps-item-description {\\n font-size: 15px;\\n color: #bbb;\\n}\\n.am-steps-item-wait .am-steps-item-icon {\\n border-color: #ccc;\\n background-color: #fff;\\n}\\n.am-steps-item-wait .am-steps-item-icon > .am-steps-icon {\\n color: #ccc;\\n}\\n.am-steps-item-wait .am-steps-item-icon > .am-steps-icon .am-steps-icon-dot {\\n background: #ccc;\\n}\\n.am-steps-item-wait .am-steps-item-title {\\n color: #000;\\n}\\n.am-steps-item-wait .am-steps-item-title:after {\\n background-color: #ddd;\\n}\\n.am-steps-item-wait .am-steps-item-description {\\n color: #000;\\n}\\n.am-steps-item-wait .am-steps-item-tail:after {\\n background-color: #ddd;\\n}\\n.am-steps-item-process .am-steps-item-icon {\\n border-color: #108ee9;\\n background-color: #fff;\\n}\\n.am-steps-item-process .am-steps-item-icon > .am-steps-icon {\\n color: #108ee9;\\n}\\n.am-steps-item-process .am-steps-item-icon > .am-steps-icon .am-steps-icon-dot {\\n background: #108ee9;\\n}\\n.am-steps-item-process .am-steps-item-title {\\n color: #000;\\n}\\n.am-steps-item-process .am-steps-item-title:after {\\n background-color: #ddd;\\n}\\n.am-steps-item-process .am-steps-item-description {\\n color: #000;\\n}\\n.am-steps-item-process .am-steps-item-tail:after {\\n background-color: #ddd;\\n}\\n.am-steps-item-process .am-steps-item-icon {\\n background: #108ee9;\\n}\\n.am-steps-item-process .am-steps-item-icon > .am-steps-icon {\\n color: #fff;\\n}\\n.am-steps-item-finish .am-steps-item-icon {\\n border-color: #108ee9;\\n background-color: #fff;\\n}\\n.am-steps-item-finish .am-steps-item-icon > .am-steps-icon {\\n color: #108ee9;\\n}\\n.am-steps-item-finish .am-steps-item-icon > .am-steps-icon .am-steps-icon-dot {\\n background: #108ee9;\\n}\\n.am-steps-item-finish .am-steps-item-title {\\n color: #000;\\n}\\n.am-steps-item-finish .am-steps-item-title:after {\\n background-color: #108ee9;\\n}\\n.am-steps-item-finish .am-steps-item-description {\\n color: #000;\\n}\\n.am-steps-item-finish .am-steps-item-tail:after {\\n background-color: #108ee9;\\n}\\n.am-steps-item-error .am-steps-item-icon {\\n border-color: #f4333c;\\n background-color: #fff;\\n}\\n.am-steps-item-error .am-steps-item-icon > .am-steps-icon {\\n color: #f4333c;\\n}\\n.am-steps-item-error .am-steps-item-icon > .am-steps-icon .am-steps-icon-dot {\\n background: #f4333c;\\n}\\n.am-steps-item-error .am-steps-item-title {\\n color: #f4333c;\\n}\\n.am-steps-item-error .am-steps-item-title:after {\\n background-color: #ddd;\\n}\\n.am-steps-item-error .am-steps-item-description {\\n color: #f4333c;\\n}\\n.am-steps-item-error .am-steps-item-tail:after {\\n background-color: #ddd;\\n}\\n.am-steps-item.am-steps-next-error .am-steps-item-title:after {\\n background: #f4333c;\\n}\\n.am-steps-item.error-tail .am-steps-item-tail:after {\\n background-color: #f4333c;\\n}\\n.am-steps-horizontal:not(.am-steps-label-vertical) .am-steps-item {\\n margin-right: 10px;\\n}\\n.am-steps-horizontal:not(.am-steps-label-vertical) .am-steps-item:last-child {\\n margin-right: 0;\\n}\\n.am-steps-horizontal:not(.am-steps-label-vertical) .am-steps-item-tail {\\n display: none;\\n}\\n.am-steps-horizontal:not(.am-steps-label-vertical) .am-steps-item-description {\\n max-width: 100px;\\n}\\n.am-steps-item-custom .am-steps-item-icon {\\n background: none;\\n border: 0;\\n width: auto;\\n height: auto;\\n}\\n.am-steps-item-custom .am-steps-item-icon > .am-steps-icon {\\n font-size: 22px;\\n top: 1px;\\n width: 22px;\\n height: 22px;\\n}\\n.am-steps-item-custom.am-steps-item-process .am-steps-item-icon > .am-steps-icon {\\n color: #108ee9;\\n}\\n.am-steps-small .am-steps-item-icon {\\n width: 18px;\\n height: 18px;\\n line-height: 18px;\\n text-align: center;\\n border-radius: 18px;\\n font-size: 14px;\\n margin-right: 8px;\\n}\\n.am-steps-small .am-steps-item-icon > .am-steps-icon {\\n font-size: 12px;\\n transform: scale(0.75);\\n top: -2px;\\n}\\n.am-steps-small .am-steps-item-content {\\n margin-top: 0;\\n}\\n.am-steps-small .am-steps-item-title {\\n font-size: 16px;\\n margin-bottom: 3px;\\n color: #000;\\n font-weight: bold;\\n}\\n.am-steps-small .am-steps-item-description {\\n font-size: 12px;\\n color: #bbb;\\n}\\n.am-steps-small .am-steps-item-tail {\\n top: 8px;\\n padding: 0 8px;\\n}\\n.am-steps-small .am-steps-item-tail:after {\\n height: 1px;\\n border-radius: 1px;\\n width: 100%;\\n left: 0;\\n}\\n.am-steps-small .am-steps-item-custom .am-steps-item-icon {\\n background: none;\\n}\\n.am-steps-small .am-steps-item-custom .am-steps-item-icon > .am-steps-icon {\\n font-size: 18px;\\n top: -2px;\\n transform: none;\\n}\\n.am-steps-vertical {\\n display: block;\\n}\\n.am-steps-vertical .am-steps-item {\\n display: block;\\n overflow: visible;\\n}\\n.am-steps-vertical .am-steps-item-icon {\\n float: left;\\n}\\n.am-steps-vertical .am-steps-item-icon-inner {\\n margin-right: 16px;\\n}\\n.am-steps-vertical .am-steps-item-content {\\n min-height: 48px;\\n overflow: hidden;\\n display: block;\\n}\\n.am-steps-vertical .am-steps-item-title {\\n line-height: 26px;\\n}\\n.am-steps-vertical .am-steps-item-title:after {\\n display: none;\\n}\\n.am-steps-vertical .am-steps-item-description {\\n padding-bottom: 12px;\\n}\\n.am-steps-vertical .am-steps-item-tail {\\n position: absolute;\\n left: 13px;\\n top: 0;\\n height: 100%;\\n width: 1px;\\n padding: 30px 0 4px 0;\\n}\\n.am-steps-vertical .am-steps-item-tail:after {\\n height: 100%;\\n width: 1px;\\n}\\n.am-steps-vertical.am-steps-small .am-steps-item-tail {\\n position: absolute;\\n left: 9px;\\n top: 0;\\n padding: 22px 0 4px 0;\\n}\\n.am-steps-vertical.am-steps-small .am-steps-item-title {\\n line-height: 18px;\\n}\\n.am-steps-label-vertical .am-steps-item {\\n overflow: visible;\\n}\\n.am-steps-label-vertical .am-steps-item-tail {\\n padding: 0 24px;\\n margin-left: 48px;\\n}\\n.am-steps-label-vertical .am-steps-item-content {\\n display: block;\\n text-align: center;\\n margin-top: 8px;\\n width: 100px;\\n}\\n.am-steps-label-vertical .am-steps-item-icon {\\n display: inline-block;\\n margin-left: 36px;\\n}\\n.am-steps-label-vertical .am-steps-item-title {\\n padding-right: 0;\\n}\\n.am-steps-label-vertical .am-steps-item-title:after {\\n display: none;\\n}\\n.am-swipe {\\n overflow: hidden;\\n position: relative;\\n}\\n.am-swipe-content {\\n position: relative;\\n background-color: #fff;\\n}\\n.am-swipe-cover {\\n position: absolute;\\n z-index: 2;\\n background: transparent;\\n height: 100%;\\n width: 100%;\\n top: 0;\\n display: none;\\n}\\n.am-swipe .am-swipe-content,\\n.am-swipe .am-swipe-actions {\\n transition: all 250ms;\\n}\\n.am-swipe-swiping .am-swipe-content,\\n.am-swipe-swiping .am-swipe-actions {\\n transition: none;\\n}\\n.am-swipe-swiping .am-list-item-active {\\n background-color: #FFF;\\n}\\n.am-swipe-actions {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n display: flex;\\n overflow: hidden;\\n white-space: nowrap;\\n}\\n.am-swipe-actions-left {\\n left: 0;\\n}\\n.am-swipe-actions-right {\\n right: 0;\\n}\\n.am-swipe-btn {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n}\\n.am-swipe-btn-text {\\n padding: 0 8px;\\n}\\n.am-switch {\\n display: inline-block;\\n vertical-align: middle;\\n box-sizing: border-box;\\n position: relative;\\n cursor: pointer;\\n align-self: center;\\n}\\n.am-switch .checkbox {\\n width: 51px;\\n height: 31px;\\n border-radius: 31px;\\n box-sizing: border-box;\\n background: #e5e5e5;\\n z-index: 0;\\n margin: 0;\\n padding: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n border: 0;\\n cursor: pointer;\\n position: relative;\\n transition: all 300ms;\\n}\\n.am-switch .checkbox:before {\\n content: ' ';\\n position: absolute;\\n left: 2px;\\n top: 2px;\\n width: 47px;\\n height: 27px;\\n border-radius: 27px;\\n box-sizing: border-box;\\n background: #fff;\\n z-index: 1;\\n transition: all 200ms;\\n transform: scale(1);\\n}\\n.am-switch .checkbox:after {\\n content: ' ';\\n width: 27px;\\n height: 27px;\\n border-radius: 27px;\\n background: #fff;\\n position: absolute;\\n z-index: 2;\\n top: 2px;\\n left: 2px;\\n transform: translateX(0);\\n transition: all 200ms;\\n box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2), 0 2px 11.5px 0 rgba(0, 0, 0, 0.08), -1px 2px 2px 0 rgba(0, 0, 0, 0.1);\\n}\\n.am-switch .checkbox.checkbox-disabled {\\n z-index: 3;\\n}\\n.am-switch input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 2;\\n border: 0 none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n.am-switch input[type=\\\"checkbox\\\"]:checked + .checkbox {\\n background: #4dd865;\\n}\\n.am-switch input[type=\\\"checkbox\\\"]:checked + .checkbox:before {\\n transform: scale(0);\\n}\\n.am-switch input[type=\\\"checkbox\\\"]:checked + .checkbox:after {\\n transform: translateX(20px);\\n}\\n.am-switch input[type=\\\"checkbox\\\"]:disabled + .checkbox {\\n opacity: 0.3;\\n}\\n.am-switch.am-switch-android .checkbox {\\n width: 72px;\\n height: 23px;\\n border-radius: 3px;\\n background: #a7aaa6;\\n}\\n.am-switch.am-switch-android .checkbox:before {\\n display: none;\\n}\\n.am-switch.am-switch-android .checkbox:after {\\n width: 35px;\\n height: 21px;\\n border-radius: 2px;\\n box-shadow: none;\\n left: 1PX;\\n top: 1PX;\\n}\\n.am-switch.am-switch-android input[type=\\\"checkbox\\\"]:checked + .checkbox {\\n background: #108ee9;\\n}\\n.am-switch.am-switch-android input[type=\\\"checkbox\\\"]:checked + .checkbox:before {\\n transform: scale(0);\\n}\\n.am-switch.am-switch-android input[type=\\\"checkbox\\\"]:checked + .checkbox:after {\\n transform: translateX(35px);\\n}\\n.am-tabs {\\n box-sizing: border-box;\\n display: flex;\\n flex: 1;\\n position: relative;\\n overflow: hidden;\\n height: 100%;\\n width: 100%;\\n}\\n.am-tabs * {\\n box-sizing: border-box;\\n}\\n.am-tabs-content-wrap {\\n display: flex;\\n flex: 1;\\n width: 100%;\\n height: 100%;\\n min-height: 0;\\n}\\n.am-tabs-content-wrap-animated {\\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), left 0.3s cubic-bezier(0.35, 0, 0.25, 1), top 0.3s cubic-bezier(0.35, 0, 0.25, 1);\\n will-change: transform, left, top;\\n}\\n.am-tabs-pane-wrap {\\n width: 100%;\\n flex-shrink: 0;\\n overflow-y: auto;\\n}\\n.am-tabs-tab-bar-wrap {\\n flex-shrink: 0;\\n}\\n.am-tabs-horizontal .am-tabs-pane-wrap-active {\\n height: auto;\\n}\\n.am-tabs-horizontal .am-tabs-pane-wrap-inactive {\\n height: 0;\\n overflow: visible;\\n}\\n.am-tabs-vertical .am-tabs-content-wrap {\\n flex-direction: column;\\n}\\n.am-tabs-vertical .am-tabs-tab-bar-wrap {\\n height: 100%;\\n}\\n.am-tabs-vertical .am-tabs-pane-wrap {\\n height: 100%;\\n}\\n.am-tabs-vertical .am-tabs-pane-wrap-active {\\n overflow: auto;\\n}\\n.am-tabs-vertical .am-tabs-pane-wrap-inactive {\\n overflow: hidden;\\n}\\n.am-tabs-top,\\n.am-tabs-bottom {\\n flex-direction: column;\\n}\\n.am-tabs-left,\\n.am-tabs-right {\\n flex-direction: row;\\n}\\n.am-tabs-default-bar {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-direction: row;\\n width: 100%;\\n height: 100%;\\n overflow: visible;\\n z-index: 1;\\n}\\n.am-tabs-default-bar-tab {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n justify-content: center;\\n align-items: center;\\n font-size: 15px;\\n height: 43.5px;\\n line-height: 43.5px;\\n}\\n.am-tabs-default-bar-tab .am-badge .am-badge-text {\\n top: -13px;\\n transform: translateX(-5px);\\n}\\n.am-tabs-default-bar-tab .am-badge .am-badge-dot {\\n top: -6px;\\n transform: translateX(0);\\n}\\n.am-tabs-default-bar-tab-active {\\n color: #108ee9;\\n}\\n.am-tabs-default-bar-underline {\\n position: absolute;\\n border: 1px #108ee9 solid;\\n transform: translate3d(0, 0, 0);\\n}\\n.am-tabs-default-bar-animated .am-tabs-default-bar-content {\\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\\n will-change: transform;\\n}\\n.am-tabs-default-bar-animated .am-tabs-default-bar-underline {\\n transition: top 0.3s cubic-bezier(0.35, 0, 0.25, 1), left 0.3s cubic-bezier(0.35, 0, 0.25, 1), color 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.3s cubic-bezier(0.35, 0, 0.25, 1);\\n will-change: top, left, width, color;\\n}\\n.am-tabs-default-bar-top,\\n.am-tabs-default-bar-bottom {\\n flex-direction: row;\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-content,\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-content {\\n display: flex;\\n width: 100%;\\n flex-direction: row;\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-prevpage,\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-prevpage {\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n display: block;\\n width: 59px;\\n height: 100%;\\n content: ' ';\\n z-index: 999;\\n left: 0;\\n background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-nextpage,\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-nextpage {\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n display: block;\\n width: 59px;\\n height: 100%;\\n content: ' ';\\n z-index: 999;\\n right: 0;\\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #ffffff);\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-tab,\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-tab {\\n padding: 8px 0;\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-underline,\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-underline {\\n bottom: 0;\\n}\\n.am-tabs-default-bar-top .am-tabs-default-bar-tab {\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-top .am-tabs-default-bar-tab {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-tabs-default-bar-top .am-tabs-default-bar-tab::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-top .am-tabs-default-bar-tab::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-tabs-default-bar-bottom .am-tabs-default-bar-tab {\\n border-top: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-bottom .am-tabs-default-bar-tab {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-tabs-default-bar-bottom .am-tabs-default-bar-tab::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-bottom .am-tabs-default-bar-tab::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-tabs-default-bar-left,\\n.am-tabs-default-bar-right {\\n flex-direction: column;\\n}\\n.am-tabs-default-bar-left .am-tabs-default-bar-content,\\n.am-tabs-default-bar-right .am-tabs-default-bar-content {\\n display: flex;\\n height: 100%;\\n flex-direction: column;\\n}\\n.am-tabs-default-bar-left .am-tabs-default-bar-tab,\\n.am-tabs-default-bar-right .am-tabs-default-bar-tab {\\n padding: 0 8px;\\n}\\n.am-tabs-default-bar-left .am-tabs-default-bar-underline {\\n right: 0;\\n}\\n.am-tabs-default-bar-left .am-tabs-default-bar-tab {\\n border-right: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-left .am-tabs-default-bar-tab {\\n border-right: none;\\n }\\n html:not([data-scale]) .am-tabs-default-bar-left .am-tabs-default-bar-tab::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: auto;\\n left: auto;\\n width: 1PX;\\n height: 100%;\\n background: #ddd;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-left .am-tabs-default-bar-tab::after {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-tabs-default-bar-right .am-tabs-default-bar-underline {\\n left: 0;\\n}\\n.am-tabs-default-bar-right .am-tabs-default-bar-tab {\\n border-left: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-right .am-tabs-default-bar-tab {\\n border-left: none;\\n }\\n html:not([data-scale]) .am-tabs-default-bar-right .am-tabs-default-bar-tab::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 1PX;\\n height: 100%;\\n transform-origin: 100% 50%;\\n transform: scaleX(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-tabs-default-bar-right .am-tabs-default-bar-tab::before {\\n transform: scaleX(0.33);\\n }\\n}\\n.am-tab-bar {\\n height: 100%;\\n overflow: hidden;\\n}\\n.am-tab-bar-bar {\\n position: relative;\\n box-sizing: border-box;\\n height: 50px;\\n border-top: 1PX solid #ddd;\\n width: 100%;\\n display: flex;\\n transition-duration: .2s;\\n transition-property: height bottom;\\n z-index: 100;\\n justify-content: space-around;\\n align-items: center;\\n bottom: 0;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tab-bar-bar {\\n border-top: none;\\n }\\n html:not([data-scale]) .am-tab-bar-bar::before {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: 0;\\n right: auto;\\n bottom: auto;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 50%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-tab-bar-bar::before {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-tab-bar-bar-hidden-top {\\n bottom: 50px;\\n height: 0;\\n}\\n.am-tab-bar-bar-hidden-bottom {\\n bottom: -50px;\\n height: 0;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab {\\n flex: 1;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n text-align: center;\\n width: 100%;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab-image {\\n width: 22px;\\n height: 22px;\\n vertical-align: middle;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab-title {\\n font-size: 10px;\\n margin: 3px 0 0 0;\\n line-height: 1;\\n text-align: center;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab-icon {\\n display: flex;\\n justify-content: center;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab-icon .tab-badge :last-child {\\n margin-top: 4px;\\n left: 22px;\\n}\\n.am-tab-bar-bar .am-tab-bar-tab-icon .tab-dot :last-child {\\n margin-top: 4px;\\n left: 22px;\\n}\\n.am-tab-bar-item {\\n height: 100%;\\n}\\n.am-tag {\\n display: inline-block;\\n position: relative;\\n font-size: 14px;\\n text-align: center;\\n padding: 0 15px;\\n height: 25px;\\n line-height: 25px;\\n box-sizing: border-box;\\n}\\n.am-tag.am-tag-small {\\n height: 15px;\\n line-height: 15px;\\n padding: 0 5px;\\n font-size: 10px;\\n}\\n.am-tag-normal {\\n background-color: #fff;\\n color: #888;\\n border: 1PX solid #ddd;\\n border-radius: 3px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tag-normal {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-tag-normal::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 6px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-tag-active {\\n background-color: #fff;\\n color: #108ee9;\\n border: 1PX solid #108ee9;\\n border-radius: 3px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tag-active {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-tag-active::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #108ee9;\\n border-radius: 6px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-tag-disabled {\\n color: #bbb;\\n background-color: #ddd;\\n border: 1PX solid #ddd;\\n border-radius: 3px;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-tag-disabled {\\n position: relative;\\n border: none;\\n }\\n html:not([data-scale]) .am-tag-disabled::before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 200%;\\n height: 200%;\\n border: 1PX solid #ddd;\\n border-radius: 6px;\\n transform-origin: 0 0;\\n transform: scale(0.5);\\n box-sizing: border-box;\\n pointer-events: none;\\n }\\n}\\n.am-tag-close {\\n position: absolute;\\n top: -9px;\\n left: -10px;\\n color: #bbb;\\n}\\n.am-tag-close-active {\\n color: #888;\\n}\\n.am-tag-close .am-icon {\\n background-color: #fff;\\n border-radius: 9px;\\n}\\n.am-list .am-list-item.am-textarea-item {\\n display: flex;\\n align-items: flex-start;\\n box-sizing: border-box;\\n min-height: 44px;\\n padding-left: 15px;\\n padding-right: 15px;\\n border-bottom: 1PX solid #ddd;\\n}\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\\n html:not([data-scale]) .am-list .am-list-item.am-textarea-item {\\n border-bottom: none;\\n }\\n html:not([data-scale]) .am-list .am-list-item.am-textarea-item::after {\\n content: '';\\n position: absolute;\\n background-color: #ddd;\\n display: block;\\n z-index: 1;\\n top: auto;\\n right: auto;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1PX;\\n transform-origin: 50% 100%;\\n transform: scaleY(0.5);\\n }\\n}\\n@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {\\n html:not([data-scale]) .am-list .am-list-item.am-textarea-item::after {\\n transform: scaleY(0.33);\\n }\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line {\\n align-items: center;\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line .am-textarea-label {\\n align-self: center;\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line .am-textarea-control {\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line .am-textarea-control textarea {\\n line-height: 25.5px;\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line .am-textarea-clear {\\n margin-top: 0;\\n}\\n.am-list .am-list-item.am-textarea-item.am-textarea-item-single-line.am-textarea-error .am-textarea-error-extra {\\n margin-top: 0;\\n}\\n.am-textarea-label {\\n align-self: flex-start;\\n color: #000;\\n text-align: left;\\n min-height: 44px;\\n font-size: 17px;\\n line-height: 44px;\\n margin-left: 0;\\n margin-right: 5px;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n.am-textarea-label.am-textarea-label-2 {\\n width: 34px;\\n}\\n.am-textarea-label.am-textarea-label-3 {\\n width: 51px;\\n}\\n.am-textarea-label.am-textarea-label-4 {\\n width: 68px;\\n}\\n.am-textarea-label.am-textarea-label-5 {\\n width: 85px;\\n}\\n.am-textarea-label.am-textarea-label-6 {\\n width: 102px;\\n}\\n.am-textarea-label.am-textarea-label-7 {\\n width: 119px;\\n}\\n.am-textarea-control {\\n flex: 1;\\n padding-top: 10px;\\n padding-bottom: 9px;\\n}\\n.am-textarea-control textarea {\\n color: #000;\\n font-size: 17px;\\n line-height: 25.5px;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n width: 100%;\\n padding: 0;\\n border: 0;\\n background-color: transparent;\\n overflow: visible;\\n display: block;\\n resize: none;\\n word-break: break-word;\\n word-wrap: break-word;\\n}\\n.am-textarea-control textarea::-moz-placeholder {\\n color: #bbb;\\n}\\n.am-textarea-control textarea::placeholder {\\n color: #bbb;\\n}\\n.am-textarea-control textarea:disabled {\\n color: #bbb;\\n background-color: #fff;\\n}\\n.am-textarea-clear {\\n display: none;\\n width: 21px;\\n height: 21px;\\n margin-top: 12px;\\n border-radius: 50%;\\n overflow: hidden;\\n font-style: normal;\\n color: #fff;\\n background-color: #ccc;\\n background-repeat: no-repeat;\\n background-size: 21px auto;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20fill%3D'%23fff'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'%2F%3E%3Cpath%20d%3D'M0%200h24v24H0z'%20fill%3D'none'%2F%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-textarea-clear-active {\\n background-color: #108ee9;\\n}\\n.am-textarea-focus .am-textarea-clear {\\n display: block;\\n}\\n.am-textarea-has-count {\\n padding-bottom: 14px;\\n}\\n.am-textarea-count {\\n position: absolute;\\n bottom: 6px;\\n right: 5px;\\n color: #bbb;\\n font-size: 14px;\\n}\\n.am-textarea-count span {\\n color: #000;\\n}\\n.am-textarea-error .am-textarea-control textarea {\\n color: #f50;\\n}\\n.am-textarea-error .am-textarea-error-extra {\\n margin-top: 12px;\\n width: 21px;\\n height: 21px;\\n margin-left: 8px;\\n background-size: 21px 21px;\\n background-image: url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D'18'%20height%3D'18'%20viewBox%3D'0%200%2018%2018'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cg%20stroke%3D'none'%20stroke-width%3D'1'%20fill%3D'none'%20fill-rule%3D'evenodd'%3E%3Cg%20transform%3D'translate(-300.000000%2C%20-1207.000000)'%20fill%3D'%23FF5500'%3E%3Cg%20id%3D'exclamation-circle-o'%20transform%3D'translate(300.000000%2C%201207.000000)'%3E%3Cpath%20d%3D'M9%2C16.734375%20C10.0441406%2C16.734375%2011.0566406%2C16.5304688%2012.009375%2C16.1279297%20C12.9304688%2C15.7376953%2013.7566406%2C15.1804687%2014.4685547%2C14.4703125%20C15.1787109%2C13.7601563%2015.7376953%2C12.9322266%2016.1261719%2C12.0111328%20C16.5304688%2C11.0566406%2016.734375%2C10.0441406%2016.734375%2C9%20C16.734375%2C7.95585938%2016.5304688%2C6.94335938%2016.1279297%2C5.990625%20C15.7376953%2C5.06953125%2015.1804687%2C4.24335938%2014.4703125%2C3.53144531%20C13.7601563%2C2.82128906%2012.9322266%2C2.26230469%2012.0111328%2C1.87382813%20C11.0566406%2C1.46953125%2010.0441406%2C1.265625%209%2C1.265625%20C7.95585938%2C1.265625%206.94335938%2C1.46953125%205.990625%2C1.87207031%20C5.06953125%2C2.26230469%204.24335938%2C2.81953125%203.53144531%2C3.5296875%20C2.82128906%2C4.23984375%202.26230469%2C5.06777344%201.87382813%2C5.98886719%20C1.46953125%2C6.94335938%201.265625%2C7.95585938%201.265625%2C9%20C1.265625%2C10.0441406%201.46953125%2C11.0566406%201.87207031%2C12.009375%20C2.26230469%2C12.9304688%202.81953125%2C13.7566406%203.5296875%2C14.4685547%20C4.23984375%2C15.1787109%205.06777344%2C15.7376953%205.98886719%2C16.1261719%20C6.94335938%2C16.5304688%207.95585938%2C16.734375%209%2C16.734375%20L9%2C16.734375%20Z%20M9%2C18%20C4.02890625%2C18%200%2C13.9710937%200%2C9%20C0%2C4.02890625%204.02890625%2C0%209%2C0%20C13.9710937%2C0%2018%2C4.02890625%2018%2C9%20C18%2C13.9710937%2013.9710937%2C18%209%2C18%20L9%2C18%20L9%2C18%20Z%20M9%2C6.75%20C8.61152344%2C6.75%208.296875%2C7.06464844%208.296875%2C7.453125%20L8.296875%2C13.9394531%20C8.296875%2C14.3279297%208.61152344%2C14.6425781%209%2C14.6425781%20C9.38847656%2C14.6425781%209.703125%2C14.3279297%209.703125%2C13.9394531%20L9.703125%2C7.453125%20C9.703125%2C7.06464844%209.38847656%2C6.75%209%2C6.75%20L9%2C6.75%20Z%20M8.20898438%2C4.83398438%20C8.20898438%2C5.27085024%208.56313413%2C5.625%209%2C5.625%20C9.43686587%2C5.625%209.79101562%2C5.27085024%209.79101562%2C4.83398438%20C9.79101562%2C4.39711851%209.43686587%2C4.04296875%209%2C4.04296875%20C8.56313413%2C4.04296875%208.20898438%2C4.39711851%208.20898438%2C4.83398438%20L8.20898438%2C4.83398438%20Z'%20id%3D'Shape'%20transform%3D'translate(9.000000%2C%209.000000)%20scale(1%2C%20-1)%20translate(-9.000000%2C%20-9.000000)%20'%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");\\n}\\n.am-textarea-disabled .am-textarea-label {\\n color: #bbb;\\n}\\n.am-list-body .am-list-item:last-child {\\n border-bottom: 0;\\n}\\n.am-list-body .am-list-item:last-child:after {\\n display: none !important;\\n}\\n.am-toast {\\n position: fixed;\\n width: 100%;\\n z-index: 1999;\\n font-size: 14px;\\n text-align: center;\\n}\\n.am-toast > span {\\n max-width: 50%;\\n}\\n.am-toast.am-toast-mask {\\n height: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n left: 0;\\n top: 0;\\n transform: translateZ(1px);\\n}\\n.am-toast.am-toast-nomask {\\n position: fixed;\\n max-width: 50%;\\n width: auto;\\n left: 50%;\\n top: 50%;\\n transform: translateZ(1px);\\n}\\n.am-toast.am-toast-nomask .am-toast-notice {\\n transform: translateX(-50%) translateY(-50%);\\n}\\n.am-toast-notice-content .am-toast-text {\\n min-width: 60px;\\n border-radius: 3px;\\n color: #fff;\\n background-color: rgba(58, 58, 58, 0.9);\\n line-height: 1.5;\\n padding: 9px 15px;\\n}\\n.am-toast-notice-content .am-toast-text.am-toast-text-icon {\\n border-radius: 5px;\\n padding: 15px 15px;\\n}\\n.am-toast-notice-content .am-toast-text.am-toast-text-icon .am-toast-text-info {\\n margin-top: 6px;\\n}\\n.am-whitespace.am-whitespace-xs {\\n height: 3px;\\n}\\n.am-whitespace.am-whitespace-sm {\\n height: 6px;\\n}\\n.am-whitespace.am-whitespace-md {\\n height: 9px;\\n}\\n.am-whitespace.am-whitespace-lg {\\n height: 15px;\\n}\\n.am-whitespace.am-whitespace-xl {\\n height: 21px;\\n}\\n.am-wingblank {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n.am-wingblank.am-wingblank-sm {\\n margin-left: 5px;\\n margin-right: 5px;\\n}\\n.am-wingblank.am-wingblank-md {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n.am-wingblank.am-wingblank-lg {\\n margin-left: 15px;\\n margin-right: 15px;\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-notification {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: fixed;\\n z-index: 1010;\\n width: 384px;\\n max-width: calc(100vw - 32px);\\n margin-right: 24px;\\n}\\n.ant-notification-topLeft,\\n.ant-notification-bottomLeft {\\n margin-right: 0;\\n margin-left: 24px;\\n}\\n.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\\n.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,\\n.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,\\n.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active {\\n -webkit-animation-name: NotificationLeftFadeIn;\\n animation-name: NotificationLeftFadeIn;\\n}\\n.ant-notification-close-icon {\\n font-size: 14px;\\n cursor: pointer;\\n}\\n.ant-notification-notice {\\n position: relative;\\n margin-bottom: 16px;\\n padding: 16px 24px;\\n overflow: hidden;\\n line-height: 1.5;\\n background: #fff;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n}\\n.ant-notification-notice-message {\\n display: inline-block;\\n margin-bottom: 8px;\\n color: rgba(0, 0, 0, 0.85);\\n font-size: 16px;\\n line-height: 24px;\\n}\\n.ant-notification-notice-message-single-line-auto-margin {\\n display: block;\\n width: calc(384px - 24px * 2 - 24px - 48px - 100%);\\n max-width: 4px;\\n background-color: transparent;\\n pointer-events: none;\\n}\\n.ant-notification-notice-message-single-line-auto-margin::before {\\n display: block;\\n content: '';\\n}\\n.ant-notification-notice-description {\\n font-size: 14px;\\n}\\n.ant-notification-notice-closable .ant-notification-notice-message {\\n padding-right: 24px;\\n}\\n.ant-notification-notice-with-icon .ant-notification-notice-message {\\n margin-bottom: 4px;\\n margin-left: 48px;\\n font-size: 16px;\\n}\\n.ant-notification-notice-with-icon .ant-notification-notice-description {\\n margin-left: 48px;\\n font-size: 14px;\\n}\\n.ant-notification-notice-icon {\\n position: absolute;\\n margin-left: 4px;\\n font-size: 24px;\\n line-height: 24px;\\n}\\n.anticon.ant-notification-notice-icon-success {\\n color: #52c41a;\\n}\\n.anticon.ant-notification-notice-icon-info {\\n color: #1890ff;\\n}\\n.anticon.ant-notification-notice-icon-warning {\\n color: #faad14;\\n}\\n.anticon.ant-notification-notice-icon-error {\\n color: #f5222d;\\n}\\n.ant-notification-notice-close {\\n position: absolute;\\n top: 16px;\\n right: 22px;\\n color: rgba(0, 0, 0, 0.45);\\n outline: none;\\n}\\n.ant-notification-notice-close:hover {\\n color: rgba(0, 0, 0, 0.67);\\n}\\n.ant-notification-notice-btn {\\n float: right;\\n margin-top: 16px;\\n}\\n.ant-notification .notification-fade-effect {\\n -webkit-animation-duration: 0.24s;\\n animation-duration: 0.24s;\\n -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n}\\n.ant-notification-fade-enter,\\n.ant-notification-fade-appear {\\n opacity: 0;\\n -webkit-animation-duration: 0.24s;\\n animation-duration: 0.24s;\\n -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.ant-notification-fade-leave {\\n -webkit-animation-duration: 0.24s;\\n animation-duration: 0.24s;\\n -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-duration: 0.2s;\\n animation-duration: 0.2s;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.ant-notification-fade-enter.ant-notification-fade-enter-active,\\n.ant-notification-fade-appear.ant-notification-fade-appear-active {\\n -webkit-animation-name: NotificationFadeIn;\\n animation-name: NotificationFadeIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.ant-notification-fade-leave.ant-notification-fade-leave-active {\\n -webkit-animation-name: NotificationFadeOut;\\n animation-name: NotificationFadeOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n@-webkit-keyframes NotificationFadeIn {\\n 0% {\\n left: 384px;\\n opacity: 0;\\n }\\n 100% {\\n left: 0;\\n opacity: 1;\\n }\\n}\\n@keyframes NotificationFadeIn {\\n 0% {\\n left: 384px;\\n opacity: 0;\\n }\\n 100% {\\n left: 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes NotificationLeftFadeIn {\\n 0% {\\n right: 384px;\\n opacity: 0;\\n }\\n 100% {\\n right: 0;\\n opacity: 1;\\n }\\n}\\n@keyframes NotificationLeftFadeIn {\\n 0% {\\n right: 384px;\\n opacity: 0;\\n }\\n 100% {\\n right: 0;\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes NotificationFadeOut {\\n 0% {\\n max-height: 150px;\\n margin-bottom: 16px;\\n padding-top: 16px 24px;\\n padding-bottom: 16px 24px;\\n opacity: 1;\\n }\\n 100% {\\n max-height: 0;\\n margin-bottom: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n opacity: 0;\\n }\\n}\\n@keyframes NotificationFadeOut {\\n 0% {\\n max-height: 150px;\\n margin-bottom: 16px;\\n padding-top: 16px 24px;\\n padding-bottom: 16px 24px;\\n opacity: 1;\\n }\\n 100% {\\n max-height: 0;\\n margin-bottom: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n opacity: 0;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/* UAParser.js v0.7.37\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.37\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){if(!regex[j]){break}matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"Baidu\"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i,/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/slbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Smart Lenovo \"+BROWSER]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/samsungbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,SAMSUNG+\" Internet\"]],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/metasr[\\/ ]?([\\d\\.]+)/i],[VERSION,[NAME,\"Sogou Explorer\"]],[/(sogou)mo\\w+\\/([\\d\\.]+)/i],[[NAME,\"Sogou Mobile\"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/(Klarna)\\/([\\w\\.]+)/i,/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(alipay)client\\/([\\w\\.]+)/i,/(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[VERSION,[NAME,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[NAME,VERSION],[/(cobalt)\\/([\\w\\.]+)/i],[NAME,[VERSION,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i],[MODEL,[VENDOR,\"Ulefone\"],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w+)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2| pro)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/windows nt 6\\.2; (arm)/i,/windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[VERSION,strMapper,windowsVersionMap],[NAME,\"Windows\"]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,MAC_OS],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[VERSION,[NAME,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[NAME,CHROMIUM_OS],VERSION],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _navigator=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined;var _ua=ua||(_navigator&&_navigator.userAgent?_navigator.userAgent:EMPTY);var _uach=_navigator&&_navigator.userAgentData?_navigator.userAgentData:undefined;var _rgxmap=extensions?extend(regexes,extensions):regexes;var _isSelfNav=_navigator&&_navigator.userAgent==_ua;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser[MAJOR]=majorize(_browser[VERSION]);if(_isSelfNav&&_navigator&&_navigator.brave&&typeof _navigator.brave.isBrave==FUNC_TYPE){_browser[NAME]=\"Brave\"}return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);if(_isSelfNav&&!_device[TYPE]&&_uach&&_uach.mobile){_device[TYPE]=MOBILE}if(_isSelfNav&&_device[MODEL]==\"Macintosh\"&&_navigator&&typeof _navigator.standalone!==UNDEF_TYPE&&_navigator.maxTouchPoints&&_navigator.maxTouchPoints>2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar normalViewBox = '0 0 1024 1024';\nvar newViewBox = '64 64 896 896';\nvar fill = 'fill';\nvar outline = 'outline';\nvar twotone = 'twotone';\nfunction getNode(viewBox) {\n var paths = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n paths[_i - 1] = arguments[_i];\n }\n return {\n tag: 'svg',\n attrs: { viewBox: viewBox, focusable: false },\n children: paths.map(function (path) {\n if (Array.isArray(path)) {\n return {\n tag: 'path',\n attrs: {\n fill: path[0],\n d: path[1]\n }\n };\n }\n return {\n tag: 'path',\n attrs: {\n d: path\n }\n };\n })\n };\n}\nfunction getIcon(name, theme, icon) {\n return {\n name: name,\n theme: theme,\n icon: icon\n };\n}\nexports.AccountBookFill = getIcon('account-book', fill, getNode(newViewBox, '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-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z'));\nexports.AlertFill = getIcon('alert', fill, getNode(newViewBox, 'M512 244c176.18 0 319 142.82 319 319v233a32 32 0 0 1-32 32H225a32 32 0 0 1-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 0 1 8 8v96a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8V76a8 8 0 0 1 8-8zM177.25 191.66a8 8 0 0 1 11.32 0l67.88 67.88a8 8 0 0 1 0 11.31l-39.6 39.6a8 8 0 0 1-11.31 0l-67.88-67.88a8 8 0 0 1 0-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 0 1 0 11.3l-67.88 67.9a8 8 0 0 1-11.32 0l-39.6-39.6a8 8 0 0 1 0-11.32l67.89-67.88a8 8 0 0 1 11.31 0zM192 892h640a32 32 0 0 1 32 32v24a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-24a32 32 0 0 1 32-32zm148-317v253h64V575h-64z'));\nexports.AlipaySquareFill = getIcon('alipay-square', fill, getNode(newViewBox, 'M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 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-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z'));\nexports.AliwangwangFill = getIcon('aliwangwang', fill, getNode(newViewBox, 'M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z'));\nexports.AlipayCircleFill = getIcon('alipay-circle', fill, getNode(newViewBox, 'M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z'));\nexports.AmazonCircleFill = getIcon('amazon-circle', fill, getNode(newViewBox, 'M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z'));\nexports.AndroidFill = getIcon('android', fill, getNode(newViewBox, 'M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z'));\nexports.AmazonSquareFill = getIcon('amazon-square', fill, getNode(newViewBox, '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-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z'));\nexports.ApiFill = getIcon('api', fill, getNode(newViewBox, 'M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z'));\nexports.AppstoreFill = getIcon('appstore', fill, getNode(newViewBox, 'M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z'));\nexports.AudioFill = getIcon('audio', fill, getNode(newViewBox, 'M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z'));\nexports.AppleFill = getIcon('apple', fill, getNode(newViewBox, 'M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z'));\nexports.BackwardFill = getIcon('backward', fill, getNode(normalViewBox, 'M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z'));\nexports.BankFill = getIcon('bank', fill, getNode(newViewBox, 'M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z'));\nexports.BehanceCircleFill = getIcon('behance-circle', fill, getNode(newViewBox, 'M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0 0 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z'));\nexports.BellFill = getIcon('bell', fill, getNode(newViewBox, 'M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z'));\nexports.BehanceSquareFill = getIcon('behance-square', fill, getNode(newViewBox, '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-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z'));\nexports.BookFill = getIcon('book', fill, getNode(newViewBox, '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-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z'));\nexports.BoxPlotFill = getIcon('box-plot', fill, getNode(newViewBox, 'M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z'));\nexports.BugFill = getIcon('bug', fill, getNode(newViewBox, 'M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z', 'M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 0 0 123.2-149.5A120.4 120.4 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.CalculatorFill = getIcon('calculator', fill, getNode(newViewBox, '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-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z'));\nexports.BulbFill = getIcon('bulb', fill, getNode(newViewBox, 'M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z'));\nexports.BuildFill = getIcon('build', fill, getNode(newViewBox, 'M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z'));\nexports.CalendarFill = getIcon('calendar', fill, getNode(newViewBox, 'M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-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 32v176h800V216c0-17.7-14.3-32-32-32z'));\nexports.CameraFill = getIcon('camera', fill, getNode(newViewBox, 'M864 260H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 1 0 192 0 96 96 0 1 0-192 0z'));\nexports.CarFill = getIcon('car', fill, getNode(newViewBox, 'M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z'));\nexports.CaretDownFill = getIcon('caret-down', fill, getNode(normalViewBox, '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'));\nexports.CaretLeftFill = getIcon('caret-left', fill, getNode(normalViewBox, 'M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z'));\nexports.CaretRightFill = getIcon('caret-right', fill, getNode(normalViewBox, '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'));\nexports.CarryOutFill = getIcon('carry-out', fill, getNode(newViewBox, '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-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z'));\nexports.CaretUpFill = getIcon('caret-up', fill, getNode(normalViewBox, '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'));\nexports.CheckCircleFill = getIcon('check-circle', fill, getNode(newViewBox, '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 0 1-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'));\nexports.CheckSquareFill = getIcon('check-square', fill, getNode(newViewBox, '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-32zM695.5 365.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L308.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.3H689c6.5 0 10.3 7.4 6.5 12.7z'));\nexports.ChromeFill = getIcon('chrome', fill, getNode(newViewBox, 'M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0 0 96 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z'));\nexports.CiCircleFill = getIcon('ci-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z'));\nexports.ClockCircleFill = getIcon('clock-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z'));\nexports.CloseCircleFill = getIcon('close-circle', fill, getNode(newViewBox, '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 0 1-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'));\nexports.CloudFill = getIcon('cloud', fill, getNode(newViewBox, 'M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z'));\nexports.CloseSquareFill = getIcon('close-square', fill, getNode(newViewBox, '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-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z'));\nexports.CodeSandboxSquareFill = getIcon('code-sandbox-square', fill, getNode(newViewBox, 'M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 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-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z'));\nexports.CodeSandboxCircleFill = getIcon('code-sandbox-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z'));\nexports.CodeFill = getIcon('code', fill, getNode(newViewBox, '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-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z'));\nexports.CompassFill = getIcon('compass', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z'));\nexports.CodepenCircleFill = getIcon('codepen-circle', fill, getNode(newViewBox, 'M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z'));\nexports.CodepenSquareFill = getIcon('codepen-square', fill, getNode(newViewBox, 'M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 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-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z'));\nexports.ContactsFill = getIcon('contacts', fill, getNode(newViewBox, 'M928 224H768v-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-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z'));\nexports.ControlFill = getIcon('control', fill, getNode(newViewBox, '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-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z'));\nexports.ContainerFill = getIcon('container', fill, getNode(newViewBox, 'M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z'));\nexports.CopyFill = getIcon('copy', fill, getNode(newViewBox, 'M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z'));\nexports.CopyrightCircleFill = getIcon('copyright-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z'));\nexports.CreditCardFill = getIcon('credit-card', fill, getNode(newViewBox, 'M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z'));\nexports.CrownFill = getIcon('crown', fill, getNode(newViewBox, 'M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z'));\nexports.CustomerServiceFill = getIcon('customer-service', fill, getNode(newViewBox, 'M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z'));\nexports.DashboardFill = getIcon('dashboard', fill, getNode(newViewBox, 'M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-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.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 0 1-11.3 0L261.7 352a8.03 8.03 0 0 1 0-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.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-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.6a8.03 8.03 0 0 1-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z'));\nexports.DeleteFill = getIcon('delete', fill, getNode(newViewBox, 'M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-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-32zm-200 0H360v-72h304v72z'));\nexports.DiffFill = getIcon('diff', fill, getNode(newViewBox, 'M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z'));\nexports.DingtalkCircleFill = getIcon('dingtalk-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z'));\nexports.DatabaseFill = getIcon('database', fill, getNode(newViewBox, 'M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'));\nexports.DingtalkSquareFill = getIcon('dingtalk-square', fill, getNode(newViewBox, '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-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z'));\nexports.DislikeFill = getIcon('dislike', fill, getNode(newViewBox, 'M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z'));\nexports.DollarCircleFill = getIcon('dollar-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z'));\nexports.DownCircleFill = getIcon('down-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z'));\nexports.DownSquareFill = getIcon('down-square', fill, getNode(newViewBox, '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-32zM696.5 412.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z'));\nexports.DribbbleCircleFill = getIcon('dribbble-circle', fill, getNode(newViewBox, 'M675.1 328.3a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z'));\nexports.DribbbleSquareFill = getIcon('dribbble-square', fill, getNode(newViewBox, 'M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 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-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z'));\nexports.DropboxCircleFill = getIcon('dropbox-circle', fill, getNode(newViewBox, 'M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z'));\nexports.DropboxSquareFill = getIcon('dropbox-square', fill, getNode(newViewBox, '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-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z'));\nexports.EnvironmentFill = getIcon('environment', fill, getNode(newViewBox, 'M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 0 0 400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 0 0 512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-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 0 0 169.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 0 0 22.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 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z'));\nexports.EditFill = getIcon('edit', fill, getNode(newViewBox, 'M880 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-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-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 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z'));\nexports.ExclamationCircleFill = getIcon('exclamation-circle', fill, getNode(newViewBox, '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 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.EuroCircleFill = getIcon('euro-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z'));\nexports.ExperimentFill = getIcon('experiment', fill, getNode(newViewBox, 'M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0 0 94.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 0 1 164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0 0 36.6-82.5z'));\nexports.EyeInvisibleFill = getIcon('eye-invisible', fill, getNode(newViewBox, 'M508 624a112 112 0 0 0 112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 0 0-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 0 0 0 11.31L155.25 889a8 8 0 0 0 11.31 0l712.16-712.12a8 8 0 0 0 0-11.32zM332 512a176 176 0 0 1 258.88-155.28l-48.62 48.62a112.08 112.08 0 0 0-140.92 140.92l-48.62 48.62A175.09 175.09 0 0 1 332 512z', 'M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 0 1 445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z'));\nexports.EyeFill = getIcon('eye', fill, getNode(newViewBox, 'M396 512a112 112 0 1 0 224 0 112 112 0 1 0-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 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.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z'));\nexports.FacebookFill = getIcon('facebook', fill, getNode(newViewBox, '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-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z'));\nexports.FastBackwardFill = getIcon('fast-backward', fill, getNode(normalViewBox, 'M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z'));\nexports.FastForwardFill = getIcon('fast-forward', fill, getNode(normalViewBox, 'M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z'));\nexports.FileAddFill = getIcon('file-add', fill, getNode(newViewBox, 'M480 580H372a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h108v108a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V644h108a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H544V472a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z'));\nexports.FileExcelFill = getIcon('file-excel', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 0 0-10.27-5.79h-38.44a12 12 0 0 0-6.4 1.85 12 12 0 0 0-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 0 0-1.84 6.39 12 12 0 0 0 12 12h34.46a12 12 0 0 0 10.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0 0 10.23 5.72h37.48a12 12 0 0 0 6.48-1.9 12 12 0 0 0 3.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 0 0 1.9-6.5 12 12 0 0 0-12-12h-35.7a12 12 0 0 0-10.29 5.84z'));\nexports.FileExclamationFill = getIcon('file-exclamation', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 1 0 0-80 40 40 0 0 0 0 80zm32-152V448a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v184a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8z'));\nexports.FileImageFill = getIcon('file-image', fill, getNode(newViewBox, 'M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-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.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8 8 0 0 1 12.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z'));\nexports.FileMarkdownFill = getIcon('file-markdown', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0 0 14.62 9.5h24.06a16 16 0 0 0 14.63-9.51l59.1-133.35V758a16 16 0 0 0 16.01 16H641a16 16 0 0 0 16-16V486a16 16 0 0 0-16-16h-34.75a16 16 0 0 0-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 0 0-14.67-9.61H383a16 16 0 0 0-16 16v272a16 16 0 0 0 16 16h27.13a16 16 0 0 0 16-16V600.93z'));\nexports.FilePdfFill = getIcon('file-pdf', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 0 1 5.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 0 1-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 0 1-1.12-.15 2.07 2.07 0 0 1-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 0 1-1.36 6.31 6.7 6.7 0 0 1-2.17 1.28z'));\nexports.FilePptFill = getIcon('file-ppt', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 0 0-12 12v276a12 12 0 0 0 12 12h32.53a12 12 0 0 0 12-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z'));\nexports.FileTextFill = getIcon('file-text', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h384a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320zm0 136a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h184a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320z'));\nexports.FileWordFill = getIcon('file-word', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0 0 11.6 8.9h31.77a12 12 0 0 0 11.6-8.88l74.37-276a12 12 0 0 0 .4-3.12 12 12 0 0 0-12-12h-35.57a12 12 0 0 0-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 0 0 528.1 472h-32.2a12 12 0 0 0-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 0 0-11.68-9.29h-35.39a12 12 0 0 0-3.11.41 12 12 0 0 0-8.47 14.7l74.17 276A12 12 0 0 0 415.6 772h31.99a12 12 0 0 0 11.59-8.9l52.81-197z'));\nexports.FileUnknownFill = getIcon('file-unknown', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 1 0 0-64 32 32 0 0 0 0 64z'));\nexports.FileZipFill = getIcon('file-zip', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z'));\nexports.FileFill = getIcon('file', fill, getNode(newViewBox, 'M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z'));\nexports.FilterFill = getIcon('filter', fill, getNode(newViewBox, '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'));\nexports.FireFill = getIcon('fire', fill, getNode(newViewBox, 'M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9z'));\nexports.FlagFill = getIcon('flag', fill, getNode(newViewBox, 'M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z'));\nexports.FolderAddFill = getIcon('folder-add', fill, getNode(newViewBox, 'M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-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-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z'));\nexports.FolderFill = getIcon('folder', fill, getNode(newViewBox, 'M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-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-32z'));\nexports.FolderOpenFill = getIcon('folder-open', fill, getNode(newViewBox, 'M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-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-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z'));\nexports.ForwardFill = getIcon('forward', fill, getNode(normalViewBox, 'M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z'));\nexports.FrownFill = getIcon('frown', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.FundFill = getIcon('fund', fill, getNode(newViewBox, 'M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z'));\nexports.FunnelPlotFill = getIcon('funnel-plot', fill, getNode(newViewBox, 'M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z'));\nexports.GiftFill = getIcon('gift', fill, getNode(newViewBox, 'M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z'));\nexports.GithubFill = getIcon('github', fill, getNode(newViewBox, 'M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z'));\nexports.GitlabFill = getIcon('gitlab', fill, getNode(newViewBox, 'M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z'));\nexports.GoldenFill = getIcon('golden', fill, getNode(newViewBox, 'M905.9 806.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.2zm-470.2-248c-.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-248zM342 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 8z'));\nexports.GoogleCircleFill = getIcon('google-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z'));\nexports.GooglePlusCircleFill = getIcon('google-plus-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z'));\nexports.GooglePlusSquareFill = getIcon('google-plus-square', fill, getNode(newViewBox, '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-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z'));\nexports.GoogleSquareFill = getIcon('google-square', fill, getNode(newViewBox, '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-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 0 1 272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z'));\nexports.HddFill = getIcon('hdd', fill, getNode(newViewBox, 'M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z'));\nexports.HeartFill = getIcon('heart', fill, getNode(newViewBox, 'M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z'));\nexports.HighlightFill = getIcon('highlight', fill, getNode(newViewBox, 'M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z'));\nexports.HomeFill = getIcon('home', fill, getNode(newViewBox, 'M946.5 505L534.6 93.4a31.93 31.93 0 0 0-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z'));\nexports.HourglassFill = getIcon('hourglass', fill, getNode(newViewBox, 'M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z'));\nexports.Html5Fill = getIcon('html5', fill, getNode(newViewBox, 'M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z'));\nexports.IdcardFill = getIcon('idcard', fill, getNode(newViewBox, 'M373 411c-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-52zm555-251H96c-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-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z'));\nexports.IeCircleFill = getIcon('ie-circle', fill, getNode(newViewBox, 'M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z'));\nexports.IeSquareFill = getIcon('ie-square', fill, getNode(newViewBox, '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-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z'));\nexports.InfoCircleFill = getIcon('info-circle', fill, getNode(newViewBox, '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 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.InstagramFill = getIcon('instagram', fill, getNode(newViewBox, 'M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 0 1-47.9 47.9z'));\nexports.InsuranceFill = getIcon('insurance', fill, getNode(newViewBox, 'M519.9 358.8h97.9v41.6h-97.9zm347-188.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.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 0 1-8.9-1.4L430 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z'));\nexports.InteractionFill = getIcon('interaction', fill, getNode(newViewBox, '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-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z'));\nexports.InterationFill = getIcon('interation', fill, getNode(newViewBox, '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-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z'));\nexports.LayoutFill = getIcon('layout', fill, getNode(newViewBox, 'M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z'));\nexports.LeftCircleFill = getIcon('left-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178a8 8 0 0 1 12.7 6.5v46.8z'));\nexports.LeftSquareFill = getIcon('left-square', fill, getNode(newViewBox, '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-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z'));\nexports.LikeFill = getIcon('like', fill, getNode(newViewBox, 'M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z'));\nexports.LockFill = getIcon('lock', fill, getNode(newViewBox, 'M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z'));\nexports.LinkedinFill = getIcon('linkedin', fill, getNode(newViewBox, '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-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1 1 68.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z'));\nexports.MailFill = getIcon('mail', fill, getNode(newViewBox, '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-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 0 1 194 256h648.8a7.2 7.2 0 0 1 4.4 12.9z'));\nexports.MedicineBoxFill = getIcon('medicine-box', fill, getNode(newViewBox, 'M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z'));\nexports.MediumCircleFill = getIcon('medium-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z'));\nexports.MediumSquareFill = getIcon('medium-square', fill, getNode(newViewBox, '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-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z'));\nexports.MehFill = getIcon('meh', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.MessageFill = getIcon('message', fill, getNode(newViewBox, 'M924.3 338.4a447.57 447.57 0 0 0-96.1-143.3 443.09 443.09 0 0 0-143-96.3A443.91 443.91 0 0 0 512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 0 0-141.7 96.5 445 445 0 0 0-95 142.8A449.89 449.89 0 0 0 65 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 0 0 199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 0 0 827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z'));\nexports.MinusCircleFill = getIcon('minus-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z'));\nexports.MinusSquareFill = getIcon('minus-square', fill, getNode(newViewBox, '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-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z'));\nexports.MobileFill = getIcon('mobile', fill, getNode(newViewBox, 'M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z'));\nexports.MoneyCollectFill = getIcon('money-collect', fill, getNode(newViewBox, 'M911.5 699.7a8 8 0 0 0-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z'));\nexports.PauseCircleFill = getIcon('pause-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z'));\nexports.PayCircleFill = getIcon('pay-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 0 1 7-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 0 1 7.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z'));\nexports.NotificationFill = getIcon('notification', fill, getNode(newViewBox, 'M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z'));\nexports.PhoneFill = getIcon('phone', fill, getNode(newViewBox, 'M885.6 230.2L779.1 123.8a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 0 0-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 0 1 553.1 553 395.34 395.34 0 0 1 437 633.8L353.2 550a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 0 0-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z'));\nexports.PictureFill = getIcon('picture', fill, getNode(newViewBox, '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-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z'));\nexports.PieChartFill = getIcon('pie-chart', fill, getNode(newViewBox, 'M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z'));\nexports.PlayCircleFill = getIcon('play-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 0 1-12.7-6.5V353.7a8 8 0 0 1 12.7-6.5L656.1 506a7.9 7.9 0 0 1 0 12.9z'));\nexports.PlaySquareFill = getIcon('play-square', fill, getNode(newViewBox, '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-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6z'));\nexports.PlusCircleFill = getIcon('plus-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z'));\nexports.PlusSquareFill = getIcon('plus-square', fill, getNode(newViewBox, '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-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z'));\nexports.PoundCircleFill = getIcon('pound-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z'));\nexports.PrinterFill = getIcon('printer', fill, getNode(newViewBox, 'M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z'));\nexports.ProfileFill = getIcon('profile', fill, getNode(newViewBox, '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'));\nexports.ProjectFill = getIcon('project', fill, getNode(newViewBox, '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-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z'));\nexports.PushpinFill = getIcon('pushpin', fill, getNode(newViewBox, 'M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z'));\nexports.PropertySafetyFill = getIcon('property-safety', fill, getNode(newViewBox, '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.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z'));\nexports.QqCircleFill = getIcon('qq-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z'));\nexports.QqSquareFill = getIcon('qq-square', fill, getNode(newViewBox, '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-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z'));\nexports.QuestionCircleFill = getIcon('question-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z'));\nexports.ReadFill = getIcon('read', fill, getNode(newViewBox, 'M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z'));\nexports.ReconciliationFill = getIcon('reconciliation', fill, getNode(newViewBox, 'M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z'));\nexports.RedEnvelopeFill = getIcon('red-envelope', fill, getNode(newViewBox, '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-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 0 1 7.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z'));\nexports.RedditCircleFill = getIcon('reddit-circle', fill, getNode(newViewBox, 'M584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm72 108a36 36 0 1 0 72 0 36 36 0 1 0-72 0z'));\nexports.RedditSquareFill = getIcon('reddit-square', fill, getNode(newViewBox, 'M296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM880 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-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM368 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0z'));\nexports.RestFill = getIcon('rest', fill, getNode(newViewBox, 'M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 1 0 160 0 80 80 0 1 0-160 0z'));\nexports.RightCircleFill = getIcon('right-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z'));\nexports.RocketFill = getIcon('rocket', fill, getNode(newViewBox, 'M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 0 1 0 96 48.01 48.01 0 0 1 0-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z'));\nexports.RightSquareFill = getIcon('right-square', fill, getNode(newViewBox, '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-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z'));\nexports.SafetyCertificateFill = getIcon('safety-certificate', fill, getNode(newViewBox, '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.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z'));\nexports.SaveFill = getIcon('save', fill, getNode(newViewBox, 'M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z'));\nexports.ScheduleFill = getIcon('schedule', fill, getNode(newViewBox, 'M928 224H768v-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-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z'));\nexports.SecurityScanFill = getIcon('security-scan', fill, getNode(newViewBox, '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.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 1 0 113.27-113.28 80.1 80.1 0 1 0-113.27 113.28z'));\nexports.SettingFill = getIcon('setting', fill, getNode(newViewBox, 'M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 0 0-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a442.5 442.5 0 0 0-79.6-137.7l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.3a353.44 353.44 0 0 0-98.9 57.3l-81.8-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a445.93 445.93 0 0 0-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0 0 25.8 25.7l2.7.5a448.27 448.27 0 0 0 158.8 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z'));\nexports.ShopFill = getIcon('shop', fill, getNode(newViewBox, 'M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z'));\nexports.ShoppingFill = getIcon('shopping', fill, getNode(newViewBox, '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-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z'));\nexports.SketchCircleFill = getIcon('sketch-circle', fill, getNode(newViewBox, 'M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z'));\nexports.SketchSquareFill = getIcon('sketch-square', fill, getNode(newViewBox, 'M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 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-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z'));\nexports.SkinFill = getIcon('skin', fill, getNode(newViewBox, 'M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44z'));\nexports.SlackCircleFill = getIcon('slack-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z'));\nexports.SlackSquareFill = getIcon('slack-square', fill, getNode(newViewBox, '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-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z'));\nexports.SkypeFill = getIcon('skype', fill, getNode(newViewBox, 'M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z'));\nexports.SlidersFill = getIcon('sliders', fill, getNode(newViewBox, 'M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z'));\nexports.SmileFill = getIcon('smile', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.SnippetsFill = getIcon('snippets', fill, getNode(newViewBox, 'M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z'));\nexports.SoundFill = getIcon('sound', fill, getNode(newViewBox, 'M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z'));\nexports.StarFill = getIcon('star', fill, getNode(newViewBox, 'M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z'));\nexports.StepBackwardFill = getIcon('step-backward', fill, getNode(normalViewBox, 'M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8'));\nexports.StepForwardFill = getIcon('step-forward', fill, getNode(normalViewBox, 'M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8'));\nexports.StopFill = getIcon('stop', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z'));\nexports.SwitcherFill = getIcon('switcher', fill, getNode(newViewBox, 'M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z'));\nexports.TabletFill = getIcon('tablet', fill, getNode(newViewBox, 'M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z'));\nexports.TagFill = getIcon('tag', fill, getNode(newViewBox, 'M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z'));\nexports.TagsFill = getIcon('tags', fill, getNode(newViewBox, 'M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z'));\nexports.TaobaoCircleFill = getIcon('taobao-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z'));\nexports.TaobaoSquareFill = getIcon('taobao-square', fill, getNode(newViewBox, '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-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z'));\nexports.ToolFill = getIcon('tool', fill, getNode(newViewBox, 'M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 0 0 419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z'));\nexports.ThunderboltFill = getIcon('thunderbolt', fill, getNode(newViewBox, 'M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z'));\nexports.TrademarkCircleFill = getIcon('trademark-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z'));\nexports.TwitterCircleFill = getIcon('twitter-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z'));\nexports.TrophyFill = getIcon('trophy', fill, getNode(newViewBox, 'M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z'));\nexports.TwitterSquareFill = getIcon('twitter-square', fill, getNode(newViewBox, '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-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z'));\nexports.UnlockFill = getIcon('unlock', fill, getNode(newViewBox, 'M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0z'));\nexports.UpCircleFill = getIcon('up-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z'));\nexports.UpSquareFill = getIcon('up-square', fill, getNode(newViewBox, '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-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z'));\nexports.UsbFill = getIcon('usb', fill, getNode(newViewBox, 'M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'));\nexports.WalletFill = getIcon('wallet', fill, getNode(newViewBox, '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-32 464H528V448h320v128zm-268-64a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.VideoCameraFill = getIcon('video-camera', fill, getNode(newViewBox, 'M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z'));\nexports.WarningFill = getIcon('warning', fill, getNode(newViewBox, 'M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.WeiboCircleFill = getIcon('weibo-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z'));\nexports.WechatFill = getIcon('wechat', fill, getNode(newViewBox, 'M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z'));\nexports.WindowsFill = getIcon('windows', fill, getNode(newViewBox, 'M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z'));\nexports.YahooFill = getIcon('yahoo', fill, getNode(newViewBox, 'M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z'));\nexports.WeiboSquareFill = getIcon('weibo-square', fill, getNode(newViewBox, 'M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 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-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z'));\nexports.YuqueFill = getIcon('yuque', fill, getNode(newViewBox, 'M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z'));\nexports.YoutubeFill = getIcon('youtube', fill, getNode(newViewBox, 'M941.3 296.1a112.3 112.3 0 0 0-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0 0 82.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z'));\nexports.ZhihuSquareFill = getIcon('zhihu-square', fill, getNode(newViewBox, '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-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z'));\nexports.ZhihuCircleFill = getIcon('zhihu-circle', fill, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z'));\nexports.AccountBookOutline = getIcon('account-book', outline, getNode(newViewBox, '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 656H184V256h128v48c0 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-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z'));\nexports.AlertOutline = getIcon('alert', outline, getNode(newViewBox, 'M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z'));\nexports.AlipayCircleOutline = getIcon('alipay-circle', outline, getNode(newViewBox, 'M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z'));\nexports.AliwangwangOutline = getIcon('aliwangwang', outline, getNode(newViewBox, 'M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 0 1-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 0 1-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 0 1 217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z'));\nexports.AndroidOutline = getIcon('android', outline, getNode(newViewBox, 'M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z'));\nexports.ApiOutline = getIcon('api', outline, getNode(newViewBox, 'M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 0 1-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z'));\nexports.AppstoreOutline = getIcon('appstore', outline, getNode(newViewBox, 'M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'));\nexports.AudioOutline = getIcon('audio', outline, getNode(newViewBox, 'M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z'));\nexports.AppleOutline = getIcon('apple', outline, getNode(newViewBox, 'M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z'));\nexports.BackwardOutline = getIcon('backward', outline, getNode(normalViewBox, 'M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z'));\nexports.BankOutline = getIcon('bank', outline, getNode(newViewBox, 'M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z'));\nexports.BellOutline = getIcon('bell', outline, getNode(newViewBox, 'M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z'));\nexports.BehanceSquareOutline = getIcon('behance-square', outline, getNode(newViewBox, '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-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z'));\nexports.BookOutline = getIcon('book', outline, getNode(newViewBox, '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 0 0 22.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'));\nexports.BoxPlotOutline = getIcon('box-plot', outline, getNode(newViewBox, 'M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z'));\nexports.BulbOutline = getIcon('bulb', outline, getNode(newViewBox, 'M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z'));\nexports.BugOutline = getIcon('bug', outline, getNode(newViewBox, 'M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z', 'M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 0 0 123.2-149.5A120 120 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 0 1 308 680V412h408v268z'));\nexports.CalculatorOutline = getIcon('calculator', outline, getNode(newViewBox, 'M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 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-36 732H180V180h664v664z'));\nexports.BuildOutline = getIcon('build', outline, getNode(newViewBox, 'M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z'));\nexports.CalendarOutline = getIcon('calendar', outline, getNode(newViewBox, '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'));\nexports.CameraOutline = getIcon('camera', outline, getNode(newViewBox, 'M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z'));\nexports.CarOutline = getIcon('car', outline, getNode(newViewBox, 'M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm239-167.6L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.CaretDownOutline = getIcon('caret-down', outline, getNode(normalViewBox, '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'));\nexports.CaretLeftOutline = getIcon('caret-left', outline, getNode(normalViewBox, 'M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z'));\nexports.CaretRightOutline = getIcon('caret-right', outline, getNode(normalViewBox, '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'));\nexports.CarryOutOutline = getIcon('carry-out', outline, getNode(newViewBox, '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 656H184V256h128v48c0 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-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-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 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z'));\nexports.CheckCircleOutline = getIcon('check-circle', outline, getNode(newViewBox, 'M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z', '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'));\nexports.CaretUpOutline = getIcon('caret-up', outline, getNode(normalViewBox, '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'));\nexports.CheckSquareOutline = getIcon('check-square', outline, getNode(newViewBox, 'M433.1 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z', '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'));\nexports.ChromeOutline = getIcon('chrome', outline, getNode(newViewBox, 'M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z'));\nexports.ClockCircleOutline = getIcon('clock-circle', outline, getNode(newViewBox, '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', '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'));\nexports.CloseCircleOutline = getIcon('close-circle', outline, getNode(newViewBox, 'M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-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 670a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z', 'M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z'));\nexports.CloudOutline = getIcon('cloud', outline, getNode(newViewBox, 'M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z'));\nexports.CloseSquareOutline = getIcon('close-square', outline, getNode(newViewBox, 'M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z', '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'));\nexports.CodeOutline = getIcon('code', outline, getNode(newViewBox, 'M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 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'));\nexports.CodepenCircleOutline = getIcon('codepen-circle', outline, getNode(newViewBox, 'M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z'));\nexports.CompassOutline = getIcon('compass', outline, getNode(newViewBox, '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 372zm198.4-588.1a32 32 0 0 0-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 0 0-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z'));\nexports.ContactsOutline = getIcon('contacts', outline, getNode(newViewBox, 'M594.3 601.5a111.8 111.8 0 0 0 29.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 0 0-74.6 126.1 8 8 0 0 0 8 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 0 0 8-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'));\nexports.ContainerOutline = getIcon('container', outline, getNode(newViewBox, '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-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'));\nexports.ControlOutline = getIcon('control', outline, getNode(newViewBox, '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 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z'));\nexports.CopyOutline = getIcon('copy', outline, getNode(newViewBox, 'M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z'));\nexports.CreditCardOutline = getIcon('credit-card', outline, getNode(newViewBox, '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'));\nexports.CrownOutline = getIcon('crown', outline, getNode(newViewBox, 'M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z'));\nexports.CustomerServiceOutline = getIcon('customer-service', outline, getNode(newViewBox, 'M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z'));\nexports.DashboardOutline = getIcon('dashboard', outline, getNode(newViewBox, 'M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-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 0 1 140 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 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.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 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 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 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 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'));\nexports.DeleteOutline = getIcon('delete', outline, getNode(newViewBox, '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'));\nexports.DiffOutline = getIcon('diff', outline, getNode(newViewBox, 'M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z'));\nexports.DatabaseOutline = getIcon('database', outline, getNode(newViewBox, '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-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.DislikeOutline = getIcon('dislike', outline, getNode(newViewBox, 'M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z'));\nexports.DownCircleOutline = getIcon('down-circle', outline, getNode(newViewBox, 'M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z', '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'));\nexports.DownSquareOutline = getIcon('down-square', outline, getNode(newViewBox, 'M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z', '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'));\nexports.DribbbleSquareOutline = getIcon('dribbble-square', outline, getNode(newViewBox, 'M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 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-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z'));\nexports.EnvironmentOutline = getIcon('environment', outline, getNode(newViewBox, 'M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-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 0 0 169.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 0 0 22.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 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 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'));\nexports.EditOutline = getIcon('edit', outline, getNode(newViewBox, '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 0 0 0-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 0 0 9.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'));\nexports.ExclamationCircleOutline = getIcon('exclamation-circle', outline, getNode(newViewBox, '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', 'M464 688a48 48 0 1 0 96 0 48 48 0 1 0-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'));\nexports.ExperimentOutline = getIcon('experiment', outline, getNode(newViewBox, 'M512 472a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z'));\nexports.EyeInvisibleOutline = getIcon('eye-invisible', outline, getNode(newViewBox, '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 0 0 0-51.5zm-63.57-320.64L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-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 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z', 'M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z'));\nexports.EyeOutline = getIcon('eye', outline, getNode(newViewBox, '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 0 0 0 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'));\nexports.FacebookOutline = getIcon('facebook', outline, getNode(newViewBox, '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-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z'));\nexports.FastBackwardOutline = getIcon('fast-backward', outline, getNode(normalViewBox, 'M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z'));\nexports.FastForwardOutline = getIcon('fast-forward', outline, getNode(normalViewBox, 'M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z'));\nexports.FileAddOutline = getIcon('file-add', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z'));\nexports.FileExcelOutline = getIcon('file-excel', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z'));\nexports.FileExclamationOutline = getIcon('file-exclamation', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM472 744a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z'));\nexports.FileImageOutline = getIcon('file-image', outline, getNode(newViewBox, 'M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm494.6-153.4L639.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 0 0 42 42h216v494z'));\nexports.FileMarkdownOutline = getIcon('file-markdown', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z'));\nexports.FilePptOutline = getIcon('file-ppt', outline, getNode(newViewBox, 'M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.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 0 0 42 42h216v494z'));\nexports.FileTextOutline = getIcon('file-text', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z'));\nexports.FilePdfOutline = getIcon('file-pdf', outline, getNode(newViewBox, 'M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.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 0 0 42 42h216v494z'));\nexports.FileZipOutline = getIcon('file-zip', outline, getNode(newViewBox, 'M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.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 562H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z'));\nexports.FileOutline = getIcon('file', outline, getNode(newViewBox, '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 0 0 42 42h216v494z'));\nexports.FilterOutline = getIcon('filter', outline, getNode(newViewBox, 'M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z'));\nexports.FileWordOutline = getIcon('file-word', outline, getNode(newViewBox, '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 0 0 42 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z'));\nexports.FireOutline = getIcon('fire', outline, getNode(newViewBox, 'M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z'));\nexports.FileUnknownOutline = getIcon('file-unknown', outline, getNode(newViewBox, 'M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-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.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1 0 64 0 32 32 0 1 0-64 0z'));\nexports.FlagOutline = getIcon('flag', outline, getNode(newViewBox, 'M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z'));\nexports.FolderAddOutline = getIcon('folder-add', outline, getNode(newViewBox, 'M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 0 0-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'));\nexports.FolderOutline = getIcon('folder', outline, getNode(newViewBox, 'M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-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'));\nexports.FolderOpenOutline = getIcon('folder-open', outline, getNode(newViewBox, 'M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-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'));\nexports.ForwardOutline = getIcon('forward', outline, getNode(normalViewBox, 'M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z'));\nexports.FrownOutline = getIcon('frown', outline, getNode(newViewBox, 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533z'));\nexports.FundOutline = getIcon('fund', outline, getNode(newViewBox, 'M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L531 565 416.6 450.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z'));\nexports.FunnelPlotOutline = getIcon('funnel-plot', outline, getNode(newViewBox, 'M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z'));\nexports.GiftOutline = getIcon('gift', outline, getNode(newViewBox, 'M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z'));\nexports.GithubOutline = getIcon('github', outline, getNode(newViewBox, 'M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z'));\nexports.GitlabOutline = getIcon('gitlab', outline, getNode(newViewBox, 'M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z'));\nexports.HeartOutline = getIcon('heart', outline, getNode(newViewBox, 'M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z'));\nexports.HddOutline = getIcon('hdd', outline, getNode(newViewBox, '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-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.HighlightOutline = getIcon('highlight', outline, getNode(newViewBox, 'M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z'));\nexports.HomeOutline = getIcon('home', outline, getNode(newViewBox, 'M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'));\nexports.HourglassOutline = getIcon('hourglass', outline, getNode(newViewBox, 'M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z'));\nexports.Html5Outline = getIcon('html5', outline, getNode(newViewBox, 'M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z'));\nexports.IdcardOutline = getIcon('idcard', outline, getNode(newViewBox, '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 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.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 0 0-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'));\nexports.InfoCircleOutline = getIcon('info-circle', outline, getNode(newViewBox, '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', 'M464 336a48 48 0 1 0 96 0 48 48 0 1 0-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'));\nexports.InstagramOutline = getIcon('instagram', outline, getNode(newViewBox, 'M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 0 0-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z'));\nexports.InsuranceOutline = getIcon('insurance', outline, getNode(newViewBox, 'M441.6 306.8L403 288.6a6.1 6.1 0 0 0-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 0 0-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0 0 33.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.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.6z'));\nexports.InteractionOutline = getIcon('interaction', outline, getNode(newViewBox, '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 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z'));\nexports.InterationOutline = getIcon('interation', outline, getNode(newViewBox, '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 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z'));\nexports.LayoutOutline = getIcon('layout', outline, getNode(newViewBox, '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-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z'));\nexports.LeftCircleOutline = getIcon('left-circle', outline, getNode(newViewBox, 'M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z', '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'));\nexports.LeftSquareOutline = getIcon('left-square', outline, getNode(newViewBox, 'M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 0 0 0 13z', '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'));\nexports.LikeOutline = getIcon('like', outline, getNode(newViewBox, 'M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0 1 42.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z'));\nexports.LinkedinOutline = getIcon('linkedin', outline, getNode(newViewBox, 'M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 1 0-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z'));\nexports.LockOutline = getIcon('lock', outline, getNode(newViewBox, 'M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z'));\nexports.MedicineBoxOutline = getIcon('medicine-box', outline, getNode(newViewBox, 'M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'));\nexports.MehOutline = getIcon('meh', outline, getNode(newViewBox, 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'));\nexports.MailOutline = getIcon('mail', outline, getNode(newViewBox, '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 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z'));\nexports.MessageOutline = getIcon('message', outline, getNode(newViewBox, 'M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm200 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-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 0 0-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 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.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'));\nexports.MinusCircleOutline = getIcon('minus-circle', outline, getNode(newViewBox, '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', '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'));\nexports.MinusSquareOutline = getIcon('minus-square', outline, getNode(newViewBox, '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', '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'));\nexports.MobileOutline = getIcon('mobile', outline, getNode(newViewBox, 'M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.MoneyCollectOutline = getIcon('money-collect', outline, getNode(newViewBox, 'M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z'));\nexports.PauseCircleOutline = getIcon('pause-circle', outline, getNode(newViewBox, '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 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z'));\nexports.PayCircleOutline = getIcon('pay-circle', outline, getNode(newViewBox, '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 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 0 0-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z'));\nexports.NotificationOutline = getIcon('notification', outline, getNode(newViewBox, 'M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z'));\nexports.PhoneOutline = getIcon('phone', outline, getNode(newViewBox, '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 0 1-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 0 0-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 0 0 285.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'));\nexports.PictureOutline = getIcon('picture', outline, getNode(newViewBox, '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.2zM304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z'));\nexports.PieChartOutline = getIcon('pie-chart', outline, getNode(newViewBox, 'M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z'));\nexports.PlaySquareOutline = getIcon('play-square', outline, getNode(newViewBox, 'M442.3 677.6l199.4-156.7a11.3 11.3 0 0 0 0-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z', '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'));\nexports.PlayCircleOutline = getIcon('play-circle', outline, getNode(newViewBox, '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', 'M719.4 499.1l-296.1-215A15.9 15.9 0 0 0 398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 0 0 0-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z'));\nexports.PlusCircleOutline = getIcon('plus-circle', outline, getNode(newViewBox, 'M696 480H544V328c0-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 8h152v152c0 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-8z', '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'));\nexports.PrinterOutline = getIcon('printer', outline, getNode(newViewBox, 'M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z'));\nexports.PlusSquareOutline = getIcon('plus-square', outline, getNode(newViewBox, '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', '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'));\nexports.ProfileOutline = getIcon('profile', outline, getNode(newViewBox, '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 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.ProjectOutline = getIcon('project', outline, getNode(newViewBox, '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'));\nexports.PushpinOutline = getIcon('pushpin', outline, getNode(newViewBox, 'M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z'));\nexports.PropertySafetyOutline = getIcon('property-safety', outline, getNode(newViewBox, '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.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 0 0-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 0 0-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z'));\nexports.QuestionCircleOutline = getIcon('question-circle', outline, getNode(newViewBox, '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', '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 0 1 30.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 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.ReadOutline = getIcon('read', outline, getNode(newViewBox, 'M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z'));\nexports.ReconciliationOutline = getIcon('reconciliation', outline, getNode(newViewBox, 'M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z'));\nexports.RedEnvelopeOutline = getIcon('red-envelope', outline, getNode(newViewBox, 'M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 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-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z'));\nexports.RestOutline = getIcon('rest', outline, getNode(newViewBox, 'M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z', 'M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z'));\nexports.RightCircleOutline = getIcon('right-circle', outline, getNode(newViewBox, 'M666.7 505.5l-246-178A8 8 0 0 0 408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z', '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'));\nexports.RocketOutline = getIcon('rocket', outline, getNode(newViewBox, 'M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0 1 62.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'));\nexports.RightSquareOutline = getIcon('right-square', outline, getNode(newViewBox, 'M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z', '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'));\nexports.SafetyCertificateOutline = getIcon('safety-certificate', outline, getNode(newViewBox, '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 0 0 26 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'));\nexports.ScheduleOutline = getIcon('schedule', outline, getNode(newViewBox, 'M928 224H768v-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-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z'));\nexports.SaveOutline = getIcon('save', outline, getNode(newViewBox, 'M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z'));\nexports.SecurityScanOutline = getIcon('security-scan', outline, getNode(newViewBox, '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 0 0 0 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'));\nexports.SettingOutline = getIcon('setting', outline, getNode(newViewBox, 'M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-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 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z'));\nexports.ShoppingOutline = getIcon('shopping', outline, getNode(newViewBox, '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'));\nexports.SkinOutline = getIcon('skin', outline, getNode(newViewBox, 'M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z'));\nexports.SkypeOutline = getIcon('skype', outline, getNode(newViewBox, 'M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 0 1-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 0 1-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0 1 71.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z'));\nexports.SlackSquareOutline = getIcon('slack-square', outline, getNode(newViewBox, '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-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z'));\nexports.SlidersOutline = getIcon('sliders', outline, getNode(newViewBox, 'M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74z'));\nexports.SmileOutline = getIcon('smile', outline, getNode(newViewBox, 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z'));\nexports.SnippetsOutline = getIcon('snippets', outline, getNode(newViewBox, 'M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z'));\nexports.SoundOutline = getIcon('sound', outline, getNode(newViewBox, 'M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344z'));\nexports.StarOutline = getIcon('star', outline, getNode(newViewBox, 'M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z'));\nexports.StepBackwardOutline = getIcon('step-backward', outline, getNode(normalViewBox, 'M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8'));\nexports.StepForwardOutline = getIcon('step-forward', outline, getNode(normalViewBox, 'M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8'));\nexports.StopOutline = getIcon('stop', outline, getNode(newViewBox, '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-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z'));\nexports.SwitcherOutline = getIcon('switcher', outline, getNode(newViewBox, 'M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z'));\nexports.TagOutline = getIcon('tag', outline, getNode(newViewBox, 'M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'));\nexports.TabletOutline = getIcon('tablet', outline, getNode(newViewBox, 'M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.ShopOutline = getIcon('shop', outline, getNode(newViewBox, 'M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z'));\nexports.TagsOutline = getIcon('tags', outline, getNode(newViewBox, 'M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1 0 67.88-67.89 48 48 0 1 0-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z'));\nexports.TaobaoCircleOutline = getIcon('taobao-circle', outline, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z'));\nexports.ToolOutline = getIcon('tool', outline, getNode(newViewBox, 'M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z'));\nexports.ThunderboltOutline = getIcon('thunderbolt', outline, getNode(newViewBox, 'M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z'));\nexports.TrophyOutline = getIcon('trophy', outline, getNode(newViewBox, 'M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM184 352V232h64v207.6a91.99 91.99 0 0 1-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z'));\nexports.UnlockOutline = getIcon('unlock', outline, getNode(newViewBox, 'M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z'));\nexports.UpCircleOutline = getIcon('up-circle', outline, getNode(newViewBox, 'M518.5 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z', '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'));\nexports.UpSquareOutline = getIcon('up-square', outline, getNode(newViewBox, 'M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246A7.96 7.96 0 0 0 334 624z', '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'));\nexports.UsbOutline = getIcon('usb', outline, getNode(newViewBox, 'M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'));\nexports.VideoCameraOutline = getIcon('video-camera', outline, getNode(newViewBox, 'M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'));\nexports.WalletOutline = getIcon('wallet', outline, getNode(newViewBox, '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 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.WarningOutline = getIcon('warning', outline, getNode(newViewBox, 'M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z'));\nexports.WechatOutline = getIcon('wechat', outline, getNode(newViewBox, 'M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z'));\nexports.WeiboCircleOutline = getIcon('weibo-circle', outline, getNode(newViewBox, 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z'));\nexports.WindowsOutline = getIcon('windows', outline, getNode(newViewBox, 'M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z'));\nexports.YahooOutline = getIcon('yahoo', outline, getNode(newViewBox, 'M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z'));\nexports.WeiboSquareOutline = getIcon('weibo-square', outline, getNode(newViewBox, 'M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 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-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z'));\nexports.YuqueOutline = getIcon('yuque', outline, getNode(newViewBox, 'M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z'));\nexports.YoutubeOutline = getIcon('youtube', outline, getNode(newViewBox, 'M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 0 0-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0 0 82.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z'));\nexports.AlibabaOutline = getIcon('alibaba', outline, getNode(newViewBox, 'M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z'));\nexports.AlignCenterOutline = getIcon('align-center', outline, getNode(newViewBox, 'M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-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-424H120c-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-8z'));\nexports.AlignLeftOutline = getIcon('align-left', outline, getNode(newViewBox, 'M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-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-424H120c-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-8z'));\nexports.AlignRightOutline = getIcon('align-right', outline, getNode(newViewBox, 'M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-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-424H120c-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-8z'));\nexports.AlipayOutline = getIcon('alipay', outline, getNode(newViewBox, 'M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 0 1-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z'));\nexports.AliyunOutline = getIcon('aliyun', outline, getNode(newViewBox, 'M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0 1 32.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 0 1-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 0 1-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z'));\nexports.AmazonOutline = getIcon('amazon', outline, getNode(newViewBox, 'M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 0 0-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z'));\nexports.AntCloudOutline = getIcon('ant-cloud', outline, getNode(newViewBox, 'M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0 1 22.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 0 1-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-65.7 61.3a24 24 0 1 0 48 0 24 24 0 1 0-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z'));\nexports.ApartmentOutline = getIcon('apartment', outline, getNode(newViewBox, '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'));\nexports.AntDesignOutline = getIcon('ant-design', outline, getNode(newViewBox, 'M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 0 0 0 76.4L474.6 944a54.14 54.14 0 0 0 76.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 0 0-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 1 0 212.6 0 106.3 106.2 0 1 0-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 0 0 0 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 0 0 0 68.6 48.7 48.7 0 0 0 68.7 0l121.8-121.7a53.93 53.93 0 0 0-.1-76.4z'));\nexports.AreaChartOutline = getIcon('area-chart', outline, getNode(newViewBox, '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-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z'));\nexports.ArrowLeftOutline = getIcon('arrow-left', outline, getNode(newViewBox, 'M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 0 0 0 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z'));\nexports.ArrowDownOutline = getIcon('arrow-down', outline, getNode(newViewBox, 'M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0 0 48.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z'));\nexports.ArrowUpOutline = getIcon('arrow-up', outline, getNode(newViewBox, 'M868 545.5L536.1 163a31.96 31.96 0 0 0-48.3 0L156 545.5a7.97 7.97 0 0 0 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z'));\nexports.ArrowsAltOutline = getIcon('arrows-alt', outline, getNode(newViewBox, 'M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z'));\nexports.ArrowRightOutline = getIcon('arrow-right', outline, getNode(newViewBox, 'M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 0 0 0-48.4z'));\nexports.AuditOutline = getIcon('audit', outline, getNode(newViewBox, 'M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z'));\nexports.BarChartOutline = getIcon('bar-chart', outline, getNode(newViewBox, '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-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z'));\nexports.BarcodeOutline = getIcon('barcode', outline, getNode(newViewBox, 'M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'));\nexports.BarsOutline = getIcon('bars', outline, getNode(normalViewBox, '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 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.BgColorsOutline = getIcon('bg-colors', outline, getNode(newViewBox, 'M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 0 0-12.8 0l-48 48a9.11 9.11 0 0 0 0 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z'));\nexports.BehanceOutline = getIcon('behance', outline, getNode(newViewBox, 'M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z'));\nexports.BlockOutline = getIcon('block', outline, getNode(newViewBox, 'M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z'));\nexports.BoldOutline = getIcon('bold', outline, getNode(newViewBox, 'M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z'));\nexports.BorderBottomOutline = getIcon('border-bottom', outline, getNode(newViewBox, 'M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z'));\nexports.BorderLeftOutline = getIcon('border-left', outline, getNode(newViewBox, 'M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderOuterOutline = getIcon('border-outer', outline, getNode(newViewBox, '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 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z'));\nexports.BorderInnerOutline = getIcon('border-inner', outline, getNode(newViewBox, 'M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderRightOutline = getIcon('border-right', outline, getNode(newViewBox, 'M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderHorizontalOutline = getIcon('border-horizontal', outline, getNode(newViewBox, 'M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderTopOutline = getIcon('border-top', outline, getNode(newViewBox, 'M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderVerticleOutline = getIcon('border-verticle', outline, getNode(newViewBox, 'M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.BorderOutline = getIcon('border', outline, getNode(newViewBox, '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'));\nexports.BranchesOutline = getIcon('branches', outline, getNode(newViewBox, 'M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0 0 34.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm408-491a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.CheckOutline = getIcon('check', outline, getNode(newViewBox, 'M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-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'));\nexports.CiOutline = getIcon('ci', outline, getNode(newViewBox, '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 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z'));\nexports.CloseOutline = getIcon('close', outline, getNode(newViewBox, '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 0 0 203 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'));\nexports.CloudDownloadOutline = getIcon('cloud-download', outline, getNode(newViewBox, 'M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z', 'M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z'));\nexports.CloudServerOutline = getIcon('cloud-server', outline, getNode(newViewBox, 'M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z', 'M424 748a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm0-178a32 32 0 1 0 64 0 32 32 0 1 0-64 0z', 'M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z'));\nexports.CloudSyncOutline = getIcon('cloud-sync', outline, getNode(newViewBox, 'M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z', 'M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 0 0 3 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 0 0-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z'));\nexports.CloudUploadOutline = getIcon('cloud-upload', outline, getNode(newViewBox, 'M518.3 459a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z', 'M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z'));\nexports.ClusterOutline = getIcon('cluster', outline, getNode(newViewBox, 'M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'));\nexports.CodepenOutline = getIcon('codepen', outline, getNode(newViewBox, 'M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 0 0-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z'));\nexports.CodeSandboxOutline = getIcon('code-sandbox', outline, getNode(newViewBox, 'M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z'));\nexports.ColumHeightOutline = getIcon('colum-height', outline, getNode(newViewBox, 'M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z'));\nexports.ColumnWidthOutline = getIcon('column-width', outline, getNode(newViewBox, 'M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z'));\nexports.ColumnHeightOutline = getIcon('column-height', outline, getNode(newViewBox, 'M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z'));\nexports.CoffeeOutline = getIcon('coffee', outline, getNode(normalViewBox, 'M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z'));\nexports.CopyrightOutline = getIcon('copyright', outline, getNode(newViewBox, '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 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z'));\nexports.DashOutline = getIcon('dash', outline, getNode(newViewBox, 'M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z'));\nexports.DeploymentUnitOutline = getIcon('deployment-unit', outline, getNode(newViewBox, 'M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z'));\nexports.DesktopOutline = getIcon('desktop', outline, getNode(newViewBox, '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'));\nexports.DingdingOutline = getIcon('dingding', outline, getNode(newViewBox, 'M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z'));\nexports.DisconnectOutline = getIcon('disconnect', outline, getNode(newViewBox, 'M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 0 0-11.3 0L209.4 249a8.03 8.03 0 0 0 0 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z'));\nexports.DollarOutline = getIcon('dollar', outline, getNode(newViewBox, '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 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z'));\nexports.DoubleRightOutline = getIcon('double-right', outline, getNode(newViewBox, '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 0 0 188 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 0 0 492 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'));\nexports.DotChartOutline = getIcon('dot-chart', outline, getNode(newViewBox, '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 1 0 128 0 64 64 0 1 0-128 0zm118-224a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm158 228a96 96 0 1 0 192 0 96 96 0 1 0-192 0zm148-314a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.DoubleLeftOutline = getIcon('double-left', outline, getNode(newViewBox, '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 0 0 0 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 0 0 0 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'));\nexports.DownloadOutline = getIcon('download', outline, getNode(newViewBox, 'M505.7 661a8 8 0 0 0 12.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'));\nexports.DribbbleOutline = getIcon('dribbble', outline, getNode(newViewBox, 'M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 0 1 512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z'));\nexports.DropboxOutline = getIcon('dropbox', outline, getNode(newViewBox, 'M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z'));\nexports.EllipsisOutline = getIcon('ellipsis', outline, getNode(newViewBox, 'M176 511a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.EnterOutline = getIcon('enter', outline, getNode(newViewBox, 'M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z'));\nexports.EuroOutline = getIcon('euro', outline, getNode(newViewBox, '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 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z'));\nexports.ExceptionOutline = getIcon('exception', outline, getNode(newViewBox, 'M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.ExclamationOutline = getIcon('exclamation', outline, getNode(newViewBox, 'M448 804a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z'));\nexports.ExportOutline = getIcon('export', outline, getNode(newViewBox, 'M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z'));\nexports.FallOutline = getIcon('fall', outline, getNode(newViewBox, 'M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 0 0-11.3 0l-45 45.2a8.03 8.03 0 0 0 0 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 0 0 4.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z'));\nexports.FileDoneOutline = getIcon('file-done', outline, getNode(newViewBox, 'M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 0 0-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.FileSyncOutline = getIcon('file-sync', outline, getNode(newViewBox, 'M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 0 0 3 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 0 0-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 0 0-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0 0 12.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z'));\nexports.FileProtectOutline = getIcon('file-protect', outline, getNode(newViewBox, 'M644.7 669.2a7.92 7.92 0 0 0-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 0 0-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z'));\nexports.FileSearchOutline = getIcon('file-search', outline, getNode(newViewBox, 'M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 0 0 0-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z'));\nexports.FileJpgOutline = getIcon('file-jpg', outline, getNode(normalViewBox, 'M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z'));\nexports.FontColorsOutline = getIcon('font-colors', outline, getNode(newViewBox, 'M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 0 0 6-12.4L573.6 118.6a9.9 9.9 0 0 0-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z'));\nexports.FontSizeOutline = getIcon('font-size', outline, getNode(newViewBox, 'M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z'));\nexports.ForkOutline = getIcon('fork', outline, getNode(newViewBox, 'M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm336 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm192-552a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'));\nexports.FormOutline = getIcon('form', outline, getNode(newViewBox, 'M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z', 'M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 0 0-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z'));\nexports.FullscreenExitOutline = getIcon('fullscreen-exit', outline, getNode(newViewBox, 'M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 0 0 0 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 0 0 391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 0 0-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z'));\nexports.FullscreenOutline = getIcon('fullscreen', outline, getNode(newViewBox, 'M290 236.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0 0 13.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 0 0 0 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 0 0-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z'));\nexports.GatewayOutline = getIcon('gateway', outline, getNode(newViewBox, 'M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z'));\nexports.DownOutline = getIcon('down', outline, getNode(newViewBox, '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'));\nexports.DragOutline = getIcon('drag', outline, getNode(newViewBox, 'M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z'));\nexports.GlobalOutline = getIcon('global', outline, getNode(newViewBox, '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 0 0 10-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 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-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 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-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 0 1 115.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 0 1 540 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 0 0 540 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 0 1-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 0 0-81.5 55.9A373.86 373.86 0 0 1 137 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 0 1-107.6 69.2z'));\nexports.GooglePlusOutline = getIcon('google-plus', outline, getNode(newViewBox, 'M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z'));\nexports.GoogleOutline = getIcon('google', outline, getNode(newViewBox, 'M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z'));\nexports.HeatMapOutline = getIcon('heat-map', outline, getNode(newViewBox, 'M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z'));\nexports.GoldOutline = getIcon('gold', outline, getNode(newViewBox, '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'));\nexports.HistoryOutline = getIcon('history', outline, getNode(newViewBox, 'M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1zm167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9 352.18 352.18 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z'));\nexports.IeOutline = getIcon('ie', outline, getNode(newViewBox, 'M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z'));\nexports.InboxOutline = getIcon('inbox', outline, getNode(normalViewBox, 'M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0 0 60.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z'));\nexports.ImportOutline = getIcon('import', outline, getNode(newViewBox, 'M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.InfoOutline = getIcon('info', outline, getNode(newViewBox, 'M448 224a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z'));\nexports.ItalicOutline = getIcon('italic', outline, getNode(newViewBox, 'M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z'));\nexports.IssuesCloseOutline = getIcon('issues-close', outline, getNode(newViewBox, 'M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72-112c4.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 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 0 0-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0 0 26 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 0 1-49.8 62.2A355.92 355.92 0 0 1 651.1 840a355 355 0 0 1-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 0 1-113.3-76.3A353.06 353.06 0 0 1 184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 0 1 138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 0 0 892 694z'));\nexports.KeyOutline = getIcon('key', outline, getNode(newViewBox, 'M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 0 0 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z'));\nexports.LaptopOutline = getIcon('laptop', outline, getNode(newViewBox, 'M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z'));\nexports.LeftOutline = getIcon('left', outline, getNode(newViewBox, 'M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 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'));\nexports.LinkOutline = getIcon('link', outline, getNode(newViewBox, 'M574 665.4a8.03 8.03 0 0 0-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 0 0-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 0 0 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 0 0 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 0 0-11.3 0L372.3 598.7a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z'));\nexports.LineChartOutline = getIcon('line-chart', outline, getNode(newViewBox, '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-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z'));\nexports.LineHeightOutline = getIcon('line-height', outline, getNode(newViewBox, 'M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 0 0-11.3 0L713.6 306.3a7.23 7.23 0 0 0 5.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 0 0-5.6-11.7z'));\nexports.LineOutline = getIcon('line', outline, getNode(newViewBox, 'M904 476H120c-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-8z'));\nexports.Loading3QuartersOutline = getIcon('loading-3-quarters', outline, getNode(normalViewBox, 'M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z'));\nexports.LoadingOutline = getIcon('loading', outline, getNode(normalViewBox, 'M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.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'));\nexports.LoginOutline = getIcon('login', outline, getNode(newViewBox, '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 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 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 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z'));\nexports.LogoutOutline = getIcon('logout', outline, getNode(newViewBox, 'M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.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 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z'));\nexports.ManOutline = getIcon('man', outline, getNode(newViewBox, 'M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z'));\nexports.MediumOutline = getIcon('medium', outline, getNode(newViewBox, 'M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 0 1-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 0 1 6.8-17.2z'));\nexports.MediumWorkmarkOutline = getIcon('medium-workmark', outline, getNode(normalViewBox, 'M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 0 1-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0 1 34.61 21.67v-56.19a6.99 6.99 0 0 0-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 0 0-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0 0 19.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 0 0-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 0 1-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 0 0-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0 0 19.35-12.2v-80.85a7.65 7.65 0 0 0-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 0 0-21.19 11.64 99.68 99.68 0 0 1 2.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 0 0 2.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 0 0-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0 1 44.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 0 0 2.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 0 0 2.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 0 0 2.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 0 0 2.96-17.78V457.97A19.71 19.71 0 0 0 24 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 0 0-2.72 6.8v139.37a6.5 6.5 0 0 0 2.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0 0 40.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z'));\nexports.MenuUnfoldOutline = getIcon('menu-unfold', outline, getNode(newViewBox, '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 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z'));\nexports.MenuFoldOutline = getIcon('menu-fold', outline, getNode(newViewBox, '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 0 0 0 13.8z'));\nexports.MenuOutline = getIcon('menu', outline, getNode(newViewBox, 'M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z'));\nexports.MinusOutline = getIcon('minus', outline, getNode(newViewBox, 'M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z'));\nexports.MonitorOutline = getIcon('monitor', outline, getNode(newViewBox, 'M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 0 0-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 0 0-11.2-1.4l-37.9 29.7a7.97 7.97 0 0 0-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z'));\nexports.MoreOutline = getIcon('more', outline, getNode(newViewBox, 'M456 231a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.OrderedListOutline = getIcon('ordered-list', outline, getNode(newViewBox, 'M920 760H336c-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-568H336c-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 284H336c-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-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 0 0-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 0 0 2.1-5.4V432c0-2.2-1.8-4-4-4z'));\nexports.NumberOutline = getIcon('number', outline, getNode(newViewBox, 'M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z'));\nexports.PauseOutline = getIcon('pause', outline, getNode(newViewBox, 'M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z'));\nexports.PercentageOutline = getIcon('percentage', outline, getNode(newViewBox, 'M855.7 210.8l-42.4-42.4a8.03 8.03 0 0 0-11.3 0L168.3 801.9a8.03 8.03 0 0 0 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z'));\nexports.PaperClipOutline = getIcon('paper-clip', outline, getNode(newViewBox, '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 0 0 12.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 0 0 12.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 0 0 174 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'));\nexports.PicCenterOutline = getIcon('pic-center', outline, getNode(newViewBox, 'M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z'));\nexports.PicLeftOutline = getIcon('pic-left', outline, getNode(newViewBox, 'M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z'));\nexports.PlusOutline = getIcon('plus', outline, getNode(newViewBox, 'M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z', 'M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z'));\nexports.PicRightOutline = getIcon('pic-right', outline, getNode(newViewBox, 'M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z'));\nexports.PoundOutline = getIcon('pound', outline, getNode(newViewBox, '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 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z'));\nexports.PoweroffOutline = getIcon('poweroff', outline, getNode(newViewBox, 'M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z'));\nexports.PullRequestOutline = getIcon('pull-request', outline, getNode(newViewBox, 'M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0z'));\nexports.QqOutline = getIcon('qq', outline, getNode(newViewBox, 'M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z'));\nexports.QuestionOutline = getIcon('question', outline, getNode(newViewBox, 'M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 0 0-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z'));\nexports.RadarChartOutline = getIcon('radar-chart', outline, getNode(newViewBox, 'M926.8 397.1l-396-288a31.81 31.81 0 0 0-37.6 0l-396 288a31.99 31.99 0 0 0-11.6 35.8l151.3 466a32 32 0 0 0 30.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z'));\nexports.QrcodeOutline = getIcon('qrcode', outline, getNode(newViewBox, 'M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'));\nexports.RadiusBottomleftOutline = getIcon('radius-bottomleft', outline, getNode(newViewBox, 'M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.RadiusBottomrightOutline = getIcon('radius-bottomright', outline, getNode(newViewBox, 'M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z'));\nexports.RadiusUpleftOutline = getIcon('radius-upleft', outline, getNode(newViewBox, 'M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.RadiusUprightOutline = getIcon('radius-upright', outline, getNode(newViewBox, 'M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z'));\nexports.RadiusSettingOutline = getIcon('radius-setting', outline, getNode(newViewBox, 'M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z'));\nexports.RedditOutline = getIcon('reddit', outline, getNode(newViewBox, 'M288 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 1 0-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 0 0-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 0 0 176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 1 1 0 63 31.5 31.5 0 0 1 0-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0 1 50.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 0 1-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.RedoOutline = getIcon('redo', outline, getNode(newViewBox, 'M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 0 0-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z'));\nexports.ReloadOutline = getIcon('reload', outline, getNode(newViewBox, 'M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z'));\nexports.RetweetOutline = getIcon('retweet', outline, getNode(normalViewBox, 'M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0 0 11.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 0 0-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 0 0-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z'));\nexports.RightOutline = getIcon('right', outline, getNode(newViewBox, 'M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 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 0 0 0-50.4z'));\nexports.RiseOutline = getIcon('rise', outline, getNode(newViewBox, 'M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 0 0 0 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0 0 13.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z'));\nexports.RollbackOutline = getIcon('rollback', outline, getNode(newViewBox, 'M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 0 0 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z'));\nexports.SafetyOutline = getIcon('safety', outline, getNode(normalViewBox, 'M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z', 'M378.4 475.1a35.91 35.91 0 0 0-50.9 0 35.91 35.91 0 0 0 0 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0 0 48.1 0L730.6 434a33.98 33.98 0 0 0 0-48.1l-2.8-2.8a33.98 33.98 0 0 0-48.1 0L483 579.7 378.4 475.1z'));\nexports.RobotOutline = getIcon('robot', outline, getNode(newViewBox, 'M300 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z'));\nexports.SearchOutline = getIcon('search', outline, getNode(newViewBox, '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 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-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'));\nexports.ScanOutline = getIcon('scan', outline, getNode(newViewBox, 'M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-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-8z'));\nexports.ScissorOutline = getIcon('scissor', outline, getNode(newViewBox, 'M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 0 0 288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'));\nexports.SelectOutline = getIcon('select', outline, getNode(newViewBox, 'M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 0 0-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z'));\nexports.ShakeOutline = getIcon('shake', outline, getNode(newViewBox, 'M324 666a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 0 0 0 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0 0 11.2 0L373.7 164a7.9 7.9 0 0 0 0-11.2l-38.4-38.4a7.9 7.9 0 0 0-11.2 0L114.3 323.9a7.9 7.9 0 0 0 0 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 0 0-11.2 0L650.3 860.1a7.9 7.9 0 0 0 0 11.2l38.4 38.4a7.9 7.9 0 0 0 11.2 0L909.7 700a7.9 7.9 0 0 0 0-11.2l-38.3-38.5z'));\nexports.ShareAltOutline = getIcon('share-alt', outline, getNode(newViewBox, 'M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z'));\nexports.ShoppingCartOutline = getIcon('shopping-cart', outline, getNode(normalViewBox, 'M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z'));\nexports.ShrinkOutline = getIcon('shrink', outline, getNode(newViewBox, 'M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z'));\nexports.SlackOutline = getIcon('slack', outline, getNode(newViewBox, 'M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 0 0-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z'));\nexports.SmallDashOutline = getIcon('small-dash', outline, getNode(newViewBox, 'M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z'));\nexports.SolutionOutline = getIcon('solution', outline, getNode(newViewBox, 'M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z'));\nexports.SketchOutline = getIcon('sketch', outline, getNode(newViewBox, 'M925.6 405.1l-203-253.7a6.5 6.5 0 0 0-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 0 0 .2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 0 0 .2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z'));\nexports.SortDescendingOutline = getIcon('sort-descending', outline, getNode(newViewBox, 'M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM310.3 167.1a8 8 0 0 0-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z'));\nexports.SortAscendingOutline = getIcon('sort-ascending', outline, getNode(newViewBox, 'M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0 0 12.6 0l112-141.9c4.1-5.2.4-13-6.3-13z'));\nexports.StockOutline = getIcon('stock', outline, getNode(newViewBox, 'M904 747H120c-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-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0 0 45.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 0 0-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 0 0-45.2 0L165.7 610.5a7.94 7.94 0 0 0 0 11.3z'));\nexports.SwapLeftOutline = getIcon('swap-left', outline, getNode(normalViewBox, 'M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z'));\nexports.SwapRightOutline = getIcon('swap-right', outline, getNode(normalViewBox, 'M873.1 596.2l-164-208A32 32 0 0 0 684 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'));\nexports.StrikethroughOutline = getIcon('strikethrough', outline, getNode(newViewBox, 'M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 0 0-8-7.9z'));\nexports.SwapOutline = getIcon('swap', outline, getNode(newViewBox, 'M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z'));\nexports.SyncOutline = getIcon('sync', outline, getNode(newViewBox, 'M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z'));\nexports.TableOutline = getIcon('table', outline, getNode(newViewBox, '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 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z'));\nexports.TeamOutline = getIcon('team', outline, getNode(newViewBox, 'M824.2 699.9a301.55 301.55 0 0 0-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 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 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 0 1 612 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 0 0 8-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 0 1-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 0 1 612 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 0 1-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 0 0 8 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'));\nexports.TaobaoOutline = getIcon('taobao', outline, getNode(newViewBox, 'M168.5 273.7a68.7 68.7 0 1 0 137.4 0 68.7 68.7 0 1 0-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z'));\nexports.ToTopOutline = getIcon('to-top', outline, getNode(newViewBox, 'M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z'));\nexports.TrademarkOutline = getIcon('trademark', outline, getNode(newViewBox, '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 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z'));\nexports.TransactionOutline = getIcon('transaction', outline, getNode(newViewBox, 'M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 0 1 103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 0 0 3 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 0 0 8 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 0 1-103.5 242.4 352.57 352.57 0 0 1-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 0 1-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 0 0-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 0 0-8-8.2z'));\nexports.TwitterOutline = getIcon('twitter', outline, getNode(newViewBox, 'M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z'));\nexports.UnderlineOutline = getIcon('underline', outline, getNode(newViewBox, 'M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z'));\nexports.UndoOutline = getIcon('undo', outline, getNode(newViewBox, 'M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 0 0-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 0 0-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z'));\nexports.UnorderedListOutline = getIcon('unordered-list', outline, getNode(newViewBox, '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 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z'));\nexports.UpOutline = getIcon('up', outline, getNode(newViewBox, 'M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 0 0 140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z'));\nexports.UploadOutline = getIcon('upload', outline, getNode(newViewBox, '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 0 0-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'));\nexports.UserAddOutline = getIcon('user-add', outline, getNode(newViewBox, 'M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 888.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.UsergroupAddOutline = getIcon('usergroup-add', outline, getNode(newViewBox, 'M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.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 0 1-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.8-1.7-203.2 89.2-203.2 200 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 0 0 8 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.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-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-.1 34.2-13.4 66.3-37.6 90.5z'));\nexports.UserOutline = getIcon('user', outline, getNode(newViewBox, 'M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z'));\nexports.UserDeleteOutline = getIcon('user-delete', outline, getNode(newViewBox, 'M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 901.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z'));\nexports.UsergroupDeleteOutline = getIcon('usergroup-delete', outline, getNode(newViewBox, 'M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.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 0 1-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 0 0 8 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.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-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-.1 34.2-13.4 66.3-37.6 90.5z'));\nexports.VerticalAlignBottomOutline = getIcon('vertical-align-bottom', outline, getNode(newViewBox, 'M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-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.8z'));\nexports.VerticalAlignMiddleOutline = getIcon('vertical-align-middle', outline, getNode(newViewBox, 'M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 0 0-11.3 0L405.6 752.3a7.23 7.23 0 0 0 5.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z'));\nexports.VerticalAlignTopOutline = getIcon('vertical-align-top', outline, getNode(newViewBox, 'M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z'));\nexports.VerticalRightOutline = getIcon('vertical-right', outline, getNode(newViewBox, 'M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z'));\nexports.VerticalLeftOutline = getIcon('vertical-left', outline, getNode(newViewBox, 'M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 0 0 254 164z'));\nexports.WifiOutline = getIcon('wifi', outline, getNode(newViewBox, 'M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 0 0-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 0 0-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 0 0-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 1 0 128 0 64 64 0 1 0-128 0z'));\nexports.ZhihuOutline = getIcon('zhihu', outline, getNode(newViewBox, 'M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z'));\nexports.WeiboOutline = getIcon('weibo', outline, getNode(newViewBox, 'M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 0 0-106-34.3 28.45 28.45 0 0 0-21.9 33.8 28.39 28.39 0 0 0 33.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0 1 11.3 53.3 28.45 28.45 0 0 0 18.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 0 0-25.4 39.3 33.12 33.12 0 0 0 39.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z'));\nexports.WomanOutline = getIcon('woman', outline, getNode(newViewBox, 'M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z'));\nexports.ZoomInOutline = getIcon('zoom-in', outline, getNode(newViewBox, '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'));\nexports.AccountBookTwoTone = getIcon('account-book', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 0 1 7.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z'\n ], [\n primaryColor,\n 'M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z'\n ], [\n primaryColor,\n '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 656H184V256h128v48c0 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-48h128v584z'\n ]);\n});\nexports.ZoomOutOutline = getIcon('zoom-out', outline, getNode(newViewBox, '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'));\nexports.AlertTwoTone = getIcon('alert', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z'\n ], [\n primaryColor,\n 'M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z'\n ]);\n});\nexports.ApiTwoTone = getIcon('api', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z'\n ], [\n primaryColor,\n 'M578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 0 0-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z'\n ]);\n});\nexports.AppstoreTwoTone = getIcon('appstore', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'\n ], [\n secondaryColor,\n 'M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z'\n ]);\n});\nexports.BankTwoTone = getIcon('bank', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M240.9 393.9h542.2L512 196.7z'], [\n primaryColor,\n 'M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z'\n ]);\n});\nexports.AudioTwoTone = getIcon('audio', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z'\n ], [\n primaryColor,\n 'M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z'\n ], [\n primaryColor,\n 'M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z'\n ]);\n});\nexports.BellTwoTone = getIcon('bell', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z'\n ], [\n primaryColor,\n 'M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z'\n ]);\n});\nexports.BookTwoTone = getIcon('book', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.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-16V136h64v752H232z'\n ], [secondaryColor, 'M668 345.9V136h-96v211.4l49.5-35.4z'], [\n secondaryColor,\n 'M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 0 1-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z'\n ]);\n});\nexports.BoxPlotTwoTone = getIcon('box-plot', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M296 368h88v288h-88zm152 0h280v288H448z'], [\n primaryColor,\n 'M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z'\n ]);\n});\nexports.BugTwoTone = getIcon('bug', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 0 1-22.66 49.02 281.39 281.39 0 0 1-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 0 1-100.45-100.45 278.63 278.63 0 0 1-22.66-49.02A119.95 119.95 0 0 0 188 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 0 1 232 680v-96H84a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8 63 63 0 0 0 63 63h560a63 63 0 0 0 63-63 8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 76.77-62.23 139-139 139v100h148a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H792zM368 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0 1 74.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0 1 74.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 0 0-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 0 0-45.4 45.39C373.95 218.85 368 243.67 368 272z'\n ], [\n secondaryColor,\n 'M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308z'\n ]);\n});\nexports.BulbTwoTone = getIcon('bulb', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z'\n ], [\n primaryColor,\n 'M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z'\n ]);\n});\nexports.CalculatorTwoTone = getIcon('calculator', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z'\n ], [\n primaryColor,\n 'M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z'\n ]);\n});\nexports.BuildTwoTone = getIcon('build', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M144 546h200v200H144zm268-268h200v200H412z'], [\n primaryColor,\n 'M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z'\n ]);\n});\nexports.CalendarTwoTone = getIcon('calendar', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z'\n ], [\n primaryColor,\n '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 656H184V460h656v380zm0-448H184V256h128v48c0 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-48h128v136z'\n ]);\n});\nexports.CameraTwoTone = getIcon('camera', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z'\n ], [\n primaryColor,\n 'M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z'\n ], [\n primaryColor,\n 'M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z'\n ]);\n});\nexports.CarTwoTone = getIcon('car', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z'\n ], [primaryColor, 'M720 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'], [\n primaryColor,\n 'M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z'\n ], [\n primaryColor,\n 'M224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.CarryOutTwoTone = getIcon('carry-out', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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 656H184V256h128v48c0 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-48h128v584z'\n ], [\n secondaryColor,\n 'M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z'\n ], [\n primaryColor,\n 'M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-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 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z'\n ]);\n});\nexports.CheckCircleTwoTone = getIcon('check-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z'\n ], [\n primaryColor,\n 'M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z'\n ]);\n});\nexports.CheckSquareTwoTone = getIcon('check-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm130-367.8h46.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.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z'\n ], [\n primaryColor,\n 'M432.2 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z'\n ]);\n});\nexports.ClockCircleTwoTone = getIcon('clock-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z'\n ], [\n primaryColor,\n 'M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z'\n ]);\n});\nexports.CloseCircleTwoTone = getIcon('close-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 0 1-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z'\n ], [\n primaryColor,\n 'M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-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 155-130.1 154.9a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z'\n ]);\n});\nexports.CloudTwoTone = getIcon('cloud', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 0 0-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 0 0-52.4 49.9 240.47 240.47 0 0 0-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 0 0-66.1 43.7A123.1 123.1 0 0 0 140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 0 0 884 612c0-56.2-37.8-105.5-92.1-120z'\n ], [\n primaryColor,\n 'M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z'\n ]);\n});\nexports.CloseSquareTwoTone = getIcon('close-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z'\n ], [\n primaryColor,\n 'M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z'\n ]);\n});\nexports.CodeTwoTone = getIcon('code', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z'\n ], [\n primaryColor,\n 'M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z'\n ]);\n});\nexports.CompassTwoTone = getIcon('compass', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z'\n ], [\n primaryColor,\n 'M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z'\n ], [\n primaryColor,\n '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'\n ]);\n});\nexports.ContactsTwoTone = getIcon('contacts', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M460.3 526a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z'\n ], [\n secondaryColor,\n 'M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 0 1-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 0 1-8 8.4z'\n ], [\n primaryColor,\n 'M594.3 601.5a111.8 111.8 0 0 0 29.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 0 0-74.6 126.1 8 8 0 0 0 8 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 0 0 8-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 52z'\n ], [\n primaryColor,\n 'M928 224H768v-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'\n ]);\n});\nexports.ContainerTwoTone = getIcon('container', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z'\n ], [\n primaryColor,\n 'M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'\n ], [\n primaryColor,\n '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-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z'\n ], [\n primaryColor,\n 'M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'\n ]);\n});\nexports.ControlTwoTone = getIcon('control', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z'\n ], [\n primaryColor,\n 'M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 0 1 408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z'\n ]);\n});\nexports.CopyTwoTone = getIcon('copy', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z'], [\n primaryColor,\n 'M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z'\n ], [\n primaryColor,\n 'M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z'\n ]);\n});\nexports.CreditCardTwoTone = getIcon('credit-card', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z'\n ], [\n primaryColor,\n 'M651 728h165c4.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'\n ], [\n primaryColor,\n '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 632H136V440h752v352zm0-440H136V232h752v120z'\n ]);\n});\nexports.CrownTwoTone = getIcon('crown', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z'\n ], [\n secondaryColor,\n 'M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z'\n ], [\n primaryColor,\n 'M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z'\n ], [\n primaryColor,\n 'M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z'\n ]);\n});\nexports.CustomerServiceTwoTone = getIcon('customer-service', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M696 632h128v192H696zm-496 0h128v192H200z'], [\n primaryColor,\n 'M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z'\n ]);\n});\nexports.DashboardTwoTone = getIcon('dashboard', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 0 0 884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 0 1-11.3 0l-56.6-56.6a8.03 8.03 0 0 1 0-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.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-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.6a8.03 8.03 0 0 1-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z'\n ], [\n primaryColor,\n 'M623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.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 8z'\n ], [\n primaryColor,\n 'M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-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 0 1 140 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 276z'\n ], [\n primaryColor,\n 'M762.7 340.8l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 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.3zM750 538v44c0 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 8zM304.1 309.7a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 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'\n ]);\n});\nexports.DeleteTwoTone = getIcon('delete', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M292.7 840h438.6l24.2-512h-487z'], [\n primaryColor,\n 'M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-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-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z'\n ]);\n});\nexports.DiffTwoTone = getIcon('diff', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z'\n ], [\n primaryColor,\n 'M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z'\n ], [\n primaryColor,\n 'M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z'\n ], [\n primaryColor,\n 'M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z'\n ]);\n});\nexports.DatabaseTwoTone = getIcon('database', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'\n ], [\n primaryColor,\n 'M304 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-544a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'\n ], [\n primaryColor,\n '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-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z'\n ]);\n});\nexports.DislikeTwoTone = getIcon('dislike', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0 0 42.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z'\n ], [\n primaryColor,\n 'M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z'\n ]);\n});\nexports.DownCircleTwoTone = getIcon('down-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z'\n ], [\n primaryColor,\n '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'\n ], [\n primaryColor,\n 'M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z'\n ]);\n});\nexports.DownSquareTwoTone = getIcon('down-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z'\n ], [\n primaryColor,\n 'M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z'\n ]);\n});\nexports.EnvironmentTwoTone = getIcon('environment', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z'\n ], [\n primaryColor,\n 'M512 263c-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 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 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.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z'\n ], [\n primaryColor,\n 'M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-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 0 0 169.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 0 0 22.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.1z'\n ]);\n});\nexports.EditTwoTone = getIcon('edit', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z'], [\n primaryColor,\n 'M880 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-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-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 0 0 9.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-89z'\n ]);\n});\nexports.ExclamationCircleTwoTone = getIcon('exclamation-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-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 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M488 576h48c4.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 8zm-24 112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'\n ]);\n});\nexports.ExperimentTwoTone = getIcon('experiment', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 0 1 552 512a40 40 0 0 1-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z'\n ], [\n primaryColor,\n 'M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z'\n ], [\n primaryColor,\n 'M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0 0 40 39.4z'\n ]);\n});\nexports.EyeInvisibleTwoTone = getIcon('eye-invisible', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M254.89 758.85l125.57-125.57a176 176 0 0 1 248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 0 1-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z'\n ], [\n primaryColor,\n '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 0 0 0-51.5zM878.63 165.56L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-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 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z'\n ], [\n primaryColor,\n 'M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z'\n ]);\n});\nexports.EyeTwoTone = getIcon('eye', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M81.8 537.8a60.3 60.3 0 0 1 0-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z'\n ], [\n secondaryColor,\n 'M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z'\n ], [\n primaryColor,\n '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 0 0 0 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 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z'\n ], [\n primaryColor,\n 'M508 336c-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'\n ]);\n});\nexports.FileAddTwoTone = getIcon('file-add', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z'\n ]);\n});\nexports.FileExclamationTwoTone = getIcon('file-exclamation', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'\n ]);\n});\nexports.FileImageTwoTone = getIcon('file-image', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0 1 12.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'\n ]);\n});\nexports.FileExcelTwoTone = getIcon('file-excel', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm51.6 120h35.7a12.04 12.04 0 0 1 10.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 0 1-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z'\n ]);\n});\nexports.FileMarkdownTwoTone = getIcon('file-markdown', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 0 1-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z'\n ]);\n});\nexports.FilePdfTwoTone = getIcon('file-pdf', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z'\n ], [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z'\n ], [\n secondaryColor,\n 'M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z'\n ]);\n});\nexports.FilePptTwoTone = getIcon('file-ppt', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z'\n ], [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z'\n ]);\n});\nexports.FileTextTwoTone = getIcon('file-text', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.FileUnknownTwoTone = getIcon('file-unknown', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z'\n ], [\n primaryColor,\n 'M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-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.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M480 744a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z'\n ]);\n});\nexports.FileZipTwoTone = getIcon('file-zip', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M344 630h32v2h-32z'], [\n secondaryColor,\n 'M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 0 1-42-42z'\n ], [\n primaryColor,\n '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 888H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z'\n ]);\n});\nexports.FileWordTwoTone = getIcon('file-word', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0 1 11.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0 1 11.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z'\n ], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ], [\n primaryColor,\n 'M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z'\n ]);\n});\nexports.FileTwoTone = getIcon('file', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42z'], [\n primaryColor,\n '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 0 0 42 42h216v494z'\n ]);\n});\nexports.FilterTwoTone = getIcon('filter', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z'\n ], [\n primaryColor,\n 'M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z'\n ]);\n});\nexports.FireTwoTone = getIcon('fire', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 0 1-51 24.4 73.36 73.36 0 0 1-53.4-18.8 74.01 74.01 0 0 1-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 0 1-12.1 46.5 354.26 354.26 0 0 1-58.2 101 349.6 349.6 0 0 1-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 0 0-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z'\n ], [\n primaryColor,\n 'M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z'\n ]);\n});\nexports.FolderAddTwoTone = getIcon('folder-add', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z'\n ], [\n primaryColor,\n 'M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-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'\n ], [\n primaryColor,\n 'M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z'\n ]);\n});\nexports.FlagTwoTone = getIcon('flag', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M184 232h368v336H184z'], [secondaryColor, 'M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z'], [\n primaryColor,\n 'M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z'\n ]);\n});\nexports.FolderTwoTone = getIcon('folder', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-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'\n ], [secondaryColor, 'M372.5 256H184v512h656V370.4H492.1z']);\n});\nexports.FolderOpenTwoTone = getIcon('folder-open', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M159 768h612.3l103.4-256H262.3z'], [\n primaryColor,\n 'M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-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'\n ]);\n});\nexports.FrownTwoTone = getIcon('frown', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'\n ]);\n});\nexports.FundTwoTone = getIcon('fund', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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 632H136V232h752v560z'\n ], [\n secondaryColor,\n 'M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 0 1-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 0 1-11.3 0l-36.7-36.9a8.03 8.03 0 0 1 0-11.3z'\n ], [\n primaryColor,\n 'M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L533 561 418.6 446.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z'\n ]);\n});\nexports.FunnelPlotTwoTone = getIcon('funnel-plot', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z'\n ], [\n primaryColor,\n 'M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z'\n ]);\n});\nexports.GiftTwoTone = getIcon('gift', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z'\n ], [\n primaryColor,\n 'M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z'\n ]);\n});\nexports.HddTwoTone = getIcon('hdd', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z'\n ], [\n primaryColor,\n '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-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z'\n ], [\n primaryColor,\n 'M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'\n ]);\n});\nexports.HeartTwoTone = getIcon('heart', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z'\n ], [\n secondaryColor,\n 'M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z'\n ]);\n});\nexports.HighlightTwoTone = getIcon('highlight', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z'\n ], [\n primaryColor,\n 'M957.6 507.5L603.2 158.3a7.9 7.9 0 0 0-11.2 0L353.3 393.5a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z'\n ]);\n});\nexports.HomeTwoTone = getIcon('home', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z'\n ], [\n primaryColor,\n 'M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.6 63.6 0 0 0-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0 0 18.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'\n ]);\n});\nexports.HourglassTwoTone = getIcon('hourglass', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 0 0 354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 0 0 512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z'\n ], [\n primaryColor,\n 'M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z'\n ]);\n});\nexports.Html5TwoTone = getIcon('html5', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z'\n ], [\n secondaryColor,\n 'M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z'\n ], [\n primaryColor,\n 'M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z'\n ]);\n});\nexports.IdcardTwoTone = getIcon('idcard', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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 632H136V232h752v560z'\n ], [\n secondaryColor,\n 'M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 0 1-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z'\n ], [\n secondaryColor,\n 'M321.3 463a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z'\n ], [\n primaryColor,\n 'M610.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 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.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 0 0-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'\n ]);\n});\nexports.InfoCircleTwoTone = getIcon('info-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 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 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M464 336a48 48 0 1 0 96 0 48 48 0 1 0-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'\n ]);\n});\nexports.InsuranceTwoTone = getIcon('insurance', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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.6z'\n ], [secondaryColor, 'M521.9 358.8h97.9v41.6h-97.9z'], [\n secondaryColor,\n 'M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 0 1-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z'\n ], [\n primaryColor,\n 'M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 0 0-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0 0 33.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z'\n ]);\n});\nexports.InteractionTwoTone = getIcon('interaction', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z'\n ], [\n primaryColor,\n 'M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z'\n ]);\n});\nexports.InterationTwoTone = getIcon('interation', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z'\n ], [\n primaryColor,\n 'M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z'\n ]);\n});\nexports.LayoutTwoTone = getIcon('layout', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z'\n ], [\n primaryColor,\n 'M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z'\n ]);\n});\nexports.LeftCircleTwoTone = getIcon('left-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z'\n ], [\n primaryColor,\n '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'\n ], [\n primaryColor,\n 'M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z'\n ]);\n});\nexports.LeftSquareTwoTone = getIcon('left-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 0 1 0-12.9z'\n ], [\n primaryColor,\n 'M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 0 0 0 12.9z'\n ]);\n});\nexports.LikeTwoTone = getIcon('like', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0 0 33.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0 0 19.6-43c0-19.1-11-37.5-28.8-48.4z'\n ], [\n primaryColor,\n 'M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 0 0-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 0 0-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0 1 42.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z'\n ]);\n});\nexports.LockTwoTone = getIcon('lock', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z'\n ], [\n secondaryColor,\n 'M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z'\n ], [\n primaryColor,\n 'M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z'\n ]);\n});\nexports.MailTwoTone = getIcon('mail', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 0 1-68.7 0z'\n ], [secondaryColor, 'M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z'], [\n primaryColor,\n '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-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z'\n ]);\n});\nexports.MedicineBoxTwoTone = getIcon('medicine-box', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z'\n ], [\n primaryColor,\n 'M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'\n ], [\n primaryColor,\n 'M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z'\n ]);\n});\nexports.MehTwoTone = getIcon('meh', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'\n ]);\n});\nexports.MessageTwoTone = getIcon('message', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M775.3 248.9a369.62 369.62 0 0 0-119-80A370.2 370.2 0 0 0 512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 0 0-80-119zM312 560a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M664 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'\n ], [\n primaryColor,\n 'M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-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 0 0-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 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.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'\n ], [primaryColor, 'M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0z']);\n});\nexports.MinusCircleTwoTone = getIcon('minus-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z'\n ], [\n primaryColor,\n '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'\n ]);\n});\nexports.MinusSquareTwoTone = getIcon('minus-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z'\n ], [\n primaryColor,\n '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'\n ]);\n});\nexports.MobileTwoTone = getIcon('mobile', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z'\n ], [\n secondaryColor,\n 'M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'\n ], [primaryColor, 'M472 786a40 40 0 1 0 80 0 40 40 0 1 0-80 0z']);\n});\nexports.PauseCircleTwoTone = getIcon('pause-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z'\n ], [\n primaryColor,\n 'M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.MoneyCollectTwoTone = getIcon('money-collect', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z'\n ], [\n primaryColor,\n 'M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z'\n ], [\n primaryColor,\n 'M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z'\n ]);\n});\nexports.NotificationTwoTone = getIcon('notification', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z'\n ], [\n primaryColor,\n 'M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z'\n ]);\n});\nexports.PhoneTwoTone = getIcon('phone', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 0 1 438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z'\n ], [\n primaryColor,\n '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 0 1-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 0 0-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 0 0 285.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'\n ]);\n});\nexports.PictureTwoTone = getIcon('picture', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z'\n ], [\n secondaryColor,\n '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 1 1 0 176 88 88 0 0 1 0-176z'\n ], [secondaryColor, 'M276 368a28 28 0 1 0 56 0 28 28 0 1 0-56 0z'], [\n primaryColor,\n 'M304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z'\n ]);\n});\nexports.PlayCircleTwoTone = getIcon('play-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 0 1-12.7-6.5V353a8 8 0 0 1 12.7-6.5l218.4 158.8a7.9 7.9 0 0 1 0 12.9z'\n ], [\n primaryColor,\n 'M676.1 505.3L457.7 346.5A8 8 0 0 0 445 353v317.6a8.02 8.02 0 0 0 12.7 6.5l218.4-158.9a7.9 7.9 0 0 0 0-12.9z'\n ]);\n});\nexports.PlaySquareTwoTone = getIcon('play-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z'\n ], [\n primaryColor,\n 'M442.3 677.6l199.4-156.8a11.2 11.2 0 0 0 0-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z'\n ]);\n});\nexports.PieChartTwoTone = getIcon('pie-chart', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 0 1-85.7-127.1A397.12 397.12 0 0 1 72 552.2v.2a398.57 398.57 0 0 0 117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 0 0 471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z'\n ], [\n secondaryColor,\n 'M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 0 0-166.4-89.8z'\n ], [\n secondaryColor,\n 'M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z'\n ], [\n primaryColor,\n 'M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z'\n ], [\n primaryColor,\n 'M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 0 0-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 0 0 4.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z'\n ]);\n});\nexports.PlusCircleTwoTone = getIcon('plus-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z'\n ], [\n primaryColor,\n 'M696 480H544V328c0-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 8h152v152c0 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-8z'\n ]);\n});\nexports.PlusSquareTwoTone = getIcon('plus-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z'\n ], [\n primaryColor,\n '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'\n ]);\n});\nexports.PoundCircleTwoTone = getIcon('pound-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z'\n ], [\n primaryColor,\n 'M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0 0 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.PrinterTwoTone = getIcon('printer', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z'\n ], [\n primaryColor,\n 'M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z'\n ], [\n primaryColor,\n 'M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.ProfileTwoTone = getIcon('profile', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'\n ], [\n primaryColor,\n 'M340 656a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm152 320h184c4.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 8z'\n ]);\n});\nexports.ProjectTwoTone = getIcon('project', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z'\n ], [\n primaryColor,\n '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 8z'\n ]);\n});\nexports.PushpinTwoTone = getIcon('pushpin', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0 0 30.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z'\n ], [\n primaryColor,\n 'M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z'\n ]);\n});\nexports.PropertySafetyTwoTone = getIcon('property-safety', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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.6z'\n ], [\n secondaryColor,\n 'M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 0 1 8.9-5.5z'\n ], [\n primaryColor,\n 'M438.9 323.5a9.88 9.88 0 0 0-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 0 0-8.9 5.5l-73.2 144.3-72.9-144.3z'\n ]);\n});\nexports.QuestionCircleTwoTone = getIcon('question-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z'\n ], [\n primaryColor,\n 'M472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-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 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 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 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z'\n ]);\n});\nexports.ReconciliationTwoTone = getIcon('reconciliation', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z'\n ], [secondaryColor, 'M642 657a34 34 0 1 0 68 0 34 34 0 1 0-68 0z'], [\n primaryColor,\n 'M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z'\n ], [\n primaryColor,\n 'M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z'\n ], [\n primaryColor,\n 'M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z'\n ]);\n});\nexports.RedEnvelopeTwoTone = getIcon('red-envelope', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z'\n ], [\n secondaryColor,\n 'M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 0 1-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 0 1 7.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 0 1 3.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 0 1 7.5-4.6z'\n ], [secondaryColor, 'M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z'], [\n primaryColor,\n 'M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z'\n ]);\n});\nexports.RestTwoTone = getIcon('rest', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z'\n ], [\n primaryColor,\n 'M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z'\n ], [\n primaryColor,\n 'M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z'\n ]);\n});\nexports.RightCircleTwoTone = getIcon('right-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z'\n ], [\n primaryColor,\n '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'\n ], [\n primaryColor,\n 'M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z'\n ]);\n});\nexports.RocketTwoTone = getIcon('rocket', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 0 0-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0 1 62.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z'\n ], [primaryColor, 'M464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z']);\n});\nexports.RightSquareTwoTone = getIcon('right-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z'\n ], [\n primaryColor,\n 'M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z'\n ]);\n});\nexports.SafetyCertificateTwoTone = getIcon('safety-certificate', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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.6z'\n ], [\n secondaryColor,\n 'M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z'\n ], [\n primaryColor,\n 'M404.2 453.3c-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 0 0 26 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'\n ]);\n});\nexports.SaveTwoTone = getIcon('save', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z'\n ], [\n primaryColor,\n 'M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z'\n ], [\n primaryColor,\n 'M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 0 0-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z'\n ]);\n});\nexports.ScheduleTwoTone = getIcon('schedule', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z'\n ], [\n primaryColor,\n 'M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'\n ], [\n primaryColor,\n 'M928 224H768v-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'\n ], [\n primaryColor,\n 'M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'\n ]);\n});\nexports.SecurityScanTwoTone = getIcon('security-scan', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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.6z'\n ], [\n secondaryColor,\n 'M460.7 451.1a80.1 80.1 0 1 0 160.2 0 80.1 80.1 0 1 0-160.2 0z'\n ], [\n secondaryColor,\n 'M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z'\n ], [\n primaryColor,\n 'M418.8 527.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 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 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 0 1 113.3 0 80.1 80.1 0 0 1 0 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z'\n ]);\n});\nexports.SettingTwoTone = getIcon('setting', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 0 0-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z'\n ], [\n secondaryColor,\n 'M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 0 1-79.7 137.9l-1.8 2.1a32 32 0 0 1-35.1 9.5l-81.3-28.9a350 350 0 0 1-99.7 57.6l-15.7 85a32.05 32.05 0 0 1-25.8 25.7l-2.7.5a445.2 445.2 0 0 1-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z'\n ], [\n primaryColor,\n 'M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502z'\n ], [\n primaryColor,\n 'M594.1 952.2a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 0 0-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6a32.09 32.09 0 0 0 7.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z'\n ]);\n});\nexports.ShopTwoTone = getIcon('shop', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z'\n ], [\n primaryColor,\n 'M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z'\n ]);\n});\nexports.ShoppingTwoTone = getIcon('shopping', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z'\n ], [\n primaryColor,\n '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'\n ]);\n});\nexports.SkinTwoTone = getIcon('skin', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z'\n ], [\n primaryColor,\n 'M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z'\n ]);\n});\nexports.SlidersTwoTone = getIcon('sliders', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M180 292h80v440h-80zm369 180h-74a3 3 0 0 0-3 3v74a3 3 0 0 0 3 3h74a3 3 0 0 0 3-3v-74a3 3 0 0 0-3-3zm215-108h80v296h-80z'\n ], [\n primaryColor,\n 'M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z'\n ]);\n});\nexports.SmileTwoTone = getIcon('smile', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z'\n ], [\n primaryColor,\n 'M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4zm-24-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z'\n ]);\n});\nexports.SnippetsTwoTone = getIcon('snippets', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z'\n ], [\n primaryColor,\n 'M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z'\n ]);\n});\nexports.SoundTwoTone = getIcon('sound', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z'\n ], [\n primaryColor,\n 'M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z'\n ]);\n});\nexports.StarTwoTone = getIcon('star', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z'\n ], [\n primaryColor,\n 'M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0 0 46.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z'\n ]);\n});\nexports.StopTwoTone = getIcon('stop', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z'\n ]);\n});\nexports.SwitcherTwoTone = getIcon('switcher', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [secondaryColor, 'M184 840h528V312H184v528zm116-290h296v64H300v-64z'], [\n primaryColor,\n 'M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z'\n ], [\n primaryColor,\n 'M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z'\n ], [primaryColor, 'M300 550h296v64H300z']);\n});\nexports.TabletTwoTone = getIcon('tablet', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z'\n ], [\n secondaryColor,\n 'M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'\n ], [primaryColor, 'M472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z']);\n});\nexports.TagTwoTone = getIcon('tag', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z'\n ], [\n primaryColor,\n 'M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'\n ], [\n primaryColor,\n 'M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8a9.9 9.9 0 0 0 7.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z'\n ]);\n});\nexports.TagsTwoTone = getIcon('tags', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0 1 33.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0 1 12.4 46.4 47.81 47.81 0 0 1-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 0 1-12.4-46.4z'\n ], [\n secondaryColor,\n 'M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 0 1 0-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z'\n ], [\n primaryColor,\n 'M889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0 0 33.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 0 0-46.4-12.4 47.81 47.81 0 0 0-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0 0 46.4 12.4z'\n ], [\n primaryColor,\n 'M137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z'\n ]);\n});\nexports.ToolTwoTone = getIcon('tool', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M706.8 488.7a32.05 32.05 0 0 1-45.3 0L537 364.2a32.05 32.05 0 0 1 0-45.3l132.9-132.8a184.2 184.2 0 0 0-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z'\n ], [\n primaryColor,\n 'M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z'\n ]);\n});\nexports.TrademarkCircleTwoTone = getIcon('trademark-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z'\n ], [\n secondaryColor,\n 'M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z'\n ], [\n primaryColor,\n 'M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z'\n ]);\n});\nexports.UnlockTwoTone = getIcon('unlock', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z'\n ], [\n primaryColor,\n 'M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z'\n ], [\n primaryColor,\n 'M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z'\n ]);\n});\nexports.TrophyTwoTone = getIcon('trophy', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z'\n ], [\n primaryColor,\n 'M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6a91.99 91.99 0 0 1-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z'\n ]);\n});\nexports.UpCircleTwoTone = getIcon('up-circle', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z'\n ], [\n primaryColor,\n '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'\n ], [\n primaryColor,\n 'M518.4 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z'\n ]);\n});\nexports.ThunderboltTwoTone = getIcon('thunderbolt', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z'\n ], [\n primaryColor,\n 'M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z'\n ]);\n});\nexports.UpSquareTwoTone = getIcon('up-square', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z'\n ], [\n primaryColor,\n 'M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z'\n ]);\n});\nexports.UsbTwoTone = getIcon('usb', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z'\n ], [\n primaryColor,\n 'M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z'\n ], [\n primaryColor,\n 'M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z'\n ]);\n});\nexports.VideoCameraTwoTone = getIcon('video-camera', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z'\n ], [\n primaryColor,\n 'M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z'\n ], [\n primaryColor,\n 'M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z'\n ]);\n});\nexports.WalletTwoTone = getIcon('wallet', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z'\n ], [\n secondaryColor,\n 'M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z'\n ], [primaryColor, 'M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z'], [\n secondaryColor,\n 'M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z'\n ]);\n});\nexports.WarningTwoTone = getIcon('warning', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z'\n ], [\n secondaryColor,\n 'M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z'\n ], [\n primaryColor,\n 'M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z'\n ]);\n});\nexports.CiTwoTone = getIcon('ci', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z'\n ], [\n primaryColor,\n 'M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z'\n ]);\n});\nexports.CopyrightTwoTone = getIcon('copyright', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z'\n ], [\n primaryColor,\n 'M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z'\n ]);\n});\nexports.DollarTwoTone = getIcon('dollar', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z'\n ], [\n primaryColor,\n 'M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z'\n ]);\n});\nexports.EuroTwoTone = getIcon('euro', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n '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'\n ], [\n secondaryColor,\n 'M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z'\n ], [\n primaryColor,\n 'M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z'\n ]);\n});\nexports.GoldTwoTone = getIcon('gold', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n primaryColor,\n 'M435.7 558.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.5zM342 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-128z'\n ], [\n secondaryColor,\n 'M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z'\n ]);\n});\nexports.CanlendarTwoTone = getIcon('canlendar', twotone, function (primaryColor, secondaryColor) {\n return getNode(newViewBox, [\n secondaryColor,\n 'M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z'\n ], [\n primaryColor,\n '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 656H184V460h656v380zm0-448H184V256h128v48c0 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-48h128v136z'\n ]);\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 5; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 5; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\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 }\n else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n }\n else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\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 var saturation;\n if (light) {\n saturation = Math.round(hsv.s * 100) - saturationStep * i;\n }\n else if (i === darkColorCount) {\n saturation = Math.round(hsv.s * 100) + saturationStep;\n }\n else {\n saturation = Math.round(hsv.s * 100) + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 100) {\n saturation = 100;\n }\n // 第一格的 s 限制在 6-10 之间\n if (light && i === lightColorCount && saturation > 10) {\n saturation = 10;\n }\n if (saturation < 6) {\n saturation = 6;\n }\n return saturation;\n}\nfunction getValue(hsv, i, light) {\n if (light) {\n return Math.round(hsv.v * 100) + brightnessStep1 * i;\n }\n return Math.round(hsv.v * 100) - brightnessStep2 * i;\n}\nfunction generate(color) {\n var patterns = [];\n var pColor = tinycolor2_1.default(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = pColor.toHsv();\n var colorString = tinycolor2_1.default({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true),\n }).toHexString();\n patterns.push(colorString);\n }\n patterns.push(pColor.toHexString());\n for (var i = 1; i <= darkColorCount; i += 1) {\n var hsv = pColor.toHsv();\n var colorString = tinycolor2_1.default({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i),\n }).toHexString();\n patterns.push(colorString);\n }\n return patterns;\n}\nexports.default = generate;\n","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n var trimLeft = /^\\s+/;\n var trimRight = /\\s+$/;\n function tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\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) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n }\n tinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\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 toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || 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 clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\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 function inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 } 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 } 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 (color.hasOwnProperty(\"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\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // <http://www.w3.org/TR/css3-color/>\n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n 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 // `rgbToHsl`\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 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 min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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 }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\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 function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\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 {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\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 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 min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\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 }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\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 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 f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == 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 // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\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 function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == 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 // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\n function _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n function _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n function _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).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 tinycolor(rgb);\n }\n function _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\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 function _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\n function _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n }\n function _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n }\n function _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n function _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).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 tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n // `contrast`\n // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n tinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n };\n\n // `isReadable`\n // Ensure that foreground and background color combinations meet WCAG2 guidelines.\n // The third argument is an optional Object.\n // the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n // the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n // If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n // *Example*\n // tinycolor.isReadable(\"#000\", \"#111\") => false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // Optionally returns Black or White if the most readable color is unreadable.\n // *Example*\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n tinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // <https://www.w3.org/TR/css-color-4/#named-colors>\n var names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\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: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\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 lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\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: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\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: \"f00\",\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: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = tinycolor.hexNames = flip(names);\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n 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 // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\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 // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n 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 function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\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\n // `isValidCSSUnit`\n // Take in a single string / number and check to see if it looks like a CSS unit\n // (see `matchers` above for definition).\n function isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n }\n\n // `stringInputToObject`\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 function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\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;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\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 if (match = matchers.hex6.exec(color)) {\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 if (match = matchers.hex4.exec(color)) {\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 if (match = matchers.hex3.exec(color)) {\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 function validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n }\n\n return tinycolor;\n\n}));\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = create;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _index = _interopRequireDefault(require(\"./index\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar customCache = new Set();\n\nfunction create() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var scriptUrl = options.scriptUrl,\n _options$extraCommonP = options.extraCommonProps,\n extraCommonProps = _options$extraCommonP === void 0 ? {} : _options$extraCommonP;\n /**\n * DOM API required.\n * Make sure in browser environment.\n * The Custom Icon will create a <script/>\n * that loads SVG symbols and insert the SVG Element into the document body.\n */\n\n if (typeof document !== 'undefined' && typeof window !== 'undefined' && typeof document.createElement === 'function' && typeof scriptUrl === 'string' && scriptUrl.length && !customCache.has(scriptUrl)) {\n var script = document.createElement('script');\n script.setAttribute('src', scriptUrl);\n script.setAttribute('data-namespace', scriptUrl);\n customCache.add(scriptUrl);\n document.body.appendChild(script);\n }\n\n var Iconfont = function Iconfont(props) {\n var type = props.type,\n children = props.children,\n restProps = __rest(props, [\"type\", \"children\"]); // component > children > type\n\n\n var content = null;\n\n if (props.type) {\n content = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#\".concat(type)\n });\n }\n\n if (children) {\n content = children;\n }\n\n return /*#__PURE__*/React.createElement(_index[\"default\"], _extends({}, extraCommonProps, restProps), content);\n };\n\n Iconfont.displayName = 'Iconfont';\n return Iconfont;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getThemeFromTypeName = getThemeFromTypeName;\nexports.removeTypeTheme = removeTypeTheme;\nexports.withThemeSuffix = withThemeSuffix;\nexports.alias = alias;\nexports.svgBaseProps = void 0;\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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\nvar svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': true,\n focusable: 'false'\n};\nexports.svgBaseProps = svgBaseProps;\nvar fillTester = /-fill$/;\nvar outlineTester = /-o$/;\nvar twoToneTester = /-twotone$/;\n\nfunction getThemeFromTypeName(type) {\n var result = null;\n\n if (fillTester.test(type)) {\n result = 'filled';\n } else if (outlineTester.test(type)) {\n result = 'outlined';\n } else if (twoToneTester.test(type)) {\n result = 'twoTone';\n }\n\n return result;\n}\n\nfunction removeTypeTheme(type) {\n return type.replace(fillTester, '').replace(outlineTester, '').replace(twoToneTester, '');\n}\n\nfunction withThemeSuffix(type, theme) {\n var result = type;\n\n if (theme === 'filled') {\n result += '-fill';\n } else if (theme === 'outlined') {\n result += '-o';\n } else if (theme === 'twoTone') {\n result += '-twotone';\n } else {\n (0, _warning[\"default\"])(false, 'Icon', \"This icon '\".concat(type, \"' has unknown theme '\").concat(theme, \"'\"));\n }\n\n return result;\n} // For alias or compatibility\n\n\nfunction alias(type) {\n var newType = type;\n\n switch (type) {\n case 'cross':\n newType = 'close';\n break;\n // https://github.com/ant-design/ant-design/issues/13007\n\n case 'interation':\n newType = 'interaction';\n break;\n // https://github.com/ant-design/ant-design/issues/16810\n\n case 'canlendar':\n newType = 'calendar';\n break;\n // https://github.com/ant-design/ant-design/issues/17448\n\n case 'colum-height':\n newType = 'column-height';\n break;\n\n default:\n }\n\n (0, _warning[\"default\"])(newType === type, 'Icon', \"Icon '\".concat(type, \"' was a typo and is now deprecated, please use '\").concat(newType, \"' instead.\"));\n return newType;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default2 = _interopRequireDefault(require(\"../locale/default\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _default2[\"default\"];\nexports[\"default\"] = _default;","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"../../date-picker/locale/en_US\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _en_US[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setTwoToneColor = setTwoToneColor;\nexports.getTwoToneColor = getTwoToneColor;\n\nvar _iconsReact = _interopRequireDefault(require(\"@ant-design/icons-react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction setTwoToneColor(primaryColor) {\n return _iconsReact[\"default\"].setTwoToneColors({\n primaryColor: primaryColor\n });\n}\n\nfunction getTwoToneColor() {\n var colors = _iconsReact[\"default\"].getTwoToneColors();\n\n return colors.primaryColor;\n}","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {(o: {}, p: PropertyKey) => p is keyof o} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(fn, 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(fn, 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record<PropertyKey, unknown>, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (obj === global) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","'use strict';\n\n// Load Date class extensions\nvar CronDate = require('./date');\n\nvar stringifyField = require('./field_stringify');\n\n/**\n * Cron iteration loop safety limit\n */\nvar LOOP_LIMIT = 10000;\n\n/**\n * Construct a new expression parser\n *\n * Options:\n * currentDate: iterator start date\n * endDate: iterator end date\n *\n * @constructor\n * @private\n * @param {Object} fields Expression fields parsed values\n * @param {Object} options Parser options\n */\nfunction CronExpression (fields, options) {\n this._options = options;\n this._utc = options.utc || false;\n this._tz = this._utc ? 'UTC' : options.tz;\n this._currentDate = new CronDate(options.currentDate, this._tz);\n this._startDate = options.startDate ? new CronDate(options.startDate, this._tz) : null;\n this._endDate = options.endDate ? new CronDate(options.endDate, this._tz) : null;\n this._isIterator = options.iterator || false;\n this._hasIterated = false;\n this._nthDayOfWeek = options.nthDayOfWeek || 0;\n this.fields = CronExpression._freezeFields(fields);\n}\n\n/**\n * Field mappings\n * @type {Array}\n */\nCronExpression.map = [ 'second', 'minute', 'hour', 'dayOfMonth', 'month', 'dayOfWeek' ];\n\n/**\n * Prefined intervals\n * @type {Object}\n */\nCronExpression.predefined = {\n '@yearly': '0 0 1 1 *',\n '@monthly': '0 0 1 * *',\n '@weekly': '0 0 * * 0',\n '@daily': '0 0 * * *',\n '@hourly': '0 * * * *'\n};\n\n/**\n * Fields constraints\n * @type {Array}\n */\nCronExpression.constraints = [\n { min: 0, max: 59, chars: [] }, // Second\n { min: 0, max: 59, chars: [] }, // Minute\n { min: 0, max: 23, chars: [] }, // Hour\n { min: 1, max: 31, chars: ['L'] }, // Day of month\n { min: 1, max: 12, chars: [] }, // Month\n { min: 0, max: 7, chars: ['L'] }, // Day of week\n];\n\n/**\n * Days in month\n * @type {number[]}\n */\nCronExpression.daysInMonth = [\n 31,\n 29,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n];\n\n/**\n * Field aliases\n * @type {Object}\n */\nCronExpression.aliases = {\n month: {\n jan: 1,\n feb: 2,\n mar: 3,\n apr: 4,\n may: 5,\n jun: 6,\n jul: 7,\n aug: 8,\n sep: 9,\n oct: 10,\n nov: 11,\n dec: 12\n },\n\n dayOfWeek: {\n sun: 0,\n mon: 1,\n tue: 2,\n wed: 3,\n thu: 4,\n fri: 5,\n sat: 6\n }\n};\n\n/**\n * Field defaults\n * @type {Array}\n */\nCronExpression.parseDefaults = [ '0', '*', '*', '*', '*', '*' ];\n\nCronExpression.standardValidCharacters = /^[,*\\d/-]+$/;\nCronExpression.dayOfWeekValidCharacters = /^[?,*\\dL#/-]+$/;\nCronExpression.dayOfMonthValidCharacters = /^[?,*\\dL/-]+$/;\nCronExpression.validCharacters = {\n second: CronExpression.standardValidCharacters,\n minute: CronExpression.standardValidCharacters,\n hour: CronExpression.standardValidCharacters,\n dayOfMonth: CronExpression.dayOfMonthValidCharacters,\n month: CronExpression.standardValidCharacters,\n dayOfWeek: CronExpression.dayOfWeekValidCharacters,\n};\n\nCronExpression._isValidConstraintChar = function _isValidConstraintChar(constraints, value) {\n if (typeof value !== 'string') {\n return false;\n }\n\n return constraints.chars.some(function(char) {\n return value.indexOf(char) > -1;\n });\n};\n\n/**\n * Parse input interval\n *\n * @param {String} field Field symbolic name\n * @param {String} value Field value\n * @param {Array} constraints Range upper and lower constraints\n * @return {Array} Sequence of sorted values\n * @private\n */\nCronExpression._parseField = function _parseField (field, value, constraints) {\n // Replace aliases\n switch (field) {\n case 'month':\n case 'dayOfWeek':\n var aliases = CronExpression.aliases[field];\n\n value = value.replace(/[a-z]{3}/gi, function(match) {\n match = match.toLowerCase();\n\n if (typeof aliases[match] !== 'undefined') {\n return aliases[match];\n } else {\n throw new Error('Validation error, cannot resolve alias \"' + match + '\"');\n }\n });\n break;\n }\n\n // Check for valid characters.\n if (!(CronExpression.validCharacters[field].test(value))) {\n throw new Error('Invalid characters, got value: ' + value);\n }\n\n // Replace '*' and '?'\n if (value.indexOf('*') !== -1) {\n value = value.replace(/\\*/g, constraints.min + '-' + constraints.max);\n } else if (value.indexOf('?') !== -1) {\n value = value.replace(/\\?/g, constraints.min + '-' + constraints.max);\n }\n\n //\n // Inline parsing functions\n //\n // Parser path:\n // - parseSequence\n // - parseRepeat\n // - parseRange\n\n /**\n * Parse sequence\n *\n * @param {String} val\n * @return {Array}\n * @private\n */\n function parseSequence (val) {\n var stack = [];\n\n function handleResult (result) {\n if (result instanceof Array) { // Make sequence linear\n for (var i = 0, c = result.length; i < c; i++) {\n var value = result[i];\n\n if (CronExpression._isValidConstraintChar(constraints, value)) {\n stack.push(value);\n continue;\n }\n // Check constraints\n if (typeof value !== 'number' || Number.isNaN(value) || value < constraints.min || value > constraints.max) {\n throw new Error(\n 'Constraint error, got value ' + value + ' expected range ' +\n constraints.min + '-' + constraints.max\n );\n }\n\n stack.push(value);\n }\n } else { // Scalar value\n\n if (CronExpression._isValidConstraintChar(constraints, result)) {\n stack.push(result);\n return;\n }\n\n var numResult = +result;\n\n // Check constraints\n if (Number.isNaN(numResult) || numResult < constraints.min || numResult > constraints.max) {\n throw new Error(\n 'Constraint error, got value ' + result + ' expected range ' +\n constraints.min + '-' + constraints.max\n );\n }\n\n if (field === 'dayOfWeek') {\n numResult = numResult % 7;\n }\n\n stack.push(numResult);\n }\n }\n\n var atoms = val.split(',');\n if (!atoms.every(function (atom) {\n return atom.length > 0;\n })) {\n throw new Error('Invalid list value format');\n }\n\n if (atoms.length > 1) {\n for (var i = 0, c = atoms.length; i < c; i++) {\n handleResult(parseRepeat(atoms[i]));\n }\n } else {\n handleResult(parseRepeat(val));\n }\n\n stack.sort(CronExpression._sortCompareFn);\n\n return stack;\n }\n\n /**\n * Parse repetition interval\n *\n * @param {String} val\n * @return {Array}\n */\n function parseRepeat (val) {\n var repeatInterval = 1;\n var atoms = val.split('/');\n\n if (atoms.length > 2) {\n throw new Error('Invalid repeat: ' + val);\n }\n\n if (atoms.length > 1) {\n if (atoms[0] == +atoms[0]) {\n atoms = [atoms[0] + '-' + constraints.max, atoms[1]];\n }\n return parseRange(atoms[0], atoms[atoms.length - 1]);\n }\n\n return parseRange(val, repeatInterval);\n }\n\n /**\n * Parse range\n *\n * @param {String} val\n * @param {Number} repeatInterval Repetition interval\n * @return {Array}\n * @private\n */\n function parseRange (val, repeatInterval) {\n var stack = [];\n var atoms = val.split('-');\n\n if (atoms.length > 1 ) {\n // Invalid range, return value\n if (atoms.length < 2) {\n return +val;\n }\n\n if (!atoms[0].length) {\n if (!atoms[1].length) {\n throw new Error('Invalid range: ' + val);\n }\n\n return +val;\n }\n\n // Validate range\n var min = +atoms[0];\n var max = +atoms[1];\n\n if (Number.isNaN(min) || Number.isNaN(max) ||\n min < constraints.min || max > constraints.max) {\n throw new Error(\n 'Constraint error, got range ' +\n min + '-' + max +\n ' expected range ' +\n constraints.min + '-' + constraints.max\n );\n } else if (min > max) {\n throw new Error('Invalid range: ' + val);\n }\n\n // Create range\n var repeatIndex = +repeatInterval;\n\n if (Number.isNaN(repeatIndex) || repeatIndex <= 0) {\n throw new Error('Constraint error, cannot repeat at every ' + repeatIndex + ' time.');\n }\n\n // JS DOW is in range of 0-6 (SUN-SAT) but we also support 7 in the expression\n // Handle case when range contains 7 instead of 0 and translate this value to 0\n if (field === 'dayOfWeek' && max % 7 === 0) {\n stack.push(0);\n }\n\n for (var index = min, count = max; index <= count; index++) {\n var exists = stack.indexOf(index) !== -1;\n if (!exists && repeatIndex > 0 && (repeatIndex % repeatInterval) === 0) {\n repeatIndex = 1;\n stack.push(index);\n } else {\n repeatIndex++;\n }\n }\n return stack;\n }\n\n return Number.isNaN(+val) ? val : +val;\n }\n\n return parseSequence(value);\n};\n\nCronExpression._sortCompareFn = function(a, b) {\n var aIsNumber = typeof a === 'number';\n var bIsNumber = typeof b === 'number';\n\n if (aIsNumber && bIsNumber) {\n return a - b;\n }\n\n if (!aIsNumber && bIsNumber) {\n return 1;\n }\n\n if (aIsNumber && !bIsNumber) {\n return -1;\n }\n\n return a.localeCompare(b);\n};\n\nCronExpression._handleMaxDaysInMonth = function(mappedFields) {\n // Filter out any day of month value that is larger than given month expects\n if (mappedFields.month.length === 1) {\n var daysInMonth = CronExpression.daysInMonth[mappedFields.month[0] - 1];\n\n if (mappedFields.dayOfMonth[0] > daysInMonth) {\n throw new Error('Invalid explicit day of month definition');\n }\n\n return mappedFields.dayOfMonth\n .filter(function(dayOfMonth) {\n return dayOfMonth === 'L' ? true : dayOfMonth <= daysInMonth;\n })\n .sort(CronExpression._sortCompareFn);\n }\n};\n\nCronExpression._freezeFields = function(fields) {\n for (var i = 0, c = CronExpression.map.length; i < c; ++i) {\n var field = CronExpression.map[i]; // Field name\n var value = fields[field];\n fields[field] = Object.freeze(value);\n }\n return Object.freeze(fields);\n};\n\nCronExpression.prototype._applyTimezoneShift = function(currentDate, dateMathVerb, method) {\n if ((method === 'Month') || (method === 'Day')) {\n var prevTime = currentDate.getTime();\n currentDate[dateMathVerb + method]();\n var currTime = currentDate.getTime();\n if (prevTime === currTime) {\n // Jumped into a not existent date due to a DST transition\n if ((currentDate.getMinutes() === 0) &&\n (currentDate.getSeconds() === 0)) {\n currentDate.addHour();\n } else if ((currentDate.getMinutes() === 59) &&\n (currentDate.getSeconds() === 59)) {\n currentDate.subtractHour();\n }\n }\n } else {\n var previousHour = currentDate.getHours();\n currentDate[dateMathVerb + method]();\n var currentHour = currentDate.getHours();\n var diff = currentHour - previousHour;\n if (diff === 2) {\n // Starting DST\n if (this.fields.hour.length !== 24) {\n // Hour is specified\n this._dstStart = currentHour;\n }\n } else if ((diff === 0) &&\n (currentDate.getMinutes() === 0) &&\n (currentDate.getSeconds() === 0)) {\n // Ending DST\n if (this.fields.hour.length !== 24) {\n // Hour is specified\n this._dstEnd = currentHour;\n }\n }\n }\n};\n\n\n/**\n * Find next or previous matching schedule date\n *\n * @return {CronDate}\n * @private\n */\nCronExpression.prototype._findSchedule = function _findSchedule (reverse) {\n\n /**\n * Match field value\n *\n * @param {String} value\n * @param {Array} sequence\n * @return {Boolean}\n * @private\n */\n function matchSchedule (value, sequence) {\n for (var i = 0, c = sequence.length; i < c; i++) {\n if (sequence[i] >= value) {\n return sequence[i] === value;\n }\n }\n\n return sequence[0] === value;\n }\n\n /**\n * Helps determine if the provided date is the correct nth occurence of the\n * desired day of week.\n *\n * @param {CronDate} date\n * @param {Number} nthDayOfWeek\n * @return {Boolean}\n * @private\n */\n function isNthDayMatch(date, nthDayOfWeek) {\n if (nthDayOfWeek < 6) {\n if (\n date.getDate() < 8 &&\n nthDayOfWeek === 1 // First occurence has to happen in first 7 days of the month\n ) {\n return true;\n }\n\n var offset = date.getDate() % 7 ? 1 : 0; // Math is off by 1 when dayOfWeek isn't divisible by 7\n var adjustedDate = date.getDate() - (date.getDate() % 7); // find the first occurance\n var occurrence = Math.floor(adjustedDate / 7) + offset;\n\n return occurrence === nthDayOfWeek;\n }\n\n return false;\n }\n\n /**\n * Helper function that checks if 'L' is in the array\n *\n * @param {Array} expressions\n */\n function isLInExpressions(expressions) {\n return expressions.length > 0 && expressions.some(function(expression) {\n return typeof expression === 'string' && expression.indexOf('L') >= 0;\n });\n }\n\n\n // Whether to use backwards directionality when searching\n reverse = reverse || false;\n var dateMathVerb = reverse ? 'subtract' : 'add';\n\n var currentDate = new CronDate(this._currentDate, this._tz);\n var startDate = this._startDate;\n var endDate = this._endDate;\n\n // Find matching schedule\n var startTimestamp = currentDate.getTime();\n var stepCount = 0;\n\n function isLastWeekdayOfMonthMatch(expressions) {\n return expressions.some(function(expression) {\n // There might be multiple expressions and not all of them will contain\n // the \"L\".\n if (!isLInExpressions([expression])) {\n return false;\n }\n\n // The first character represents the weekday\n var weekday = Number.parseInt(expression[0]) % 7;\n\n if (Number.isNaN(weekday)) {\n throw new Error('Invalid last weekday of the month expression: ' + expression);\n }\n\n return currentDate.getDay() === weekday && currentDate.isLastWeekdayOfMonth();\n });\n }\n\n while (stepCount < LOOP_LIMIT) {\n stepCount++;\n\n // Validate timespan\n if (reverse) {\n if (startDate && (currentDate.getTime() - startDate.getTime() < 0)) {\n throw new Error('Out of the timespan range');\n }\n } else {\n if (endDate && (endDate.getTime() - currentDate.getTime()) < 0) {\n throw new Error('Out of the timespan range');\n }\n }\n\n // Day of month and week matching:\n //\n // \"The day of a command's execution can be specified by two fields --\n // day of month, and day of week. If both\t fields\t are restricted (ie,\n // aren't *), the command will be run when either field matches the cur-\n // rent time. For example, \"30 4 1,15 * 5\" would cause a command to be\n // run at 4:30 am on the 1st and 15th of each month, plus every Friday.\"\n //\n // http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5\n //\n\n var dayOfMonthMatch = matchSchedule(currentDate.getDate(), this.fields.dayOfMonth);\n if (isLInExpressions(this.fields.dayOfMonth)) {\n dayOfMonthMatch = dayOfMonthMatch || currentDate.isLastDayOfMonth();\n }\n var dayOfWeekMatch = matchSchedule(currentDate.getDay(), this.fields.dayOfWeek);\n if (isLInExpressions(this.fields.dayOfWeek)) {\n dayOfWeekMatch = dayOfWeekMatch || isLastWeekdayOfMonthMatch(this.fields.dayOfWeek);\n }\n var isDayOfMonthWildcardMatch = this.fields.dayOfMonth.length >= CronExpression.daysInMonth[currentDate.getMonth()];\n var isDayOfWeekWildcardMatch = this.fields.dayOfWeek.length === CronExpression.constraints[5].max - CronExpression.constraints[5].min + 1;\n var currentHour = currentDate.getHours();\n\n // Add or subtract day if select day not match with month (according to calendar)\n if (!dayOfMonthMatch && (!dayOfWeekMatch || isDayOfWeekWildcardMatch)) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Day');\n continue;\n }\n\n // Add or subtract day if not day of month is set (and no match) and day of week is wildcard\n if (!isDayOfMonthWildcardMatch && isDayOfWeekWildcardMatch && !dayOfMonthMatch) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Day');\n continue;\n }\n\n // Add or subtract day if not day of week is set (and no match) and day of month is wildcard\n if (isDayOfMonthWildcardMatch && !isDayOfWeekWildcardMatch && !dayOfWeekMatch) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Day');\n continue;\n }\n\n // Add or subtract day if day of week & nthDayOfWeek are set (and no match)\n if (\n this._nthDayOfWeek > 0 &&\n !isNthDayMatch(currentDate, this._nthDayOfWeek)\n ) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Day');\n continue;\n }\n\n // Match month\n if (!matchSchedule(currentDate.getMonth() + 1, this.fields.month)) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Month');\n continue;\n }\n\n // Match hour\n if (!matchSchedule(currentHour, this.fields.hour)) {\n if (this._dstStart !== currentHour) {\n this._dstStart = null;\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Hour');\n continue;\n } else if (!matchSchedule(currentHour - 1, this.fields.hour)) {\n currentDate[dateMathVerb + 'Hour']();\n continue;\n }\n } else if (this._dstEnd === currentHour) {\n if (!reverse) {\n this._dstEnd = null;\n this._applyTimezoneShift(currentDate, 'add', 'Hour');\n continue;\n }\n }\n\n // Match minute\n if (!matchSchedule(currentDate.getMinutes(), this.fields.minute)) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Minute');\n continue;\n }\n\n // Match second\n if (!matchSchedule(currentDate.getSeconds(), this.fields.second)) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Second');\n continue;\n }\n\n // Increase a second in case in the first iteration the currentDate was not\n // modified\n if (startTimestamp === currentDate.getTime()) {\n if ((dateMathVerb === 'add') || (currentDate.getMilliseconds() === 0)) {\n this._applyTimezoneShift(currentDate, dateMathVerb, 'Second');\n } else {\n currentDate.setMilliseconds(0);\n }\n\n continue;\n }\n\n break;\n }\n\n if (stepCount >= LOOP_LIMIT) {\n throw new Error('Invalid expression, loop limit exceeded');\n }\n\n this._currentDate = new CronDate(currentDate, this._tz);\n this._hasIterated = true;\n\n return currentDate;\n};\n\n/**\n * Find next suitable date\n *\n * @public\n * @return {CronDate|Object}\n */\nCronExpression.prototype.next = function next () {\n var schedule = this._findSchedule();\n\n // Try to return ES6 compatible iterator\n if (this._isIterator) {\n return {\n value: schedule,\n done: !this.hasNext()\n };\n }\n\n return schedule;\n};\n\n/**\n * Find previous suitable date\n *\n * @public\n * @return {CronDate|Object}\n */\nCronExpression.prototype.prev = function prev () {\n var schedule = this._findSchedule(true);\n\n // Try to return ES6 compatible iterator\n if (this._isIterator) {\n return {\n value: schedule,\n done: !this.hasPrev()\n };\n }\n\n return schedule;\n};\n\n/**\n * Check if next suitable date exists\n *\n * @public\n * @return {Boolean}\n */\nCronExpression.prototype.hasNext = function() {\n var current = this._currentDate;\n var hasIterated = this._hasIterated;\n\n try {\n this._findSchedule();\n return true;\n } catch (err) {\n return false;\n } finally {\n this._currentDate = current;\n this._hasIterated = hasIterated;\n }\n};\n\n/**\n * Check if previous suitable date exists\n *\n * @public\n * @return {Boolean}\n */\nCronExpression.prototype.hasPrev = function() {\n var current = this._currentDate;\n var hasIterated = this._hasIterated;\n\n try {\n this._findSchedule(true);\n return true;\n } catch (err) {\n return false;\n } finally {\n this._currentDate = current;\n this._hasIterated = hasIterated;\n }\n};\n\n/**\n * Iterate over expression iterator\n *\n * @public\n * @param {Number} steps Numbers of steps to iterate\n * @param {Function} callback Optional callback\n * @return {Array} Array of the iterated results\n */\nCronExpression.prototype.iterate = function iterate (steps, callback) {\n var dates = [];\n\n if (steps >= 0) {\n for (var i = 0, c = steps; i < c; i++) {\n try {\n var item = this.next();\n dates.push(item);\n\n // Fire the callback\n if (callback) {\n callback(item, i);\n }\n } catch (err) {\n break;\n }\n }\n } else {\n for (var i = 0, c = steps; i > c; i--) {\n try {\n var item = this.prev();\n dates.push(item);\n\n // Fire the callback\n if (callback) {\n callback(item, i);\n }\n } catch (err) {\n break;\n }\n }\n }\n\n return dates;\n};\n\n/**\n * Reset expression iterator state\n *\n * @public\n */\nCronExpression.prototype.reset = function reset (newDate) {\n this._currentDate = new CronDate(newDate || this._options.currentDate);\n};\n\n/**\n * Stringify the expression\n *\n * @public\n * @param {Boolean} [includeSeconds] Should stringify seconds\n * @return {String}\n */\nCronExpression.prototype.stringify = function stringify(includeSeconds) {\n var resultArr = [];\n for (var i = includeSeconds ? 0 : 1, c = CronExpression.map.length; i < c; ++i) {\n var field = CronExpression.map[i];\n var value = this.fields[field];\n var constraint = CronExpression.constraints[i];\n\n if (field === 'dayOfMonth' && this.fields.month.length === 1) {\n constraint = { min: 1, max: CronExpression.daysInMonth[this.fields.month[0] - 1] };\n } else if (field === 'dayOfWeek') {\n // Prefer 0-6 range when serializing day of week field\n constraint = { min: 0, max: 6 };\n value = value[value.length - 1] === 7 ? value.slice(0, -1) : value;\n }\n\n resultArr.push(stringifyField(value, constraint.min, constraint.max));\n }\n return resultArr.join(' ');\n};\n\n/**\n * Parse input expression (async)\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n */\nCronExpression.parse = function parse(expression, options) {\n var self = this;\n if (typeof options === 'function') {\n options = {};\n }\n\n function parse (expression, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.currentDate === 'undefined') {\n options.currentDate = new CronDate(undefined, self._tz);\n }\n\n // Is input expression predefined?\n if (CronExpression.predefined[expression]) {\n expression = CronExpression.predefined[expression];\n }\n\n // Split fields\n var fields = [];\n var atoms = (expression + '').trim().split(/\\s+/);\n\n if (atoms.length > 6) {\n throw new Error('Invalid cron expression');\n }\n\n // Resolve fields\n var start = (CronExpression.map.length - atoms.length);\n for (var i = 0, c = CronExpression.map.length; i < c; ++i) {\n var field = CronExpression.map[i]; // Field name\n var value = atoms[atoms.length > c ? i : i - start]; // Field value\n\n if (i < start || !value) { // Use default value\n fields.push(CronExpression._parseField(\n field,\n CronExpression.parseDefaults[i],\n CronExpression.constraints[i]\n )\n );\n } else {\n var val = field === 'dayOfWeek' ? parseNthDay(value) : value;\n\n fields.push(CronExpression._parseField(\n field,\n val,\n CronExpression.constraints[i]\n )\n );\n }\n }\n\n var mappedFields = {};\n for (var i = 0, c = CronExpression.map.length; i < c; i++) {\n var key = CronExpression.map[i];\n mappedFields[key] = fields[i];\n }\n\n var dayOfMonth = CronExpression._handleMaxDaysInMonth(mappedFields);\n mappedFields.dayOfMonth = dayOfMonth || mappedFields.dayOfMonth;\n return new CronExpression(mappedFields, options);\n\n /**\n * Parses out the # special character for the dayOfWeek field & adds it to options.\n *\n * @param {String} val\n * @return {String}\n * @private\n */\n function parseNthDay(val) {\n var atoms = val.split('#');\n if (atoms.length > 1) {\n var nthValue = +atoms[atoms.length - 1];\n if(/,/.test(val)) {\n throw new Error('Constraint error, invalid dayOfWeek `#` and `,` '\n + 'special characters are incompatible');\n }\n if(/\\//.test(val)) {\n throw new Error('Constraint error, invalid dayOfWeek `#` and `/` '\n + 'special characters are incompatible');\n }\n if(/-/.test(val)) {\n throw new Error('Constraint error, invalid dayOfWeek `#` and `-` '\n + 'special characters are incompatible');\n }\n if (atoms.length > 2 || Number.isNaN(nthValue) || (nthValue < 1 || nthValue > 5)) {\n throw new Error('Constraint error, invalid dayOfWeek occurrence number (#)');\n }\n\n options.nthDayOfWeek = nthValue;\n return atoms[0];\n }\n return val;\n }\n }\n\n return parse(expression, options);\n};\n\n/**\n * Convert cron fields back to Cron Expression\n *\n * @public\n * @param {Object} fields Input fields\n * @param {Object} [options] Parsing options\n * @return {Object}\n */\nCronExpression.fieldsToExpression = function fieldsToExpression(fields, options) {\n function validateConstraints (field, values, constraints) {\n if (!values) {\n throw new Error('Validation error, Field ' + field + ' is missing');\n }\n if (values.length === 0) {\n throw new Error('Validation error, Field ' + field + ' contains no values');\n }\n for (var i = 0, c = values.length; i < c; i++) {\n var value = values[i];\n\n if (CronExpression._isValidConstraintChar(constraints, value)) {\n continue;\n }\n\n // Check constraints\n if (typeof value !== 'number' || Number.isNaN(value) || value < constraints.min || value > constraints.max) {\n throw new Error(\n 'Constraint error, got value ' + value + ' expected range ' +\n constraints.min + '-' + constraints.max\n );\n }\n }\n }\n\n var mappedFields = {};\n for (var i = 0, c = CronExpression.map.length; i < c; ++i) {\n var field = CronExpression.map[i]; // Field name\n var values = fields[field];\n validateConstraints(\n field,\n values,\n CronExpression.constraints[i]\n );\n var copy = [];\n var j = -1;\n while (++j < values.length) {\n copy[j] = values[j];\n }\n values = copy.sort(CronExpression._sortCompareFn)\n .filter(function(item, pos, ary) {\n return !pos || item !== ary[pos - 1];\n });\n if (values.length !== copy.length) {\n throw new Error('Validation error, Field ' + field + ' contains duplicate values');\n }\n mappedFields[field] = values;\n }\n var dayOfMonth = CronExpression._handleMaxDaysInMonth(mappedFields);\n mappedFields.dayOfMonth = dayOfMonth || mappedFields.dayOfMonth;\n return new CronExpression(mappedFields, options || {});\n};\n\nmodule.exports = CronExpression;\n","'use strict';\n\nvar luxon = require('luxon');\n\nCronDate.prototype.addYear = function() {\n this._date = this._date.plus({ years: 1 });\n};\n\nCronDate.prototype.addMonth = function() {\n this._date = this._date.plus({ months: 1 }).startOf('month');\n};\n\nCronDate.prototype.addDay = function() {\n this._date = this._date.plus({ days: 1 }).startOf('day');\n};\n\nCronDate.prototype.addHour = function() {\n var prev = this._date;\n this._date = this._date.plus({ hours: 1 }).startOf('hour');\n if (this._date <= prev) {\n this._date = this._date.plus({ hours: 1 });\n }\n};\n\nCronDate.prototype.addMinute = function() {\n var prev = this._date;\n this._date = this._date.plus({ minutes: 1 }).startOf('minute');\n if (this._date < prev) {\n this._date = this._date.plus({ hours: 1 });\n }\n};\n\nCronDate.prototype.addSecond = function() {\n var prev = this._date;\n this._date = this._date.plus({ seconds: 1 }).startOf('second');\n if (this._date < prev) {\n this._date = this._date.plus({ hours: 1 });\n }\n};\n\nCronDate.prototype.subtractYear = function() {\n this._date = this._date.minus({ years: 1 });\n};\n\nCronDate.prototype.subtractMonth = function() {\n this._date = this._date\n .minus({ months: 1 })\n .endOf('month')\n .startOf('second');\n};\n\nCronDate.prototype.subtractDay = function() {\n this._date = this._date\n .minus({ days: 1 })\n .endOf('day')\n .startOf('second');\n};\n\nCronDate.prototype.subtractHour = function() {\n var prev = this._date;\n this._date = this._date\n .minus({ hours: 1 })\n .endOf('hour')\n .startOf('second');\n if (this._date >= prev) {\n this._date = this._date.minus({ hours: 1 });\n }\n};\n\nCronDate.prototype.subtractMinute = function() {\n var prev = this._date;\n this._date = this._date.minus({ minutes: 1 })\n .endOf('minute')\n .startOf('second');\n if (this._date > prev) {\n this._date = this._date.minus({ hours: 1 });\n }\n};\n\nCronDate.prototype.subtractSecond = function() {\n var prev = this._date;\n this._date = this._date\n .minus({ seconds: 1 })\n .startOf('second');\n if (this._date > prev) {\n this._date = this._date.minus({ hours: 1 });\n }\n};\n\nCronDate.prototype.getDate = function() {\n return this._date.day;\n};\n\nCronDate.prototype.getFullYear = function() {\n return this._date.year;\n};\n\nCronDate.prototype.getDay = function() {\n var weekday = this._date.weekday;\n return weekday == 7 ? 0 : weekday;\n};\n\nCronDate.prototype.getMonth = function() {\n return this._date.month - 1;\n};\n\nCronDate.prototype.getHours = function() {\n return this._date.hour;\n};\n\nCronDate.prototype.getMinutes = function() {\n return this._date.minute;\n};\n\nCronDate.prototype.getSeconds = function() {\n return this._date.second;\n};\n\nCronDate.prototype.getMilliseconds = function() {\n return this._date.millisecond;\n};\n\nCronDate.prototype.getTime = function() {\n return this._date.valueOf();\n};\n\nCronDate.prototype.getUTCDate = function() {\n return this._getUTC().day;\n};\n\nCronDate.prototype.getUTCFullYear = function() {\n return this._getUTC().year;\n};\n\nCronDate.prototype.getUTCDay = function() {\n var weekday = this._getUTC().weekday;\n return weekday == 7 ? 0 : weekday;\n};\n\nCronDate.prototype.getUTCMonth = function() {\n return this._getUTC().month - 1;\n};\n\nCronDate.prototype.getUTCHours = function() {\n return this._getUTC().hour;\n};\n\nCronDate.prototype.getUTCMinutes = function() {\n return this._getUTC().minute;\n};\n\nCronDate.prototype.getUTCSeconds = function() {\n return this._getUTC().second;\n};\n\nCronDate.prototype.toISOString = function() {\n return this._date.toUTC().toISO();\n};\n\nCronDate.prototype.toJSON = function() {\n return this._date.toJSON();\n};\n\nCronDate.prototype.setDate = function(d) {\n this._date = this._date.set({ day: d });\n};\n\nCronDate.prototype.setFullYear = function(y) {\n this._date = this._date.set({ year: y });\n};\n\nCronDate.prototype.setDay = function(d) {\n this._date = this._date.set({ weekday: d });\n};\n\nCronDate.prototype.setMonth = function(m) {\n this._date = this._date.set({ month: m + 1 });\n};\n\nCronDate.prototype.setHours = function(h) {\n this._date = this._date.set({ hour: h });\n};\n\nCronDate.prototype.setMinutes = function(m) {\n this._date = this._date.set({ minute: m });\n};\n\nCronDate.prototype.setSeconds = function(s) {\n this._date = this._date.set({ second: s });\n};\n\nCronDate.prototype.setMilliseconds = function(s) {\n this._date = this._date.set({ millisecond: s });\n};\n\nCronDate.prototype._getUTC = function() {\n return this._date.toUTC();\n};\n\nCronDate.prototype.toString = function() {\n return this.toDate().toString();\n};\n\nCronDate.prototype.toDate = function() {\n return this._date.toJSDate();\n};\n\nCronDate.prototype.isLastDayOfMonth = function() {\n //next day\n var newDate = this._date.plus({ days: 1 }).startOf('day');\n return this._date.month !== newDate.month;\n};\n\n/**\n * Returns true when the current weekday is the last occurrence of this weekday\n * for the present month.\n */\nCronDate.prototype.isLastWeekdayOfMonth = function() {\n // Check this by adding 7 days to the current date and seeing if it's\n // a different month\n var newDate = this._date.plus({ days: 7 }).startOf('day');\n return this._date.month !== newDate.month;\n};\n\nfunction CronDate (timestamp, tz) {\n var dateOpts = { zone: tz };\n if (!timestamp) {\n this._date = luxon.DateTime.local();\n } else if (timestamp instanceof CronDate) {\n this._date = timestamp._date;\n } else if (timestamp instanceof Date) {\n this._date = luxon.DateTime.fromJSDate(timestamp, dateOpts);\n } else if (typeof timestamp === 'number') {\n this._date = luxon.DateTime.fromMillis(timestamp, dateOpts);\n } else if (typeof timestamp === 'string') {\n this._date = luxon.DateTime.fromISO(timestamp, dateOpts);\n this._date.isValid || (this._date = luxon.DateTime.fromRFC2822(timestamp, dateOpts));\n this._date.isValid || (this._date = luxon.DateTime.fromSQL(timestamp, dateOpts));\n // RFC2822-like format without the required timezone offset (used in tests)\n this._date.isValid || (this._date = luxon.DateTime.fromFormat(timestamp, 'EEE, d MMM yyyy HH:mm:ss', dateOpts));\n }\n\n if (!this._date || !this._date.isValid) {\n throw new Error('CronDate: unhandled timestamp: ' + JSON.stringify(timestamp));\n }\n \n if (tz && tz !== this._date.zoneName) {\n this._date = this._date.setZone(tz);\n }\n}\n\nmodule.exports = CronDate;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _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}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\n// these aren't really private, but nor are they really useful to document\n/**\n * @private\n */\nvar LuxonError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(LuxonError, _Error);\n function LuxonError() {\n return _Error.apply(this, arguments) || this;\n }\n return LuxonError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * @private\n */\nvar InvalidDateTimeError = /*#__PURE__*/function (_LuxonError) {\n _inheritsLoose(InvalidDateTimeError, _LuxonError);\n function InvalidDateTimeError(reason) {\n return _LuxonError.call(this, \"Invalid DateTime: \" + reason.toMessage()) || this;\n }\n return InvalidDateTimeError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar InvalidIntervalError = /*#__PURE__*/function (_LuxonError2) {\n _inheritsLoose(InvalidIntervalError, _LuxonError2);\n function InvalidIntervalError(reason) {\n return _LuxonError2.call(this, \"Invalid Interval: \" + reason.toMessage()) || this;\n }\n return InvalidIntervalError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar InvalidDurationError = /*#__PURE__*/function (_LuxonError3) {\n _inheritsLoose(InvalidDurationError, _LuxonError3);\n function InvalidDurationError(reason) {\n return _LuxonError3.call(this, \"Invalid Duration: \" + reason.toMessage()) || this;\n }\n return InvalidDurationError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar ConflictingSpecificationError = /*#__PURE__*/function (_LuxonError4) {\n _inheritsLoose(ConflictingSpecificationError, _LuxonError4);\n function ConflictingSpecificationError() {\n return _LuxonError4.apply(this, arguments) || this;\n }\n return ConflictingSpecificationError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar InvalidUnitError = /*#__PURE__*/function (_LuxonError5) {\n _inheritsLoose(InvalidUnitError, _LuxonError5);\n function InvalidUnitError(unit) {\n return _LuxonError5.call(this, \"Invalid unit \" + unit) || this;\n }\n return InvalidUnitError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar InvalidArgumentError = /*#__PURE__*/function (_LuxonError6) {\n _inheritsLoose(InvalidArgumentError, _LuxonError6);\n function InvalidArgumentError() {\n return _LuxonError6.apply(this, arguments) || this;\n }\n return InvalidArgumentError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar ZoneIsAbstractError = /*#__PURE__*/function (_LuxonError7) {\n _inheritsLoose(ZoneIsAbstractError, _LuxonError7);\n function ZoneIsAbstractError() {\n return _LuxonError7.call(this, \"Zone is an abstract class\") || this;\n }\n return ZoneIsAbstractError;\n}(LuxonError);\n\n/**\n * @private\n */\n\nvar n = \"numeric\",\n s = \"short\",\n l = \"long\";\nvar DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\nvar DATE_MED = {\n year: n,\n month: s,\n day: n\n};\nvar DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\nvar DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\nvar DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\nvar TIME_SIMPLE = {\n hour: n,\n minute: n\n};\nvar TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\nvar TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\nvar TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\nvar TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\"\n};\nvar TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\"\n};\nvar TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s\n};\nvar TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l\n};\nvar DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\nvar DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\nvar DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\nvar DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\nvar DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\nvar DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\nvar DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\nvar DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\nvar DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\n/**\n * @interface\n */\nvar Zone = /*#__PURE__*/function () {\n function Zone() {}\n var _proto = Zone.prototype;\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n _proto.offsetName = function offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */;\n _proto.formatOffset = function formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */;\n _proto.offset = function offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */;\n _proto.equals = function equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */;\n _createClass(Zone, [{\n key: \"type\",\n get:\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n function get() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n }, {\n key: \"name\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }, {\n key: \"ianaName\",\n get: function get() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n }, {\n key: \"isUniversal\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }, {\n key: \"isValid\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }]);\n return Zone;\n}();\n\nvar singleton$1 = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nvar SystemZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(SystemZone, _Zone);\n function SystemZone() {\n return _Zone.apply(this, arguments) || this;\n }\n var _proto = SystemZone.prototype;\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/;\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/;\n _proto.offset = function offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/;\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/;\n _createClass(SystemZone, [{\n key: \"type\",\n get: /** @override **/\n function get() {\n return \"system\";\n }\n\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n }, {\n key: \"isUniversal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }], [{\n key: \"instance\",\n get:\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n function get() {\n if (singleton$1 === null) {\n singleton$1 = new SystemZone();\n }\n return singleton$1;\n }\n }]);\n return SystemZone;\n}(Zone);\n\nvar dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\"\n });\n }\n return dtfCache[zone];\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6\n};\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n fMonth = parsed[1],\n fDay = parsed[2],\n fYear = parsed[3],\n fadOrBc = parsed[4],\n fHour = parsed[5],\n fMinute = parsed[6],\n fSecond = parsed[7];\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var _formatted$i = formatted[i],\n type = _formatted$i.type,\n value = _formatted$i.value;\n var pos = typeToPos[type];\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\nvar ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nvar IANAZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(IANAZone, _Zone);\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n IANAZone.create = function create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */;\n IANAZone.resetCache = function resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */;\n IANAZone.isValidSpecifier = function isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */;\n IANAZone.isValidZone = function isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", {\n timeZone: zone\n }).format();\n return true;\n } catch (e) {\n return false;\n }\n };\n function IANAZone(name) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private **/\n _this.zoneName = name;\n /** @private **/\n _this.valid = IANAZone.isValidZone(name);\n return _this;\n }\n\n /** @override **/\n var _proto = IANAZone.prototype;\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/;\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/;\n _proto.offset = function offset(ts) {\n var date = new Date(ts);\n if (isNaN(date)) return NaN;\n var dtf = makeDTF(this.name);\n var _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date),\n year = _ref2[0],\n month = _ref2[1],\n day = _ref2[2],\n adOrBc = _ref2[3],\n hour = _ref2[4],\n minute = _ref2[5],\n second = _ref2[6];\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n var adjustedHour = hour === 24 ? 0 : hour;\n var asUTC = objToLocalTS({\n year: year,\n month: month,\n day: day,\n hour: adjustedHour,\n minute: minute,\n second: second,\n millisecond: 0\n });\n var asTS = +date;\n var over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/;\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/;\n _createClass(IANAZone, [{\n key: \"type\",\n get: function get() {\n return \"iana\";\n }\n\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n\n /** @override **/\n }, {\n key: \"isUniversal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return this.valid;\n }\n }]);\n return IANAZone;\n}(Zone);\n\nvar _excluded = [\"base\"],\n _excluded2 = [\"padTo\", \"floor\"];\n\n// todo - remap caching\n\nvar intlLFCache = {};\nfunction getCachedLF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var key = JSON.stringify([locString, opts]);\n var dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\nvar intlDTCache = {};\nfunction getCachedDTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var key = JSON.stringify([locString, opts]);\n var dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\nvar intlNumCache = {};\nfunction getCachedINF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var key = JSON.stringify([locString, opts]);\n var inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\nvar intlRelCache = {};\nfunction getCachedRTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _opts = opts;\n _opts.base;\n var cacheKeyOpts = _objectWithoutPropertiesLoose(_opts, _excluded); // exclude `base` from the options\n var key = JSON.stringify([locString, cacheKeyOpts]);\n var inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\nvar sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n var xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n var uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n var options;\n var selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n var smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n var _options = options,\n numberingSystem = _options.numberingSystem,\n calendar = _options.calendar;\n return [selectedStr, numberingSystem, calendar];\n }\n}\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n if (outputCalendar) {\n localeStr += \"-ca-\" + outputCalendar;\n }\n if (numberingSystem) {\n localeStr += \"-nu-\" + numberingSystem;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\nfunction mapMonths(f) {\n var ms = [];\n for (var i = 1; i <= 12; i++) {\n var dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction mapWeekdays(f) {\n var ms = [];\n for (var i = 1; i <= 7; i++) {\n var dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction listStuff(loc, length, englishFn, intlFn) {\n var mode = loc.listingMode();\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return loc.numberingSystem === \"latn\" || !loc.locale || loc.locale.startsWith(\"en\") || new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\";\n }\n}\n\n/**\n * @private\n */\nvar PolyNumberFormatter = /*#__PURE__*/function () {\n function PolyNumberFormatter(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n opts.padTo;\n opts.floor;\n var otherOpts = _objectWithoutPropertiesLoose(opts, _excluded2);\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n var intlOpts = _extends({\n useGrouping: false\n }, opts);\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n var _proto = PolyNumberFormatter.prototype;\n _proto.format = function format(i) {\n if (this.inf) {\n var fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n var _fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(_fixed, this.padTo);\n }\n };\n return PolyNumberFormatter;\n}();\n/**\n * @private\n */\nvar PolyDateFormatter = /*#__PURE__*/function () {\n function PolyDateFormatter(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n var z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n var gmtOffset = -1 * (dt.offset / 60);\n var offsetZ = gmtOffset >= 0 ? \"Etc/GMT+\" + gmtOffset : \"Etc/GMT\" + gmtOffset;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({\n minutes: dt.offset\n });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({\n minutes: dt.offset\n });\n this.originalZone = dt.zone;\n }\n var intlOpts = _extends({}, this.opts);\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n var _proto2 = PolyDateFormatter.prototype;\n _proto2.format = function format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts().map(function (_ref) {\n var value = _ref.value;\n return value;\n }).join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n };\n _proto2.formatToParts = function formatToParts() {\n var _this = this;\n var parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map(function (part) {\n if (part.type === \"timeZoneName\") {\n var offsetName = _this.originalZone.offsetName(_this.dt.ts, {\n locale: _this.dt.locale,\n format: _this.opts.timeZoneName\n });\n return _extends({}, part, {\n value: offsetName\n });\n } else {\n return part;\n }\n });\n }\n return parts;\n };\n _proto2.resolvedOptions = function resolvedOptions() {\n return this.dtf.resolvedOptions();\n };\n return PolyDateFormatter;\n}();\n/**\n * @private\n */\nvar PolyRelFormatter = /*#__PURE__*/function () {\n function PolyRelFormatter(intl, isEnglish, opts) {\n this.opts = _extends({\n style: \"long\"\n }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n var _proto3 = PolyRelFormatter.prototype;\n _proto3.format = function format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n };\n _proto3.formatToParts = function formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n };\n return PolyRelFormatter;\n}();\n/**\n * @private\n */\nvar Locale = /*#__PURE__*/function () {\n Locale.fromOpts = function fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n };\n Locale.create = function create(locale, numberingSystem, outputCalendar, defaultToEN) {\n if (defaultToEN === void 0) {\n defaultToEN = false;\n }\n var specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n var localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n var numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n var outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n };\n Locale.resetCache = function resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n };\n Locale.fromObject = function fromObject(_temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n locale = _ref2.locale,\n numberingSystem = _ref2.numberingSystem,\n outputCalendar = _ref2.outputCalendar;\n return Locale.create(locale, numberingSystem, outputCalendar);\n };\n function Locale(locale, numbering, outputCalendar, specifiedLocale) {\n var _parseLocaleString = parseLocaleString(locale),\n parsedLocale = _parseLocaleString[0],\n parsedNumberingSystem = _parseLocaleString[1],\n parsedOutputCalendar = _parseLocaleString[2];\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n this.weekdaysCache = {\n format: {},\n standalone: {}\n };\n this.monthsCache = {\n format: {},\n standalone: {}\n };\n this.meridiemCache = null;\n this.eraCache = {};\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n var _proto4 = Locale.prototype;\n _proto4.listingMode = function listingMode() {\n var isActuallyEn = this.isEnglish();\n var hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === \"latn\") && (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n };\n _proto4.clone = function clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, alts.defaultToEN || false);\n }\n };\n _proto4.redefaultToEN = function redefaultToEN(alts) {\n if (alts === void 0) {\n alts = {};\n }\n return this.clone(_extends({}, alts, {\n defaultToEN: true\n }));\n };\n _proto4.redefaultToSystem = function redefaultToSystem(alts) {\n if (alts === void 0) {\n alts = {};\n }\n return this.clone(_extends({}, alts, {\n defaultToEN: false\n }));\n };\n _proto4.months = function months$1(length, format) {\n var _this2 = this;\n if (format === void 0) {\n format = false;\n }\n return listStuff(this, length, months, function () {\n var intl = format ? {\n month: length,\n day: \"numeric\"\n } : {\n month: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!_this2.monthsCache[formatStr][length]) {\n _this2.monthsCache[formatStr][length] = mapMonths(function (dt) {\n return _this2.extract(dt, intl, \"month\");\n });\n }\n return _this2.monthsCache[formatStr][length];\n });\n };\n _proto4.weekdays = function weekdays$1(length, format) {\n var _this3 = this;\n if (format === void 0) {\n format = false;\n }\n return listStuff(this, length, weekdays, function () {\n var intl = format ? {\n weekday: length,\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n } : {\n weekday: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!_this3.weekdaysCache[formatStr][length]) {\n _this3.weekdaysCache[formatStr][length] = mapWeekdays(function (dt) {\n return _this3.extract(dt, intl, \"weekday\");\n });\n }\n return _this3.weekdaysCache[formatStr][length];\n });\n };\n _proto4.meridiems = function meridiems$1() {\n var _this4 = this;\n return listStuff(this, undefined, function () {\n return meridiems;\n }, function () {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!_this4.meridiemCache) {\n var intl = {\n hour: \"numeric\",\n hourCycle: \"h12\"\n };\n _this4.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(function (dt) {\n return _this4.extract(dt, intl, \"dayperiod\");\n });\n }\n return _this4.meridiemCache;\n });\n };\n _proto4.eras = function eras$1(length) {\n var _this5 = this;\n return listStuff(this, length, eras, function () {\n var intl = {\n era: length\n };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!_this5.eraCache[length]) {\n _this5.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(function (dt) {\n return _this5.extract(dt, intl, \"era\");\n });\n }\n return _this5.eraCache[length];\n });\n };\n _proto4.extract = function extract(dt, intlOpts, field) {\n var df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(function (m) {\n return m.type.toLowerCase() === field;\n });\n return matching ? matching.value : null;\n };\n _proto4.numberFormatter = function numberFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n };\n _proto4.dtFormatter = function dtFormatter(dt, intlOpts) {\n if (intlOpts === void 0) {\n intlOpts = {};\n }\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n };\n _proto4.relFormatter = function relFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n };\n _proto4.listFormatter = function listFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n return getCachedLF(this.intl, opts);\n };\n _proto4.isEnglish = function isEnglish() {\n return this.locale === \"en\" || this.locale.toLowerCase() === \"en-us\" || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\");\n };\n _proto4.equals = function equals(other) {\n return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar;\n };\n _createClass(Locale, [{\n key: \"fastNumbers\",\n get: function get() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n return this.fastNumbersCached;\n }\n }]);\n return Locale;\n}();\n\nvar singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nvar FixedOffsetZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(FixedOffsetZone, _Zone);\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n FixedOffsetZone.instance = function instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */;\n FixedOffsetZone.parseSpecifier = function parseSpecifier(s) {\n if (s) {\n var r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n };\n function FixedOffsetZone(offset) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private **/\n _this.fixed = offset;\n return _this;\n }\n\n /** @override **/\n var _proto = FixedOffsetZone.prototype;\n /** @override **/\n _proto.offsetName = function offsetName() {\n return this.name;\n }\n\n /** @override **/;\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/;\n /** @override **/\n _proto.offset = function offset() {\n return this.fixed;\n }\n\n /** @override **/;\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/;\n _createClass(FixedOffsetZone, [{\n key: \"type\",\n get: function get() {\n return \"fixed\";\n }\n\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.fixed === 0 ? \"UTC\" : \"UTC\" + formatOffset(this.fixed, \"narrow\");\n }\n }, {\n key: \"ianaName\",\n get: function get() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return \"Etc/GMT\" + formatOffset(-this.fixed, \"narrow\");\n }\n }\n }, {\n key: \"isUniversal\",\n get: function get() {\n return true;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }], [{\n key: \"utcInstance\",\n get:\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n function get() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n }]);\n return FixedOffsetZone;\n}(Zone);\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nvar InvalidZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(InvalidZone, _Zone);\n function InvalidZone(zoneName) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private */\n _this.zoneName = zoneName;\n return _this;\n }\n\n /** @override **/\n var _proto = InvalidZone.prototype;\n /** @override **/\n _proto.offsetName = function offsetName() {\n return null;\n }\n\n /** @override **/;\n _proto.formatOffset = function formatOffset() {\n return \"\";\n }\n\n /** @override **/;\n _proto.offset = function offset() {\n return NaN;\n }\n\n /** @override **/;\n _proto.equals = function equals() {\n return false;\n }\n\n /** @override **/;\n _createClass(InvalidZone, [{\n key: \"type\",\n get: function get() {\n return \"invalid\";\n }\n\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n\n /** @override **/\n }, {\n key: \"isUniversal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return false;\n }\n }]);\n return InvalidZone;\n}(Zone);\n\n/**\n * @private\n */\nfunction normalizeZone(input, defaultZone) {\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n var lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n\nvar now = function now() {\n return Date.now();\n },\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nvar Settings = /*#__PURE__*/function () {\n function Settings() {}\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n Settings.resetCaches = function resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n };\n _createClass(Settings, null, [{\n key: \"now\",\n get:\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n function get() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */,\n set: function set(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n }, {\n key: \"defaultZone\",\n get:\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n function get() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n set: function set(zone) {\n defaultZone = zone;\n }\n }, {\n key: \"defaultLocale\",\n get: function get() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n set: function set(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n }, {\n key: \"defaultNumberingSystem\",\n get: function get() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n set: function set(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n }, {\n key: \"defaultOutputCalendar\",\n get: function get() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n set: function set(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n */\n }, {\n key: \"twoDigitCutoffYear\",\n get: function get() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */,\n set: function set(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n }, {\n key: \"throwOnInvalid\",\n get: function get() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */,\n set: function set(t) {\n throwOnInvalid = t;\n }\n }]);\n return Settings;\n}();\n\n/**\n * @private\n */\n\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\nfunction isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\nfunction isString(o) {\n return typeof o === \"string\";\n}\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nfunction hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce(function (best, next) {\n var pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (a, k) {\n a[k] = obj[k];\n return a;\n }, {});\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nfunction integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\nfunction padStart(input, n) {\n if (n === void 0) {\n n = 2;\n }\n var isNeg = input < 0;\n var padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\nfunction parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n var f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\nfunction roundTo(number, digits, towardZero) {\n if (towardZero === void 0) {\n towardZero = false;\n }\n var factor = Math.pow(10, digits),\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction daysInMonth(year, month) {\n var modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nfunction objToLocalTS(obj) {\n var d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond);\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\nfunction weeksInWeekYear(weekYear) {\n var p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone) {\n if (timeZone === void 0) {\n timeZone = null;\n }\n var date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n var modified = _extends({\n timeZoneName: offsetFormat\n }, intlOpts);\n var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) {\n return m.type.toLowerCase() === \"timezonename\";\n });\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nfunction signedOffset(offHourStr, offMinuteStr) {\n var offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n var offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nfunction asNumber(value) {\n var numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue)) throw new InvalidArgumentError(\"Invalid unit value \" + value);\n return numericValue;\n}\nfunction normalizeObject(obj, normalizer) {\n var normalized = {};\n for (var u in obj) {\n if (hasOwnProperty(obj, u)) {\n var v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\nfunction formatOffset(offset, format) {\n var hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n switch (format) {\n case \"short\":\n return \"\" + sign + padStart(hours, 2) + \":\" + padStart(minutes, 2);\n case \"narrow\":\n return \"\" + sign + hours + (minutes > 0 ? \":\" + minutes : \"\");\n case \"techie\":\n return \"\" + sign + padStart(hours, 2) + padStart(minutes, 2);\n default:\n throw new RangeError(\"Value format \" + format + \" is out of range for property format\");\n }\n}\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\n/**\n * @private\n */\n\nvar monthsLong = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\nvar monthsShort = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nvar monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(monthsNarrow);\n case \"short\":\n return [].concat(monthsShort);\n case \"long\":\n return [].concat(monthsLong);\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\nvar weekdaysLong = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\nvar weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nvar weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(weekdaysNarrow);\n case \"short\":\n return [].concat(weekdaysShort);\n case \"long\":\n return [].concat(weekdaysLong);\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\nvar meridiems = [\"AM\", \"PM\"];\nvar erasLong = [\"Before Christ\", \"Anno Domini\"];\nvar erasShort = [\"BC\", \"AD\"];\nvar erasNarrow = [\"B\", \"A\"];\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(erasNarrow);\n case \"short\":\n return [].concat(erasShort);\n case \"long\":\n return [].concat(erasLong);\n default:\n return null;\n }\n}\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\nfunction formatRelativeTime(unit, count, numeric, narrow) {\n if (numeric === void 0) {\n numeric = \"always\";\n }\n if (narrow === void 0) {\n narrow = false;\n }\n var units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n var lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n if (numeric === \"auto\" && lastable) {\n var isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : \"next \" + units[unit][0];\n case -1:\n return isDay ? \"yesterday\" : \"last \" + units[unit][0];\n case 0:\n return isDay ? \"today\" : \"this \" + units[unit][0];\n }\n }\n\n var isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit;\n return isInPast ? fmtValue + \" \" + fmtUnit + \" ago\" : \"in \" + fmtValue + \" \" + fmtUnit;\n}\n\nfunction stringifyTokens(splits, tokenToString) {\n var s = \"\";\n for (var _iterator = _createForOfIteratorHelperLoose(splits), _step; !(_step = _iterator()).done;) {\n var token = _step.value;\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\nvar _macroTokenToFormatOpts = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\nvar Formatter = /*#__PURE__*/function () {\n Formatter.create = function create(locale, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return new Formatter(locale, opts);\n };\n Formatter.parseFormat = function parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n var current = null,\n currentFull = \"\",\n bracketed = false;\n var splits = [];\n for (var i = 0; i < fmt.length; i++) {\n var c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({\n literal: /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n currentFull = c;\n current = c;\n }\n }\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n return splits;\n };\n Formatter.macroTokenToFormatOpts = function macroTokenToFormatOpts(token) {\n return _macroTokenToFormatOpts[token];\n };\n function Formatter(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n var _proto = Formatter.prototype;\n _proto.formatWithSystemDefault = function formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n var df = this.systemLoc.dtFormatter(dt, _extends({}, this.opts, opts));\n return df.format();\n };\n _proto.dtFormatter = function dtFormatter(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return this.loc.dtFormatter(dt, _extends({}, this.opts, opts));\n };\n _proto.formatDateTime = function formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n };\n _proto.formatDateTimeParts = function formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n };\n _proto.formatInterval = function formatInterval(interval, opts) {\n var df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n };\n _proto.resolvedOptions = function resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n };\n _proto.num = function num(n, p) {\n if (p === void 0) {\n p = 0;\n }\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n var opts = _extends({}, this.opts);\n if (p > 0) {\n opts.padTo = p;\n }\n return this.loc.numberFormatter(opts).format(n);\n };\n _proto.formatDateTimeFromString = function formatDateTimeFromString(dt, fmt) {\n var _this = this;\n var knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = function string(opts, extract) {\n return _this.loc.extract(dt, opts, extract);\n },\n formatOffset = function formatOffset(opts) {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = function meridiem() {\n return knownEnglish ? meridiemForDateTime(dt) : string({\n hour: \"numeric\",\n hourCycle: \"h12\"\n }, \"dayperiod\");\n },\n month = function month(length, standalone) {\n return knownEnglish ? monthForDateTime(dt, length) : string(standalone ? {\n month: length\n } : {\n month: length,\n day: \"numeric\"\n }, \"month\");\n },\n weekday = function weekday(length, standalone) {\n return knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? {\n weekday: length\n } : {\n weekday: length,\n month: \"long\",\n day: \"numeric\"\n }, \"weekday\");\n },\n maybeMacro = function maybeMacro(token) {\n var formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return _this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = function era(length) {\n return knownEnglish ? eraForDateTime(dt, length) : string({\n era: length\n }, \"era\");\n },\n tokenToString = function tokenToString(token) {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return _this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return _this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return _this.num(dt.second);\n case \"ss\":\n return _this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return _this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return _this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return _this.num(dt.minute);\n case \"mm\":\n return _this.num(dt.minute, 2);\n // hours\n case \"h\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return _this.num(dt.hour);\n case \"HH\":\n return _this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({\n format: \"narrow\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZ\":\n // like +06:00\n return formatOffset({\n format: \"short\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZZ\":\n // like +0600\n return formatOffset({\n format: \"techie\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, {\n format: \"short\",\n locale: _this.loc.locale\n });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, {\n format: \"long\",\n locale: _this.loc.locale\n });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({\n day: \"numeric\"\n }, \"day\") : _this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({\n day: \"2-digit\"\n }, \"day\") : _this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return _this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return _this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter ? string({\n month: \"2-digit\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter ? string({\n month: \"2-digit\"\n }, \"month\") : _this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter ? string({\n year: \"2-digit\"\n }, \"year\") : _this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return _this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return _this.num(dt.weekYear, 4);\n case \"W\":\n return _this.num(dt.weekNumber);\n case \"WW\":\n return _this.num(dt.weekNumber, 2);\n case \"o\":\n return _this.num(dt.ordinal);\n case \"ooo\":\n return _this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return _this.num(dt.quarter);\n case \"qq\":\n // like 01\n return _this.num(dt.quarter, 2);\n case \"X\":\n return _this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return _this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n };\n _proto.formatDurationFromString = function formatDurationFromString(dur, fmt) {\n var _this2 = this;\n var tokenToField = function tokenToField(token) {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = function tokenToString(lildur) {\n return function (token) {\n var mapped = tokenToField(token);\n if (mapped) {\n return _this2.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n };\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(function (found, _ref) {\n var literal = _ref.literal,\n val = _ref.val;\n return literal ? found : found.concat(val);\n }, []),\n collapsed = dur.shiftTo.apply(dur, realTokens.map(tokenToField).filter(function (t) {\n return t;\n }));\n return stringifyTokens(tokens, tokenToString(collapsed));\n };\n return Formatter;\n}();\n\nvar Invalid = /*#__PURE__*/function () {\n function Invalid(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n var _proto = Invalid.prototype;\n _proto.toMessage = function toMessage() {\n if (this.explanation) {\n return this.reason + \": \" + this.explanation;\n } else {\n return this.reason;\n }\n };\n return Invalid;\n}();\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nvar ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\nfunction combineRegexes() {\n for (var _len = arguments.length, regexes = new Array(_len), _key = 0; _key < _len; _key++) {\n regexes[_key] = arguments[_key];\n }\n var full = regexes.reduce(function (f, r) {\n return f + r.source;\n }, \"\");\n return RegExp(\"^\" + full + \"$\");\n}\nfunction combineExtractors() {\n for (var _len2 = arguments.length, extractors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n extractors[_key2] = arguments[_key2];\n }\n return function (m) {\n return extractors.reduce(function (_ref, ex) {\n var mergedVals = _ref[0],\n mergedZone = _ref[1],\n cursor = _ref[2];\n var _ex = ex(m, cursor),\n val = _ex[0],\n zone = _ex[1],\n next = _ex[2];\n return [_extends({}, mergedVals, val), zone || mergedZone, next];\n }, [{}, null, 1]).slice(0, 2);\n };\n}\nfunction parse(s) {\n if (s == null) {\n return [null, null];\n }\n for (var _len3 = arguments.length, patterns = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n patterns[_key3 - 1] = arguments[_key3];\n }\n for (var _i = 0, _patterns = patterns; _i < _patterns.length; _i++) {\n var _patterns$_i = _patterns[_i],\n regex = _patterns$_i[0],\n extractor = _patterns$_i[1];\n var m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\nfunction simpleParse() {\n for (var _len4 = arguments.length, keys = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n keys[_key4] = arguments[_key4];\n }\n return function (match, cursor) {\n var ret = {};\n var i;\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nvar offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nvar isoExtendedZone = \"(?:\" + offsetRegex.source + \"?(?:\\\\[(\" + ianaRegex.source + \")\\\\])?)?\";\nvar isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nvar isoTimeRegex = RegExp(\"\" + isoTimeBaseRegex.source + isoExtendedZone);\nvar isoTimeExtensionRegex = RegExp(\"(?:T\" + isoTimeRegex.source + \")?\");\nvar isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nvar isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nvar isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nvar extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nvar extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nvar sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nvar sqlTimeRegex = RegExp(isoTimeBaseRegex.source + \" ?(?:\" + offsetRegex.source + \"|(\" + ianaRegex.source + \"))?\");\nvar sqlTimeExtensionRegex = RegExp(\"(?: \" + sqlTimeRegex.source + \")?\");\nfunction int(match, pos, fallback) {\n var m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\nfunction extractISOYmd(match, cursor) {\n var item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n return [item, null, cursor + 3];\n}\nfunction extractISOTime(match, cursor) {\n var item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3])\n };\n return [item, null, cursor + 4];\n}\nfunction extractISOOffset(match, cursor) {\n var local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\nfunction extractIANAZone(match, cursor) {\n var zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nvar isoTimeOnly = RegExp(\"^T?\" + isoTimeBaseRegex.source + \"$\");\n\n// ISO duration parsing\n\nvar isoDuration = /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\nfunction extractISODuration(match) {\n var s = match[0],\n yearStr = match[1],\n monthStr = match[2],\n weekStr = match[3],\n dayStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n millisecondsStr = match[8];\n var hasNegativePrefix = s[0] === \"-\";\n var negativeSeconds = secondStr && secondStr[0] === \"-\";\n var maybeNegate = function maybeNegate(num, force) {\n if (force === void 0) {\n force = false;\n }\n return num !== undefined && (force || num && hasNegativePrefix) ? -num : num;\n };\n return [{\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds)\n }];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nvar obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n return result;\n}\n\n// RFC 2822/5322\nvar rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\nfunction extractRFC2822(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n obsOffset = match[8],\n milOffset = match[9],\n offHourStr = match[10],\n offMinuteStr = match[11],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n var offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n return [result, new FixedOffsetZone(offset)];\n}\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, \" \").replace(/(\\s\\s+)/g, \" \").trim();\n}\n\n// http date\n\nvar rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\nfunction extractRFC1123Or850(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nfunction extractASCII(match) {\n var weekdayStr = match[1],\n monthStr = match[2],\n dayStr = match[3],\n hourStr = match[4],\n minuteStr = match[5],\n secondStr = match[6],\n yearStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nvar isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nvar isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nvar isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nvar isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\nvar extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);\nvar extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone);\nvar extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone);\nvar extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\n\n/*\n * @private\n */\n\nfunction parseISODate(s) {\n return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]);\n}\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\nfunction parseHTTPDate(s) {\n return parse(s, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]);\n}\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\nvar extractISOTimeOnly = combineExtractors(extractISOTime);\nfunction parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\nvar sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nvar sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\nvar extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\nfunction parseSQL(s) {\n return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);\n}\n\nvar INVALID$2 = \"Invalid Duration\";\n\n// unit conversion constants\nvar lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: {\n minutes: 60,\n seconds: 60 * 60,\n milliseconds: 60 * 60 * 1000\n },\n minutes: {\n seconds: 60,\n milliseconds: 60 * 1000\n },\n seconds: {\n milliseconds: 1000\n }\n },\n casualMatrix = _extends({\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n }, lowOrderMatrix),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = _extends({\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: daysInYearAccurate * 24 / 4,\n minutes: daysInYearAccurate * 24 * 60 / 4,\n seconds: daysInYearAccurate * 24 * 60 * 60 / 4,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000 / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n }, lowOrderMatrix);\n\n// units ordered by size\nvar orderedUnits$1 = [\"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\nvar reverseUnits = orderedUnits$1.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone$1(dur, alts, clear) {\n if (clear === void 0) {\n clear = false;\n }\n // deep merge for vals\n var conf = {\n values: clear ? alts.values : _extends({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix\n };\n return new Duration(conf);\n}\nfunction durationToMillis(matrix, vals) {\n var _vals$milliseconds;\n var sum = (_vals$milliseconds = vals.milliseconds) != null ? _vals$milliseconds : 0;\n for (var _iterator = _createForOfIteratorHelperLoose(reverseUnits.slice(1)), _step; !(_step = _iterator()).done;) {\n var unit = _step.value;\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n var factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n orderedUnits$1.reduceRight(function (previous, current) {\n if (!isUndefined(vals[current])) {\n if (previous) {\n var previousVal = vals[previous] * factor;\n var conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n var rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits$1.reduce(function (previous, current) {\n if (!isUndefined(vals[current])) {\n if (previous) {\n var fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n var newVals = {};\n for (var _i = 0, _Object$entries = Object.entries(vals); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nvar Duration = /*#__PURE__*/function () {\n /**\n * @private\n */\n function Duration(config) {\n var accurate = config.conversionAccuracy === \"longterm\" || false;\n var matrix = accurate ? accurateMatrix : casualMatrix;\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n Duration.fromMillis = function fromMillis(count, opts) {\n return Duration.fromObject({\n milliseconds: count\n }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */;\n Duration.fromObject = function fromObject(obj, opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\"Duration.fromObject: argument expected to be an object, got \" + (obj === null ? \"null\" : typeof obj));\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */;\n Duration.fromDurationLike = function fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\"Unknown duration argument \" + durationLike + \" of type \" + typeof durationLike);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */;\n Duration.fromISO = function fromISO(text, opts) {\n var _parseISODuration = parseISODuration(text),\n parsed = _parseISODuration[0];\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */;\n Duration.fromISOTime = function fromISOTime(text, opts) {\n var _parseISOTimeOnly = parseISOTimeOnly(text),\n parsed = _parseISOTimeOnly[0];\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */;\n Duration.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({\n invalid: invalid\n });\n }\n }\n\n /**\n * @private\n */;\n Duration.normalizeUnit = function normalizeUnit(unit) {\n var normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n Duration.isDuration = function isDuration(o) {\n return o && o.isLuxonDuration || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */;\n var _proto = Duration.prototype;\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n var fmtOpts = _extends({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior use the `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n * @param opts - On option object to override the formatting. Accepts the same keys as the options parameter of the native `Int.NumberFormat` constructor, as well as `listStyle`.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */;\n _proto.toHuman = function toHuman(opts) {\n var _this = this;\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return INVALID$2;\n var l = orderedUnits$1.map(function (unit) {\n var val = _this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return _this.loc.numberFormatter(_extends({\n style: \"unit\",\n unitDisplay: \"long\"\n }, opts, {\n unit: unit.slice(0, -1)\n })).format(val);\n }).filter(function (n) {\n return n;\n });\n return this.loc.listFormatter(_extends({\n type: \"conjunction\",\n style: opts.listStyle || \"narrow\"\n }, opts)).format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */;\n _proto.toObject = function toObject() {\n if (!this.isValid) return {};\n return _extends({}, this.values);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */;\n _proto.toISO = function toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n var s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */;\n _proto.toISOTime = function toISOTime(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return null;\n var millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n opts = _extends({\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\"\n }, opts, {\n includeOffset: false\n });\n var dateTime = DateTime.fromMillis(millis, {\n zone: \"UTC\"\n });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */;\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */;\n _proto.toString = function toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */;\n _proto.toMillis = function toMillis() {\n if (!this.isValid) return NaN;\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */;\n _proto.valueOf = function valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */;\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = Duration.fromDurationLike(duration),\n result = {};\n for (var _i2 = 0, _orderedUnits = orderedUnits$1; _i2 < _orderedUnits.length; _i2++) {\n var k = _orderedUnits[_i2];\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n return clone$1(this, {\n values: result\n }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */;\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */;\n _proto.mapUnits = function mapUnits(fn) {\n if (!this.isValid) return this;\n var result = {};\n for (var _i3 = 0, _Object$keys = Object.keys(this.values); _i3 < _Object$keys.length; _i3++) {\n var k = _Object$keys[_i3];\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone$1(this, {\n values: result\n }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */;\n _proto.get = function get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */;\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var mixed = _extends({}, this.values, normalizeObject(values, Duration.normalizeUnit));\n return clone$1(this, {\n values: mixed\n });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */;\n _proto.reconfigure = function reconfigure(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n locale = _ref.locale,\n numberingSystem = _ref.numberingSystem,\n conversionAccuracy = _ref.conversionAccuracy,\n matrix = _ref.matrix;\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem\n });\n var opts = {\n loc: loc,\n matrix: matrix,\n conversionAccuracy: conversionAccuracy\n };\n return clone$1(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */;\n _proto.as = function as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see second example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */;\n _proto.normalize = function normalize() {\n if (!this.isValid) return this;\n var vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone$1(this, {\n values: vals\n }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */;\n _proto.rescale = function rescale() {\n if (!this.isValid) return this;\n var vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone$1(this, {\n values: vals\n }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */;\n _proto.shiftTo = function shiftTo() {\n for (var _len = arguments.length, units = new Array(_len), _key = 0; _key < _len; _key++) {\n units[_key] = arguments[_key];\n }\n if (!this.isValid) return this;\n if (units.length === 0) {\n return this;\n }\n units = units.map(function (u) {\n return Duration.normalizeUnit(u);\n });\n var built = {},\n accumulated = {},\n vals = this.toObject();\n var lastUnit;\n for (var _i4 = 0, _orderedUnits2 = orderedUnits$1; _i4 < _orderedUnits2.length; _i4++) {\n var k = _orderedUnits2[_i4];\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n var own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (var ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n var i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (var key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n normalizeValues(this.matrix, built);\n return clone$1(this, {\n values: built\n }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */;\n _proto.shiftToAll = function shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\");\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */;\n _proto.negate = function negate() {\n if (!this.isValid) return this;\n var negated = {};\n for (var _i5 = 0, _Object$keys2 = Object.keys(this.values); _i5 < _Object$keys2.length; _i5++) {\n var k = _Object$keys2[_i5];\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone$1(this, {\n values: negated\n }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */;\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n for (var _i6 = 0, _orderedUnits3 = orderedUnits$1; _i6 < _orderedUnits3.length; _i6++) {\n var u = _orderedUnits3[_i6];\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n };\n _createClass(Duration, [{\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n }, {\n key: \"years\",\n get: function get() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n }, {\n key: \"quarters\",\n get: function get() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n }, {\n key: \"months\",\n get: function get() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n }, {\n key: \"weeks\",\n get: function get() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n }, {\n key: \"days\",\n get: function get() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n }, {\n key: \"hours\",\n get: function get() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n }, {\n key: \"minutes\",\n get: function get() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n }, {\n key: \"seconds\",\n get: function get() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n }, {\n key: \"milliseconds\",\n get: function get() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n return Duration;\n}();\n\nvar INVALID$1 = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\"end before start\", \"The end of an interval must be after its start, but you had start=\" + start.toISO() + \" and end=\" + end.toISO());\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nvar Interval = /*#__PURE__*/function () {\n /**\n * @private\n */\n function Interval(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n Interval.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({\n invalid: invalid\n });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */;\n Interval.fromDateTimes = function fromDateTimes(start, end) {\n var builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n var validateError = validateStartEnd(builtStart, builtEnd);\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */;\n Interval.after = function after(start, duration) {\n var dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */;\n Interval.before = function before(end, duration) {\n var dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */;\n Interval.fromISO = function fromISO(text, opts) {\n var _split = (text || \"\").split(\"/\", 2),\n s = _split[0],\n e = _split[1];\n if (s && e) {\n var start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n var end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n if (startIsValid) {\n var dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n var _dur = Duration.fromISO(s, opts);\n if (_dur.isValid) {\n return Interval.before(end, _dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n Interval.isInterval = function isInterval(o) {\n return o && o.isLuxonInterval || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */;\n var _proto = Interval.prototype;\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n _proto.length = function length(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n return this.isValid ? this.toDuration.apply(this, [unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */;\n _proto.count = function count(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (!this.isValid) return NaN;\n var start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */;\n _proto.hasSame = function hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */;\n _proto.isEmpty = function isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n _proto.isAfter = function isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n _proto.isBefore = function isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n _proto.contains = function contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */;\n _proto.set = function set(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n start = _ref.start,\n end = _ref.end;\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */;\n _proto.splitAt = function splitAt() {\n var _this = this;\n if (!this.isValid) return [];\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n var sorted = dateTimes.map(friendlyDateTime).filter(function (d) {\n return _this.contains(d);\n }).sort(),\n results = [];\n var s = this.s,\n i = 0;\n while (s < this.e) {\n var added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */;\n _proto.splitBy = function splitBy(duration) {\n var dur = Duration.fromDurationLike(duration);\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n var s = this.s,\n idx = 1,\n next;\n var results = [];\n while (s < this.e) {\n var added = this.start.plus(dur.mapUnits(function (x) {\n return x * idx;\n }));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */;\n _proto.divideEqually = function divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */;\n _proto.overlaps = function overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */;\n _proto.abutsStart = function abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */;\n _proto.abutsEnd = function abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */;\n _proto.engulfs = function engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */;\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */;\n _proto.intersection = function intersection(other) {\n if (!this.isValid) return this;\n var s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */;\n _proto.union = function union(other) {\n if (!this.isValid) return this;\n var s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */;\n Interval.merge = function merge(intervals) {\n var _intervals$sort$reduc = intervals.sort(function (a, b) {\n return a.s - b.s;\n }).reduce(function (_ref2, item) {\n var sofar = _ref2[0],\n current = _ref2[1];\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n }, [[], null]),\n found = _intervals$sort$reduc[0],\n final = _intervals$sort$reduc[1];\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */;\n Interval.xor = function xor(intervals) {\n var _Array$prototype;\n var start = null,\n currentCount = 0;\n var results = [],\n ends = intervals.map(function (i) {\n return [{\n time: i.s,\n type: \"s\"\n }, {\n time: i.e,\n type: \"e\"\n }];\n }),\n flattened = (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, ends),\n arr = flattened.sort(function (a, b) {\n return a.time - b.time;\n });\n for (var _iterator = _createForOfIteratorHelperLoose(arr), _step; !(_step = _iterator()).done;) {\n var i = _step.value;\n currentCount += i.type === \"s\" ? 1 : -1;\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n start = null;\n }\n }\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */;\n _proto.difference = function difference() {\n var _this2 = this;\n for (var _len2 = arguments.length, intervals = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n intervals[_key2] = arguments[_key2];\n }\n return Interval.xor([this].concat(intervals)).map(function (i) {\n return _this2.intersection(i);\n }).filter(function (i) {\n return i && !i.isEmpty();\n });\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */;\n _proto.toString = function toString() {\n if (!this.isValid) return INVALID$1;\n return \"[\" + this.s.toISO() + \" \\u2013 \" + this.e.toISO() + \")\";\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */;\n _proto.toLocaleString = function toLocaleString(formatOpts, opts) {\n if (formatOpts === void 0) {\n formatOpts = DATE_SHORT;\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) : INVALID$1;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */;\n _proto.toISO = function toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return this.s.toISO(opts) + \"/\" + this.e.toISO(opts);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */;\n _proto.toISODate = function toISODate() {\n if (!this.isValid) return INVALID$1;\n return this.s.toISODate() + \"/\" + this.e.toISODate();\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */;\n _proto.toISOTime = function toISOTime(opts) {\n if (!this.isValid) return INVALID$1;\n return this.s.toISOTime(opts) + \"/\" + this.e.toISOTime(opts);\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */;\n _proto.toFormat = function toFormat(dateFormat, _temp2) {\n var _ref3 = _temp2 === void 0 ? {} : _temp2,\n _ref3$separator = _ref3.separator,\n separator = _ref3$separator === void 0 ? \" – \" : _ref3$separator;\n if (!this.isValid) return INVALID$1;\n return \"\" + this.s.toFormat(dateFormat) + separator + this.e.toFormat(dateFormat);\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */;\n _proto.toDuration = function toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */;\n _proto.mapEndpoints = function mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n };\n _createClass(Interval, [{\n key: \"start\",\n get: function get() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n }, {\n key: \"end\",\n get: function get() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n return Interval;\n}();\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nvar Info = /*#__PURE__*/function () {\n function Info() {}\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n Info.hasDST = function hasDST(zone) {\n if (zone === void 0) {\n zone = Settings.defaultZone;\n }\n var proto = DateTime.now().setZone(zone).set({\n month: 12\n });\n return !zone.isUniversal && proto.offset !== proto.set({\n month: 6\n }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */;\n Info.isValidIANAZone = function isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */;\n Info.normalizeZone = function normalizeZone$1(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */;\n Info.months = function months(length, _temp) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? null : _ref$locale,\n _ref$numberingSystem = _ref.numberingSystem,\n numberingSystem = _ref$numberingSystem === void 0 ? null : _ref$numberingSystem,\n _ref$locObj = _ref.locObj,\n locObj = _ref$locObj === void 0 ? null : _ref$locObj,\n _ref$outputCalendar = _ref.outputCalendar,\n outputCalendar = _ref$outputCalendar === void 0 ? \"gregory\" : _ref$outputCalendar;\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */;\n Info.monthsFormat = function monthsFormat(length, _temp2) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$locale = _ref2.locale,\n locale = _ref2$locale === void 0 ? null : _ref2$locale,\n _ref2$numberingSystem = _ref2.numberingSystem,\n numberingSystem = _ref2$numberingSystem === void 0 ? null : _ref2$numberingSystem,\n _ref2$locObj = _ref2.locObj,\n locObj = _ref2$locObj === void 0 ? null : _ref2$locObj,\n _ref2$outputCalendar = _ref2.outputCalendar,\n outputCalendar = _ref2$outputCalendar === void 0 ? \"gregory\" : _ref2$outputCalendar;\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */;\n Info.weekdays = function weekdays(length, _temp3) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$locale = _ref3.locale,\n locale = _ref3$locale === void 0 ? null : _ref3$locale,\n _ref3$numberingSystem = _ref3.numberingSystem,\n numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem,\n _ref3$locObj = _ref3.locObj,\n locObj = _ref3$locObj === void 0 ? null : _ref3$locObj;\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */;\n Info.weekdaysFormat = function weekdaysFormat(length, _temp4) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$locale = _ref4.locale,\n locale = _ref4$locale === void 0 ? null : _ref4$locale,\n _ref4$numberingSystem = _ref4.numberingSystem,\n numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem,\n _ref4$locObj = _ref4.locObj,\n locObj = _ref4$locObj === void 0 ? null : _ref4$locObj;\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */;\n Info.meridiems = function meridiems(_temp5) {\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$locale = _ref5.locale,\n locale = _ref5$locale === void 0 ? null : _ref5$locale;\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */;\n Info.eras = function eras(length, _temp6) {\n if (length === void 0) {\n length = \"short\";\n }\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$locale = _ref6.locale,\n locale = _ref6$locale === void 0 ? null : _ref6$locale;\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { relative: false }\n * @return {Object}\n */;\n Info.features = function features() {\n return {\n relative: hasRelative()\n };\n };\n return Info;\n}();\n\nfunction dayDiff(earlier, later) {\n var utcDayStart = function utcDayStart(dt) {\n return dt.toUTC(0, {\n keepLocalTime: true\n }).startOf(\"day\").valueOf();\n },\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\nfunction highOrderDiffs(cursor, later, units) {\n var differs = [[\"years\", function (a, b) {\n return b.year - a.year;\n }], [\"quarters\", function (a, b) {\n return b.quarter - a.quarter + (b.year - a.year) * 4;\n }], [\"months\", function (a, b) {\n return b.month - a.month + (b.year - a.year) * 12;\n }], [\"weeks\", function (a, b) {\n var days = dayDiff(a, b);\n return (days - days % 7) / 7;\n }], [\"days\", dayDiff]];\n var results = {};\n var earlier = cursor;\n var lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (var _i = 0, _differs = differs; _i < _differs.length; _i++) {\n var _differs$_i = _differs[_i],\n unit = _differs$_i[0],\n differ = _differs$_i[1];\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n return [cursor, results, highWater, lowestOrder];\n}\nfunction _diff (earlier, later, units, opts) {\n var _highOrderDiffs = highOrderDiffs(earlier, later, units),\n cursor = _highOrderDiffs[0],\n results = _highOrderDiffs[1],\n highWater = _highOrderDiffs[2],\n lowestOrder = _highOrderDiffs[3];\n var remainingMillis = later - cursor;\n var lowerOrderUnits = units.filter(function (u) {\n return [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0;\n });\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n var _cursor$plus;\n highWater = cursor.plus((_cursor$plus = {}, _cursor$plus[lowestOrder] = 1, _cursor$plus));\n }\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n var duration = Duration.fromObject(results, opts);\n if (lowerOrderUnits.length > 0) {\n var _Duration$fromMillis;\n return (_Duration$fromMillis = Duration.fromMillis(remainingMillis, opts)).shiftTo.apply(_Duration$fromMillis, lowerOrderUnits).plus(duration);\n } else {\n return duration;\n }\n}\n\nvar numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\nvar numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\nvar hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\nfunction parseDigits(str) {\n var value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (var key in numberingSystemsUTF16) {\n var _numberingSystemsUTF = numberingSystemsUTF16[key],\n min = _numberingSystemsUTF[0],\n max = _numberingSystemsUTF[1];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\nfunction digitRegex(_ref, append) {\n var numberingSystem = _ref.numberingSystem;\n if (append === void 0) {\n append = \"\";\n }\n return new RegExp(\"\" + numberingSystems[numberingSystem || \"latn\"] + append);\n}\n\nvar MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\nfunction intUnit(regex, post) {\n if (post === void 0) {\n post = function post(i) {\n return i;\n };\n }\n return {\n regex: regex,\n deser: function deser(_ref) {\n var s = _ref[0];\n return post(parseDigits(s));\n }\n };\n}\nvar NBSP = String.fromCharCode(160);\nvar spaceOrNBSP = \"[ \" + NBSP + \"]\";\nvar spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\nfunction stripInsensitivities(s) {\n return s.replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: function deser(_ref2) {\n var s = _ref2[0];\n return strings.findIndex(function (i) {\n return stripInsensitivities(s) === stripInsensitivities(i);\n }) + startIndex;\n }\n };\n }\n}\nfunction offset(regex, groups) {\n return {\n regex: regex,\n deser: function deser(_ref3) {\n var h = _ref3[1],\n m = _ref3[2];\n return signedOffset(h, m);\n },\n groups: groups\n };\n}\nfunction simple(regex) {\n return {\n regex: regex,\n deser: function deser(_ref4) {\n var s = _ref4[0];\n return s;\n }\n };\n}\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n var one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = function literal(t) {\n return {\n regex: RegExp(escapeToken(t.val)),\n deser: function deser(_ref5) {\n var s = _ref5[0];\n return s;\n },\n literal: true\n };\n },\n unitate = function unitate(t) {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(?::(\" + two.source + \"))?\"), 2);\n case \"ZZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(\" + two.source + \")?\"), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n var unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n unit.token = token;\n return unit;\n}\nvar partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\"\n }\n};\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n var type = part.type,\n value = part.value;\n if (type === \"literal\") {\n var isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value\n };\n }\n var style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n var actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n var val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n if (val) {\n return {\n literal: false,\n val: val\n };\n }\n return undefined;\n}\nfunction buildRegex(units) {\n var re = units.map(function (u) {\n return u.regex;\n }).reduce(function (f, r) {\n return f + \"(\" + r.source + \")\";\n }, \"\");\n return [\"^\" + re + \"$\", units];\n}\nfunction match(input, regex, handlers) {\n var matches = input.match(regex);\n if (matches) {\n var all = {};\n var matchIndex = 1;\n for (var i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n var h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\nfunction dateTimeFromMatches(matches) {\n var toField = function toField(token) {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n var zone = null;\n var specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n var vals = Object.keys(matches).reduce(function (r, k) {\n var f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n return r;\n }, {});\n return [vals, zone, specificOffset];\n}\nvar dummyDateTimeCache = null;\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n return dummyDateTimeCache;\n}\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n var formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n var tokens = formatOptsToTokens(formatOpts, locale);\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n return tokens;\n}\nfunction expandMacroTokens(tokens, locale) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, tokens.map(function (t) {\n return maybeExpandMacroToken(t, locale);\n }));\n}\n\n/**\n * @private\n */\n\nfunction explainFromTokens(locale, input, format) {\n var tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(function (t) {\n return unitForToken(t, locale);\n }),\n disqualifyingUnit = units.find(function (t) {\n return t.invalidReason;\n });\n if (disqualifyingUnit) {\n return {\n input: input,\n tokens: tokens,\n invalidReason: disqualifyingUnit.invalidReason\n };\n } else {\n var _buildRegex = buildRegex(units),\n regexString = _buildRegex[0],\n handlers = _buildRegex[1],\n regex = RegExp(regexString, \"i\"),\n _match = match(input, regex, handlers),\n rawMatches = _match[0],\n matches = _match[1],\n _ref6 = matches ? dateTimeFromMatches(matches) : [null, null, undefined],\n result = _ref6[0],\n zone = _ref6[1],\n specificOffset = _ref6[2];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\"Can't include meridiem when specifying 24-hour format\");\n }\n return {\n input: input,\n tokens: tokens,\n regex: regex,\n rawMatches: rawMatches,\n matches: matches,\n result: result,\n zone: zone,\n specificOffset: specificOffset\n };\n }\n}\nfunction parseFromTokens(locale, input, format) {\n var _explainFromTokens = explainFromTokens(locale, input, format),\n result = _explainFromTokens.result,\n zone = _explainFromTokens.zone,\n specificOffset = _explainFromTokens.specificOffset,\n invalidReason = _explainFromTokens.invalidReason;\n return [result, zone, specificOffset, invalidReason];\n}\nfunction formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n var formatter = Formatter.create(locale, formatOpts);\n var df = formatter.dtFormatter(getDummyDateTime());\n var parts = df.formatToParts();\n var resolvedOpts = df.resolvedOptions();\n return parts.map(function (p) {\n return tokenForPart(p, formatOpts, resolvedOpts);\n });\n}\n\nvar nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\"unit out of range\", \"you specified \" + value + \" (of type \" + typeof value + \") as a \" + unit + \", which is invalid\");\n}\nfunction dayOfWeek(year, month, day) {\n var d = new Date(Date.UTC(year, month - 1, day));\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n var js = d.getUTCDay();\n return js === 0 ? 7 : js;\n}\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\nfunction uncomputeOrdinal(year, ordinal) {\n var table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(function (i) {\n return i < ordinal;\n }),\n day = ordinal - table[month0];\n return {\n month: month0 + 1,\n day: day\n };\n}\n\n/**\n * @private\n */\n\nfunction gregorianToWeek(gregObj) {\n var year = gregObj.year,\n month = gregObj.month,\n day = gregObj.day,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n var weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n return _extends({\n weekYear: weekYear,\n weekNumber: weekNumber,\n weekday: weekday\n }, timeObject(gregObj));\n}\nfunction weekToGregorian(weekData) {\n var weekYear = weekData.weekYear,\n weekNumber = weekData.weekNumber,\n weekday = weekData.weekday,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n var ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n var _uncomputeOrdinal = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal.month,\n day = _uncomputeOrdinal.day;\n return _extends({\n year: year,\n month: month,\n day: day\n }, timeObject(weekData));\n}\nfunction gregorianToOrdinal(gregData) {\n var year = gregData.year,\n month = gregData.month,\n day = gregData.day;\n var ordinal = computeOrdinal(year, month, day);\n return _extends({\n year: year,\n ordinal: ordinal\n }, timeObject(gregData));\n}\nfunction ordinalToGregorian(ordinalData) {\n var year = ordinalData.year,\n ordinal = ordinalData.ordinal;\n var _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal2.month,\n day = _uncomputeOrdinal2.day;\n return _extends({\n year: year,\n month: month,\n day: day\n }, timeObject(ordinalData));\n}\nfunction hasInvalidWeekData(obj) {\n var validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\nfunction hasInvalidOrdinalData(obj) {\n var validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\nfunction hasInvalidGregorianData(obj) {\n var validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\nfunction hasInvalidTimeData(obj) {\n var hour = obj.hour,\n minute = obj.minute,\n second = obj.second,\n millisecond = obj.millisecond;\n var validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0,\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n\nvar INVALID = \"Invalid DateTime\";\nvar MAX_DATE = 8.64e15;\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", \"the zone \\\"\" + zone.name + \"\\\" is not supported\");\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n var current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(_extends({}, current, alts, {\n old: current\n }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n var o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n var o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n var d = new Date(ts);\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n var oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = _extends({}, inst.c, {\n year: year,\n month: month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n var _fixOffset = fixOffset(localTS, oPre, inst.zone),\n ts = _fixOffset[0],\n o = _fixOffset[1];\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n return {\n ts: ts,\n o: o\n };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n var setZone = opts.setZone,\n zone = opts.zone;\n if (parsed && Object.keys(parsed).length !== 0 || parsedZone) {\n var interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, _extends({}, opts, {\n zone: interpretationZone,\n specificOffset: specificOffset\n }));\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(new Invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as \" + format));\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ) {\n if (allowZ === void 0) {\n allowZ = true;\n }\n return dt.isValid ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ: allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format) : null;\n}\nfunction _toISODate(o, extended) {\n var longFormat = o.c.year > 9999 || o.c.year < 0;\n var c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\nfunction _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) {\n var c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nvar defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nvar orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\"weekYear\", \"weekNumber\", \"weekday\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n var normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n var zone = normalizeZone(opts.zone, Settings.defaultZone),\n loc = Locale.fromObject(opts),\n tsNow = Settings.now();\n var ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (var _i = 0, _orderedUnits = orderedUnits; _i < _orderedUnits.length; _i++) {\n var u = _orderedUnits[_i];\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n var offsetProvis = zone.offset(tsNow);\n var _objToTS = objToTS(obj, offsetProvis, zone);\n ts = _objToTS[0];\n o = _objToTS[1];\n } else {\n ts = tsNow;\n }\n return new DateTime({\n ts: ts,\n zone: zone,\n loc: loc,\n o: o\n });\n}\nfunction diffRelative(start, end, opts) {\n var round = isUndefined(opts.round) ? true : opts.round,\n format = function format(c, unit) {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n var formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = function differ(unit) {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n for (var _iterator = _createForOfIteratorHelperLoose(opts.units), _step; !(_step = _iterator()).done;) {\n var unit = _step.value;\n var count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\nfunction lastOpts(argList) {\n var opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nvar DateTime = /*#__PURE__*/function () {\n /**\n * @access private\n */\n function DateTime(config) {\n var zone = config.zone || Settings.defaultZone;\n var invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) || (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n var c = null,\n o = null;\n if (!invalid) {\n var unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n if (unchanged) {\n var _ref = [config.old.c, config.old.o];\n c = _ref[0];\n o = _ref[1];\n } else {\n var ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n DateTime.now = function now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */;\n DateTime.local = function local() {\n var _lastOpts = lastOpts(arguments),\n opts = _lastOpts[0],\n args = _lastOpts[1],\n year = args[0],\n month = args[1],\n day = args[2],\n hour = args[3],\n minute = args[4],\n second = args[5],\n millisecond = args[6];\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */;\n DateTime.utc = function utc() {\n var _lastOpts2 = lastOpts(arguments),\n opts = _lastOpts2[0],\n args = _lastOpts2[1],\n year = args[0],\n month = args[1],\n day = args[2],\n hour = args[3],\n minute = args[4],\n second = args[5],\n millisecond = args[6];\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */;\n DateTime.fromJSDate = function fromJSDate(date, options) {\n if (options === void 0) {\n options = {};\n }\n var ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n var zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n DateTime.fromMillis = function fromMillis(milliseconds, options) {\n if (options === void 0) {\n options = {};\n }\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\"fromMillis requires a numerical input, but received a \" + typeof milliseconds + \" with value \" + milliseconds);\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n DateTime.fromSeconds = function fromSeconds(seconds, options) {\n if (options === void 0) {\n options = {};\n }\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */;\n DateTime.fromObject = function fromObject(obj, opts) {\n if (opts === void 0) {\n opts = {};\n }\n obj = obj || {};\n var zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n var tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(opts);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n var useWeekData = definiteWeekDef || normalized.weekday && !containsGregor;\n\n // configure ourselves to deal with gregorian dates or week stuff\n var units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n var foundFirst = false;\n for (var _iterator2 = _createForOfIteratorHelperLoose(units), _step2; !(_step2 = _iterator2()).done;) {\n var u = _step2.value;\n var v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n var higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n var gregorian = useWeekData ? weekToGregorian(normalized) : containsOrdinal ? ordinalToGregorian(normalized) : normalized,\n _objToTS2 = objToTS(gregorian, offsetProvis, zoneToUse),\n tsFinal = _objToTS2[0],\n offsetFinal = _objToTS2[1],\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc: loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\"mismatched weekday\", \"you can't specify both a weekday of \" + normalized.weekday + \" and a date of \" + inst.toISO());\n }\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */;\n DateTime.fromISO = function fromISO(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseISODate = parseISODate(text),\n vals = _parseISODate[0],\n parsedZone = _parseISODate[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */;\n DateTime.fromRFC2822 = function fromRFC2822(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseRFC2822Date = parseRFC2822Date(text),\n vals = _parseRFC2822Date[0],\n parsedZone = _parseRFC2822Date[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */;\n DateTime.fromHTTP = function fromHTTP(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseHTTPDate = parseHTTPDate(text),\n vals = _parseHTTPDate[0],\n parsedZone = _parseHTTPDate[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n DateTime.fromFormat = function fromFormat(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n var _opts = opts,\n _opts$locale = _opts.locale,\n locale = _opts$locale === void 0 ? null : _opts$locale,\n _opts$numberingSystem = _opts.numberingSystem,\n numberingSystem = _opts$numberingSystem === void 0 ? null : _opts$numberingSystem,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n }),\n _parseFromTokens = parseFromTokens(localeToUse, text, fmt),\n vals = _parseFromTokens[0],\n parsedZone = _parseFromTokens[1],\n specificOffset = _parseFromTokens[2],\n invalid = _parseFromTokens[3];\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, \"format \" + fmt, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */;\n DateTime.fromString = function fromString(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */;\n DateTime.fromSQL = function fromSQL(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseSQL = parseSQL(text),\n vals = _parseSQL[0],\n parsedZone = _parseSQL[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */;\n DateTime.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({\n invalid: invalid\n });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n DateTime.isDateTime = function isDateTime(o) {\n return o && o.isLuxonDateTime || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */;\n DateTime.parseFormatForOpts = function parseFormatForOpts(formatOpts, localeOpts) {\n if (localeOpts === void 0) {\n localeOpts = {};\n }\n var tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map(function (t) {\n return t ? t.val : null;\n }).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */;\n DateTime.expandFormat = function expandFormat(fmt, localeOpts) {\n if (localeOpts === void 0) {\n localeOpts = {};\n }\n var expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map(function (t) {\n return t.val;\n }).join(\"\");\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */;\n var _proto = DateTime.prototype;\n _proto.get = function get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */;\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n _proto.getPossibleOffsets = function getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n var dayMs = 86400000;\n var minuteMs = 60000;\n var localTS = objToLocalTS(this.c);\n var oEarlier = this.zone.offset(localTS - dayMs);\n var oLater = this.zone.offset(localTS + dayMs);\n var o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n var o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n var ts1 = localTS - o1 * minuteMs;\n var ts2 = localTS - o2 * minuteMs;\n var c1 = tsToObj(ts1, o1);\n var c2 = tsToObj(ts2, o2);\n if (c1.hour === c2.hour && c1.minute === c2.minute && c1.second === c2.second && c1.millisecond === c2.millisecond) {\n return [clone(this, {\n ts: ts1\n }), clone(this, {\n ts: ts2\n })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */;\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n _proto.resolvedLocaleOptions = function resolvedLocaleOptions(opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _Formatter$create$res = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this),\n locale = _Formatter$create$res.locale,\n numberingSystem = _Formatter$create$res.numberingSystem,\n calendar = _Formatter$create$res.calendar;\n return {\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: calendar\n };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */;\n _proto.toUTC = function toUTC(offset, opts) {\n if (offset === void 0) {\n offset = 0;\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */;\n _proto.toLocal = function toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */;\n _proto.setZone = function setZone(zone, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$keepLocalTime = _ref2.keepLocalTime,\n keepLocalTime = _ref2$keepLocalTime === void 0 ? false : _ref2$keepLocalTime,\n _ref2$keepCalendarTim = _ref2.keepCalendarTime,\n keepCalendarTime = _ref2$keepCalendarTim === void 0 ? false : _ref2$keepCalendarTim;\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n var newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n var offsetGuess = zone.offset(this.ts);\n var asObj = this.toObject();\n var _objToTS3 = objToTS(asObj, offsetGuess, zone);\n newTS = _objToTS3[0];\n }\n return clone(this, {\n ts: newTS,\n zone: zone\n });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */;\n _proto.reconfigure = function reconfigure(_temp2) {\n var _ref3 = _temp2 === void 0 ? {} : _temp2,\n locale = _ref3.locale,\n numberingSystem = _ref3.numberingSystem,\n outputCalendar = _ref3.outputCalendar;\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: outputCalendar\n });\n return clone(this, {\n loc: loc\n });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */;\n _proto.setLocale = function setLocale(locale) {\n return this.reconfigure({\n locale: locale\n });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */;\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var normalized = normalizeObject(values, normalizeUnit),\n settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n var mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(_extends({}, gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(_extends({}, gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = _extends({}, this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n var _objToTS4 = objToTS(mixed, this.o, this.zone),\n ts = _objToTS4[0],\n o = _objToTS4[1];\n return clone(this, {\n ts: ts,\n o: o\n });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */;\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */;\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */;\n _proto.startOf = function startOf(unit) {\n if (!this.isValid) return this;\n var o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n if (normalizedUnit === \"quarters\") {\n var q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */;\n _proto.endOf = function endOf(unit) {\n var _this$plus;\n return this.isValid ? this.plus((_this$plus = {}, _this$plus[unit] = 1, _this$plus)).startOf(unit).minus(1) : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */;\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */;\n _proto.toLocaleString = function toLocaleString(formatOpts, opts) {\n if (formatOpts === void 0) {\n formatOpts = DATE_SHORT;\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */;\n _proto.toLocaleParts = function toLocaleParts(opts) {\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */;\n _proto.toISO = function toISO(_temp3) {\n var _ref4 = _temp3 === void 0 ? {} : _temp3,\n _ref4$format = _ref4.format,\n format = _ref4$format === void 0 ? \"extended\" : _ref4$format,\n _ref4$suppressSeconds = _ref4.suppressSeconds,\n suppressSeconds = _ref4$suppressSeconds === void 0 ? false : _ref4$suppressSeconds,\n _ref4$suppressMillise = _ref4.suppressMilliseconds,\n suppressMilliseconds = _ref4$suppressMillise === void 0 ? false : _ref4$suppressMillise,\n _ref4$includeOffset = _ref4.includeOffset,\n includeOffset = _ref4$includeOffset === void 0 ? true : _ref4$includeOffset,\n _ref4$extendedZone = _ref4.extendedZone,\n extendedZone = _ref4$extendedZone === void 0 ? false : _ref4$extendedZone;\n if (!this.isValid) {\n return null;\n }\n var ext = format === \"extended\";\n var c = _toISODate(this, ext);\n c += \"T\";\n c += _toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */;\n _proto.toISODate = function toISODate(_temp4) {\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n _ref5$format = _ref5.format,\n format = _ref5$format === void 0 ? \"extended\" : _ref5$format;\n if (!this.isValid) {\n return null;\n }\n return _toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */;\n _proto.toISOWeekDate = function toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */;\n _proto.toISOTime = function toISOTime(_temp5) {\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n _ref6$suppressMillise = _ref6.suppressMilliseconds,\n suppressMilliseconds = _ref6$suppressMillise === void 0 ? false : _ref6$suppressMillise,\n _ref6$suppressSeconds = _ref6.suppressSeconds,\n suppressSeconds = _ref6$suppressSeconds === void 0 ? false : _ref6$suppressSeconds,\n _ref6$includeOffset = _ref6.includeOffset,\n includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset,\n _ref6$includePrefix = _ref6.includePrefix,\n includePrefix = _ref6$includePrefix === void 0 ? false : _ref6$includePrefix,\n _ref6$extendedZone = _ref6.extendedZone,\n extendedZone = _ref6$extendedZone === void 0 ? false : _ref6$extendedZone,\n _ref6$format = _ref6.format,\n format = _ref6$format === void 0 ? \"extended\" : _ref6$format;\n if (!this.isValid) {\n return null;\n }\n var c = includePrefix ? \"T\" : \"\";\n return c + _toISOTime(this, format === \"extended\", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */;\n _proto.toRFC2822 = function toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */;\n _proto.toHTTP = function toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */;\n _proto.toSQLDate = function toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return _toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */;\n _proto.toSQLTime = function toSQLTime(_temp6) {\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$includeOffset = _ref7.includeOffset,\n includeOffset = _ref7$includeOffset === void 0 ? true : _ref7$includeOffset,\n _ref7$includeZone = _ref7.includeZone,\n includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone,\n _ref7$includeOffsetSp = _ref7.includeOffsetSpace,\n includeOffsetSpace = _ref7$includeOffsetSp === void 0 ? true : _ref7$includeOffsetSp;\n var fmt = \"HH:mm:ss.SSS\";\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */;\n _proto.toSQL = function toSQL(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) {\n return null;\n }\n return this.toSQLDate() + \" \" + this.toSQLTime(opts);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */;\n _proto.toString = function toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */;\n _proto.valueOf = function valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */;\n _proto.toMillis = function toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */;\n _proto.toSeconds = function toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */;\n _proto.toUnixInteger = function toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */;\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */;\n _proto.toBSON = function toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */;\n _proto.toObject = function toObject(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return {};\n var base = _extends({}, this.c);\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */;\n _proto.toJSDate = function toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */;\n _proto.diff = function diff(otherDateTime, unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n var durOpts = _extends({\n locale: this.locale,\n numberingSystem: this.numberingSystem\n }, opts);\n var units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = _diff(earlier, later, units, durOpts);\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */;\n _proto.diffNow = function diffNow(unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */;\n _proto.until = function until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */;\n _proto.hasSame = function hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n var inputMs = otherDateTime.valueOf();\n var adjustedToZone = this.setZone(otherDateTime.zone, {\n keepLocalTime: true\n });\n return adjustedToZone.startOf(unit) <= inputMs && inputMs <= adjustedToZone.endOf(unit);\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */;\n _proto.equals = function equals(other) {\n return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc);\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */;\n _proto.toRelative = function toRelative(options) {\n if (options === void 0) {\n options = {};\n }\n if (!this.isValid) return null;\n var base = options.base || DateTime.fromObject({}, {\n zone: this.zone\n }),\n padding = options.padding ? this < base ? -options.padding : options.padding : 0;\n var units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n var unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), _extends({}, options, {\n numeric: \"always\",\n units: units,\n unit: unit\n }));\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */;\n _proto.toRelativeCalendar = function toRelativeCalendar(options) {\n if (options === void 0) {\n options = {};\n }\n if (!this.isValid) return null;\n return diffRelative(options.base || DateTime.fromObject({}, {\n zone: this.zone\n }), this, _extends({}, options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n }));\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */;\n DateTime.min = function min() {\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */;\n DateTime.max = function max() {\n for (var _len2 = arguments.length, dateTimes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n dateTimes[_key2] = arguments[_key2];\n }\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */;\n DateTime.fromFormatExplain = function fromFormatExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n _options$locale = _options.locale,\n locale = _options$locale === void 0 ? null : _options$locale,\n _options$numberingSys = _options.numberingSystem,\n numberingSystem = _options$numberingSys === void 0 ? null : _options$numberingSys,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */;\n DateTime.fromStringExplain = function fromStringExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */;\n _createClass(DateTime, [{\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"outputCalendar\",\n get: function get() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n }, {\n key: \"zone\",\n get: function get() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n }, {\n key: \"zoneName\",\n get: function get() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n }, {\n key: \"year\",\n get: function get() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n }, {\n key: \"quarter\",\n get: function get() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n }, {\n key: \"month\",\n get: function get() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n }, {\n key: \"day\",\n get: function get() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n }, {\n key: \"hour\",\n get: function get() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n }, {\n key: \"minute\",\n get: function get() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n }, {\n key: \"second\",\n get: function get() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n }, {\n key: \"millisecond\",\n get: function get() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n }, {\n key: \"weekYear\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n }, {\n key: \"weekNumber\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n }, {\n key: \"weekday\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n }, {\n key: \"ordinal\",\n get: function get() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n }, {\n key: \"monthShort\",\n get: function get() {\n return this.isValid ? Info.months(\"short\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n }, {\n key: \"monthLong\",\n get: function get() {\n return this.isValid ? Info.months(\"long\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n }, {\n key: \"weekdayShort\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"short\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n }, {\n key: \"weekdayLong\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"long\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n }, {\n key: \"offset\",\n get: function get() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n }, {\n key: \"offsetNameShort\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n }, {\n key: \"offsetNameLong\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n }, {\n key: \"isOffsetFixed\",\n get: function get() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n }, {\n key: \"isInDST\",\n get: function get() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return this.offset > this.set({\n month: 1,\n day: 1\n }).offset || this.offset > this.set({\n month: 5\n }).offset;\n }\n }\n }, {\n key: \"isInLeapYear\",\n get: function get() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n }, {\n key: \"daysInMonth\",\n get: function get() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n }, {\n key: \"daysInYear\",\n get: function get() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n }, {\n key: \"weeksInWeekYear\",\n get: function get() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n }], [{\n key: \"DATE_SHORT\",\n get: function get() {\n return DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_MED\",\n get: function get() {\n return DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_MED_WITH_WEEKDAY\",\n get: function get() {\n return DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_FULL\",\n get: function get() {\n return DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_HUGE\",\n get: function get() {\n return DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_SIMPLE\",\n get: function get() {\n return TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_SECONDS\",\n get: function get() {\n return TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_SIMPLE\",\n get: function get() {\n return TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_SECONDS\",\n get: function get() {\n return TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_SHORT\",\n get: function get() {\n return DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_SHORT_WITH_SECONDS\",\n get: function get() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED\",\n get: function get() {\n return DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED_WITH_SECONDS\",\n get: function get() {\n return DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED_WITH_WEEKDAY\",\n get: function get() {\n return DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_FULL\",\n get: function get() {\n return DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_FULL_WITH_SECONDS\",\n get: function get() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_HUGE\",\n get: function get() {\n return DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_HUGE_WITH_SECONDS\",\n get: function get() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n }]);\n return DateTime;\n}();\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\"Unknown datetime argument: \" + dateTimeish + \", of type \" + typeof dateTimeish);\n }\n}\n\nvar VERSION = \"3.4.3\";\n\nexports.DateTime = DateTime;\nexports.Duration = Duration;\nexports.FixedOffsetZone = FixedOffsetZone;\nexports.IANAZone = IANAZone;\nexports.Info = Info;\nexports.Interval = Interval;\nexports.InvalidZone = InvalidZone;\nexports.Settings = Settings;\nexports.SystemZone = SystemZone;\nexports.VERSION = VERSION;\nexports.Zone = Zone;\n//# sourceMappingURL=luxon.js.map\n","'use strict';\n\nvar compactField = require('./field_compactor');\n\nfunction stringifyField(arr, min, max) {\n var ranges = compactField(arr);\n if (ranges.length === 1) {\n var singleRange = ranges[0];\n var step = singleRange.step;\n if (step === 1 && singleRange.start === min && singleRange.end === max) {\n return '*';\n }\n if (step !== 1 && singleRange.start === min && singleRange.end === max - step + 1) {\n return '*/' + step;\n }\n }\n\n var result = [];\n for (var i = 0, l = ranges.length; i < l; ++i) {\n var range = ranges[i];\n if (range.count === 1) {\n result.push(range.start);\n continue;\n }\n\n var step = range.step;\n if (range.step === 1) {\n result.push(range.start + '-' + range.end);\n continue;\n }\n\n var multiplier = range.start == 0 ? range.count - 1 : range.count;\n if (range.step * multiplier > range.end) {\n result = result.concat(\n Array\n .from({ length: range.end - range.start + 1 })\n .map(function (_, index) {\n var value = range.start + index;\n if ((value - range.start) % range.step === 0) {\n return value;\n }\n return null;\n })\n .filter(function (value) {\n return value != null;\n })\n );\n } else if (range.end === max - range.step + 1) {\n result.push(range.start + '/' + range.step);\n } else {\n result.push(range.start + '-' + range.end + '/' + range.step);\n }\n }\n\n return result.join(',');\n}\n\nmodule.exports = stringifyField;\n","'use strict';\n\nfunction buildRange(item) {\n return {\n start: item,\n count: 1\n };\n}\n\nfunction completeRangeWithItem(range, item) {\n range.end = item;\n range.step = item - range.start;\n range.count = 2;\n}\n\nfunction finalizeCurrentRange(results, currentRange, currentItemRange) {\n if (currentRange) {\n // Two elements do not form a range so split them into 2 single elements\n if (currentRange.count === 2) {\n results.push(buildRange(currentRange.start));\n results.push(buildRange(currentRange.end));\n } else {\n results.push(currentRange);\n }\n }\n if (currentItemRange) {\n results.push(currentItemRange);\n }\n}\n\nfunction compactField(arr) {\n var results = [];\n var currentRange = undefined;\n\n for (var i = 0; i < arr.length; i++) {\n var currentItem = arr[i];\n if (typeof currentItem !== 'number') {\n // String elements can't form a range\n finalizeCurrentRange(results, currentRange, buildRange(currentItem));\n currentRange = undefined;\n } else if (!currentRange) {\n // Start a new range\n currentRange = buildRange(currentItem);\n } else if (currentRange.count === 1) {\n // Guess that the current item starts a range\n completeRangeWithItem(currentRange, currentItem);\n } else {\n if (currentRange.step === currentItem - currentRange.end) {\n // We found another item that matches the current range\n currentRange.count++;\n currentRange.end = currentItem;\n } else if (currentRange.count === 2) { // The current range can't be continued\n // Break the first item of the current range into a single element, and try to start a new range with the second item\n results.push(buildRange(currentRange.start));\n currentRange = buildRange(currentRange.end);\n completeRangeWithItem(currentRange, currentItem);\n } else {\n // Persist the current range and start a new one with current item\n finalizeCurrentRange(results, currentRange);\n currentRange = buildRange(currentItem);\n }\n }\n }\n\n finalizeCurrentRange(results, currentRange);\n\n return results;\n}\n\nmodule.exports = compactField;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || 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); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n;\n\nvar Item = function Item(_props) {\n return null;\n};\n\nfunction _default(ComposedComponent) {\n var _a;\n\n return _a =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_a, _React$Component);\n\n function _a() {\n var _this;\n\n _classCallCheck(this, _a);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_a).apply(this, arguments));\n\n _this.select = function (value, itemHeight, scrollTo) {\n var children = React.Children.toArray(_this.props.children);\n\n for (var i = 0, len = children.length; i < len; i++) {\n if (children[i].props.value === value) {\n _this.selectByIndex(i, itemHeight, scrollTo);\n\n return;\n }\n }\n\n _this.selectByIndex(0, itemHeight, scrollTo);\n };\n\n _this.doScrollingComplete = function (top, itemHeight, fireValueChange) {\n var children = React.Children.toArray(_this.props.children);\n\n var index = _this.computeChildIndex(top, itemHeight, children.length);\n\n var child = children[index];\n\n if (child) {\n fireValueChange(child.props.value);\n } else if (console.warn) {\n console.warn('child not found', children, index);\n }\n };\n\n return _this;\n }\n\n _createClass(_a, [{\n key: \"selectByIndex\",\n value: function selectByIndex(index, itemHeight, zscrollTo) {\n if (index < 0 || index >= React.Children.count(this.props.children) || !itemHeight) {\n return;\n }\n\n zscrollTo(index * itemHeight);\n }\n }, {\n key: \"computeChildIndex\",\n value: function computeChildIndex(top, itemHeight, childrenLength) {\n var index = Math.round(top / itemHeight);\n return Math.min(index, childrenLength - 1);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(ComposedComponent, _extends({}, this.props, {\n doScrollingComplete: this.doScrollingComplete,\n computeChildIndex: this.computeChildIndex,\n select: this.select\n }));\n }\n }]);\n\n return _a;\n }(React.Component), _a.Item = Item, _a;\n}","import Locale from 'rmc-calendar/es/locale/zh_CN';\nexport default Locale;","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","import DatePickerLocale from 'rmc-date-picker/es/locale/zh_CN';\nexport default {\n okText: '确定',\n dismissText: '取消',\n extra: '请选择',\n DatePickerLocale: DatePickerLocale\n};","import DatePickerLocale from 'rmc-date-picker/es/locale/zh_CN';\nexport default DatePickerLocale;","export default {\n confirmLabel: '确定',\n backspaceLabel: '退格',\n cancelKeyboardLabel: '收起键盘'\n};","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","export default {\n okText: '确定',\n cancelText: '取消'\n};","export default {\n prevText: '上一页',\n nextText: '下一页'\n};","export default {\n okText: '确定',\n dismissText: '取消',\n extra: '请选择'\n};","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","export default {\n activateText: '松开立即刷新',\n deactivateText: '下拉可以刷新',\n finishText: '完成刷新'\n};","export default {\n cancelText: '取消'\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _defineProperty2 = require('babel-runtime/helpers/defineProperty');\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar __rest = undefined && undefined.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n/* eslint react/no-did-mount-set-state: 0 */\n\nvar Steps = function (_Component) {\n (0, _inherits3['default'])(Steps, _Component);\n\n function Steps() {\n (0, _classCallCheck3['default'])(this, Steps);\n return (0, _possibleConstructorReturn3['default'])(this, (Steps.__proto__ || Object.getPrototypeOf(Steps)).apply(this, arguments));\n }\n\n (0, _createClass3['default'])(Steps, [{\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _a = this.props,\n prefixCls = _a.prefixCls,\n _a$style = _a.style,\n style = _a$style === undefined ? {} : _a$style,\n className = _a.className,\n children = _a.children,\n direction = _a.direction,\n labelPlacement = _a.labelPlacement,\n iconPrefix = _a.iconPrefix,\n status = _a.status,\n size = _a.size,\n current = _a.current,\n progressDot = _a.progressDot,\n restProps = __rest(_a, [\"prefixCls\", \"style\", \"className\", \"children\", \"direction\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\"]);\n var filteredChildren = _react2['default'].Children.toArray(children).filter(function (c) {\n return !!c;\n });\n var adjustedlabelPlacement = !!progressDot ? 'vertical' : labelPlacement;\n var classString = (0, _classnames2['default'])(prefixCls, prefixCls + '-' + direction, className, (_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + size, size), (0, _defineProperty3['default'])(_classNames, prefixCls + '-label-' + adjustedlabelPlacement, direction === 'horizontal'), (0, _defineProperty3['default'])(_classNames, prefixCls + '-dot', !!progressDot), _classNames));\n return _react2['default'].createElement(\n 'div',\n (0, _extends3['default'])({ className: classString, style: style }, restProps),\n _react.Children.map(filteredChildren, function (child, index) {\n if (!child) {\n return null;\n }\n var childProps = (0, _extends3['default'])({ stepNumber: '' + (index + 1), prefixCls: prefixCls,\n iconPrefix: iconPrefix, wrapperStyle: style, progressDot: progressDot }, child.props);\n // fix tail color\n if (status === 'error' && index === current - 1) {\n childProps.className = prefixCls + '-next-error';\n }\n if (!child.props.status) {\n if (index === current) {\n childProps.status = status;\n } else if (index < current) {\n childProps.status = 'finish';\n } else {\n childProps.status = 'wait';\n }\n }\n return (0, _react.cloneElement)(child, childProps);\n })\n );\n }\n }]);\n return Steps;\n}(_react.Component);\n\nexports['default'] = Steps;\n\nSteps.defaultProps = {\n prefixCls: 'rmc-steps',\n iconPrefix: 'rmc',\n direction: 'horizontal',\n labelPlacement: 'horizontal',\n current: 0,\n status: 'process',\n size: '',\n progressDot: false\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _defineProperty2 = require('babel-runtime/helpers/defineProperty');\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar __rest = undefined && undefined.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\n\nfunction isString(str) {\n return typeof str === 'string';\n}\n\nvar Step = function (_React$Component) {\n (0, _inherits3['default'])(Step, _React$Component);\n\n function Step() {\n (0, _classCallCheck3['default'])(this, Step);\n return (0, _possibleConstructorReturn3['default'])(this, (Step.__proto__ || Object.getPrototypeOf(Step)).apply(this, arguments));\n }\n\n (0, _createClass3['default'])(Step, [{\n key: 'renderIconNode',\n value: function renderIconNode() {\n var _classNames;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n progressDot = _props.progressDot,\n stepNumber = _props.stepNumber,\n status = _props.status,\n title = _props.title,\n description = _props.description,\n icon = _props.icon,\n iconPrefix = _props.iconPrefix;\n\n var iconNode = void 0;\n var iconClassName = (0, _classnames2['default'])(prefixCls + '-icon', iconPrefix + 'icon', (_classNames = {}, (0, _defineProperty3['default'])(_classNames, iconPrefix + 'icon-' + icon, icon && isString(icon)), (0, _defineProperty3['default'])(_classNames, iconPrefix + 'icon-check', !icon && status === 'finish'), (0, _defineProperty3['default'])(_classNames, iconPrefix + 'icon-cross', !icon && status === 'error'), _classNames));\n var iconDot = _react2['default'].createElement('span', { className: prefixCls + '-icon-dot' });\n // `progressDot` enjoy the highest priority\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = _react2['default'].createElement(\n 'span',\n { className: prefixCls + '-icon' },\n progressDot(iconDot, { index: stepNumber - 1, status: status, title: title, description: description })\n );\n } else {\n iconNode = _react2['default'].createElement(\n 'span',\n { className: prefixCls + '-icon' },\n iconDot\n );\n }\n } else if (icon && !isString(icon)) {\n iconNode = _react2['default'].createElement(\n 'span',\n { className: prefixCls + '-icon' },\n icon\n );\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = _react2['default'].createElement('span', { className: iconClassName });\n } else {\n iconNode = _react2['default'].createElement(\n 'span',\n { className: prefixCls + '-icon' },\n stepNumber\n );\n }\n return iconNode;\n }\n }, {\n key: 'render',\n value: function render() {\n var _a = this.props,\n className = _a.className,\n prefixCls = _a.prefixCls,\n style = _a.style,\n itemWidth = _a.itemWidth,\n _a$status = _a.status,\n status = _a$status === undefined ? 'wait' : _a$status,\n iconPrefix = _a.iconPrefix,\n icon = _a.icon,\n wrapperStyle = _a.wrapperStyle,\n adjustMarginRight = _a.adjustMarginRight,\n stepNumber = _a.stepNumber,\n description = _a.description,\n title = _a.title,\n progressDot = _a.progressDot,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"style\", \"itemWidth\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"adjustMarginRight\", \"stepNumber\", \"description\", \"title\", \"progressDot\"]);\n var classString = (0, _classnames2['default'])(prefixCls + '-item', prefixCls + '-item-' + status, className, (0, _defineProperty3['default'])({}, prefixCls + '-item-custom', icon));\n var stepItemStyle = (0, _extends3['default'])({}, style);\n if (itemWidth) {\n stepItemStyle.width = itemWidth;\n }\n if (adjustMarginRight) {\n stepItemStyle.marginRight = adjustMarginRight;\n }\n return _react2['default'].createElement(\n 'div',\n (0, _extends3['default'])({}, restProps, { className: classString, style: stepItemStyle }),\n _react2['default'].createElement('div', { className: prefixCls + '-item-tail' }),\n _react2['default'].createElement(\n 'div',\n { className: prefixCls + '-item-icon' },\n this.renderIconNode()\n ),\n _react2['default'].createElement(\n 'div',\n { className: prefixCls + '-item-content' },\n _react2['default'].createElement(\n 'div',\n { className: prefixCls + '-item-title' },\n title\n ),\n description && _react2['default'].createElement(\n 'div',\n { className: prefixCls + '-item-description' },\n description\n )\n )\n );\n }\n }]);\n return Step;\n}(_react2['default'].Component);\n\nexports['default'] = Step;\nmodule.exports = exports['default'];","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-list {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n}\\n.ant-list * {\\n outline: none;\\n}\\n.ant-list-pagination {\\n margin-top: 24px;\\n text-align: right;\\n}\\n.ant-list-pagination .ant-pagination-options {\\n text-align: left;\\n}\\n.ant-list-more {\\n margin-top: 12px;\\n text-align: center;\\n}\\n.ant-list-more button {\\n padding-right: 32px;\\n padding-left: 32px;\\n}\\n.ant-list-spin {\\n min-height: 40px;\\n text-align: center;\\n}\\n.ant-list-empty-text {\\n padding: 16px;\\n color: rgba(0, 0, 0, 0.25);\\n font-size: 14px;\\n text-align: center;\\n}\\n.ant-list-items {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n}\\n.ant-list-item {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n padding: 12px 0;\\n}\\n.ant-list-item-content {\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-list-item-meta {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n -webkit-box-align: start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n font-size: 0;\\n}\\n.ant-list-item-meta-avatar {\\n margin-right: 16px;\\n}\\n.ant-list-item-meta-content {\\n -webkit-box-flex: 1;\\n -ms-flex: 1 0;\\n flex: 1 0;\\n}\\n.ant-list-item-meta-title {\\n margin-bottom: 4px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n line-height: 22px;\\n}\\n.ant-list-item-meta-title > a {\\n color: rgba(0, 0, 0, 0.65);\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-list-item-meta-title > a:hover {\\n color: #1890ff;\\n}\\n.ant-list-item-meta-description {\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 14px;\\n line-height: 22px;\\n}\\n.ant-list-item-action {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n margin-left: 48px;\\n padding: 0;\\n font-size: 0;\\n list-style: none;\\n}\\n.ant-list-item-action > li {\\n position: relative;\\n display: inline-block;\\n padding: 0 8px;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 14px;\\n line-height: 22px;\\n text-align: center;\\n cursor: pointer;\\n}\\n.ant-list-item-action > li:first-child {\\n padding-left: 0;\\n}\\n.ant-list-item-action-split {\\n position: absolute;\\n top: 50%;\\n right: 0;\\n width: 1px;\\n height: 14px;\\n margin-top: -7px;\\n background-color: #e8e8e8;\\n}\\n.ant-list-header {\\n background: transparent;\\n}\\n.ant-list-footer {\\n background: transparent;\\n}\\n.ant-list-header,\\n.ant-list-footer {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n}\\n.ant-list-empty {\\n padding: 16px 0;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 12px;\\n text-align: center;\\n}\\n.ant-list-split .ant-list-item {\\n border-bottom: 1px solid #e8e8e8;\\n}\\n.ant-list-split .ant-list-item:last-child {\\n border-bottom: none;\\n}\\n.ant-list-split .ant-list-header {\\n border-bottom: 1px solid #e8e8e8;\\n}\\n.ant-list-loading .ant-list-spin-nested-loading {\\n min-height: 32px;\\n}\\n.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {\\n border-bottom: 1px solid #e8e8e8;\\n}\\n.ant-list-lg .ant-list-item {\\n padding-top: 16px;\\n padding-bottom: 16px;\\n}\\n.ant-list-sm .ant-list-item {\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.ant-list-vertical .ant-list-item {\\n -webkit-box-align: initial;\\n -ms-flex-align: initial;\\n align-items: initial;\\n}\\n.ant-list-vertical .ant-list-item-main {\\n display: block;\\n -webkit-box-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n}\\n.ant-list-vertical .ant-list-item-extra {\\n margin-left: 40px;\\n}\\n.ant-list-vertical .ant-list-item-meta {\\n margin-bottom: 16px;\\n}\\n.ant-list-vertical .ant-list-item-meta-title {\\n margin-bottom: 12px;\\n color: rgba(0, 0, 0, 0.85);\\n font-size: 16px;\\n line-height: 24px;\\n}\\n.ant-list-vertical .ant-list-item-action {\\n margin-top: 16px;\\n margin-left: auto;\\n}\\n.ant-list-vertical .ant-list-item-action > li {\\n padding: 0 16px;\\n}\\n.ant-list-vertical .ant-list-item-action > li:first-child {\\n padding-left: 0;\\n}\\n.ant-list-grid .ant-col > .ant-list-item {\\n display: block;\\n max-width: 100%;\\n margin-bottom: 16px;\\n padding-top: 0;\\n padding-bottom: 0;\\n border-bottom: none;\\n}\\n.ant-list-item-no-flex {\\n display: block;\\n}\\n.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\\n float: right;\\n}\\n.ant-list-bordered {\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n}\\n.ant-list-bordered .ant-list-header {\\n padding-right: 24px;\\n padding-left: 24px;\\n}\\n.ant-list-bordered .ant-list-footer {\\n padding-right: 24px;\\n padding-left: 24px;\\n}\\n.ant-list-bordered .ant-list-item {\\n padding-right: 24px;\\n padding-left: 24px;\\n border-bottom: 1px solid #e8e8e8;\\n}\\n.ant-list-bordered .ant-list-pagination {\\n margin: 16px 24px;\\n}\\n.ant-list-bordered.ant-list-sm .ant-list-item {\\n padding-right: 16px;\\n padding-left: 16px;\\n}\\n.ant-list-bordered.ant-list-sm .ant-list-header,\\n.ant-list-bordered.ant-list-sm .ant-list-footer {\\n padding: 8px 16px;\\n}\\n.ant-list-bordered.ant-list-lg .ant-list-header,\\n.ant-list-bordered.ant-list-lg .ant-list-footer {\\n padding: 16px 24px;\\n}\\n@media screen and (max-width: 768px) {\\n .ant-list-item-action {\\n margin-left: 24px;\\n }\\n .ant-list-vertical .ant-list-item-extra {\\n margin-left: 24px;\\n }\\n}\\n@media screen and (max-width: 576px) {\\n .ant-list-item {\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n }\\n .ant-list-item-action {\\n margin-left: 12px;\\n }\\n .ant-list-vertical .ant-list-item {\\n -ms-flex-wrap: wrap-reverse;\\n flex-wrap: wrap-reverse;\\n }\\n .ant-list-vertical .ant-list-item-main {\\n min-width: 220px;\\n }\\n .ant-list-vertical .ant-list-item-extra {\\n margin: auto auto 16px;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-empty {\\n margin: 0 8px;\\n font-size: 14px;\\n line-height: 22px;\\n text-align: center;\\n}\\n.ant-empty-image {\\n height: 100px;\\n margin-bottom: 8px;\\n}\\n.ant-empty-image img {\\n height: 100%;\\n}\\n.ant-empty-image svg {\\n height: 100%;\\n margin: auto;\\n}\\n.ant-empty-description {\\n margin: 0;\\n}\\n.ant-empty-footer {\\n margin-top: 16px;\\n}\\n.ant-empty-normal {\\n margin: 32px 0;\\n color: rgba(0, 0, 0, 0.25);\\n}\\n.ant-empty-normal .ant-empty-image {\\n height: 40px;\\n}\\n.ant-empty-small {\\n margin: 8px 0;\\n color: rgba(0, 0, 0, 0.25);\\n}\\n.ant-empty-small .ant-empty-image {\\n height: 35px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-spin {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: absolute;\\n display: none;\\n color: #1890ff;\\n text-align: center;\\n vertical-align: middle;\\n opacity: 0;\\n -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.ant-spin-spinning {\\n position: static;\\n display: inline-block;\\n opacity: 1;\\n}\\n.ant-spin-nested-loading {\\n position: relative;\\n}\\n.ant-spin-nested-loading > div > .ant-spin {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 4;\\n display: block;\\n width: 100%;\\n height: 100%;\\n max-height: 400px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin: -10px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {\\n position: absolute;\\n top: 50%;\\n width: 100%;\\n padding-top: 5px;\\n text-shadow: 0 1px 2px #fff;\\n}\\n.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {\\n margin-top: -20px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {\\n margin: -7px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {\\n padding-top: 2px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {\\n margin-top: -17px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {\\n margin: -16px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {\\n padding-top: 11px;\\n}\\n.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {\\n margin-top: -26px;\\n}\\n.ant-spin-container {\\n position: relative;\\n -webkit-transition: opacity 0.3s;\\n transition: opacity 0.3s;\\n}\\n.ant-spin-container::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 10;\\n display: none \\\\9;\\n width: 100%;\\n height: 100%;\\n background: #fff;\\n opacity: 0;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n content: '';\\n pointer-events: none;\\n}\\n.ant-spin-blur {\\n clear: both;\\n overflow: hidden;\\n opacity: 0.5;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n pointer-events: none;\\n}\\n.ant-spin-blur::after {\\n opacity: 0.4;\\n pointer-events: auto;\\n}\\n.ant-spin-tip {\\n color: rgba(0, 0, 0, 0.45);\\n}\\n.ant-spin-dot {\\n position: relative;\\n display: inline-block;\\n font-size: 20px;\\n width: 1em;\\n height: 1em;\\n}\\n.ant-spin-dot-item {\\n position: absolute;\\n display: block;\\n width: 9px;\\n height: 9px;\\n background-color: #1890ff;\\n border-radius: 100%;\\n -webkit-transform: scale(0.75);\\n -ms-transform: scale(0.75);\\n transform: scale(0.75);\\n -webkit-transform-origin: 50% 50%;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n opacity: 0.3;\\n -webkit-animation: antSpinMove 1s infinite linear alternate;\\n animation: antSpinMove 1s infinite linear alternate;\\n}\\n.ant-spin-dot-item:nth-child(1) {\\n top: 0;\\n left: 0;\\n}\\n.ant-spin-dot-item:nth-child(2) {\\n top: 0;\\n right: 0;\\n -webkit-animation-delay: 0.4s;\\n animation-delay: 0.4s;\\n}\\n.ant-spin-dot-item:nth-child(3) {\\n right: 0;\\n bottom: 0;\\n -webkit-animation-delay: 0.8s;\\n animation-delay: 0.8s;\\n}\\n.ant-spin-dot-item:nth-child(4) {\\n bottom: 0;\\n left: 0;\\n -webkit-animation-delay: 1.2s;\\n animation-delay: 1.2s;\\n}\\n.ant-spin-dot-spin {\\n -webkit-transform: rotate(45deg);\\n -ms-transform: rotate(45deg);\\n transform: rotate(45deg);\\n -webkit-animation: antRotate 1.2s infinite linear;\\n animation: antRotate 1.2s infinite linear;\\n}\\n.ant-spin-sm .ant-spin-dot {\\n font-size: 14px;\\n}\\n.ant-spin-sm .ant-spin-dot i {\\n width: 6px;\\n height: 6px;\\n}\\n.ant-spin-lg .ant-spin-dot {\\n font-size: 32px;\\n}\\n.ant-spin-lg .ant-spin-dot i {\\n width: 14px;\\n height: 14px;\\n}\\n.ant-spin.ant-spin-show-text .ant-spin-text {\\n display: block;\\n}\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /* IE10+ */\\n .ant-spin-blur {\\n background: #fff;\\n opacity: 0.5;\\n }\\n}\\n@-webkit-keyframes antSpinMove {\\n to {\\n opacity: 1;\\n }\\n}\\n@keyframes antSpinMove {\\n to {\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antRotate {\\n to {\\n -webkit-transform: rotate(405deg);\\n transform: rotate(405deg);\\n }\\n}\\n@keyframes antRotate {\\n to {\\n -webkit-transform: rotate(405deg);\\n transform: rotate(405deg);\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-pagination {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n}\\n.ant-pagination ul,\\n.ant-pagination ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n}\\n.ant-pagination::after {\\n display: block;\\n clear: both;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden;\\n content: ' ';\\n}\\n.ant-pagination-total-text {\\n display: inline-block;\\n height: 32px;\\n margin-right: 8px;\\n line-height: 30px;\\n vertical-align: middle;\\n}\\n.ant-pagination-item {\\n display: inline-block;\\n min-width: 32px;\\n height: 32px;\\n margin-right: 8px;\\n font-family: Arial;\\n line-height: 30px;\\n text-align: center;\\n vertical-align: middle;\\n list-style: none;\\n background-color: #fff;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n outline: 0;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.ant-pagination-item a {\\n display: block;\\n padding: 0 6px;\\n color: rgba(0, 0, 0, 0.65);\\n -webkit-transition: none;\\n transition: none;\\n}\\n.ant-pagination-item a:hover {\\n text-decoration: none;\\n}\\n.ant-pagination-item:focus,\\n.ant-pagination-item:hover {\\n border-color: #1890ff;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-pagination-item:focus a,\\n.ant-pagination-item:hover a {\\n color: #1890ff;\\n}\\n.ant-pagination-item-active {\\n font-weight: 500;\\n background: #fff;\\n border-color: #1890ff;\\n}\\n.ant-pagination-item-active a {\\n color: #1890ff;\\n}\\n.ant-pagination-item-active:focus,\\n.ant-pagination-item-active:hover {\\n border-color: #40a9ff;\\n}\\n.ant-pagination-item-active:focus a,\\n.ant-pagination-item-active:hover a {\\n color: #40a9ff;\\n}\\n.ant-pagination-jump-prev,\\n.ant-pagination-jump-next {\\n outline: 0;\\n}\\n.ant-pagination-jump-prev .ant-pagination-item-container,\\n.ant-pagination-jump-next .ant-pagination-item-container {\\n position: relative;\\n}\\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,\\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon {\\n display: inline-block;\\n font-size: 12px;\\n font-size: 12px \\\\9;\\n -webkit-transform: scale(1) rotate(0deg);\\n -ms-transform: scale(1) rotate(0deg);\\n transform: scale(1) rotate(0deg);\\n color: #1890ff;\\n letter-spacing: -1px;\\n opacity: 0;\\n -webkit-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,\\n:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon {\\n font-size: 12px;\\n}\\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg,\\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg {\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n}\\n.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,\\n.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: block;\\n margin: auto;\\n color: rgba(0, 0, 0, 0.25);\\n letter-spacing: 2px;\\n text-align: center;\\n text-indent: 0.13em;\\n opacity: 1;\\n -webkit-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n.ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,\\n.ant-pagination-jump-next:focus .ant-pagination-item-link-icon,\\n.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon,\\n.ant-pagination-jump-next:hover .ant-pagination-item-link-icon {\\n opacity: 1;\\n}\\n.ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,\\n.ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,\\n.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,\\n.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis {\\n opacity: 0;\\n}\\n.ant-pagination-prev,\\n.ant-pagination-jump-prev,\\n.ant-pagination-jump-next {\\n margin-right: 8px;\\n}\\n.ant-pagination-prev,\\n.ant-pagination-next,\\n.ant-pagination-jump-prev,\\n.ant-pagination-jump-next {\\n display: inline-block;\\n min-width: 32px;\\n height: 32px;\\n color: rgba(0, 0, 0, 0.65);\\n font-family: Arial;\\n line-height: 32px;\\n text-align: center;\\n vertical-align: middle;\\n list-style: none;\\n border-radius: 4px;\\n cursor: pointer;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-pagination-prev,\\n.ant-pagination-next {\\n outline: 0;\\n}\\n.ant-pagination-prev a,\\n.ant-pagination-next a {\\n color: rgba(0, 0, 0, 0.65);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.ant-pagination-prev:hover a,\\n.ant-pagination-next:hover a {\\n border-color: #40a9ff;\\n}\\n.ant-pagination-prev .ant-pagination-item-link,\\n.ant-pagination-next .ant-pagination-item-link {\\n display: block;\\n height: 100%;\\n font-size: 12px;\\n text-align: center;\\n background-color: #fff;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n outline: none;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-pagination-prev:focus .ant-pagination-item-link,\\n.ant-pagination-next:focus .ant-pagination-item-link,\\n.ant-pagination-prev:hover .ant-pagination-item-link,\\n.ant-pagination-next:hover .ant-pagination-item-link {\\n color: #1890ff;\\n border-color: #1890ff;\\n}\\n.ant-pagination-disabled,\\n.ant-pagination-disabled:hover,\\n.ant-pagination-disabled:focus {\\n cursor: not-allowed;\\n}\\n.ant-pagination-disabled a,\\n.ant-pagination-disabled:hover a,\\n.ant-pagination-disabled:focus a,\\n.ant-pagination-disabled .ant-pagination-item-link,\\n.ant-pagination-disabled:hover .ant-pagination-item-link,\\n.ant-pagination-disabled:focus .ant-pagination-item-link {\\n color: rgba(0, 0, 0, 0.25);\\n border-color: #d9d9d9;\\n cursor: not-allowed;\\n}\\n.ant-pagination-slash {\\n margin: 0 10px 0 5px;\\n}\\n.ant-pagination-options {\\n display: inline-block;\\n margin-left: 16px;\\n vertical-align: middle;\\n}\\n.ant-pagination-options-size-changer.ant-select {\\n display: inline-block;\\n width: auto;\\n margin-right: 8px;\\n}\\n.ant-pagination-options-quick-jumper {\\n display: inline-block;\\n height: 32px;\\n line-height: 32px;\\n vertical-align: top;\\n}\\n.ant-pagination-options-quick-jumper input {\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: 32px;\\n padding: 4px 11px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n line-height: 1.5;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n width: 50px;\\n margin: 0 8px;\\n}\\n.ant-pagination-options-quick-jumper input::-moz-placeholder {\\n color: #bfbfbf;\\n opacity: 1;\\n}\\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\\n color: #bfbfbf;\\n}\\n.ant-pagination-options-quick-jumper input::-webkit-input-placeholder {\\n color: #bfbfbf;\\n}\\n.ant-pagination-options-quick-jumper input:-moz-placeholder-shown {\\n text-overflow: ellipsis;\\n}\\n.ant-pagination-options-quick-jumper input:-ms-input-placeholder {\\n text-overflow: ellipsis;\\n}\\n.ant-pagination-options-quick-jumper input:placeholder-shown {\\n text-overflow: ellipsis;\\n}\\n.ant-pagination-options-quick-jumper input:hover {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n}\\n.ant-pagination-options-quick-jumper input:focus {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n}\\n.ant-pagination-options-quick-jumper input-disabled {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n cursor: not-allowed;\\n opacity: 1;\\n}\\n.ant-pagination-options-quick-jumper input-disabled:hover {\\n border-color: #d9d9d9;\\n border-right-width: 1px !important;\\n}\\n.ant-pagination-options-quick-jumper input[disabled] {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n cursor: not-allowed;\\n opacity: 1;\\n}\\n.ant-pagination-options-quick-jumper input[disabled]:hover {\\n border-color: #d9d9d9;\\n border-right-width: 1px !important;\\n}\\ntextarea.ant-pagination-options-quick-jumper input {\\n max-width: 100%;\\n height: auto;\\n min-height: 32px;\\n line-height: 1.5;\\n vertical-align: bottom;\\n -webkit-transition: all 0.3s, height 0s;\\n transition: all 0.3s, height 0s;\\n}\\n.ant-pagination-options-quick-jumper input-lg {\\n height: 40px;\\n padding: 6px 11px;\\n font-size: 16px;\\n}\\n.ant-pagination-options-quick-jumper input-sm {\\n height: 24px;\\n padding: 1px 7px;\\n}\\n.ant-pagination-simple .ant-pagination-prev,\\n.ant-pagination-simple .ant-pagination-next {\\n height: 24px;\\n line-height: 24px;\\n vertical-align: top;\\n}\\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,\\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link {\\n height: 24px;\\n border: 0;\\n}\\n.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,\\n.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after {\\n height: 24px;\\n line-height: 24px;\\n}\\n.ant-pagination-simple .ant-pagination-simple-pager {\\n display: inline-block;\\n height: 24px;\\n margin-right: 8px;\\n}\\n.ant-pagination-simple .ant-pagination-simple-pager input {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n height: 100%;\\n margin-right: 8px;\\n padding: 0 6px;\\n text-align: center;\\n background-color: #fff;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n outline: none;\\n -webkit-transition: border-color 0.3s;\\n transition: border-color 0.3s;\\n}\\n.ant-pagination-simple .ant-pagination-simple-pager input:hover {\\n border-color: #1890ff;\\n}\\n.ant-pagination.mini .ant-pagination-total-text,\\n.ant-pagination.mini .ant-pagination-simple-pager {\\n height: 24px;\\n line-height: 24px;\\n}\\n.ant-pagination.mini .ant-pagination-item {\\n min-width: 24px;\\n height: 24px;\\n margin: 0;\\n line-height: 22px;\\n}\\n.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) {\\n background: transparent;\\n border-color: transparent;\\n}\\n.ant-pagination.mini .ant-pagination-prev,\\n.ant-pagination.mini .ant-pagination-next {\\n min-width: 24px;\\n height: 24px;\\n margin: 0;\\n line-height: 24px;\\n}\\n.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,\\n.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link {\\n background: transparent;\\n border-color: transparent;\\n}\\n.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,\\n.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after {\\n height: 24px;\\n line-height: 24px;\\n}\\n.ant-pagination.mini .ant-pagination-jump-prev,\\n.ant-pagination.mini .ant-pagination-jump-next {\\n height: 24px;\\n margin-right: 0;\\n line-height: 24px;\\n}\\n.ant-pagination.mini .ant-pagination-options {\\n margin-left: 2px;\\n}\\n.ant-pagination.mini .ant-pagination-options-quick-jumper {\\n height: 24px;\\n line-height: 24px;\\n}\\n.ant-pagination.mini .ant-pagination-options-quick-jumper input {\\n height: 24px;\\n padding: 1px 7px;\\n width: 44px;\\n}\\n.ant-pagination.ant-pagination-disabled {\\n cursor: not-allowed;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item {\\n background: #f5f5f5;\\n border-color: #d9d9d9;\\n cursor: not-allowed;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item a {\\n color: rgba(0, 0, 0, 0.25);\\n background: transparent;\\n border: none;\\n cursor: not-allowed;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active {\\n background: #dbdbdb;\\n border-color: transparent;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a {\\n color: #fff;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus {\\n color: rgba(0, 0, 0, 0.45);\\n background: #f5f5f5;\\n border-color: #d9d9d9;\\n cursor: not-allowed;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-link-icon,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-link-icon,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-link-icon {\\n opacity: 0;\\n}\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,\\n.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-ellipsis {\\n opacity: 1;\\n}\\n@media only screen and (max-width: 992px) {\\n .ant-pagination-item-after-jump-prev,\\n .ant-pagination-item-before-jump-next {\\n display: none;\\n }\\n}\\n@media only screen and (max-width: 576px) {\\n .ant-pagination-options {\\n display: none;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-select {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n outline: 0;\\n}\\n.ant-select ul,\\n.ant-select ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n}\\n.ant-select > ul > li > a {\\n padding: 0;\\n background-color: #fff;\\n}\\n.ant-select-arrow {\\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 position: absolute;\\n top: 50%;\\n right: 11px;\\n margin-top: -6px;\\n color: rgba(0, 0, 0, 0.25);\\n font-size: 12px;\\n line-height: 1;\\n -webkit-transform-origin: 50% 50%;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n}\\n.ant-select-arrow > * {\\n line-height: 1;\\n}\\n.ant-select-arrow svg {\\n display: inline-block;\\n}\\n.ant-select-arrow::before {\\n display: none;\\n}\\n.ant-select-arrow .ant-select-arrow-icon {\\n display: block;\\n}\\n.ant-select-arrow .ant-select-arrow-icon svg {\\n -webkit-transition: -webkit-transform 0.3s;\\n transition: -webkit-transform 0.3s;\\n transition: transform 0.3s;\\n transition: transform 0.3s, -webkit-transform 0.3s;\\n}\\n.ant-select-selection {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n background-color: #fff;\\n border: 1px solid #d9d9d9;\\n border-top-width: 1.02px;\\n border-radius: 4px;\\n outline: none;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.ant-select-selection:hover {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n}\\n.ant-select-focused .ant-select-selection,\\n.ant-select-selection:focus,\\n.ant-select-selection:active {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n}\\n.ant-select-selection__clear {\\n position: absolute;\\n top: 50%;\\n right: 11px;\\n z-index: 1;\\n display: inline-block;\\n width: 12px;\\n height: 12px;\\n margin-top: -6px;\\n color: rgba(0, 0, 0, 0.25);\\n font-size: 12px;\\n font-style: normal;\\n line-height: 12px;\\n text-align: center;\\n text-transform: none;\\n background: #fff;\\n cursor: pointer;\\n opacity: 0;\\n -webkit-transition: color 0.3s ease, opacity 0.15s ease;\\n transition: color 0.3s ease, opacity 0.15s ease;\\n text-rendering: auto;\\n}\\n.ant-select-selection__clear::before {\\n display: block;\\n}\\n.ant-select-selection__clear:hover {\\n color: rgba(0, 0, 0, 0.45);\\n}\\n.ant-select-selection:hover .ant-select-selection__clear {\\n opacity: 1;\\n}\\n.ant-select-selection-selected-value {\\n float: left;\\n max-width: 100%;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.ant-select-no-arrow .ant-select-selection-selected-value {\\n padding-right: 0;\\n}\\n.ant-select-disabled {\\n color: rgba(0, 0, 0, 0.25);\\n}\\n.ant-select-disabled .ant-select-selection {\\n background: #f5f5f5;\\n cursor: not-allowed;\\n}\\n.ant-select-disabled .ant-select-selection:hover,\\n.ant-select-disabled .ant-select-selection:focus,\\n.ant-select-disabled .ant-select-selection:active {\\n border-color: #d9d9d9;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-select-disabled .ant-select-selection__clear {\\n display: none;\\n visibility: hidden;\\n pointer-events: none;\\n}\\n.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice {\\n padding-right: 10px;\\n color: rgba(0, 0, 0, 0.33);\\n background: #f5f5f5;\\n}\\n.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice__remove {\\n display: none;\\n}\\n.ant-select-selection--single {\\n position: relative;\\n height: 32px;\\n cursor: pointer;\\n}\\n.ant-select-selection--single .ant-select-selection__rendered {\\n margin-right: 24px;\\n}\\n.ant-select-no-arrow .ant-select-selection__rendered {\\n margin-right: 11px;\\n}\\n.ant-select-selection__rendered {\\n position: relative;\\n display: block;\\n margin-right: 11px;\\n margin-left: 11px;\\n line-height: 30px;\\n}\\n.ant-select-selection__rendered::after {\\n display: inline-block;\\n width: 0;\\n visibility: hidden;\\n content: '.';\\n pointer-events: none;\\n}\\n.ant-select-lg {\\n font-size: 16px;\\n}\\n.ant-select-lg .ant-select-selection--single {\\n height: 40px;\\n}\\n.ant-select-lg .ant-select-selection__rendered {\\n line-height: 38px;\\n}\\n.ant-select-lg .ant-select-selection--multiple {\\n min-height: 40px;\\n}\\n.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li {\\n height: 32px;\\n line-height: 32px;\\n}\\n.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear,\\n.ant-select-lg .ant-select-selection--multiple .ant-select-arrow {\\n top: 20px;\\n}\\n.ant-select-sm .ant-select-selection--single {\\n height: 24px;\\n}\\n.ant-select-sm .ant-select-selection__rendered {\\n margin-left: 7px;\\n line-height: 22px;\\n}\\n.ant-select-sm .ant-select-selection--multiple {\\n min-height: 24px;\\n}\\n.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li {\\n height: 16px;\\n line-height: 14px;\\n}\\n.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear,\\n.ant-select-sm .ant-select-selection--multiple .ant-select-arrow {\\n top: 12px;\\n}\\n.ant-select-sm .ant-select-selection__clear,\\n.ant-select-sm .ant-select-arrow {\\n right: 8px;\\n}\\n.ant-select-disabled .ant-select-selection__choice__remove {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: default;\\n}\\n.ant-select-disabled .ant-select-selection__choice__remove:hover {\\n color: rgba(0, 0, 0, 0.25);\\n}\\n.ant-select-search__field__wrap {\\n position: relative;\\n display: inline-block;\\n}\\n.ant-select-selection__placeholder,\\n.ant-select-search__field__placeholder {\\n position: absolute;\\n top: 50%;\\n right: 9px;\\n left: 0;\\n max-width: 100%;\\n height: 20px;\\n margin-top: -10px;\\n overflow: hidden;\\n color: #bfbfbf;\\n line-height: 20px;\\n white-space: nowrap;\\n text-align: left;\\n text-overflow: ellipsis;\\n}\\n.ant-select-search__field__placeholder {\\n left: 12px;\\n}\\n.ant-select-search__field__mirror {\\n position: absolute;\\n top: 0;\\n left: 0;\\n white-space: pre;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.ant-select-search--inline {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n}\\n.ant-select-search--inline .ant-select-search__field__wrap {\\n width: 100%;\\n height: 100%;\\n}\\n.ant-select-search--inline .ant-select-search__field {\\n width: 100%;\\n height: 100%;\\n font-size: 100%;\\n line-height: 1;\\n background: transparent;\\n border-width: 0;\\n border-radius: 4px;\\n outline: 0;\\n}\\n.ant-select-search--inline > i {\\n float: right;\\n}\\n.ant-select-selection--multiple {\\n min-height: 32px;\\n padding-bottom: 3px;\\n cursor: text;\\n zoom: 1;\\n}\\n.ant-select-selection--multiple::before,\\n.ant-select-selection--multiple::after {\\n display: table;\\n content: '';\\n}\\n.ant-select-selection--multiple::after {\\n clear: both;\\n}\\n.ant-select-selection--multiple .ant-select-search--inline {\\n position: static;\\n float: left;\\n width: auto;\\n max-width: 100%;\\n padding: 0;\\n}\\n.ant-select-selection--multiple .ant-select-search--inline .ant-select-search__field {\\n width: 0.75em;\\n max-width: 100%;\\n padding: 1px;\\n}\\n.ant-select-selection--multiple .ant-select-selection__rendered {\\n height: auto;\\n margin-bottom: -3px;\\n margin-left: 5px;\\n}\\n.ant-select-selection--multiple .ant-select-selection__placeholder {\\n margin-left: 6px;\\n}\\n.ant-select-selection--multiple > ul > li,\\n.ant-select-selection--multiple .ant-select-selection__rendered > ul > li {\\n height: 24px;\\n margin-top: 3px;\\n line-height: 22px;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice {\\n position: relative;\\n float: left;\\n max-width: 99%;\\n margin-right: 4px;\\n padding: 0 20px 0 10px;\\n overflow: hidden;\\n color: rgba(0, 0, 0, 0.65);\\n background-color: #fafafa;\\n border: 1px solid #e8e8e8;\\n border-radius: 2px;\\n cursor: default;\\n -webkit-transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__disabled {\\n padding: 0 10px;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__content {\\n display: inline-block;\\n max-width: 100%;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n -webkit-transition: margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove {\\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 position: absolute;\\n right: 4px;\\n color: rgba(0, 0, 0, 0.45);\\n font-weight: bold;\\n line-height: inherit;\\n cursor: pointer;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n display: inline-block;\\n font-size: 12px;\\n font-size: 10px \\\\9;\\n -webkit-transform: scale(0.83333333) rotate(0deg);\\n -ms-transform: scale(0.83333333) rotate(0deg);\\n transform: scale(0.83333333) rotate(0deg);\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove > * {\\n line-height: 1;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove svg {\\n display: inline-block;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove::before {\\n display: none;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove .ant-select-selection--multiple .ant-select-selection__choice__remove-icon {\\n display: block;\\n}\\n:root .ant-select-selection--multiple .ant-select-selection__choice__remove {\\n font-size: 12px;\\n}\\n.ant-select-selection--multiple .ant-select-selection__choice__remove:hover {\\n color: rgba(0, 0, 0, 0.75);\\n}\\n.ant-select-selection--multiple .ant-select-selection__clear,\\n.ant-select-selection--multiple .ant-select-arrow {\\n top: 16px;\\n}\\n.ant-select-allow-clear .ant-select-selection--multiple .ant-select-selection__rendered,\\n.ant-select-show-arrow .ant-select-selection--multiple .ant-select-selection__rendered {\\n margin-right: 20px;\\n}\\n.ant-select-open .ant-select-arrow-icon svg {\\n -webkit-transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n.ant-select-open .ant-select-selection {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n}\\n.ant-select-combobox .ant-select-arrow {\\n display: none;\\n}\\n.ant-select-combobox .ant-select-search--inline {\\n float: none;\\n width: 100%;\\n height: 100%;\\n}\\n.ant-select-combobox .ant-select-search__field__wrap {\\n width: 100%;\\n height: 100%;\\n}\\n.ant-select-combobox .ant-select-search__field {\\n position: relative;\\n z-index: 1;\\n width: 100%;\\n height: 100%;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), height 0s;\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), height 0s;\\n}\\n.ant-select-combobox.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered,\\n.ant-select-combobox.ant-select-show-arrow .ant-select-selection:hover .ant-select-selection__rendered {\\n margin-right: 20px;\\n}\\n.ant-select-dropdown {\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: absolute;\\n top: -9999px;\\n left: -9999px;\\n z-index: 1050;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n font-size: 14px;\\n font-variant: initial;\\n background-color: #fff;\\n border-radius: 4px;\\n outline: none;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n}\\n.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,\\n.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {\\n -webkit-animation-name: antSlideUpIn;\\n animation-name: antSlideUpIn;\\n}\\n.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft,\\n.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft {\\n -webkit-animation-name: antSlideDownIn;\\n animation-name: antSlideDownIn;\\n}\\n.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {\\n -webkit-animation-name: antSlideUpOut;\\n animation-name: antSlideUpOut;\\n}\\n.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft {\\n -webkit-animation-name: antSlideDownOut;\\n animation-name: antSlideDownOut;\\n}\\n.ant-select-dropdown-hidden {\\n display: none;\\n}\\n.ant-select-dropdown-menu {\\n max-height: 250px;\\n margin-bottom: 0;\\n padding: 4px 0;\\n padding-left: 0;\\n overflow: auto;\\n list-style: none;\\n outline: none;\\n}\\n.ant-select-dropdown-menu-item-group-list {\\n margin: 0;\\n padding: 0;\\n}\\n.ant-select-dropdown-menu-item-group-list > .ant-select-dropdown-menu-item {\\n padding-left: 20px;\\n}\\n.ant-select-dropdown-menu-item-group-title {\\n height: 32px;\\n padding: 0 12px;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 12px;\\n line-height: 32px;\\n}\\n.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),\\n.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child {\\n border-radius: 0;\\n}\\n.ant-select-dropdown-menu-item {\\n position: relative;\\n display: block;\\n padding: 5px 12px;\\n overflow: hidden;\\n color: rgba(0, 0, 0, 0.65);\\n font-weight: normal;\\n font-size: 14px;\\n line-height: 22px;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n cursor: pointer;\\n -webkit-transition: background 0.3s ease;\\n transition: background 0.3s ease;\\n}\\n.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled) {\\n background-color: #e6f7ff;\\n}\\n.ant-select-dropdown-menu-item-selected {\\n color: rgba(0, 0, 0, 0.65);\\n font-weight: 600;\\n background-color: #fafafa;\\n}\\n.ant-select-dropdown-menu-item-disabled {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\n.ant-select-dropdown-menu-item-disabled:hover {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\n.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled) {\\n background-color: #e6f7ff;\\n}\\n.ant-select-dropdown-menu-item-divider {\\n height: 1px;\\n margin: 1px 0;\\n overflow: hidden;\\n line-height: 0;\\n background-color: #e8e8e8;\\n}\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item {\\n padding-right: 32px;\\n}\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item .ant-select-selected-icon {\\n position: absolute;\\n top: 50%;\\n right: 12px;\\n color: transparent;\\n font-weight: bold;\\n font-size: 12px;\\n text-shadow: 0 0.1px 0, 0.1px 0 0, 0 -0.1px 0, -0.1px 0;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n -webkit-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-disabled .ant-select-selected-icon {\\n display: none;\\n}\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,\\n.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon {\\n display: inline-block;\\n color: #1890ff;\\n}\\n.ant-select-dropdown--empty.ant-select-dropdown--multiple .ant-select-dropdown-menu-item {\\n padding-right: 12px;\\n}\\n.ant-select-dropdown-container-open .ant-select-dropdown,\\n.ant-select-dropdown-open .ant-select-dropdown {\\n display: block;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-row {\\n position: relative;\\n height: auto;\\n margin-right: 0;\\n margin-left: 0;\\n zoom: 1;\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.ant-row::before,\\n.ant-row::after {\\n display: table;\\n content: '';\\n}\\n.ant-row::after {\\n clear: both;\\n}\\n.ant-row + .ant-row::before {\\n clear: both;\\n}\\n.ant-row-flex {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-flow: row wrap;\\n flex-flow: row wrap;\\n}\\n.ant-row-flex::before,\\n.ant-row-flex::after {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.ant-row-flex-start {\\n -webkit-box-pack: start;\\n -ms-flex-pack: start;\\n justify-content: flex-start;\\n}\\n.ant-row-flex-center {\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.ant-row-flex-end {\\n -webkit-box-pack: end;\\n -ms-flex-pack: end;\\n justify-content: flex-end;\\n}\\n.ant-row-flex-space-between {\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n}\\n.ant-row-flex-space-around {\\n -ms-flex-pack: distribute;\\n justify-content: space-around;\\n}\\n.ant-row-flex-top {\\n -webkit-box-align: start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n}\\n.ant-row-flex-middle {\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n.ant-row-flex-bottom {\\n -webkit-box-align: end;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n}\\n.ant-col {\\n position: relative;\\n min-height: 1px;\\n}\\n.ant-col-1,\\n.ant-col-xs-1,\\n.ant-col-sm-1,\\n.ant-col-md-1,\\n.ant-col-lg-1,\\n.ant-col-2,\\n.ant-col-xs-2,\\n.ant-col-sm-2,\\n.ant-col-md-2,\\n.ant-col-lg-2,\\n.ant-col-3,\\n.ant-col-xs-3,\\n.ant-col-sm-3,\\n.ant-col-md-3,\\n.ant-col-lg-3,\\n.ant-col-4,\\n.ant-col-xs-4,\\n.ant-col-sm-4,\\n.ant-col-md-4,\\n.ant-col-lg-4,\\n.ant-col-5,\\n.ant-col-xs-5,\\n.ant-col-sm-5,\\n.ant-col-md-5,\\n.ant-col-lg-5,\\n.ant-col-6,\\n.ant-col-xs-6,\\n.ant-col-sm-6,\\n.ant-col-md-6,\\n.ant-col-lg-6,\\n.ant-col-7,\\n.ant-col-xs-7,\\n.ant-col-sm-7,\\n.ant-col-md-7,\\n.ant-col-lg-7,\\n.ant-col-8,\\n.ant-col-xs-8,\\n.ant-col-sm-8,\\n.ant-col-md-8,\\n.ant-col-lg-8,\\n.ant-col-9,\\n.ant-col-xs-9,\\n.ant-col-sm-9,\\n.ant-col-md-9,\\n.ant-col-lg-9,\\n.ant-col-10,\\n.ant-col-xs-10,\\n.ant-col-sm-10,\\n.ant-col-md-10,\\n.ant-col-lg-10,\\n.ant-col-11,\\n.ant-col-xs-11,\\n.ant-col-sm-11,\\n.ant-col-md-11,\\n.ant-col-lg-11,\\n.ant-col-12,\\n.ant-col-xs-12,\\n.ant-col-sm-12,\\n.ant-col-md-12,\\n.ant-col-lg-12,\\n.ant-col-13,\\n.ant-col-xs-13,\\n.ant-col-sm-13,\\n.ant-col-md-13,\\n.ant-col-lg-13,\\n.ant-col-14,\\n.ant-col-xs-14,\\n.ant-col-sm-14,\\n.ant-col-md-14,\\n.ant-col-lg-14,\\n.ant-col-15,\\n.ant-col-xs-15,\\n.ant-col-sm-15,\\n.ant-col-md-15,\\n.ant-col-lg-15,\\n.ant-col-16,\\n.ant-col-xs-16,\\n.ant-col-sm-16,\\n.ant-col-md-16,\\n.ant-col-lg-16,\\n.ant-col-17,\\n.ant-col-xs-17,\\n.ant-col-sm-17,\\n.ant-col-md-17,\\n.ant-col-lg-17,\\n.ant-col-18,\\n.ant-col-xs-18,\\n.ant-col-sm-18,\\n.ant-col-md-18,\\n.ant-col-lg-18,\\n.ant-col-19,\\n.ant-col-xs-19,\\n.ant-col-sm-19,\\n.ant-col-md-19,\\n.ant-col-lg-19,\\n.ant-col-20,\\n.ant-col-xs-20,\\n.ant-col-sm-20,\\n.ant-col-md-20,\\n.ant-col-lg-20,\\n.ant-col-21,\\n.ant-col-xs-21,\\n.ant-col-sm-21,\\n.ant-col-md-21,\\n.ant-col-lg-21,\\n.ant-col-22,\\n.ant-col-xs-22,\\n.ant-col-sm-22,\\n.ant-col-md-22,\\n.ant-col-lg-22,\\n.ant-col-23,\\n.ant-col-xs-23,\\n.ant-col-sm-23,\\n.ant-col-md-23,\\n.ant-col-lg-23,\\n.ant-col-24,\\n.ant-col-xs-24,\\n.ant-col-sm-24,\\n.ant-col-md-24,\\n.ant-col-lg-24 {\\n position: relative;\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.ant-col-1,\\n.ant-col-2,\\n.ant-col-3,\\n.ant-col-4,\\n.ant-col-5,\\n.ant-col-6,\\n.ant-col-7,\\n.ant-col-8,\\n.ant-col-9,\\n.ant-col-10,\\n.ant-col-11,\\n.ant-col-12,\\n.ant-col-13,\\n.ant-col-14,\\n.ant-col-15,\\n.ant-col-16,\\n.ant-col-17,\\n.ant-col-18,\\n.ant-col-19,\\n.ant-col-20,\\n.ant-col-21,\\n.ant-col-22,\\n.ant-col-23,\\n.ant-col-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n}\\n.ant-col-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n.ant-col-push-24 {\\n left: 100%;\\n}\\n.ant-col-pull-24 {\\n right: 100%;\\n}\\n.ant-col-offset-24 {\\n margin-left: 100%;\\n}\\n.ant-col-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n}\\n.ant-col-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n}\\n.ant-col-push-23 {\\n left: 95.83333333%;\\n}\\n.ant-col-pull-23 {\\n right: 95.83333333%;\\n}\\n.ant-col-offset-23 {\\n margin-left: 95.83333333%;\\n}\\n.ant-col-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n}\\n.ant-col-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n}\\n.ant-col-push-22 {\\n left: 91.66666667%;\\n}\\n.ant-col-pull-22 {\\n right: 91.66666667%;\\n}\\n.ant-col-offset-22 {\\n margin-left: 91.66666667%;\\n}\\n.ant-col-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n}\\n.ant-col-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n}\\n.ant-col-push-21 {\\n left: 87.5%;\\n}\\n.ant-col-pull-21 {\\n right: 87.5%;\\n}\\n.ant-col-offset-21 {\\n margin-left: 87.5%;\\n}\\n.ant-col-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n}\\n.ant-col-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n}\\n.ant-col-push-20 {\\n left: 83.33333333%;\\n}\\n.ant-col-pull-20 {\\n right: 83.33333333%;\\n}\\n.ant-col-offset-20 {\\n margin-left: 83.33333333%;\\n}\\n.ant-col-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n}\\n.ant-col-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n}\\n.ant-col-push-19 {\\n left: 79.16666667%;\\n}\\n.ant-col-pull-19 {\\n right: 79.16666667%;\\n}\\n.ant-col-offset-19 {\\n margin-left: 79.16666667%;\\n}\\n.ant-col-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n}\\n.ant-col-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n}\\n.ant-col-push-18 {\\n left: 75%;\\n}\\n.ant-col-pull-18 {\\n right: 75%;\\n}\\n.ant-col-offset-18 {\\n margin-left: 75%;\\n}\\n.ant-col-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n}\\n.ant-col-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n}\\n.ant-col-push-17 {\\n left: 70.83333333%;\\n}\\n.ant-col-pull-17 {\\n right: 70.83333333%;\\n}\\n.ant-col-offset-17 {\\n margin-left: 70.83333333%;\\n}\\n.ant-col-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n}\\n.ant-col-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n}\\n.ant-col-push-16 {\\n left: 66.66666667%;\\n}\\n.ant-col-pull-16 {\\n right: 66.66666667%;\\n}\\n.ant-col-offset-16 {\\n margin-left: 66.66666667%;\\n}\\n.ant-col-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n}\\n.ant-col-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n}\\n.ant-col-push-15 {\\n left: 62.5%;\\n}\\n.ant-col-pull-15 {\\n right: 62.5%;\\n}\\n.ant-col-offset-15 {\\n margin-left: 62.5%;\\n}\\n.ant-col-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n}\\n.ant-col-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n}\\n.ant-col-push-14 {\\n left: 58.33333333%;\\n}\\n.ant-col-pull-14 {\\n right: 58.33333333%;\\n}\\n.ant-col-offset-14 {\\n margin-left: 58.33333333%;\\n}\\n.ant-col-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n}\\n.ant-col-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n}\\n.ant-col-push-13 {\\n left: 54.16666667%;\\n}\\n.ant-col-pull-13 {\\n right: 54.16666667%;\\n}\\n.ant-col-offset-13 {\\n margin-left: 54.16666667%;\\n}\\n.ant-col-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n}\\n.ant-col-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n}\\n.ant-col-push-12 {\\n left: 50%;\\n}\\n.ant-col-pull-12 {\\n right: 50%;\\n}\\n.ant-col-offset-12 {\\n margin-left: 50%;\\n}\\n.ant-col-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n}\\n.ant-col-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n}\\n.ant-col-push-11 {\\n left: 45.83333333%;\\n}\\n.ant-col-pull-11 {\\n right: 45.83333333%;\\n}\\n.ant-col-offset-11 {\\n margin-left: 45.83333333%;\\n}\\n.ant-col-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n}\\n.ant-col-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n}\\n.ant-col-push-10 {\\n left: 41.66666667%;\\n}\\n.ant-col-pull-10 {\\n right: 41.66666667%;\\n}\\n.ant-col-offset-10 {\\n margin-left: 41.66666667%;\\n}\\n.ant-col-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n}\\n.ant-col-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n}\\n.ant-col-push-9 {\\n left: 37.5%;\\n}\\n.ant-col-pull-9 {\\n right: 37.5%;\\n}\\n.ant-col-offset-9 {\\n margin-left: 37.5%;\\n}\\n.ant-col-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n}\\n.ant-col-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n}\\n.ant-col-push-8 {\\n left: 33.33333333%;\\n}\\n.ant-col-pull-8 {\\n right: 33.33333333%;\\n}\\n.ant-col-offset-8 {\\n margin-left: 33.33333333%;\\n}\\n.ant-col-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n}\\n.ant-col-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n}\\n.ant-col-push-7 {\\n left: 29.16666667%;\\n}\\n.ant-col-pull-7 {\\n right: 29.16666667%;\\n}\\n.ant-col-offset-7 {\\n margin-left: 29.16666667%;\\n}\\n.ant-col-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n}\\n.ant-col-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n}\\n.ant-col-push-6 {\\n left: 25%;\\n}\\n.ant-col-pull-6 {\\n right: 25%;\\n}\\n.ant-col-offset-6 {\\n margin-left: 25%;\\n}\\n.ant-col-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n}\\n.ant-col-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n}\\n.ant-col-push-5 {\\n left: 20.83333333%;\\n}\\n.ant-col-pull-5 {\\n right: 20.83333333%;\\n}\\n.ant-col-offset-5 {\\n margin-left: 20.83333333%;\\n}\\n.ant-col-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n}\\n.ant-col-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n}\\n.ant-col-push-4 {\\n left: 16.66666667%;\\n}\\n.ant-col-pull-4 {\\n right: 16.66666667%;\\n}\\n.ant-col-offset-4 {\\n margin-left: 16.66666667%;\\n}\\n.ant-col-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n}\\n.ant-col-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n}\\n.ant-col-push-3 {\\n left: 12.5%;\\n}\\n.ant-col-pull-3 {\\n right: 12.5%;\\n}\\n.ant-col-offset-3 {\\n margin-left: 12.5%;\\n}\\n.ant-col-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n}\\n.ant-col-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n}\\n.ant-col-push-2 {\\n left: 8.33333333%;\\n}\\n.ant-col-pull-2 {\\n right: 8.33333333%;\\n}\\n.ant-col-offset-2 {\\n margin-left: 8.33333333%;\\n}\\n.ant-col-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n}\\n.ant-col-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n}\\n.ant-col-push-1 {\\n left: 4.16666667%;\\n}\\n.ant-col-pull-1 {\\n right: 4.16666667%;\\n}\\n.ant-col-offset-1 {\\n margin-left: 4.16666667%;\\n}\\n.ant-col-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n}\\n.ant-col-0 {\\n display: none;\\n}\\n.ant-col-push-0 {\\n left: auto;\\n}\\n.ant-col-pull-0 {\\n right: auto;\\n}\\n.ant-col-push-0 {\\n left: auto;\\n}\\n.ant-col-pull-0 {\\n right: auto;\\n}\\n.ant-col-offset-0 {\\n margin-left: 0;\\n}\\n.ant-col-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n}\\n.ant-col-xs-1,\\n.ant-col-xs-2,\\n.ant-col-xs-3,\\n.ant-col-xs-4,\\n.ant-col-xs-5,\\n.ant-col-xs-6,\\n.ant-col-xs-7,\\n.ant-col-xs-8,\\n.ant-col-xs-9,\\n.ant-col-xs-10,\\n.ant-col-xs-11,\\n.ant-col-xs-12,\\n.ant-col-xs-13,\\n.ant-col-xs-14,\\n.ant-col-xs-15,\\n.ant-col-xs-16,\\n.ant-col-xs-17,\\n.ant-col-xs-18,\\n.ant-col-xs-19,\\n.ant-col-xs-20,\\n.ant-col-xs-21,\\n.ant-col-xs-22,\\n.ant-col-xs-23,\\n.ant-col-xs-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n}\\n.ant-col-xs-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n.ant-col-xs-push-24 {\\n left: 100%;\\n}\\n.ant-col-xs-pull-24 {\\n right: 100%;\\n}\\n.ant-col-xs-offset-24 {\\n margin-left: 100%;\\n}\\n.ant-col-xs-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n}\\n.ant-col-xs-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n}\\n.ant-col-xs-push-23 {\\n left: 95.83333333%;\\n}\\n.ant-col-xs-pull-23 {\\n right: 95.83333333%;\\n}\\n.ant-col-xs-offset-23 {\\n margin-left: 95.83333333%;\\n}\\n.ant-col-xs-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n}\\n.ant-col-xs-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n}\\n.ant-col-xs-push-22 {\\n left: 91.66666667%;\\n}\\n.ant-col-xs-pull-22 {\\n right: 91.66666667%;\\n}\\n.ant-col-xs-offset-22 {\\n margin-left: 91.66666667%;\\n}\\n.ant-col-xs-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n}\\n.ant-col-xs-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n}\\n.ant-col-xs-push-21 {\\n left: 87.5%;\\n}\\n.ant-col-xs-pull-21 {\\n right: 87.5%;\\n}\\n.ant-col-xs-offset-21 {\\n margin-left: 87.5%;\\n}\\n.ant-col-xs-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n}\\n.ant-col-xs-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n}\\n.ant-col-xs-push-20 {\\n left: 83.33333333%;\\n}\\n.ant-col-xs-pull-20 {\\n right: 83.33333333%;\\n}\\n.ant-col-xs-offset-20 {\\n margin-left: 83.33333333%;\\n}\\n.ant-col-xs-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n}\\n.ant-col-xs-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n}\\n.ant-col-xs-push-19 {\\n left: 79.16666667%;\\n}\\n.ant-col-xs-pull-19 {\\n right: 79.16666667%;\\n}\\n.ant-col-xs-offset-19 {\\n margin-left: 79.16666667%;\\n}\\n.ant-col-xs-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n}\\n.ant-col-xs-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n}\\n.ant-col-xs-push-18 {\\n left: 75%;\\n}\\n.ant-col-xs-pull-18 {\\n right: 75%;\\n}\\n.ant-col-xs-offset-18 {\\n margin-left: 75%;\\n}\\n.ant-col-xs-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n}\\n.ant-col-xs-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n}\\n.ant-col-xs-push-17 {\\n left: 70.83333333%;\\n}\\n.ant-col-xs-pull-17 {\\n right: 70.83333333%;\\n}\\n.ant-col-xs-offset-17 {\\n margin-left: 70.83333333%;\\n}\\n.ant-col-xs-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n}\\n.ant-col-xs-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n}\\n.ant-col-xs-push-16 {\\n left: 66.66666667%;\\n}\\n.ant-col-xs-pull-16 {\\n right: 66.66666667%;\\n}\\n.ant-col-xs-offset-16 {\\n margin-left: 66.66666667%;\\n}\\n.ant-col-xs-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n}\\n.ant-col-xs-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n}\\n.ant-col-xs-push-15 {\\n left: 62.5%;\\n}\\n.ant-col-xs-pull-15 {\\n right: 62.5%;\\n}\\n.ant-col-xs-offset-15 {\\n margin-left: 62.5%;\\n}\\n.ant-col-xs-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n}\\n.ant-col-xs-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n}\\n.ant-col-xs-push-14 {\\n left: 58.33333333%;\\n}\\n.ant-col-xs-pull-14 {\\n right: 58.33333333%;\\n}\\n.ant-col-xs-offset-14 {\\n margin-left: 58.33333333%;\\n}\\n.ant-col-xs-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n}\\n.ant-col-xs-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n}\\n.ant-col-xs-push-13 {\\n left: 54.16666667%;\\n}\\n.ant-col-xs-pull-13 {\\n right: 54.16666667%;\\n}\\n.ant-col-xs-offset-13 {\\n margin-left: 54.16666667%;\\n}\\n.ant-col-xs-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n}\\n.ant-col-xs-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n}\\n.ant-col-xs-push-12 {\\n left: 50%;\\n}\\n.ant-col-xs-pull-12 {\\n right: 50%;\\n}\\n.ant-col-xs-offset-12 {\\n margin-left: 50%;\\n}\\n.ant-col-xs-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n}\\n.ant-col-xs-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n}\\n.ant-col-xs-push-11 {\\n left: 45.83333333%;\\n}\\n.ant-col-xs-pull-11 {\\n right: 45.83333333%;\\n}\\n.ant-col-xs-offset-11 {\\n margin-left: 45.83333333%;\\n}\\n.ant-col-xs-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n}\\n.ant-col-xs-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n}\\n.ant-col-xs-push-10 {\\n left: 41.66666667%;\\n}\\n.ant-col-xs-pull-10 {\\n right: 41.66666667%;\\n}\\n.ant-col-xs-offset-10 {\\n margin-left: 41.66666667%;\\n}\\n.ant-col-xs-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n}\\n.ant-col-xs-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n}\\n.ant-col-xs-push-9 {\\n left: 37.5%;\\n}\\n.ant-col-xs-pull-9 {\\n right: 37.5%;\\n}\\n.ant-col-xs-offset-9 {\\n margin-left: 37.5%;\\n}\\n.ant-col-xs-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n}\\n.ant-col-xs-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n}\\n.ant-col-xs-push-8 {\\n left: 33.33333333%;\\n}\\n.ant-col-xs-pull-8 {\\n right: 33.33333333%;\\n}\\n.ant-col-xs-offset-8 {\\n margin-left: 33.33333333%;\\n}\\n.ant-col-xs-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n}\\n.ant-col-xs-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n}\\n.ant-col-xs-push-7 {\\n left: 29.16666667%;\\n}\\n.ant-col-xs-pull-7 {\\n right: 29.16666667%;\\n}\\n.ant-col-xs-offset-7 {\\n margin-left: 29.16666667%;\\n}\\n.ant-col-xs-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n}\\n.ant-col-xs-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n}\\n.ant-col-xs-push-6 {\\n left: 25%;\\n}\\n.ant-col-xs-pull-6 {\\n right: 25%;\\n}\\n.ant-col-xs-offset-6 {\\n margin-left: 25%;\\n}\\n.ant-col-xs-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n}\\n.ant-col-xs-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n}\\n.ant-col-xs-push-5 {\\n left: 20.83333333%;\\n}\\n.ant-col-xs-pull-5 {\\n right: 20.83333333%;\\n}\\n.ant-col-xs-offset-5 {\\n margin-left: 20.83333333%;\\n}\\n.ant-col-xs-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n}\\n.ant-col-xs-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n}\\n.ant-col-xs-push-4 {\\n left: 16.66666667%;\\n}\\n.ant-col-xs-pull-4 {\\n right: 16.66666667%;\\n}\\n.ant-col-xs-offset-4 {\\n margin-left: 16.66666667%;\\n}\\n.ant-col-xs-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n}\\n.ant-col-xs-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n}\\n.ant-col-xs-push-3 {\\n left: 12.5%;\\n}\\n.ant-col-xs-pull-3 {\\n right: 12.5%;\\n}\\n.ant-col-xs-offset-3 {\\n margin-left: 12.5%;\\n}\\n.ant-col-xs-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n}\\n.ant-col-xs-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n}\\n.ant-col-xs-push-2 {\\n left: 8.33333333%;\\n}\\n.ant-col-xs-pull-2 {\\n right: 8.33333333%;\\n}\\n.ant-col-xs-offset-2 {\\n margin-left: 8.33333333%;\\n}\\n.ant-col-xs-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n}\\n.ant-col-xs-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n}\\n.ant-col-xs-push-1 {\\n left: 4.16666667%;\\n}\\n.ant-col-xs-pull-1 {\\n right: 4.16666667%;\\n}\\n.ant-col-xs-offset-1 {\\n margin-left: 4.16666667%;\\n}\\n.ant-col-xs-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n}\\n.ant-col-xs-0 {\\n display: none;\\n}\\n.ant-col-push-0 {\\n left: auto;\\n}\\n.ant-col-pull-0 {\\n right: auto;\\n}\\n.ant-col-xs-push-0 {\\n left: auto;\\n}\\n.ant-col-xs-pull-0 {\\n right: auto;\\n}\\n.ant-col-xs-offset-0 {\\n margin-left: 0;\\n}\\n.ant-col-xs-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n}\\n@media (min-width: 576px) {\\n .ant-col-sm-1,\\n .ant-col-sm-2,\\n .ant-col-sm-3,\\n .ant-col-sm-4,\\n .ant-col-sm-5,\\n .ant-col-sm-6,\\n .ant-col-sm-7,\\n .ant-col-sm-8,\\n .ant-col-sm-9,\\n .ant-col-sm-10,\\n .ant-col-sm-11,\\n .ant-col-sm-12,\\n .ant-col-sm-13,\\n .ant-col-sm-14,\\n .ant-col-sm-15,\\n .ant-col-sm-16,\\n .ant-col-sm-17,\\n .ant-col-sm-18,\\n .ant-col-sm-19,\\n .ant-col-sm-20,\\n .ant-col-sm-21,\\n .ant-col-sm-22,\\n .ant-col-sm-23,\\n .ant-col-sm-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n }\\n .ant-col-sm-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n }\\n .ant-col-sm-push-24 {\\n left: 100%;\\n }\\n .ant-col-sm-pull-24 {\\n right: 100%;\\n }\\n .ant-col-sm-offset-24 {\\n margin-left: 100%;\\n }\\n .ant-col-sm-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n }\\n .ant-col-sm-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n }\\n .ant-col-sm-push-23 {\\n left: 95.83333333%;\\n }\\n .ant-col-sm-pull-23 {\\n right: 95.83333333%;\\n }\\n .ant-col-sm-offset-23 {\\n margin-left: 95.83333333%;\\n }\\n .ant-col-sm-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n }\\n .ant-col-sm-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n }\\n .ant-col-sm-push-22 {\\n left: 91.66666667%;\\n }\\n .ant-col-sm-pull-22 {\\n right: 91.66666667%;\\n }\\n .ant-col-sm-offset-22 {\\n margin-left: 91.66666667%;\\n }\\n .ant-col-sm-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n }\\n .ant-col-sm-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n }\\n .ant-col-sm-push-21 {\\n left: 87.5%;\\n }\\n .ant-col-sm-pull-21 {\\n right: 87.5%;\\n }\\n .ant-col-sm-offset-21 {\\n margin-left: 87.5%;\\n }\\n .ant-col-sm-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n }\\n .ant-col-sm-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n }\\n .ant-col-sm-push-20 {\\n left: 83.33333333%;\\n }\\n .ant-col-sm-pull-20 {\\n right: 83.33333333%;\\n }\\n .ant-col-sm-offset-20 {\\n margin-left: 83.33333333%;\\n }\\n .ant-col-sm-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n }\\n .ant-col-sm-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n }\\n .ant-col-sm-push-19 {\\n left: 79.16666667%;\\n }\\n .ant-col-sm-pull-19 {\\n right: 79.16666667%;\\n }\\n .ant-col-sm-offset-19 {\\n margin-left: 79.16666667%;\\n }\\n .ant-col-sm-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n }\\n .ant-col-sm-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n }\\n .ant-col-sm-push-18 {\\n left: 75%;\\n }\\n .ant-col-sm-pull-18 {\\n right: 75%;\\n }\\n .ant-col-sm-offset-18 {\\n margin-left: 75%;\\n }\\n .ant-col-sm-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n }\\n .ant-col-sm-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n }\\n .ant-col-sm-push-17 {\\n left: 70.83333333%;\\n }\\n .ant-col-sm-pull-17 {\\n right: 70.83333333%;\\n }\\n .ant-col-sm-offset-17 {\\n margin-left: 70.83333333%;\\n }\\n .ant-col-sm-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n }\\n .ant-col-sm-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n }\\n .ant-col-sm-push-16 {\\n left: 66.66666667%;\\n }\\n .ant-col-sm-pull-16 {\\n right: 66.66666667%;\\n }\\n .ant-col-sm-offset-16 {\\n margin-left: 66.66666667%;\\n }\\n .ant-col-sm-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n }\\n .ant-col-sm-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n }\\n .ant-col-sm-push-15 {\\n left: 62.5%;\\n }\\n .ant-col-sm-pull-15 {\\n right: 62.5%;\\n }\\n .ant-col-sm-offset-15 {\\n margin-left: 62.5%;\\n }\\n .ant-col-sm-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n }\\n .ant-col-sm-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n }\\n .ant-col-sm-push-14 {\\n left: 58.33333333%;\\n }\\n .ant-col-sm-pull-14 {\\n right: 58.33333333%;\\n }\\n .ant-col-sm-offset-14 {\\n margin-left: 58.33333333%;\\n }\\n .ant-col-sm-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n }\\n .ant-col-sm-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n }\\n .ant-col-sm-push-13 {\\n left: 54.16666667%;\\n }\\n .ant-col-sm-pull-13 {\\n right: 54.16666667%;\\n }\\n .ant-col-sm-offset-13 {\\n margin-left: 54.16666667%;\\n }\\n .ant-col-sm-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n }\\n .ant-col-sm-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n }\\n .ant-col-sm-push-12 {\\n left: 50%;\\n }\\n .ant-col-sm-pull-12 {\\n right: 50%;\\n }\\n .ant-col-sm-offset-12 {\\n margin-left: 50%;\\n }\\n .ant-col-sm-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n }\\n .ant-col-sm-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n }\\n .ant-col-sm-push-11 {\\n left: 45.83333333%;\\n }\\n .ant-col-sm-pull-11 {\\n right: 45.83333333%;\\n }\\n .ant-col-sm-offset-11 {\\n margin-left: 45.83333333%;\\n }\\n .ant-col-sm-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n }\\n .ant-col-sm-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n }\\n .ant-col-sm-push-10 {\\n left: 41.66666667%;\\n }\\n .ant-col-sm-pull-10 {\\n right: 41.66666667%;\\n }\\n .ant-col-sm-offset-10 {\\n margin-left: 41.66666667%;\\n }\\n .ant-col-sm-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n }\\n .ant-col-sm-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n }\\n .ant-col-sm-push-9 {\\n left: 37.5%;\\n }\\n .ant-col-sm-pull-9 {\\n right: 37.5%;\\n }\\n .ant-col-sm-offset-9 {\\n margin-left: 37.5%;\\n }\\n .ant-col-sm-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n }\\n .ant-col-sm-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n }\\n .ant-col-sm-push-8 {\\n left: 33.33333333%;\\n }\\n .ant-col-sm-pull-8 {\\n right: 33.33333333%;\\n }\\n .ant-col-sm-offset-8 {\\n margin-left: 33.33333333%;\\n }\\n .ant-col-sm-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n }\\n .ant-col-sm-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n }\\n .ant-col-sm-push-7 {\\n left: 29.16666667%;\\n }\\n .ant-col-sm-pull-7 {\\n right: 29.16666667%;\\n }\\n .ant-col-sm-offset-7 {\\n margin-left: 29.16666667%;\\n }\\n .ant-col-sm-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n }\\n .ant-col-sm-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n }\\n .ant-col-sm-push-6 {\\n left: 25%;\\n }\\n .ant-col-sm-pull-6 {\\n right: 25%;\\n }\\n .ant-col-sm-offset-6 {\\n margin-left: 25%;\\n }\\n .ant-col-sm-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n }\\n .ant-col-sm-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n }\\n .ant-col-sm-push-5 {\\n left: 20.83333333%;\\n }\\n .ant-col-sm-pull-5 {\\n right: 20.83333333%;\\n }\\n .ant-col-sm-offset-5 {\\n margin-left: 20.83333333%;\\n }\\n .ant-col-sm-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n }\\n .ant-col-sm-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n }\\n .ant-col-sm-push-4 {\\n left: 16.66666667%;\\n }\\n .ant-col-sm-pull-4 {\\n right: 16.66666667%;\\n }\\n .ant-col-sm-offset-4 {\\n margin-left: 16.66666667%;\\n }\\n .ant-col-sm-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n }\\n .ant-col-sm-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n }\\n .ant-col-sm-push-3 {\\n left: 12.5%;\\n }\\n .ant-col-sm-pull-3 {\\n right: 12.5%;\\n }\\n .ant-col-sm-offset-3 {\\n margin-left: 12.5%;\\n }\\n .ant-col-sm-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n }\\n .ant-col-sm-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n }\\n .ant-col-sm-push-2 {\\n left: 8.33333333%;\\n }\\n .ant-col-sm-pull-2 {\\n right: 8.33333333%;\\n }\\n .ant-col-sm-offset-2 {\\n margin-left: 8.33333333%;\\n }\\n .ant-col-sm-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n }\\n .ant-col-sm-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n }\\n .ant-col-sm-push-1 {\\n left: 4.16666667%;\\n }\\n .ant-col-sm-pull-1 {\\n right: 4.16666667%;\\n }\\n .ant-col-sm-offset-1 {\\n margin-left: 4.16666667%;\\n }\\n .ant-col-sm-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n }\\n .ant-col-sm-0 {\\n display: none;\\n }\\n .ant-col-push-0 {\\n left: auto;\\n }\\n .ant-col-pull-0 {\\n right: auto;\\n }\\n .ant-col-sm-push-0 {\\n left: auto;\\n }\\n .ant-col-sm-pull-0 {\\n right: auto;\\n }\\n .ant-col-sm-offset-0 {\\n margin-left: 0;\\n }\\n .ant-col-sm-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n }\\n}\\n@media (min-width: 768px) {\\n .ant-col-md-1,\\n .ant-col-md-2,\\n .ant-col-md-3,\\n .ant-col-md-4,\\n .ant-col-md-5,\\n .ant-col-md-6,\\n .ant-col-md-7,\\n .ant-col-md-8,\\n .ant-col-md-9,\\n .ant-col-md-10,\\n .ant-col-md-11,\\n .ant-col-md-12,\\n .ant-col-md-13,\\n .ant-col-md-14,\\n .ant-col-md-15,\\n .ant-col-md-16,\\n .ant-col-md-17,\\n .ant-col-md-18,\\n .ant-col-md-19,\\n .ant-col-md-20,\\n .ant-col-md-21,\\n .ant-col-md-22,\\n .ant-col-md-23,\\n .ant-col-md-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n }\\n .ant-col-md-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n }\\n .ant-col-md-push-24 {\\n left: 100%;\\n }\\n .ant-col-md-pull-24 {\\n right: 100%;\\n }\\n .ant-col-md-offset-24 {\\n margin-left: 100%;\\n }\\n .ant-col-md-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n }\\n .ant-col-md-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n }\\n .ant-col-md-push-23 {\\n left: 95.83333333%;\\n }\\n .ant-col-md-pull-23 {\\n right: 95.83333333%;\\n }\\n .ant-col-md-offset-23 {\\n margin-left: 95.83333333%;\\n }\\n .ant-col-md-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n }\\n .ant-col-md-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n }\\n .ant-col-md-push-22 {\\n left: 91.66666667%;\\n }\\n .ant-col-md-pull-22 {\\n right: 91.66666667%;\\n }\\n .ant-col-md-offset-22 {\\n margin-left: 91.66666667%;\\n }\\n .ant-col-md-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n }\\n .ant-col-md-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n }\\n .ant-col-md-push-21 {\\n left: 87.5%;\\n }\\n .ant-col-md-pull-21 {\\n right: 87.5%;\\n }\\n .ant-col-md-offset-21 {\\n margin-left: 87.5%;\\n }\\n .ant-col-md-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n }\\n .ant-col-md-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n }\\n .ant-col-md-push-20 {\\n left: 83.33333333%;\\n }\\n .ant-col-md-pull-20 {\\n right: 83.33333333%;\\n }\\n .ant-col-md-offset-20 {\\n margin-left: 83.33333333%;\\n }\\n .ant-col-md-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n }\\n .ant-col-md-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n }\\n .ant-col-md-push-19 {\\n left: 79.16666667%;\\n }\\n .ant-col-md-pull-19 {\\n right: 79.16666667%;\\n }\\n .ant-col-md-offset-19 {\\n margin-left: 79.16666667%;\\n }\\n .ant-col-md-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n }\\n .ant-col-md-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n }\\n .ant-col-md-push-18 {\\n left: 75%;\\n }\\n .ant-col-md-pull-18 {\\n right: 75%;\\n }\\n .ant-col-md-offset-18 {\\n margin-left: 75%;\\n }\\n .ant-col-md-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n }\\n .ant-col-md-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n }\\n .ant-col-md-push-17 {\\n left: 70.83333333%;\\n }\\n .ant-col-md-pull-17 {\\n right: 70.83333333%;\\n }\\n .ant-col-md-offset-17 {\\n margin-left: 70.83333333%;\\n }\\n .ant-col-md-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n }\\n .ant-col-md-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n }\\n .ant-col-md-push-16 {\\n left: 66.66666667%;\\n }\\n .ant-col-md-pull-16 {\\n right: 66.66666667%;\\n }\\n .ant-col-md-offset-16 {\\n margin-left: 66.66666667%;\\n }\\n .ant-col-md-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n }\\n .ant-col-md-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n }\\n .ant-col-md-push-15 {\\n left: 62.5%;\\n }\\n .ant-col-md-pull-15 {\\n right: 62.5%;\\n }\\n .ant-col-md-offset-15 {\\n margin-left: 62.5%;\\n }\\n .ant-col-md-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n }\\n .ant-col-md-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n }\\n .ant-col-md-push-14 {\\n left: 58.33333333%;\\n }\\n .ant-col-md-pull-14 {\\n right: 58.33333333%;\\n }\\n .ant-col-md-offset-14 {\\n margin-left: 58.33333333%;\\n }\\n .ant-col-md-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n }\\n .ant-col-md-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n }\\n .ant-col-md-push-13 {\\n left: 54.16666667%;\\n }\\n .ant-col-md-pull-13 {\\n right: 54.16666667%;\\n }\\n .ant-col-md-offset-13 {\\n margin-left: 54.16666667%;\\n }\\n .ant-col-md-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n }\\n .ant-col-md-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n }\\n .ant-col-md-push-12 {\\n left: 50%;\\n }\\n .ant-col-md-pull-12 {\\n right: 50%;\\n }\\n .ant-col-md-offset-12 {\\n margin-left: 50%;\\n }\\n .ant-col-md-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n }\\n .ant-col-md-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n }\\n .ant-col-md-push-11 {\\n left: 45.83333333%;\\n }\\n .ant-col-md-pull-11 {\\n right: 45.83333333%;\\n }\\n .ant-col-md-offset-11 {\\n margin-left: 45.83333333%;\\n }\\n .ant-col-md-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n }\\n .ant-col-md-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n }\\n .ant-col-md-push-10 {\\n left: 41.66666667%;\\n }\\n .ant-col-md-pull-10 {\\n right: 41.66666667%;\\n }\\n .ant-col-md-offset-10 {\\n margin-left: 41.66666667%;\\n }\\n .ant-col-md-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n }\\n .ant-col-md-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n }\\n .ant-col-md-push-9 {\\n left: 37.5%;\\n }\\n .ant-col-md-pull-9 {\\n right: 37.5%;\\n }\\n .ant-col-md-offset-9 {\\n margin-left: 37.5%;\\n }\\n .ant-col-md-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n }\\n .ant-col-md-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n }\\n .ant-col-md-push-8 {\\n left: 33.33333333%;\\n }\\n .ant-col-md-pull-8 {\\n right: 33.33333333%;\\n }\\n .ant-col-md-offset-8 {\\n margin-left: 33.33333333%;\\n }\\n .ant-col-md-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n }\\n .ant-col-md-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n }\\n .ant-col-md-push-7 {\\n left: 29.16666667%;\\n }\\n .ant-col-md-pull-7 {\\n right: 29.16666667%;\\n }\\n .ant-col-md-offset-7 {\\n margin-left: 29.16666667%;\\n }\\n .ant-col-md-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n }\\n .ant-col-md-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n }\\n .ant-col-md-push-6 {\\n left: 25%;\\n }\\n .ant-col-md-pull-6 {\\n right: 25%;\\n }\\n .ant-col-md-offset-6 {\\n margin-left: 25%;\\n }\\n .ant-col-md-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n }\\n .ant-col-md-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n }\\n .ant-col-md-push-5 {\\n left: 20.83333333%;\\n }\\n .ant-col-md-pull-5 {\\n right: 20.83333333%;\\n }\\n .ant-col-md-offset-5 {\\n margin-left: 20.83333333%;\\n }\\n .ant-col-md-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n }\\n .ant-col-md-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n }\\n .ant-col-md-push-4 {\\n left: 16.66666667%;\\n }\\n .ant-col-md-pull-4 {\\n right: 16.66666667%;\\n }\\n .ant-col-md-offset-4 {\\n margin-left: 16.66666667%;\\n }\\n .ant-col-md-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n }\\n .ant-col-md-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n }\\n .ant-col-md-push-3 {\\n left: 12.5%;\\n }\\n .ant-col-md-pull-3 {\\n right: 12.5%;\\n }\\n .ant-col-md-offset-3 {\\n margin-left: 12.5%;\\n }\\n .ant-col-md-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n }\\n .ant-col-md-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n }\\n .ant-col-md-push-2 {\\n left: 8.33333333%;\\n }\\n .ant-col-md-pull-2 {\\n right: 8.33333333%;\\n }\\n .ant-col-md-offset-2 {\\n margin-left: 8.33333333%;\\n }\\n .ant-col-md-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n }\\n .ant-col-md-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n }\\n .ant-col-md-push-1 {\\n left: 4.16666667%;\\n }\\n .ant-col-md-pull-1 {\\n right: 4.16666667%;\\n }\\n .ant-col-md-offset-1 {\\n margin-left: 4.16666667%;\\n }\\n .ant-col-md-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n }\\n .ant-col-md-0 {\\n display: none;\\n }\\n .ant-col-push-0 {\\n left: auto;\\n }\\n .ant-col-pull-0 {\\n right: auto;\\n }\\n .ant-col-md-push-0 {\\n left: auto;\\n }\\n .ant-col-md-pull-0 {\\n right: auto;\\n }\\n .ant-col-md-offset-0 {\\n margin-left: 0;\\n }\\n .ant-col-md-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n }\\n}\\n@media (min-width: 992px) {\\n .ant-col-lg-1,\\n .ant-col-lg-2,\\n .ant-col-lg-3,\\n .ant-col-lg-4,\\n .ant-col-lg-5,\\n .ant-col-lg-6,\\n .ant-col-lg-7,\\n .ant-col-lg-8,\\n .ant-col-lg-9,\\n .ant-col-lg-10,\\n .ant-col-lg-11,\\n .ant-col-lg-12,\\n .ant-col-lg-13,\\n .ant-col-lg-14,\\n .ant-col-lg-15,\\n .ant-col-lg-16,\\n .ant-col-lg-17,\\n .ant-col-lg-18,\\n .ant-col-lg-19,\\n .ant-col-lg-20,\\n .ant-col-lg-21,\\n .ant-col-lg-22,\\n .ant-col-lg-23,\\n .ant-col-lg-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n }\\n .ant-col-lg-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n }\\n .ant-col-lg-push-24 {\\n left: 100%;\\n }\\n .ant-col-lg-pull-24 {\\n right: 100%;\\n }\\n .ant-col-lg-offset-24 {\\n margin-left: 100%;\\n }\\n .ant-col-lg-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n }\\n .ant-col-lg-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n }\\n .ant-col-lg-push-23 {\\n left: 95.83333333%;\\n }\\n .ant-col-lg-pull-23 {\\n right: 95.83333333%;\\n }\\n .ant-col-lg-offset-23 {\\n margin-left: 95.83333333%;\\n }\\n .ant-col-lg-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n }\\n .ant-col-lg-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n }\\n .ant-col-lg-push-22 {\\n left: 91.66666667%;\\n }\\n .ant-col-lg-pull-22 {\\n right: 91.66666667%;\\n }\\n .ant-col-lg-offset-22 {\\n margin-left: 91.66666667%;\\n }\\n .ant-col-lg-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n }\\n .ant-col-lg-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n }\\n .ant-col-lg-push-21 {\\n left: 87.5%;\\n }\\n .ant-col-lg-pull-21 {\\n right: 87.5%;\\n }\\n .ant-col-lg-offset-21 {\\n margin-left: 87.5%;\\n }\\n .ant-col-lg-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n }\\n .ant-col-lg-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n }\\n .ant-col-lg-push-20 {\\n left: 83.33333333%;\\n }\\n .ant-col-lg-pull-20 {\\n right: 83.33333333%;\\n }\\n .ant-col-lg-offset-20 {\\n margin-left: 83.33333333%;\\n }\\n .ant-col-lg-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n }\\n .ant-col-lg-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n }\\n .ant-col-lg-push-19 {\\n left: 79.16666667%;\\n }\\n .ant-col-lg-pull-19 {\\n right: 79.16666667%;\\n }\\n .ant-col-lg-offset-19 {\\n margin-left: 79.16666667%;\\n }\\n .ant-col-lg-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n }\\n .ant-col-lg-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n }\\n .ant-col-lg-push-18 {\\n left: 75%;\\n }\\n .ant-col-lg-pull-18 {\\n right: 75%;\\n }\\n .ant-col-lg-offset-18 {\\n margin-left: 75%;\\n }\\n .ant-col-lg-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n }\\n .ant-col-lg-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n }\\n .ant-col-lg-push-17 {\\n left: 70.83333333%;\\n }\\n .ant-col-lg-pull-17 {\\n right: 70.83333333%;\\n }\\n .ant-col-lg-offset-17 {\\n margin-left: 70.83333333%;\\n }\\n .ant-col-lg-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n }\\n .ant-col-lg-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n }\\n .ant-col-lg-push-16 {\\n left: 66.66666667%;\\n }\\n .ant-col-lg-pull-16 {\\n right: 66.66666667%;\\n }\\n .ant-col-lg-offset-16 {\\n margin-left: 66.66666667%;\\n }\\n .ant-col-lg-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n }\\n .ant-col-lg-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n }\\n .ant-col-lg-push-15 {\\n left: 62.5%;\\n }\\n .ant-col-lg-pull-15 {\\n right: 62.5%;\\n }\\n .ant-col-lg-offset-15 {\\n margin-left: 62.5%;\\n }\\n .ant-col-lg-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n }\\n .ant-col-lg-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n }\\n .ant-col-lg-push-14 {\\n left: 58.33333333%;\\n }\\n .ant-col-lg-pull-14 {\\n right: 58.33333333%;\\n }\\n .ant-col-lg-offset-14 {\\n margin-left: 58.33333333%;\\n }\\n .ant-col-lg-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n }\\n .ant-col-lg-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n }\\n .ant-col-lg-push-13 {\\n left: 54.16666667%;\\n }\\n .ant-col-lg-pull-13 {\\n right: 54.16666667%;\\n }\\n .ant-col-lg-offset-13 {\\n margin-left: 54.16666667%;\\n }\\n .ant-col-lg-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n }\\n .ant-col-lg-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n }\\n .ant-col-lg-push-12 {\\n left: 50%;\\n }\\n .ant-col-lg-pull-12 {\\n right: 50%;\\n }\\n .ant-col-lg-offset-12 {\\n margin-left: 50%;\\n }\\n .ant-col-lg-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n }\\n .ant-col-lg-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n }\\n .ant-col-lg-push-11 {\\n left: 45.83333333%;\\n }\\n .ant-col-lg-pull-11 {\\n right: 45.83333333%;\\n }\\n .ant-col-lg-offset-11 {\\n margin-left: 45.83333333%;\\n }\\n .ant-col-lg-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n }\\n .ant-col-lg-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n }\\n .ant-col-lg-push-10 {\\n left: 41.66666667%;\\n }\\n .ant-col-lg-pull-10 {\\n right: 41.66666667%;\\n }\\n .ant-col-lg-offset-10 {\\n margin-left: 41.66666667%;\\n }\\n .ant-col-lg-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n }\\n .ant-col-lg-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n }\\n .ant-col-lg-push-9 {\\n left: 37.5%;\\n }\\n .ant-col-lg-pull-9 {\\n right: 37.5%;\\n }\\n .ant-col-lg-offset-9 {\\n margin-left: 37.5%;\\n }\\n .ant-col-lg-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n }\\n .ant-col-lg-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n }\\n .ant-col-lg-push-8 {\\n left: 33.33333333%;\\n }\\n .ant-col-lg-pull-8 {\\n right: 33.33333333%;\\n }\\n .ant-col-lg-offset-8 {\\n margin-left: 33.33333333%;\\n }\\n .ant-col-lg-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n }\\n .ant-col-lg-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n }\\n .ant-col-lg-push-7 {\\n left: 29.16666667%;\\n }\\n .ant-col-lg-pull-7 {\\n right: 29.16666667%;\\n }\\n .ant-col-lg-offset-7 {\\n margin-left: 29.16666667%;\\n }\\n .ant-col-lg-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n }\\n .ant-col-lg-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n }\\n .ant-col-lg-push-6 {\\n left: 25%;\\n }\\n .ant-col-lg-pull-6 {\\n right: 25%;\\n }\\n .ant-col-lg-offset-6 {\\n margin-left: 25%;\\n }\\n .ant-col-lg-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n }\\n .ant-col-lg-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n }\\n .ant-col-lg-push-5 {\\n left: 20.83333333%;\\n }\\n .ant-col-lg-pull-5 {\\n right: 20.83333333%;\\n }\\n .ant-col-lg-offset-5 {\\n margin-left: 20.83333333%;\\n }\\n .ant-col-lg-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n }\\n .ant-col-lg-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n }\\n .ant-col-lg-push-4 {\\n left: 16.66666667%;\\n }\\n .ant-col-lg-pull-4 {\\n right: 16.66666667%;\\n }\\n .ant-col-lg-offset-4 {\\n margin-left: 16.66666667%;\\n }\\n .ant-col-lg-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n }\\n .ant-col-lg-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n }\\n .ant-col-lg-push-3 {\\n left: 12.5%;\\n }\\n .ant-col-lg-pull-3 {\\n right: 12.5%;\\n }\\n .ant-col-lg-offset-3 {\\n margin-left: 12.5%;\\n }\\n .ant-col-lg-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n }\\n .ant-col-lg-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n }\\n .ant-col-lg-push-2 {\\n left: 8.33333333%;\\n }\\n .ant-col-lg-pull-2 {\\n right: 8.33333333%;\\n }\\n .ant-col-lg-offset-2 {\\n margin-left: 8.33333333%;\\n }\\n .ant-col-lg-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n }\\n .ant-col-lg-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n }\\n .ant-col-lg-push-1 {\\n left: 4.16666667%;\\n }\\n .ant-col-lg-pull-1 {\\n right: 4.16666667%;\\n }\\n .ant-col-lg-offset-1 {\\n margin-left: 4.16666667%;\\n }\\n .ant-col-lg-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n }\\n .ant-col-lg-0 {\\n display: none;\\n }\\n .ant-col-push-0 {\\n left: auto;\\n }\\n .ant-col-pull-0 {\\n right: auto;\\n }\\n .ant-col-lg-push-0 {\\n left: auto;\\n }\\n .ant-col-lg-pull-0 {\\n right: auto;\\n }\\n .ant-col-lg-offset-0 {\\n margin-left: 0;\\n }\\n .ant-col-lg-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n }\\n}\\n@media (min-width: 1200px) {\\n .ant-col-xl-1,\\n .ant-col-xl-2,\\n .ant-col-xl-3,\\n .ant-col-xl-4,\\n .ant-col-xl-5,\\n .ant-col-xl-6,\\n .ant-col-xl-7,\\n .ant-col-xl-8,\\n .ant-col-xl-9,\\n .ant-col-xl-10,\\n .ant-col-xl-11,\\n .ant-col-xl-12,\\n .ant-col-xl-13,\\n .ant-col-xl-14,\\n .ant-col-xl-15,\\n .ant-col-xl-16,\\n .ant-col-xl-17,\\n .ant-col-xl-18,\\n .ant-col-xl-19,\\n .ant-col-xl-20,\\n .ant-col-xl-21,\\n .ant-col-xl-22,\\n .ant-col-xl-23,\\n .ant-col-xl-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n }\\n .ant-col-xl-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n }\\n .ant-col-xl-push-24 {\\n left: 100%;\\n }\\n .ant-col-xl-pull-24 {\\n right: 100%;\\n }\\n .ant-col-xl-offset-24 {\\n margin-left: 100%;\\n }\\n .ant-col-xl-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n }\\n .ant-col-xl-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n }\\n .ant-col-xl-push-23 {\\n left: 95.83333333%;\\n }\\n .ant-col-xl-pull-23 {\\n right: 95.83333333%;\\n }\\n .ant-col-xl-offset-23 {\\n margin-left: 95.83333333%;\\n }\\n .ant-col-xl-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n }\\n .ant-col-xl-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n }\\n .ant-col-xl-push-22 {\\n left: 91.66666667%;\\n }\\n .ant-col-xl-pull-22 {\\n right: 91.66666667%;\\n }\\n .ant-col-xl-offset-22 {\\n margin-left: 91.66666667%;\\n }\\n .ant-col-xl-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n }\\n .ant-col-xl-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n }\\n .ant-col-xl-push-21 {\\n left: 87.5%;\\n }\\n .ant-col-xl-pull-21 {\\n right: 87.5%;\\n }\\n .ant-col-xl-offset-21 {\\n margin-left: 87.5%;\\n }\\n .ant-col-xl-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n }\\n .ant-col-xl-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n }\\n .ant-col-xl-push-20 {\\n left: 83.33333333%;\\n }\\n .ant-col-xl-pull-20 {\\n right: 83.33333333%;\\n }\\n .ant-col-xl-offset-20 {\\n margin-left: 83.33333333%;\\n }\\n .ant-col-xl-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n }\\n .ant-col-xl-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n }\\n .ant-col-xl-push-19 {\\n left: 79.16666667%;\\n }\\n .ant-col-xl-pull-19 {\\n right: 79.16666667%;\\n }\\n .ant-col-xl-offset-19 {\\n margin-left: 79.16666667%;\\n }\\n .ant-col-xl-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n }\\n .ant-col-xl-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n }\\n .ant-col-xl-push-18 {\\n left: 75%;\\n }\\n .ant-col-xl-pull-18 {\\n right: 75%;\\n }\\n .ant-col-xl-offset-18 {\\n margin-left: 75%;\\n }\\n .ant-col-xl-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n }\\n .ant-col-xl-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n }\\n .ant-col-xl-push-17 {\\n left: 70.83333333%;\\n }\\n .ant-col-xl-pull-17 {\\n right: 70.83333333%;\\n }\\n .ant-col-xl-offset-17 {\\n margin-left: 70.83333333%;\\n }\\n .ant-col-xl-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n }\\n .ant-col-xl-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n }\\n .ant-col-xl-push-16 {\\n left: 66.66666667%;\\n }\\n .ant-col-xl-pull-16 {\\n right: 66.66666667%;\\n }\\n .ant-col-xl-offset-16 {\\n margin-left: 66.66666667%;\\n }\\n .ant-col-xl-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n }\\n .ant-col-xl-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n }\\n .ant-col-xl-push-15 {\\n left: 62.5%;\\n }\\n .ant-col-xl-pull-15 {\\n right: 62.5%;\\n }\\n .ant-col-xl-offset-15 {\\n margin-left: 62.5%;\\n }\\n .ant-col-xl-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n }\\n .ant-col-xl-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n }\\n .ant-col-xl-push-14 {\\n left: 58.33333333%;\\n }\\n .ant-col-xl-pull-14 {\\n right: 58.33333333%;\\n }\\n .ant-col-xl-offset-14 {\\n margin-left: 58.33333333%;\\n }\\n .ant-col-xl-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n }\\n .ant-col-xl-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n }\\n .ant-col-xl-push-13 {\\n left: 54.16666667%;\\n }\\n .ant-col-xl-pull-13 {\\n right: 54.16666667%;\\n }\\n .ant-col-xl-offset-13 {\\n margin-left: 54.16666667%;\\n }\\n .ant-col-xl-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n }\\n .ant-col-xl-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n }\\n .ant-col-xl-push-12 {\\n left: 50%;\\n }\\n .ant-col-xl-pull-12 {\\n right: 50%;\\n }\\n .ant-col-xl-offset-12 {\\n margin-left: 50%;\\n }\\n .ant-col-xl-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n }\\n .ant-col-xl-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n }\\n .ant-col-xl-push-11 {\\n left: 45.83333333%;\\n }\\n .ant-col-xl-pull-11 {\\n right: 45.83333333%;\\n }\\n .ant-col-xl-offset-11 {\\n margin-left: 45.83333333%;\\n }\\n .ant-col-xl-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n }\\n .ant-col-xl-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n }\\n .ant-col-xl-push-10 {\\n left: 41.66666667%;\\n }\\n .ant-col-xl-pull-10 {\\n right: 41.66666667%;\\n }\\n .ant-col-xl-offset-10 {\\n margin-left: 41.66666667%;\\n }\\n .ant-col-xl-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n }\\n .ant-col-xl-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n }\\n .ant-col-xl-push-9 {\\n left: 37.5%;\\n }\\n .ant-col-xl-pull-9 {\\n right: 37.5%;\\n }\\n .ant-col-xl-offset-9 {\\n margin-left: 37.5%;\\n }\\n .ant-col-xl-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n }\\n .ant-col-xl-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n }\\n .ant-col-xl-push-8 {\\n left: 33.33333333%;\\n }\\n .ant-col-xl-pull-8 {\\n right: 33.33333333%;\\n }\\n .ant-col-xl-offset-8 {\\n margin-left: 33.33333333%;\\n }\\n .ant-col-xl-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n }\\n .ant-col-xl-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n }\\n .ant-col-xl-push-7 {\\n left: 29.16666667%;\\n }\\n .ant-col-xl-pull-7 {\\n right: 29.16666667%;\\n }\\n .ant-col-xl-offset-7 {\\n margin-left: 29.16666667%;\\n }\\n .ant-col-xl-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n }\\n .ant-col-xl-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n }\\n .ant-col-xl-push-6 {\\n left: 25%;\\n }\\n .ant-col-xl-pull-6 {\\n right: 25%;\\n }\\n .ant-col-xl-offset-6 {\\n margin-left: 25%;\\n }\\n .ant-col-xl-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n }\\n .ant-col-xl-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n }\\n .ant-col-xl-push-5 {\\n left: 20.83333333%;\\n }\\n .ant-col-xl-pull-5 {\\n right: 20.83333333%;\\n }\\n .ant-col-xl-offset-5 {\\n margin-left: 20.83333333%;\\n }\\n .ant-col-xl-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n }\\n .ant-col-xl-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n }\\n .ant-col-xl-push-4 {\\n left: 16.66666667%;\\n }\\n .ant-col-xl-pull-4 {\\n right: 16.66666667%;\\n }\\n .ant-col-xl-offset-4 {\\n margin-left: 16.66666667%;\\n }\\n .ant-col-xl-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n }\\n .ant-col-xl-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n }\\n .ant-col-xl-push-3 {\\n left: 12.5%;\\n }\\n .ant-col-xl-pull-3 {\\n right: 12.5%;\\n }\\n .ant-col-xl-offset-3 {\\n margin-left: 12.5%;\\n }\\n .ant-col-xl-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n }\\n .ant-col-xl-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n }\\n .ant-col-xl-push-2 {\\n left: 8.33333333%;\\n }\\n .ant-col-xl-pull-2 {\\n right: 8.33333333%;\\n }\\n .ant-col-xl-offset-2 {\\n margin-left: 8.33333333%;\\n }\\n .ant-col-xl-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n }\\n .ant-col-xl-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n }\\n .ant-col-xl-push-1 {\\n left: 4.16666667%;\\n }\\n .ant-col-xl-pull-1 {\\n right: 4.16666667%;\\n }\\n .ant-col-xl-offset-1 {\\n margin-left: 4.16666667%;\\n }\\n .ant-col-xl-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n }\\n .ant-col-xl-0 {\\n display: none;\\n }\\n .ant-col-push-0 {\\n left: auto;\\n }\\n .ant-col-pull-0 {\\n right: auto;\\n }\\n .ant-col-xl-push-0 {\\n left: auto;\\n }\\n .ant-col-xl-pull-0 {\\n right: auto;\\n }\\n .ant-col-xl-offset-0 {\\n margin-left: 0;\\n }\\n .ant-col-xl-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n }\\n}\\n@media (min-width: 1600px) {\\n .ant-col-xxl-1,\\n .ant-col-xxl-2,\\n .ant-col-xxl-3,\\n .ant-col-xxl-4,\\n .ant-col-xxl-5,\\n .ant-col-xxl-6,\\n .ant-col-xxl-7,\\n .ant-col-xxl-8,\\n .ant-col-xxl-9,\\n .ant-col-xxl-10,\\n .ant-col-xxl-11,\\n .ant-col-xxl-12,\\n .ant-col-xxl-13,\\n .ant-col-xxl-14,\\n .ant-col-xxl-15,\\n .ant-col-xxl-16,\\n .ant-col-xxl-17,\\n .ant-col-xxl-18,\\n .ant-col-xxl-19,\\n .ant-col-xxl-20,\\n .ant-col-xxl-21,\\n .ant-col-xxl-22,\\n .ant-col-xxl-23,\\n .ant-col-xxl-24 {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n float: left;\\n }\\n .ant-col-xxl-24 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 100%;\\n }\\n .ant-col-xxl-push-24 {\\n left: 100%;\\n }\\n .ant-col-xxl-pull-24 {\\n right: 100%;\\n }\\n .ant-col-xxl-offset-24 {\\n margin-left: 100%;\\n }\\n .ant-col-xxl-order-24 {\\n -webkit-box-ordinal-group: 25;\\n -ms-flex-order: 24;\\n order: 24;\\n }\\n .ant-col-xxl-23 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 95.83333333%;\\n }\\n .ant-col-xxl-push-23 {\\n left: 95.83333333%;\\n }\\n .ant-col-xxl-pull-23 {\\n right: 95.83333333%;\\n }\\n .ant-col-xxl-offset-23 {\\n margin-left: 95.83333333%;\\n }\\n .ant-col-xxl-order-23 {\\n -webkit-box-ordinal-group: 24;\\n -ms-flex-order: 23;\\n order: 23;\\n }\\n .ant-col-xxl-22 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 91.66666667%;\\n }\\n .ant-col-xxl-push-22 {\\n left: 91.66666667%;\\n }\\n .ant-col-xxl-pull-22 {\\n right: 91.66666667%;\\n }\\n .ant-col-xxl-offset-22 {\\n margin-left: 91.66666667%;\\n }\\n .ant-col-xxl-order-22 {\\n -webkit-box-ordinal-group: 23;\\n -ms-flex-order: 22;\\n order: 22;\\n }\\n .ant-col-xxl-21 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 87.5%;\\n }\\n .ant-col-xxl-push-21 {\\n left: 87.5%;\\n }\\n .ant-col-xxl-pull-21 {\\n right: 87.5%;\\n }\\n .ant-col-xxl-offset-21 {\\n margin-left: 87.5%;\\n }\\n .ant-col-xxl-order-21 {\\n -webkit-box-ordinal-group: 22;\\n -ms-flex-order: 21;\\n order: 21;\\n }\\n .ant-col-xxl-20 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 83.33333333%;\\n }\\n .ant-col-xxl-push-20 {\\n left: 83.33333333%;\\n }\\n .ant-col-xxl-pull-20 {\\n right: 83.33333333%;\\n }\\n .ant-col-xxl-offset-20 {\\n margin-left: 83.33333333%;\\n }\\n .ant-col-xxl-order-20 {\\n -webkit-box-ordinal-group: 21;\\n -ms-flex-order: 20;\\n order: 20;\\n }\\n .ant-col-xxl-19 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 79.16666667%;\\n }\\n .ant-col-xxl-push-19 {\\n left: 79.16666667%;\\n }\\n .ant-col-xxl-pull-19 {\\n right: 79.16666667%;\\n }\\n .ant-col-xxl-offset-19 {\\n margin-left: 79.16666667%;\\n }\\n .ant-col-xxl-order-19 {\\n -webkit-box-ordinal-group: 20;\\n -ms-flex-order: 19;\\n order: 19;\\n }\\n .ant-col-xxl-18 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 75%;\\n }\\n .ant-col-xxl-push-18 {\\n left: 75%;\\n }\\n .ant-col-xxl-pull-18 {\\n right: 75%;\\n }\\n .ant-col-xxl-offset-18 {\\n margin-left: 75%;\\n }\\n .ant-col-xxl-order-18 {\\n -webkit-box-ordinal-group: 19;\\n -ms-flex-order: 18;\\n order: 18;\\n }\\n .ant-col-xxl-17 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 70.83333333%;\\n }\\n .ant-col-xxl-push-17 {\\n left: 70.83333333%;\\n }\\n .ant-col-xxl-pull-17 {\\n right: 70.83333333%;\\n }\\n .ant-col-xxl-offset-17 {\\n margin-left: 70.83333333%;\\n }\\n .ant-col-xxl-order-17 {\\n -webkit-box-ordinal-group: 18;\\n -ms-flex-order: 17;\\n order: 17;\\n }\\n .ant-col-xxl-16 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 66.66666667%;\\n }\\n .ant-col-xxl-push-16 {\\n left: 66.66666667%;\\n }\\n .ant-col-xxl-pull-16 {\\n right: 66.66666667%;\\n }\\n .ant-col-xxl-offset-16 {\\n margin-left: 66.66666667%;\\n }\\n .ant-col-xxl-order-16 {\\n -webkit-box-ordinal-group: 17;\\n -ms-flex-order: 16;\\n order: 16;\\n }\\n .ant-col-xxl-15 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 62.5%;\\n }\\n .ant-col-xxl-push-15 {\\n left: 62.5%;\\n }\\n .ant-col-xxl-pull-15 {\\n right: 62.5%;\\n }\\n .ant-col-xxl-offset-15 {\\n margin-left: 62.5%;\\n }\\n .ant-col-xxl-order-15 {\\n -webkit-box-ordinal-group: 16;\\n -ms-flex-order: 15;\\n order: 15;\\n }\\n .ant-col-xxl-14 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 58.33333333%;\\n }\\n .ant-col-xxl-push-14 {\\n left: 58.33333333%;\\n }\\n .ant-col-xxl-pull-14 {\\n right: 58.33333333%;\\n }\\n .ant-col-xxl-offset-14 {\\n margin-left: 58.33333333%;\\n }\\n .ant-col-xxl-order-14 {\\n -webkit-box-ordinal-group: 15;\\n -ms-flex-order: 14;\\n order: 14;\\n }\\n .ant-col-xxl-13 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 54.16666667%;\\n }\\n .ant-col-xxl-push-13 {\\n left: 54.16666667%;\\n }\\n .ant-col-xxl-pull-13 {\\n right: 54.16666667%;\\n }\\n .ant-col-xxl-offset-13 {\\n margin-left: 54.16666667%;\\n }\\n .ant-col-xxl-order-13 {\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n }\\n .ant-col-xxl-12 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 50%;\\n }\\n .ant-col-xxl-push-12 {\\n left: 50%;\\n }\\n .ant-col-xxl-pull-12 {\\n right: 50%;\\n }\\n .ant-col-xxl-offset-12 {\\n margin-left: 50%;\\n }\\n .ant-col-xxl-order-12 {\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n }\\n .ant-col-xxl-11 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 45.83333333%;\\n }\\n .ant-col-xxl-push-11 {\\n left: 45.83333333%;\\n }\\n .ant-col-xxl-pull-11 {\\n right: 45.83333333%;\\n }\\n .ant-col-xxl-offset-11 {\\n margin-left: 45.83333333%;\\n }\\n .ant-col-xxl-order-11 {\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n }\\n .ant-col-xxl-10 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 41.66666667%;\\n }\\n .ant-col-xxl-push-10 {\\n left: 41.66666667%;\\n }\\n .ant-col-xxl-pull-10 {\\n right: 41.66666667%;\\n }\\n .ant-col-xxl-offset-10 {\\n margin-left: 41.66666667%;\\n }\\n .ant-col-xxl-order-10 {\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n }\\n .ant-col-xxl-9 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 37.5%;\\n }\\n .ant-col-xxl-push-9 {\\n left: 37.5%;\\n }\\n .ant-col-xxl-pull-9 {\\n right: 37.5%;\\n }\\n .ant-col-xxl-offset-9 {\\n margin-left: 37.5%;\\n }\\n .ant-col-xxl-order-9 {\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n }\\n .ant-col-xxl-8 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 33.33333333%;\\n }\\n .ant-col-xxl-push-8 {\\n left: 33.33333333%;\\n }\\n .ant-col-xxl-pull-8 {\\n right: 33.33333333%;\\n }\\n .ant-col-xxl-offset-8 {\\n margin-left: 33.33333333%;\\n }\\n .ant-col-xxl-order-8 {\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n }\\n .ant-col-xxl-7 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 29.16666667%;\\n }\\n .ant-col-xxl-push-7 {\\n left: 29.16666667%;\\n }\\n .ant-col-xxl-pull-7 {\\n right: 29.16666667%;\\n }\\n .ant-col-xxl-offset-7 {\\n margin-left: 29.16666667%;\\n }\\n .ant-col-xxl-order-7 {\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n }\\n .ant-col-xxl-6 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 25%;\\n }\\n .ant-col-xxl-push-6 {\\n left: 25%;\\n }\\n .ant-col-xxl-pull-6 {\\n right: 25%;\\n }\\n .ant-col-xxl-offset-6 {\\n margin-left: 25%;\\n }\\n .ant-col-xxl-order-6 {\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n }\\n .ant-col-xxl-5 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 20.83333333%;\\n }\\n .ant-col-xxl-push-5 {\\n left: 20.83333333%;\\n }\\n .ant-col-xxl-pull-5 {\\n right: 20.83333333%;\\n }\\n .ant-col-xxl-offset-5 {\\n margin-left: 20.83333333%;\\n }\\n .ant-col-xxl-order-5 {\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n }\\n .ant-col-xxl-4 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 16.66666667%;\\n }\\n .ant-col-xxl-push-4 {\\n left: 16.66666667%;\\n }\\n .ant-col-xxl-pull-4 {\\n right: 16.66666667%;\\n }\\n .ant-col-xxl-offset-4 {\\n margin-left: 16.66666667%;\\n }\\n .ant-col-xxl-order-4 {\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n }\\n .ant-col-xxl-3 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 12.5%;\\n }\\n .ant-col-xxl-push-3 {\\n left: 12.5%;\\n }\\n .ant-col-xxl-pull-3 {\\n right: 12.5%;\\n }\\n .ant-col-xxl-offset-3 {\\n margin-left: 12.5%;\\n }\\n .ant-col-xxl-order-3 {\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n }\\n .ant-col-xxl-2 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 8.33333333%;\\n }\\n .ant-col-xxl-push-2 {\\n left: 8.33333333%;\\n }\\n .ant-col-xxl-pull-2 {\\n right: 8.33333333%;\\n }\\n .ant-col-xxl-offset-2 {\\n margin-left: 8.33333333%;\\n }\\n .ant-col-xxl-order-2 {\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n }\\n .ant-col-xxl-1 {\\n display: block;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n width: 4.16666667%;\\n }\\n .ant-col-xxl-push-1 {\\n left: 4.16666667%;\\n }\\n .ant-col-xxl-pull-1 {\\n right: 4.16666667%;\\n }\\n .ant-col-xxl-offset-1 {\\n margin-left: 4.16666667%;\\n }\\n .ant-col-xxl-order-1 {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n }\\n .ant-col-xxl-0 {\\n display: none;\\n }\\n .ant-col-push-0 {\\n left: auto;\\n }\\n .ant-col-pull-0 {\\n right: auto;\\n }\\n .ant-col-xxl-push-0 {\\n left: auto;\\n }\\n .ant-col-xxl-pull-0 {\\n right: auto;\\n }\\n .ant-col-xxl-offset-0 {\\n margin-left: 0;\\n }\\n .ant-col-xxl-order-0 {\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ANT_MARK = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar moment = _interopRequireWildcard(require(\"moment\"));\n\nvar _interopDefault = _interopRequireDefault(require(\"../_util/interopDefault\"));\n\nvar _locale = require(\"../modal/locale\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ANT_MARK = 'internalMark';\nexports.ANT_MARK = ANT_MARK;\n\nfunction setMomentLocale(locale) {\n if (locale && locale.locale) {\n (0, _interopDefault[\"default\"])(moment).locale(locale.locale);\n } else {\n (0, _interopDefault[\"default\"])(moment).locale('en');\n }\n}\n\nvar LocaleProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n var _super = _createSuper(LocaleProvider);\n\n function LocaleProvider(props) {\n var _this;\n\n _classCallCheck(this, LocaleProvider);\n\n _this = _super.call(this, props);\n setMomentLocale(props.locale);\n (0, _locale.changeConfirmLocale)(props.locale && props.locale.Modal);\n (0, _warning[\"default\"])(props._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale');\n return _this;\n }\n\n _createClass(LocaleProvider, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n antLocale: _extends(_extends({}, this.props.locale), {\n exist: true\n })\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var locale = this.props.locale;\n\n if (prevProps.locale !== locale) {\n setMomentLocale(locale);\n (0, _locale.changeConfirmLocale)(locale && locale.Modal);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n (0, _locale.changeConfirmLocale)();\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexports[\"default\"] = LocaleProvider;\nLocaleProvider.propTypes = {\n locale: PropTypes.object\n};\nLocaleProvider.defaultProps = {\n locale: {}\n};\nLocaleProvider.childContextTypes = {\n antLocale: PropTypes.object\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = interopDefault;\n\n// https://github.com/moment/moment/issues/3650\n// since we are using ts 3.5.1, it should be safe to remove.\nfunction interopDefault(m) {\n return m[\"default\"] || m;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withConfigConsumer = withConfigConsumer;\nexports.ConfigConsumer = exports.ConfigContext = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createReactContext = _interopRequireDefault(require(\"@ant-design/create-react-context\"));\n\nvar _renderEmpty = _interopRequireDefault(require(\"./renderEmpty\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar ConfigContext = (0, _createReactContext[\"default\"])({\n // We provide a default function for Context without provider\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return \"ant-\".concat(suffixCls);\n },\n renderEmpty: _renderEmpty[\"default\"]\n});\nexports.ConfigContext = ConfigContext;\nvar ConfigConsumer = ConfigContext.Consumer;\nexports.ConfigConsumer = ConfigConsumer;\n\nfunction withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n return SFC;\n };\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\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-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.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 = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _empty = _interopRequireDefault(require(\"../empty\"));\n\nvar _ = require(\".\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar renderEmpty = function renderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(_.ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(_empty[\"default\"], {\n image: _empty[\"default\"].PRESENTED_IMAGE_SIMPLE\n });\n\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(_empty[\"default\"], {\n image: _empty[\"default\"].PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n\n default:\n return /*#__PURE__*/React.createElement(_empty[\"default\"], null);\n }\n });\n};\n\nvar _default = renderEmpty;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _empty = _interopRequireDefault(require(\"./empty\"));\n\nvar _simple = _interopRequireDefault(require(\"./simple\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(_empty[\"default\"], null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(_simple[\"default\"], null);\n\nvar Empty = function Empty(props) {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var className = props.className,\n customizePrefixCls = props.prefixCls,\n _props$image = props.image,\n image = _props$image === void 0 ? defaultEmptyImg : _props$image,\n description = props.description,\n children = props.children,\n imageStyle = props.imageStyle,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], {\n componentName: \"Empty\"\n }, function (locale) {\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : locale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: (0, _classnames[\"default\"])(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"p\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n });\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nvar _default = Empty;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar Empty = function Empty() {\n return /*#__PURE__*/React.createElement(\"svg\", {\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};\n\nvar _default = Empty;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar Simple = function Simple() {\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: \"#F5F5F5\",\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n stroke: \"#D9D9D9\"\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: \"#FAFAFA\"\n }))));\n};\n\nvar _default = Simple;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcPagination = _interopRequireDefault(require(\"rc-pagination\"));\n\nvar _en_US = _interopRequireDefault(require(\"rc-pagination/lib/locale/en_US\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MiniSelect = _interopRequireDefault(require(\"./MiniSelect\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _select = _interopRequireDefault(require(\"../select\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n var _super = _createSuper(Pagination);\n\n function Pagination() {\n var _this;\n\n _classCallCheck(this, Pagination);\n\n _this = _super.apply(this, arguments);\n\n _this.getIconsProps = function (prefixCls) {\n var prevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"left\"\n }));\n var nextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"right\"\n }));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-item-link-icon\"),\n type: \"double-left\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\")));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-item-link-icon\"),\n type: \"double-right\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\")));\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n\n _this.renderPagination = function (contextLocale) {\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\"]);\n\n var locale = _extends(_extends({}, contextLocale), customLocale);\n\n var isSmall = size === 'small';\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n return /*#__PURE__*/React.createElement(_rcPagination[\"default\"], _extends({}, restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls\n }, _this.getIconsProps(prefixCls), {\n className: (0, _classnames[\"default\"])(className, {\n mini: isSmall\n }),\n selectComponentClass: isSmall ? _MiniSelect[\"default\"] : _select[\"default\"],\n locale: locale\n }));\n });\n };\n\n return _this;\n }\n\n _createClass(Pagination, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], {\n componentName: \"Pagination\",\n defaultLocale: _en_US[\"default\"]\n }, this.renderPagination);\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nexports[\"default\"] = Pagination;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _select = _interopRequireDefault(require(\"../select\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar MiniSelect = /*#__PURE__*/function (_React$Component) {\n _inherits(MiniSelect, _React$Component);\n\n var _super = _createSuper(MiniSelect);\n\n function MiniSelect() {\n _classCallCheck(this, MiniSelect);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(MiniSelect, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_select[\"default\"], _extends({\n size: \"small\"\n }, this.props));\n }\n }]);\n\n return MiniSelect;\n}(React.Component);\n\nexports[\"default\"] = MiniSelect;\nMiniSelect.Option = _select[\"default\"].Option;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _PropTypes = require('./PropTypes');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n miniStore: this.props.store\n };\n }\n }, {\n key: 'render',\n value: function render() {\n return _react.Children.only(this.props.children);\n }\n }]);\n\n return Provider;\n}(_react.Component);\n\nProvider.propTypes = {\n store: _PropTypes.storeShape.isRequired\n};\nProvider.childContextTypes = {\n miniStore: _PropTypes.storeShape.isRequired\n};\nexports.default = Provider;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = connect;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _shallowequal = require('shallowequal');\n\nvar _shallowequal2 = _interopRequireDefault(_shallowequal);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _reactLifecyclesCompat = require('react-lifecycles-compat');\n\nvar _PropTypes = require('./PropTypes');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction isStateless(Component) {\n return !Component.prototype.render;\n}\n\nvar defaultMapStateToProps = function defaultMapStateToProps() {\n return {};\n};\n\nfunction connect(mapStateToProps) {\n var shouldSubscribe = !!mapStateToProps;\n var finnalMapStateToProps = mapStateToProps || defaultMapStateToProps;\n\n return function wrapWithConnect(WrappedComponent) {\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n _createClass(Connect, null, [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, prevState) {\n // using ownProps\n if (mapStateToProps && mapStateToProps.length === 2 && props !== prevState.props) {\n return {\n subscribed: finnalMapStateToProps(prevState.store.getState(), props),\n props: props\n };\n }\n return { props: props };\n }\n }]);\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, (Connect.__proto__ || Object.getPrototypeOf(Connect)).call(this, props, context));\n\n _this.handleChange = function () {\n if (!_this.unsubscribe) {\n return;\n }\n var nextState = finnalMapStateToProps(_this.store.getState(), _this.props);\n _this.setState({ subscribed: nextState });\n };\n\n _this.store = context.miniStore;\n _this.state = {\n subscribed: finnalMapStateToProps(_this.store.getState(), props),\n store: _this.store,\n props: props\n };\n return _this;\n }\n\n _createClass(Connect, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.trySubscribe();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.tryUnsubscribe();\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _shallowequal2.default)(this.props, nextProps) || !(0, _shallowequal2.default)(this.state.subscribed, nextState.subscribed);\n }\n }, {\n key: 'trySubscribe',\n value: function trySubscribe() {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n }\n }, {\n key: 'tryUnsubscribe',\n value: function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n return this.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props, this.state.subscribed, {\n store: this.store\n });\n\n if (!isStateless(WrappedComponent)) {\n props = _extends({}, props, {\n ref: function ref(c) {\n return _this2.wrappedInstance = c;\n }\n });\n }\n\n return _react2.default.createElement(WrappedComponent, props);\n }\n }]);\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n Connect.contextTypes = {\n miniStore: _PropTypes.storeShape.isRequired\n };\n\n\n (0, _reactLifecyclesCompat.polyfill)(Connect);\n\n return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent);\n };\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nexports.default = create;\nfunction create(initialState) {\n var state = initialState;\n var listeners = [];\n\n function setState(partial) {\n state = _extends({}, state, partial);\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n }\n\n function getState() {\n return state;\n }\n\n function subscribe(listener) {\n listeners.push(listener);\n\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n\n return {\n setState: setState,\n getState: getState,\n subscribe: subscribe\n };\n}","// mutationobserver-shim v0.3.3 (github.com/megawac/MutationObserver.js)\n// Authors: Graeme Yeates (github.com/megawac) \n/*\n Shim for MutationObserver interface\n Author: Graeme Yeates (github.com/megawac)\n Repository: https://github.com/megawac/MutationObserver.js\n License: WTFPL V2, 2004 (wtfpl.net).\n Though credit and staring the repo will make me feel pretty, you can modify and redistribute as you please.\n Attempts to follow spec (https://www.w3.org/TR/dom/#mutation-observers) as closely as possible for native javascript\n See https://github.com/WebKit/webkit/blob/master/Source/WebCore/dom/MutationObserver.cpp for current webkit source c++ implementation\n*/\nwindow.MutationObserver||(window.MutationObserver=function(y){function z(a){this.i=[];this.m=a}function K(a){(function c(){var d=a.takeRecords();d.length&&a.m(d,a);a.h=setTimeout(c,z._period)})()}function r(a){var b={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null},c;for(c in a)b[c]!==y&&a[c]!==y&&(b[c]=a[c]);return b}function L(a,b){var c=E(a,b);return function(d){var f=d.length;b.a&&3===a.nodeType&&\na.nodeValue!==c.a&&d.push(new r({type:\"characterData\",target:a,oldValue:c.a}));b.b&&c.b&&C(d,a,c.b,b.f);if(b.c||b.g)var m=M(d,a,c,b);if(m||d.length!==f)c=E(a,b)}}function N(a,b){return b.value}function O(a,b){return\"style\"!==b.name?b.value:a.style.cssText}function C(a,b,c,d){for(var f={},m=b.attributes,k,g,p=m.length;p--;)k=m[p],g=k.name,d&&d[g]===y||(F(b,k)!==c[g]&&a.push(r({type:\"attributes\",target:b,attributeName:g,oldValue:c[g],attributeNamespace:k.namespaceURI})),f[g]=!0);for(g in c)f[g]||a.push(r({target:b,\ntype:\"attributes\",attributeName:g,oldValue:c[g]}))}function M(a,b,c,d){function f(g,p,t,q,x){var A=g.length-1;x=-~((A-x)/2);for(var h,l,e;e=g.pop();)h=t[e.j],l=q[e.l],d.c&&x&&Math.abs(e.j-e.l)>=A&&(a.push(r({type:\"childList\",target:p,addedNodes:[h],removedNodes:[h],nextSibling:h.nextSibling,previousSibling:h.previousSibling})),x--),d.b&&l.b&&C(a,h,l.b,d.f),d.a&&3===h.nodeType&&h.nodeValue!==l.a&&a.push(r({type:\"characterData\",target:h,oldValue:l.a})),d.g&&m(h,l)}function m(g,p){for(var t=g.childNodes,\nq=p.c,x=t.length,A=q?q.length:0,h,l,e,n,v,B=0,w=0,u=0;w<x||u<A;)n=t[w],v=(e=q[u])&&e.node,n===v?(d.b&&e.b&&C(a,n,e.b,d.f),d.a&&e.a!==y&&n.nodeValue!==e.a&&a.push(r({type:\"characterData\",target:n,oldValue:e.a})),l&&f(l,g,t,q,B),d.g&&(n.childNodes.length||e.c&&e.c.length)&&m(n,e),w++,u++):(k=!0,h||(h={},l=[]),n&&(h[e=G(n)]||(h[e]=!0,-1===(e=H(q,n,u,\"node\"))?d.c&&(a.push(r({type:\"childList\",target:g,addedNodes:[n],nextSibling:n.nextSibling,previousSibling:n.previousSibling})),B++):l.push({j:w,l:e})),\nw++),v&&v!==t[w]&&(h[e=G(v)]||(h[e]=!0,-1===(e=H(t,v,w))?d.c&&(a.push(r({type:\"childList\",target:p.node,removedNodes:[v],nextSibling:q[u+1],previousSibling:q[u-1]})),B--):l.push({j:e,l:u})),u++));l&&f(l,g,t,q,B)}var k;m(b,c);return k}function E(a,b){var c=!0;return function m(f){var k={node:f};!b.a||3!==f.nodeType&&8!==f.nodeType?(b.b&&c&&1===f.nodeType&&(k.b=I(f.attributes,function(g,p){if(!b.f||b.f[p.name])g[p.name]=F(f,p);return g},{})),c&&(b.c||b.a||b.b&&b.g)&&(k.c=P(f.childNodes,m)),c=b.g):k.a=\nf.nodeValue;return k}(a)}function G(a){try{return a.id||(a.mo_id=a.mo_id||J++)}catch(b){try{return a.nodeValue}catch(c){return J++}}}function P(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=b(a[d],d,a);return c}function I(a,b,c){for(var d=0;d<a.length;d++)c=b(c,a[d],d,a);return c}function H(a,b,c,d){for(;c<a.length;c++)if((d?a[c][d]:a[c])===b)return c;return-1}z._period=30;z.prototype={observe:function(a,b){for(var c={b:!!(b.attributes||b.attributeFilter||b.attributeOldValue),c:!!b.childList,g:!!b.subtree,\na:!(!b.characterData&&!b.characterDataOldValue)},d=this.i,f=0;f<d.length;f++)d[f].s===a&&d.splice(f,1);b.attributeFilter&&(c.f=I(b.attributeFilter,function(m,k){m[k]=!0;return m},{}));d.push({s:a,o:L(a,c)});this.h||K(this)},takeRecords:function(){for(var a=[],b=this.i,c=0;c<b.length;c++)b[c].o(a);return a},disconnect:function(){this.i=[];clearTimeout(this.h);this.h=null}};var D=document.createElement(\"i\");D.style.top=0;var F=(D=\"null\"!=D.attributes.style.value)?N:O,J=1;return z}(void 0));\n//# sourceMappingURL=mutationobserver.map\n","'use strict';\n\nvar util = require('./util');\n\nfunction scrollIntoView(elem, container, config) {\n config = config || {};\n // document 归一化到 window\n if (container.nodeType === 9) {\n container = util.getWindow(container);\n }\n\n var allowHorizontalScroll = config.allowHorizontalScroll;\n var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n var alignWithTop = config.alignWithTop;\n var alignWithLeft = config.alignWithLeft;\n var offsetTop = config.offsetTop || 0;\n var offsetLeft = config.offsetLeft || 0;\n var offsetBottom = config.offsetBottom || 0;\n var offsetRight = config.offsetRight || 0;\n\n allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n var isWin = util.isWindow(container);\n var elemOffset = util.offset(elem);\n var eh = util.outerHeight(elem);\n var ew = util.outerWidth(elem);\n var containerOffset = undefined;\n var ch = undefined;\n var cw = undefined;\n var containerScroll = undefined;\n var diffTop = undefined;\n var diffBottom = undefined;\n var win = undefined;\n var winScroll = undefined;\n var ww = undefined;\n var wh = undefined;\n\n if (isWin) {\n win = container;\n wh = util.height(win);\n ww = util.width(win);\n winScroll = {\n left: util.scrollLeft(win),\n top: util.scrollTop(win)\n };\n // elem 相对 container 可视视窗的距离\n diffTop = {\n left: elemOffset.left - winScroll.left - offsetLeft,\n top: elemOffset.top - winScroll.top - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n };\n containerScroll = winScroll;\n } else {\n containerOffset = util.offset(container);\n ch = container.clientHeight;\n cw = container.clientWidth;\n containerScroll = {\n left: container.scrollLeft,\n top: container.scrollTop\n };\n // elem 相对 container 可视视窗的距离\n // 注意边框, offset 是边框到根节点\n diffTop = {\n left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n };\n }\n\n if (diffTop.top < 0 || diffBottom.top > 0) {\n // 强制向上\n if (alignWithTop === true) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else if (alignWithTop === false) {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n } else {\n // 自动调整\n if (diffTop.top < 0) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n if (alignWithTop) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n }\n\n if (allowHorizontalScroll) {\n if (diffTop.left < 0 || diffBottom.left > 0) {\n // 强制向上\n if (alignWithLeft === true) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else if (alignWithLeft === false) {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n } else {\n // 自动调整\n if (diffTop.left < 0) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n if (alignWithLeft) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n }\n }\n}\n\nmodule.exports = scrollIntoView;","'use strict';\n\nvar _extends = Object.assign || 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; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n var box = undefined;\n var x = undefined;\n var y = undefined;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = 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 var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle_) {\n var val = '';\n var d = elem.ownerDocument;\n var 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\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX = undefined;\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name = undefined;\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 var value = 0;\n var prop = undefined;\n var j = undefined;\n var i = undefined;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = undefined;\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\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 == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n domUtils['doc' + name] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement['scroll' + name],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body['scroll' + name], domUtils['viewport' + name](d));\n };\n\n domUtils['viewport' + name] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = 'client' + name;\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem, computedStyle);\n var cssBoxValue = 0;\n if (borderBoxValue == null || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n }\n return cssBoxValue;\n }\n if (borderBoxValueOrIsBorderBox) {\n var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);\n return val + (extra === BORDER_INDEX ? 0 : padding);\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n var val = undefined;\n var args = arguments;\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\nfunction css(el, name, v) {\n var value = v;\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value += 'px';\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils['outer' + first] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, val) {\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var old = getOffset(elem);\n var ret = {};\n var current = undefined;\n var key = undefined;\n\n for (key in offset) {\n if (offset.hasOwnProperty(key)) {\n current = parseFloat(css(elem, key)) || 0;\n ret[key] = current + offset[key] - old[key];\n }\n }\n css(elem, ret);\n}\n\nmodule.exports = _extends({\n getWindow: function getWindow(node) {\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value) {\n if (typeof value !== 'undefined') {\n setOffset(el, value);\n } else {\n return getOffset(el);\n }\n },\n\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var ret = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n scrollLeft: function scrollLeft(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollLeft(w);\n }\n window.scrollTo(v, getScrollTop(w));\n } else {\n if (v === undefined) {\n return w.scrollLeft;\n }\n w.scrollLeft = v;\n }\n },\n scrollTop: function scrollTop(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollTop(w);\n }\n window.scrollTo(getScrollLeft(w), v);\n } else {\n if (v === undefined) {\n return w.scrollTop;\n }\n w.scrollTop = v;\n }\n },\n\n viewportWidth: 0,\n viewportHeight: 0\n}, domUtils);","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.responsiveMap = exports.responsiveArray = void 0;\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\nfunction _extends() { _extends = Object.assign || 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); }\n\n// matchMedia polyfill for\n// https://github.com/WickyNilliams/enquire.js/issues/82\nvar enquire; // TODO: Will be removed in antd 4.0 because we will no longer support ie9\n\nif (typeof window !== 'undefined') {\n var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) {\n return {\n media: mediaQuery,\n matches: false,\n addListener: function addListener() {},\n removeListener: function removeListener() {}\n };\n }; // ref: https://github.com/ant-design/ant-design/issues/18774\n\n\n if (!window.matchMedia) window.matchMedia = matchMediaPolyfill; // eslint-disable-next-line global-require\n\n enquire = require('enquire.js');\n}\n\nvar responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexports.responsiveArray = responsiveArray;\nvar responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nexports.responsiveMap = responsiveMap;\nvar subscribers = [];\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n\n if (subscribers.length < 1) {\n return false;\n }\n\n subscribers.forEach(function (item) {\n item.func(screens);\n });\n return true;\n },\n subscribe: function subscribe(func) {\n if (subscribers.length === 0) {\n this.register();\n }\n\n var token = (++subUid).toString();\n subscribers.push({\n token: token,\n func: func\n });\n func(screens);\n return token;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers = subscribers.filter(function (item) {\n return item.token !== token;\n });\n\n if (subscribers.length === 0) {\n this.unregister();\n }\n },\n unregister: function unregister() {\n Object.keys(responsiveMap).map(function (screen) {\n return enquire.unregister(responsiveMap[screen]);\n });\n },\n register: function register() {\n var _this = this;\n\n Object.keys(responsiveMap).map(function (screen) {\n return enquire.register(responsiveMap[screen], {\n match: function match() {\n var pointMap = _extends(_extends({}, screens), _defineProperty({}, screen, true));\n\n _this.dispatch(pointMap);\n },\n unmatch: function unmatch() {\n var pointMap = _extends(_extends({}, screens), _defineProperty({}, screen, false));\n\n _this.dispatch(pointMap);\n },\n // Keep a empty destory to avoid triggering unmatch when unregister\n destroy: function destroy() {}\n });\n });\n }\n};\nvar _default = responsiveObserve;\nexports[\"default\"] = _default;","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Meta = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _grid = require(\"../grid\");\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _reactNode = require(\"../_util/reactNode\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var classString = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-item-meta\"), className);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-content\")\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: \"\".concat(prefixCls, \"-item-meta-title\")\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-description\")\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-avatar\")\n }, avatar), (title || description) && content);\n });\n};\n\nexports.Meta = Meta;\n\nfunction getGrid(grid, t) {\n return grid[t] && Math.floor(24 / grid[t]);\n}\n\nvar Item = /*#__PURE__*/function (_React$Component) {\n _inherits(Item, _React$Component);\n\n var _super = _createSuper(Item);\n\n function Item() {\n var _this;\n\n _classCallCheck(this, Item);\n\n _this = _super.apply(this, arguments);\n\n _this.renderItem = function (_ref2) {\n var getPrefixCls = _ref2.getPrefixCls;\n var _this$context = _this.context,\n grid = _this$context.grid,\n itemLayout = _this$context.itemLayout;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n children = _a.children,\n actions = _a.actions,\n extra = _a.extra,\n className = _a.className,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\"]);\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var actionsContent = actions && actions.length > 0 && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-item-action\"),\n key: \"actions\"\n }, actions.map(function (action, i) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: \"\".concat(prefixCls, \"-item-action-\").concat(i)\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: \"\".concat(prefixCls, \"-item-action-split\")\n }))\n );\n }));\n var Tag = grid ? 'div' : 'li';\n var itemChildren = /*#__PURE__*/React.createElement(Tag, _extends({}, others, {\n // `li` element `onCopy` prop args is not same as `div`\n className: (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-item\"), className, _defineProperty({}, \"\".concat(prefixCls, \"-item-no-flex\"), !_this.isFlexMode()))\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-main\"),\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-extra\"),\n key: \"extra\"\n }, extra)] : [children, actionsContent, (0, _reactNode.cloneElement)(extra, {\n key: 'extra'\n })]);\n return grid ? /*#__PURE__*/React.createElement(_grid.Col, {\n span: getGrid(grid, 'column'),\n xs: getGrid(grid, 'xs'),\n sm: getGrid(grid, 'sm'),\n md: getGrid(grid, 'md'),\n lg: getGrid(grid, 'lg'),\n xl: getGrid(grid, 'xl'),\n xxl: getGrid(grid, 'xxl')\n }, itemChildren) : itemChildren;\n };\n\n return _this;\n }\n\n _createClass(Item, [{\n key: \"isItemContainsTextNodeAndNotSingular\",\n value: function isItemContainsTextNodeAndNotSingular() {\n var children = this.props.children;\n var result;\n React.Children.forEach(children, function (element) {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && React.Children.count(children) > 1;\n }\n }, {\n key: \"isFlexMode\",\n value: function isFlexMode() {\n var extra = this.props.extra;\n var itemLayout = this.context.itemLayout;\n\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n\n return !this.isItemContainsTextNodeAndNotSingular();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderItem);\n }\n }]);\n\n return Item;\n}(React.Component);\n\nexports[\"default\"] = Item;\nItem.Meta = Meta;\nItem.contextTypes = {\n grid: PropTypes.any,\n itemLayout: PropTypes.string\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cloneElement = cloneElement;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n// eslint-disable-next-line import/prefer-default-export\nfunction cloneElement(element) {\n if (! /*#__PURE__*/React.isValidElement(element)) return element;\n\n for (var _len = arguments.length, restArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restArgs[_key - 1] = arguments[_key];\n }\n\n return React.cloneElement.apply(React, [element].concat(restArgs));\n}","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n@-webkit-keyframes antCheckboxEffect {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(1.6);\\n transform: scale(1.6);\\n opacity: 0;\\n }\\n}\\n@keyframes antCheckboxEffect {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(1.6);\\n transform: scale(1.6);\\n opacity: 0;\\n }\\n}\\n.ant-checkbox {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n top: -0.09em;\\n display: inline-block;\\n line-height: 1;\\n white-space: nowrap;\\n vertical-align: middle;\\n outline: none;\\n cursor: pointer;\\n}\\n.ant-checkbox-wrapper:hover .ant-checkbox-inner,\\n.ant-checkbox:hover .ant-checkbox-inner,\\n.ant-checkbox-input:focus + .ant-checkbox-inner {\\n border-color: #1890ff;\\n}\\n.ant-checkbox-checked::after {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 1px solid #1890ff;\\n border-radius: 2px;\\n visibility: hidden;\\n -webkit-animation: antCheckboxEffect 0.36s ease-in-out;\\n animation: antCheckboxEffect 0.36s ease-in-out;\\n -webkit-animation-fill-mode: backwards;\\n animation-fill-mode: backwards;\\n content: '';\\n}\\n.ant-checkbox:hover::after,\\n.ant-checkbox-wrapper:hover .ant-checkbox::after {\\n visibility: visible;\\n}\\n.ant-checkbox-inner {\\n position: relative;\\n top: 0;\\n left: 0;\\n display: block;\\n width: 16px;\\n height: 16px;\\n background-color: #fff;\\n border: 1px solid #d9d9d9;\\n border-radius: 2px;\\n border-collapse: separate;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-checkbox-inner::after {\\n position: absolute;\\n top: 50%;\\n left: 22%;\\n display: table;\\n width: 5.71428571px;\\n height: 9.14285714px;\\n border: 2px solid #fff;\\n border-top: 0;\\n border-left: 0;\\n -webkit-transform: rotate(45deg) scale(0) translate(-50%, -50%);\\n -ms-transform: rotate(45deg) scale(0) translate(-50%, -50%);\\n transform: rotate(45deg) scale(0) translate(-50%, -50%);\\n opacity: 0;\\n -webkit-transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\\n transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;\\n content: ' ';\\n}\\n.ant-checkbox-input {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n width: 100%;\\n height: 100%;\\n cursor: pointer;\\n opacity: 0;\\n}\\n.ant-checkbox-checked .ant-checkbox-inner::after {\\n position: absolute;\\n display: table;\\n border: 2px solid #fff;\\n border-top: 0;\\n border-left: 0;\\n -webkit-transform: rotate(45deg) scale(1) translate(-50%, -50%);\\n -ms-transform: rotate(45deg) scale(1) translate(-50%, -50%);\\n transform: rotate(45deg) scale(1) translate(-50%, -50%);\\n opacity: 1;\\n -webkit-transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\\n transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;\\n content: ' ';\\n}\\n.ant-checkbox-checked .ant-checkbox-inner {\\n background-color: #1890ff;\\n border-color: #1890ff;\\n}\\n.ant-checkbox-disabled {\\n cursor: not-allowed;\\n}\\n.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {\\n border-color: rgba(0, 0, 0, 0.25);\\n -webkit-animation-name: none;\\n animation-name: none;\\n}\\n.ant-checkbox-disabled .ant-checkbox-input {\\n cursor: not-allowed;\\n}\\n.ant-checkbox-disabled .ant-checkbox-inner {\\n background-color: #f5f5f5;\\n border-color: #d9d9d9 !important;\\n}\\n.ant-checkbox-disabled .ant-checkbox-inner::after {\\n border-color: #f5f5f5;\\n border-collapse: separate;\\n -webkit-animation-name: none;\\n animation-name: none;\\n}\\n.ant-checkbox-disabled + span {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\n.ant-checkbox-disabled:hover::after,\\n.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {\\n visibility: hidden;\\n}\\n.ant-checkbox-wrapper {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n display: inline-block;\\n line-height: unset;\\n cursor: pointer;\\n}\\n.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {\\n cursor: not-allowed;\\n}\\n.ant-checkbox-wrapper + .ant-checkbox-wrapper {\\n margin-left: 8px;\\n}\\n.ant-checkbox + span {\\n padding-right: 8px;\\n padding-left: 8px;\\n}\\n.ant-checkbox-group {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n display: inline-block;\\n}\\n.ant-checkbox-group-item {\\n display: inline-block;\\n margin-right: 8px;\\n}\\n.ant-checkbox-group-item:last-child {\\n margin-right: 0;\\n}\\n.ant-checkbox-group-item + .ant-checkbox-group-item {\\n margin-left: 0;\\n}\\n.ant-checkbox-indeterminate .ant-checkbox-inner {\\n background-color: #fff;\\n border-color: #d9d9d9;\\n}\\n.ant-checkbox-indeterminate .ant-checkbox-inner::after {\\n top: 50%;\\n left: 50%;\\n width: 8px;\\n height: 8px;\\n background-color: #1890ff;\\n border: 0;\\n -webkit-transform: translate(-50%, -50%) scale(1);\\n -ms-transform: translate(-50%, -50%) scale(1);\\n transform: translate(-50%, -50%) scale(1);\\n opacity: 1;\\n content: ' ';\\n}\\n.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {\\n background-color: rgba(0, 0, 0, 0.25);\\n border-color: rgba(0, 0, 0, 0.25);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _shallowequal = _interopRequireDefault(require(\"shallowequal\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar CheckboxGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(CheckboxGroup, _React$Component);\n\n var _super = _createSuper(CheckboxGroup);\n\n function CheckboxGroup(props) {\n var _this;\n\n _classCallCheck(this, CheckboxGroup);\n\n _this = _super.call(this, props);\n\n _this.cancelValue = function (value) {\n _this.setState(function (_ref) {\n var registeredValues = _ref.registeredValues;\n return {\n registeredValues: registeredValues.filter(function (val) {\n return val !== value;\n })\n };\n });\n };\n\n _this.registerValue = function (value) {\n _this.setState(function (_ref2) {\n var registeredValues = _ref2.registeredValues;\n return {\n registeredValues: [].concat(_toConsumableArray(registeredValues), [value])\n };\n });\n };\n\n _this.toggleOption = function (option) {\n var registeredValues = _this.state.registeredValues;\n\n var optionIndex = _this.state.value.indexOf(option.value);\n\n var value = _toConsumableArray(_this.state.value);\n\n if (optionIndex === -1) {\n value.push(option.value);\n } else {\n value.splice(optionIndex, 1);\n }\n\n if (!('value' in _this.props)) {\n _this.setState({\n value: value\n });\n }\n\n var onChange = _this.props.onChange;\n\n if (onChange) {\n var options = _this.getOptions();\n\n onChange(value.filter(function (val) {\n return registeredValues.indexOf(val) !== -1;\n }).sort(function (a, b) {\n var indexA = options.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = options.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n }\n };\n\n _this.renderGroup = function (_ref3) {\n var getPrefixCls = _ref3.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props,\n state = _assertThisInitialize.state;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n options = props.options,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"options\"]);\n\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = (0, _omit[\"default\"])(restProps, ['children', 'defaultValue', 'value', 'onChange', 'disabled']);\n var children = props.children;\n\n if (options && options.length > 0) {\n children = _this.getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(_Checkbox[\"default\"], {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : props.disabled,\n value: option.value,\n checked: state.value.indexOf(option.value) !== -1,\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\")\n }, option.label);\n });\n }\n\n var classString = (0, _classnames[\"default\"])(groupPrefixCls, className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, domProps), children);\n };\n\n _this.state = {\n value: props.value || props.defaultValue || [],\n registeredValues: []\n };\n return _this;\n }\n\n _createClass(CheckboxGroup, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n checkboxGroup: {\n toggleOption: this.toggleOption,\n value: this.state.value,\n disabled: this.props.disabled,\n name: this.props.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: this.registerValue,\n cancelValue: this.cancelValue\n }\n };\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _shallowequal[\"default\"])(this.props, nextProps) || !(0, _shallowequal[\"default\"])(this.state, nextState);\n }\n }, {\n key: \"getOptions\",\n value: function getOptions() {\n var options = this.props.options; // https://github.com/Microsoft/TypeScript/issues/7960\n\n return options.map(function (option) {\n if (typeof option === 'string') {\n return {\n label: option,\n value: option\n };\n }\n\n return option;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderGroup);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value || []\n };\n }\n\n return null;\n }\n }]);\n\n return CheckboxGroup;\n}(React.Component);\n\nCheckboxGroup.defaultProps = {\n options: []\n};\nCheckboxGroup.propTypes = {\n defaultValue: PropTypes.array,\n value: PropTypes.array,\n options: PropTypes.array.isRequired,\n onChange: PropTypes.func\n};\nCheckboxGroup.childContextTypes = {\n checkboxGroup: PropTypes.any\n};\n(0, _reactLifecyclesCompat.polyfill)(CheckboxGroup);\nvar _default = CheckboxGroup;\nexports[\"default\"] = _default;","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-back-top {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: fixed;\\n right: 100px;\\n bottom: 50px;\\n z-index: 10;\\n width: 40px;\\n height: 40px;\\n cursor: pointer;\\n}\\n.ant-back-top-content {\\n width: 40px;\\n height: 40px;\\n overflow: hidden;\\n color: #fff;\\n text-align: center;\\n background-color: rgba(0, 0, 0, 0.45);\\n border-radius: 20px;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-back-top-content:hover {\\n background-color: rgba(0, 0, 0, 0.65);\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-back-top-icon {\\n width: 14px;\\n height: 16px;\\n margin: 12px auto;\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAABGdBTUEAALGPC/xhBQAAAbtJREFUWAntmMtKw0AUhhMvS5cuxILgQlRUpIggIoKIIoigG1eC+AA+jo+i6FIXBfeuXIgoeKVeitVWJX5HWhhDksnUpp3FDPyZk3Nm5nycmZKkXhAEOXSA3lG7muTeRzmfy6HneUvIhnYkQK+Q9NhAA0Opg0vBEhjBKHiyb8iGMyQMOYuK41BcBSypAL+MYXSKjtFAW7EAGEO3qN4uMQbbAkXiSfRQJ1H6a+yhlkKRcAoVFYiweYNjtCVQJJpBz2GCiPt7fBOZQpFgDpUikse5HgnkM4Fi4QX0Fpc5wf9EbLqpUCy4jMoJSXWhFwbMNgWKhVbRhy5jirhs9fy/oFhgHVVTJEs7RLZ8sSEoJm6iz7SZDMbJ+/OKERQTttCXQRLToRUmrKWCYuA2+jbN0MB4OQobYShfdTCgn/sL1K36M7TLrN3n+758aPy2rrpR6+/od5E8tf/A1uLS9aId5T7J3CNYihkQ4D9PiMdMC7mp4rjB9kjFjZp8BlnVHJBuO1yFXIV0FdDF3RlyFdJVQBdv5AxVdIsq8apiZ2PyYO1EVykesGfZEESsCkweyR8MUW+V8uJ1gkYipmpdP1pm2aJVPEGzAAAAAElFTkSuQmCC) 100%/100% no-repeat;\\n}\\n@media screen and (max-width: 768px) {\\n .ant-back-top {\\n right: 60px;\\n }\\n}\\n@media screen and (max-width: 480px) {\\n .ant-back-top {\\n right: 20px;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-layout {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-flex: 1;\\n -ms-flex: auto;\\n flex: auto;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n /* fix firefox can't set height smaller than content on flex item */\\n min-height: 0;\\n background: #f0f2f5;\\n}\\n.ant-layout,\\n.ant-layout * {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.ant-layout.ant-layout-has-sider {\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n}\\n.ant-layout.ant-layout-has-sider > .ant-layout,\\n.ant-layout.ant-layout-has-sider > .ant-layout-content {\\n overflow-x: hidden;\\n}\\n.ant-layout-header,\\n.ant-layout-footer {\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n}\\n.ant-layout-header {\\n height: 64px;\\n padding: 0 50px;\\n line-height: 64px;\\n background: #001529;\\n}\\n.ant-layout-footer {\\n padding: 24px 50px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n background: #f0f2f5;\\n}\\n.ant-layout-content {\\n -webkit-box-flex: 1;\\n -ms-flex: auto;\\n flex: auto;\\n /* fix firefox can't set height smaller than content on flex item */\\n min-height: 0;\\n}\\n.ant-layout-sider {\\n position: relative;\\n /* fix firefox can't set width smaller than content on flex item */\\n min-width: 0;\\n background: #001529;\\n -webkit-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n.ant-layout-sider-children {\\n height: 100%;\\n margin-top: -0.1px;\\n padding-top: 0.1px;\\n}\\n.ant-layout-sider-has-trigger {\\n padding-bottom: 48px;\\n}\\n.ant-layout-sider-right {\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n}\\n.ant-layout-sider-trigger {\\n position: fixed;\\n bottom: 0;\\n z-index: 1;\\n height: 48px;\\n color: #fff;\\n line-height: 48px;\\n text-align: center;\\n background: #002140;\\n cursor: pointer;\\n -webkit-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n.ant-layout-sider-zero-width > * {\\n overflow: hidden;\\n}\\n.ant-layout-sider-zero-width-trigger {\\n position: absolute;\\n top: 64px;\\n right: -36px;\\n z-index: 1;\\n width: 36px;\\n height: 42px;\\n color: #fff;\\n font-size: 18px;\\n line-height: 42px;\\n text-align: center;\\n background: #001529;\\n border-radius: 0 4px 4px 0;\\n cursor: pointer;\\n -webkit-transition: background 0.3s ease;\\n transition: background 0.3s ease;\\n}\\n.ant-layout-sider-zero-width-trigger:hover {\\n background: #192c3e;\\n}\\n.ant-layout-sider-zero-width-trigger-right {\\n left: -36px;\\n border-radius: 4px 0 0 4px;\\n}\\n.ant-layout-sider-light {\\n background: #fff;\\n}\\n.ant-layout-sider-light .ant-layout-sider-trigger {\\n color: rgba(0, 0, 0, 0.65);\\n background: #fff;\\n}\\n.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {\\n color: rgba(0, 0, 0, 0.65);\\n background: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-popover {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1030;\\n font-weight: normal;\\n white-space: normal;\\n text-align: left;\\n cursor: auto;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n.ant-popover::after {\\n position: absolute;\\n background: rgba(255, 255, 255, 0.01);\\n content: '';\\n}\\n.ant-popover-hidden {\\n display: none;\\n}\\n.ant-popover-placement-top,\\n.ant-popover-placement-topLeft,\\n.ant-popover-placement-topRight {\\n padding-bottom: 10px;\\n}\\n.ant-popover-placement-right,\\n.ant-popover-placement-rightTop,\\n.ant-popover-placement-rightBottom {\\n padding-left: 10px;\\n}\\n.ant-popover-placement-bottom,\\n.ant-popover-placement-bottomLeft,\\n.ant-popover-placement-bottomRight {\\n padding-top: 10px;\\n}\\n.ant-popover-placement-left,\\n.ant-popover-placement-leftTop,\\n.ant-popover-placement-leftBottom {\\n padding-right: 10px;\\n}\\n.ant-popover-inner {\\n background-color: #fff;\\n background-clip: padding-box;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \\\\9;\\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \\\\9;\\n}\\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\\n .ant-popover {\\n /* IE10+ */\\n }\\n .ant-popover-inner {\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n }\\n}\\n.ant-popover-title {\\n min-width: 177px;\\n min-height: 32px;\\n margin: 0;\\n padding: 5px 16px 4px;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: 500;\\n border-bottom: 1px solid #e8e8e8;\\n}\\n.ant-popover-inner-content {\\n padding: 12px 16px;\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-popover-message {\\n position: relative;\\n padding: 4px 0 12px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n}\\n.ant-popover-message > .anticon {\\n position: absolute;\\n top: 8px;\\n color: #faad14;\\n font-size: 14px;\\n}\\n.ant-popover-message-title {\\n padding-left: 22px;\\n}\\n.ant-popover-buttons {\\n margin-bottom: 4px;\\n text-align: right;\\n}\\n.ant-popover-buttons button {\\n margin-left: 8px;\\n}\\n.ant-popover-arrow {\\n position: absolute;\\n display: block;\\n width: 8.48528137px;\\n height: 8.48528137px;\\n background: transparent;\\n border-style: solid;\\n border-width: 4.24264069px;\\n -webkit-transform: rotate(45deg);\\n -ms-transform: rotate(45deg);\\n transform: rotate(45deg);\\n}\\n.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {\\n bottom: 6.2px;\\n border-top-color: transparent;\\n border-right-color: #fff;\\n border-bottom-color: #fff;\\n border-left-color: transparent;\\n -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\\n}\\n.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow {\\n left: 50%;\\n -webkit-transform: translateX(-50%) rotate(45deg);\\n -ms-transform: translateX(-50%) rotate(45deg);\\n transform: translateX(-50%) rotate(45deg);\\n}\\n.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow {\\n left: 16px;\\n}\\n.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {\\n right: 16px;\\n}\\n.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {\\n left: 6px;\\n border-top-color: transparent;\\n border-right-color: transparent;\\n border-bottom-color: #fff;\\n border-left-color: #fff;\\n -webkit-box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\\n}\\n.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow {\\n top: 50%;\\n -webkit-transform: translateY(-50%) rotate(45deg);\\n -ms-transform: translateY(-50%) rotate(45deg);\\n transform: translateY(-50%) rotate(45deg);\\n}\\n.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow {\\n top: 12px;\\n}\\n.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {\\n bottom: 12px;\\n}\\n.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {\\n top: 6px;\\n border-top-color: #fff;\\n border-right-color: transparent;\\n border-bottom-color: transparent;\\n border-left-color: #fff;\\n -webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\\n box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\\n}\\n.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow {\\n left: 50%;\\n -webkit-transform: translateX(-50%) rotate(45deg);\\n -ms-transform: translateX(-50%) rotate(45deg);\\n transform: translateX(-50%) rotate(45deg);\\n}\\n.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow {\\n left: 16px;\\n}\\n.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {\\n right: 16px;\\n}\\n.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow,\\n.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {\\n right: 6px;\\n border-top-color: #fff;\\n border-right-color: #fff;\\n border-bottom-color: transparent;\\n border-left-color: transparent;\\n -webkit-box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\\n}\\n.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow {\\n top: 50%;\\n -webkit-transform: translateY(-50%) rotate(45deg);\\n -ms-transform: translateY(-50%) rotate(45deg);\\n transform: translateY(-50%) rotate(45deg);\\n}\\n.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow {\\n top: 12px;\\n}\\n.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {\\n bottom: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-form {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n}\\n.ant-form legend {\\n display: block;\\n width: 100%;\\n margin-bottom: 20px;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 16px;\\n line-height: inherit;\\n border: 0;\\n border-bottom: 1px solid #d9d9d9;\\n}\\n.ant-form label {\\n font-size: 14px;\\n}\\n.ant-form input[type='search'] {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.ant-form input[type='radio'],\\n.ant-form input[type='checkbox'] {\\n line-height: normal;\\n}\\n.ant-form input[type='file'] {\\n display: block;\\n}\\n.ant-form input[type='range'] {\\n display: block;\\n width: 100%;\\n}\\n.ant-form select[multiple],\\n.ant-form select[size] {\\n height: auto;\\n}\\n.ant-form input[type='file']:focus,\\n.ant-form input[type='radio']:focus,\\n.ant-form input[type='checkbox']:focus {\\n outline: thin dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\n.ant-form output {\\n display: block;\\n padding-top: 15px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n line-height: 1.5;\\n}\\n.ant-form-item-required::before {\\n display: inline-block;\\n margin-right: 4px;\\n color: #f5222d;\\n font-size: 14px;\\n font-family: SimSun, sans-serif;\\n line-height: 1;\\n content: '*';\\n}\\n.ant-form-hide-required-mark .ant-form-item-required::before {\\n display: none;\\n}\\n.ant-form-item-label > label {\\n color: rgba(0, 0, 0, 0.85);\\n}\\n.ant-form-item-label > label::after {\\n content: ':';\\n position: relative;\\n top: -0.5px;\\n margin: 0 8px 0 2px;\\n}\\n.ant-form-item-label > label.ant-form-item-no-colon::after {\\n content: ' ';\\n}\\n.ant-form-item {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n margin-bottom: 24px;\\n vertical-align: top;\\n}\\n.ant-form-item label {\\n position: relative;\\n}\\n.ant-form-item label > .anticon {\\n font-size: 14px;\\n vertical-align: top;\\n}\\n.ant-form-item-control {\\n position: relative;\\n line-height: 40px;\\n zoom: 1;\\n}\\n.ant-form-item-control::before,\\n.ant-form-item-control::after {\\n display: table;\\n content: '';\\n}\\n.ant-form-item-control::after {\\n clear: both;\\n}\\n.ant-form-item-children {\\n position: relative;\\n}\\n.ant-form-item-with-help {\\n margin-bottom: 5px;\\n}\\n.ant-form-item-label {\\n display: inline-block;\\n overflow: hidden;\\n line-height: 39.9999px;\\n white-space: nowrap;\\n text-align: right;\\n vertical-align: middle;\\n}\\n.ant-form-item-label-left {\\n text-align: left;\\n}\\n.ant-form-item .ant-switch {\\n margin: 2px 0 4px;\\n}\\n.ant-form-explain,\\n.ant-form-extra {\\n clear: both;\\n min-height: 22px;\\n margin-top: -2px;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 14px;\\n line-height: 1.5;\\n -webkit-transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\\n transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\\n}\\n.ant-form-explain {\\n margin-bottom: -1px;\\n}\\n.ant-form-extra {\\n padding-top: 4px;\\n}\\n.ant-form-text {\\n display: inline-block;\\n padding-right: 8px;\\n}\\n.ant-form-split {\\n display: block;\\n text-align: center;\\n}\\nform .has-feedback .ant-input {\\n padding-right: 30px;\\n}\\nform .has-feedback .ant-input-affix-wrapper .ant-input-suffix {\\n padding-right: 18px;\\n}\\nform .has-feedback .ant-input-affix-wrapper .ant-input {\\n padding-right: 49px;\\n}\\nform .has-feedback .ant-input-affix-wrapper.ant-input-affix-wrapper-input-with-clear-btn .ant-input {\\n padding-right: 68px;\\n}\\nform .has-feedback > .ant-select .ant-select-arrow,\\nform .has-feedback > .ant-select .ant-select-selection__clear,\\nform .has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-arrow,\\nform .has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection__clear {\\n right: 28px;\\n}\\nform .has-feedback > .ant-select .ant-select-selection-selected-value,\\nform .has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection-selected-value {\\n padding-right: 42px;\\n}\\nform .has-feedback .ant-cascader-picker-arrow {\\n margin-right: 17px;\\n}\\nform .has-feedback .ant-cascader-picker-clear {\\n right: 28px;\\n}\\nform .has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix {\\n right: 28px;\\n}\\nform .has-feedback .ant-calendar-picker-icon,\\nform .has-feedback .ant-time-picker-icon,\\nform .has-feedback .ant-calendar-picker-clear,\\nform .has-feedback .ant-time-picker-clear {\\n right: 28px;\\n}\\nform .ant-mentions,\\nform textarea.ant-input {\\n height: auto;\\n margin-bottom: 4px;\\n}\\nform .ant-upload {\\n background: transparent;\\n}\\nform input[type='radio'],\\nform input[type='checkbox'] {\\n width: 14px;\\n height: 14px;\\n}\\nform .ant-radio-inline,\\nform .ant-checkbox-inline {\\n display: inline-block;\\n margin-left: 8px;\\n font-weight: normal;\\n vertical-align: middle;\\n cursor: pointer;\\n}\\nform .ant-radio-inline:first-child,\\nform .ant-checkbox-inline:first-child {\\n margin-left: 0;\\n}\\nform .ant-checkbox-vertical,\\nform .ant-radio-vertical {\\n display: block;\\n}\\nform .ant-checkbox-vertical + .ant-checkbox-vertical,\\nform .ant-radio-vertical + .ant-radio-vertical {\\n margin-left: 0;\\n}\\nform .ant-input-number + .ant-form-text {\\n margin-left: 8px;\\n}\\nform .ant-input-number-handler-wrap {\\n z-index: 2;\\n}\\nform .ant-select,\\nform .ant-cascader-picker {\\n width: 100%;\\n}\\nform .ant-input-group .ant-select,\\nform .ant-input-group .ant-cascader-picker {\\n width: auto;\\n}\\nform :not(.ant-input-group-wrapper) > .ant-input-group,\\nform .ant-input-group-wrapper {\\n display: inline-block;\\n vertical-align: middle;\\n}\\nform:not(.ant-form-vertical) :not(.ant-input-group-wrapper) > .ant-input-group,\\nform:not(.ant-form-vertical) .ant-input-group-wrapper {\\n position: relative;\\n top: -1px;\\n}\\n.ant-form-vertical .ant-form-item-label,\\n.ant-col-24.ant-form-item-label,\\n.ant-col-xl-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n}\\n.ant-form-vertical .ant-form-item-label label::after,\\n.ant-col-24.ant-form-item-label label::after,\\n.ant-col-xl-24.ant-form-item-label label::after {\\n display: none;\\n}\\n.ant-form-vertical .ant-form-item {\\n padding-bottom: 8px;\\n}\\n.ant-form-vertical .ant-form-item-control {\\n line-height: 1.5;\\n}\\n.ant-form-vertical .ant-form-explain {\\n margin-top: 2px;\\n margin-bottom: -5px;\\n}\\n.ant-form-vertical .ant-form-extra {\\n margin-top: 2px;\\n margin-bottom: -4px;\\n}\\n@media (max-width: 575px) {\\n .ant-form-item-label,\\n .ant-form-item-control-wrapper {\\n display: block;\\n width: 100%;\\n }\\n .ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-form-item-label label::after {\\n display: none;\\n }\\n .ant-col-xs-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-col-xs-24.ant-form-item-label label::after {\\n display: none;\\n }\\n}\\n@media (max-width: 767px) {\\n .ant-col-sm-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-col-sm-24.ant-form-item-label label::after {\\n display: none;\\n }\\n}\\n@media (max-width: 991px) {\\n .ant-col-md-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-col-md-24.ant-form-item-label label::after {\\n display: none;\\n }\\n}\\n@media (max-width: 1199px) {\\n .ant-col-lg-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-col-lg-24.ant-form-item-label label::after {\\n display: none;\\n }\\n}\\n@media (max-width: 1599px) {\\n .ant-col-xl-24.ant-form-item-label {\\n display: block;\\n margin: 0;\\n padding: 0 0 8px;\\n line-height: 1.5;\\n white-space: initial;\\n text-align: left;\\n }\\n .ant-col-xl-24.ant-form-item-label label::after {\\n display: none;\\n }\\n}\\n.ant-form-inline .ant-form-item {\\n display: inline-block;\\n margin-right: 16px;\\n margin-bottom: 0;\\n}\\n.ant-form-inline .ant-form-item-with-help {\\n margin-bottom: 24px;\\n}\\n.ant-form-inline .ant-form-item > .ant-form-item-control-wrapper,\\n.ant-form-inline .ant-form-item > .ant-form-item-label {\\n display: inline-block;\\n vertical-align: top;\\n}\\n.ant-form-inline .ant-form-text {\\n display: inline-block;\\n}\\n.ant-form-inline .has-feedback {\\n display: inline-block;\\n}\\n.has-success.has-feedback .ant-form-item-children-icon,\\n.has-warning.has-feedback .ant-form-item-children-icon,\\n.has-error.has-feedback .ant-form-item-children-icon,\\n.is-validating.has-feedback .ant-form-item-children-icon {\\n position: absolute;\\n top: 50%;\\n right: 0;\\n z-index: 1;\\n width: 32px;\\n height: 20px;\\n margin-top: -10px;\\n font-size: 14px;\\n line-height: 20px;\\n text-align: center;\\n visibility: visible;\\n -webkit-animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\\n animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\\n pointer-events: none;\\n}\\n.has-success.has-feedback .ant-form-item-children-icon svg,\\n.has-warning.has-feedback .ant-form-item-children-icon svg,\\n.has-error.has-feedback .ant-form-item-children-icon svg,\\n.is-validating.has-feedback .ant-form-item-children-icon svg {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n}\\n.has-success.has-feedback .ant-form-item-children-icon {\\n color: #52c41a;\\n -webkit-animation-name: diffZoomIn1 !important;\\n animation-name: diffZoomIn1 !important;\\n}\\n.has-warning .ant-form-explain,\\n.has-warning .ant-form-split {\\n color: #faad14;\\n}\\n.has-warning .ant-input,\\n.has-warning .ant-input:hover {\\n background-color: #fff;\\n border-color: #faad14;\\n}\\n.has-warning .ant-input:focus {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-input:not([disabled]):hover {\\n border-color: #faad14;\\n}\\n.has-warning .ant-calendar-picker-open .ant-calendar-picker-input {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-input-affix-wrapper .ant-input,\\n.has-warning .ant-input-affix-wrapper .ant-input:hover {\\n background-color: #fff;\\n border-color: #faad14;\\n}\\n.has-warning .ant-input-affix-wrapper .ant-input:focus {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled) {\\n border-color: #faad14;\\n}\\n.has-warning .ant-input-prefix {\\n color: #faad14;\\n}\\n.has-warning .ant-input-group-addon {\\n color: #faad14;\\n background-color: #fff;\\n border-color: #faad14;\\n}\\n.has-warning .has-feedback {\\n color: #faad14;\\n}\\n.has-warning.has-feedback .ant-form-item-children-icon {\\n color: #faad14;\\n -webkit-animation-name: diffZoomIn3 !important;\\n animation-name: diffZoomIn3 !important;\\n}\\n.has-warning .ant-select-selection {\\n border-color: #faad14;\\n}\\n.has-warning .ant-select-selection:hover {\\n border-color: #faad14;\\n}\\n.has-warning .ant-select-open .ant-select-selection,\\n.has-warning .ant-select-focused .ant-select-selection {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-calendar-picker-icon::after,\\n.has-warning .ant-time-picker-icon::after,\\n.has-warning .ant-picker-icon::after,\\n.has-warning .ant-select-arrow,\\n.has-warning .ant-cascader-picker-arrow {\\n color: #faad14;\\n}\\n.has-warning .ant-input-number,\\n.has-warning .ant-time-picker-input {\\n border-color: #faad14;\\n}\\n.has-warning .ant-input-number-focused,\\n.has-warning .ant-time-picker-input-focused,\\n.has-warning .ant-input-number:focus,\\n.has-warning .ant-time-picker-input:focus {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-input-number:not([disabled]):hover,\\n.has-warning .ant-time-picker-input:not([disabled]):hover {\\n border-color: #faad14;\\n}\\n.has-warning .ant-cascader-picker:focus .ant-cascader-input {\\n border-color: #ffc53d;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\\n}\\n.has-warning .ant-cascader-picker:hover .ant-cascader-input {\\n border-color: #faad14;\\n}\\n.has-error .ant-form-explain,\\n.has-error .ant-form-split {\\n color: #f5222d;\\n}\\n.has-error .ant-input,\\n.has-error .ant-input:hover {\\n background-color: #fff;\\n border-color: #f5222d;\\n}\\n.has-error .ant-input:focus {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-input:not([disabled]):hover {\\n border-color: #f5222d;\\n}\\n.has-error .ant-calendar-picker-open .ant-calendar-picker-input {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-input-affix-wrapper .ant-input,\\n.has-error .ant-input-affix-wrapper .ant-input:hover {\\n background-color: #fff;\\n border-color: #f5222d;\\n}\\n.has-error .ant-input-affix-wrapper .ant-input:focus {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled) {\\n border-color: #f5222d;\\n}\\n.has-error .ant-input-prefix {\\n color: #f5222d;\\n}\\n.has-error .ant-input-group-addon {\\n color: #f5222d;\\n background-color: #fff;\\n border-color: #f5222d;\\n}\\n.has-error .has-feedback {\\n color: #f5222d;\\n}\\n.has-error.has-feedback .ant-form-item-children-icon {\\n color: #f5222d;\\n -webkit-animation-name: diffZoomIn2 !important;\\n animation-name: diffZoomIn2 !important;\\n}\\n.has-error .ant-select-selection {\\n border-color: #f5222d;\\n}\\n.has-error .ant-select-selection:hover {\\n border-color: #f5222d;\\n}\\n.has-error .ant-select-open .ant-select-selection,\\n.has-error .ant-select-focused .ant-select-selection {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-select.ant-select-auto-complete .ant-input:focus {\\n border-color: #f5222d;\\n}\\n.has-error .ant-input-group-addon .ant-select-selection {\\n border-color: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.has-error .ant-calendar-picker-icon::after,\\n.has-error .ant-time-picker-icon::after,\\n.has-error .ant-picker-icon::after,\\n.has-error .ant-select-arrow,\\n.has-error .ant-cascader-picker-arrow {\\n color: #f5222d;\\n}\\n.has-error .ant-input-number,\\n.has-error .ant-time-picker-input {\\n border-color: #f5222d;\\n}\\n.has-error .ant-input-number-focused,\\n.has-error .ant-time-picker-input-focused,\\n.has-error .ant-input-number:focus,\\n.has-error .ant-time-picker-input:focus {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-input-number:not([disabled]):hover,\\n.has-error .ant-time-picker-input:not([disabled]):hover {\\n border-color: #f5222d;\\n}\\n.has-error .ant-mention-wrapper .ant-mention-editor,\\n.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover {\\n border-color: #f5222d;\\n}\\n.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,\\n.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-cascader-picker:focus .ant-cascader-input {\\n border-color: #ff4d4f;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2);\\n}\\n.has-error .ant-cascader-picker:hover .ant-cascader-input {\\n border-color: #f5222d;\\n}\\n.has-error .ant-transfer-list {\\n border-color: #f5222d;\\n}\\n.has-error .ant-transfer-list-search:not([disabled]) {\\n border-color: #d9d9d9;\\n}\\n.has-error .ant-transfer-list-search:not([disabled]):hover {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n}\\n.has-error .ant-transfer-list-search:not([disabled]):focus {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n}\\n.is-validating.has-feedback .ant-form-item-children-icon {\\n display: inline-block;\\n color: #1890ff;\\n}\\n.ant-advanced-search-form .ant-form-item {\\n margin-bottom: 24px;\\n}\\n.ant-advanced-search-form .ant-form-item-with-help {\\n margin-bottom: 5px;\\n}\\n.show-help-enter,\\n.show-help-appear {\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.show-help-leave {\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.show-help-enter.show-help-enter-active,\\n.show-help-appear.show-help-appear-active {\\n -webkit-animation-name: antShowHelpIn;\\n animation-name: antShowHelpIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.show-help-leave.show-help-leave-active {\\n -webkit-animation-name: antShowHelpOut;\\n animation-name: antShowHelpOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n pointer-events: none;\\n}\\n.show-help-enter,\\n.show-help-appear {\\n opacity: 0;\\n -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.show-help-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n@-webkit-keyframes antShowHelpIn {\\n 0% {\\n -webkit-transform: translateY(-5px);\\n transform: translateY(-5px);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n opacity: 1;\\n }\\n}\\n@keyframes antShowHelpIn {\\n 0% {\\n -webkit-transform: translateY(-5px);\\n transform: translateY(-5px);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n opacity: 1;\\n }\\n}\\n@-webkit-keyframes antShowHelpOut {\\n to {\\n -webkit-transform: translateY(-5px);\\n transform: translateY(-5px);\\n opacity: 0;\\n }\\n}\\n@keyframes antShowHelpOut {\\n to {\\n -webkit-transform: translateY(-5px);\\n transform: translateY(-5px);\\n opacity: 0;\\n }\\n}\\n@-webkit-keyframes diffZoomIn1 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n@keyframes diffZoomIn1 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n@-webkit-keyframes diffZoomIn2 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n@keyframes diffZoomIn2 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n@-webkit-keyframes diffZoomIn3 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n@keyframes diffZoomIn3 {\\n 0% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 100% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-input {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n font-variant: tabular-nums;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: 32px;\\n padding: 4px 11px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n line-height: 1.5;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-input::-moz-placeholder {\\n color: #bfbfbf;\\n opacity: 1;\\n}\\n.ant-input:-ms-input-placeholder {\\n color: #bfbfbf;\\n}\\n.ant-input::-webkit-input-placeholder {\\n color: #bfbfbf;\\n}\\n.ant-input:-moz-placeholder-shown {\\n text-overflow: ellipsis;\\n}\\n.ant-input:-ms-input-placeholder {\\n text-overflow: ellipsis;\\n}\\n.ant-input:placeholder-shown {\\n text-overflow: ellipsis;\\n}\\n.ant-input:hover {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n}\\n.ant-input:focus {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n outline: 0;\\n -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\\n}\\n.ant-input-disabled {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n cursor: not-allowed;\\n opacity: 1;\\n}\\n.ant-input-disabled:hover {\\n border-color: #d9d9d9;\\n border-right-width: 1px !important;\\n}\\n.ant-input[disabled] {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n cursor: not-allowed;\\n opacity: 1;\\n}\\n.ant-input[disabled]:hover {\\n border-color: #d9d9d9;\\n border-right-width: 1px !important;\\n}\\ntextarea.ant-input {\\n max-width: 100%;\\n height: auto;\\n min-height: 32px;\\n line-height: 1.5;\\n vertical-align: bottom;\\n -webkit-transition: all 0.3s, height 0s;\\n transition: all 0.3s, height 0s;\\n}\\n.ant-input-lg {\\n height: 40px;\\n padding: 6px 11px;\\n font-size: 16px;\\n}\\n.ant-input-sm {\\n height: 24px;\\n padding: 1px 7px;\\n}\\n.ant-input-group {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: table;\\n width: 100%;\\n border-collapse: separate;\\n border-spacing: 0;\\n}\\n.ant-input-group[class*='col-'] {\\n float: none;\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.ant-input-group > [class*='col-'] {\\n padding-right: 8px;\\n}\\n.ant-input-group > [class*='col-']:last-child {\\n padding-right: 0;\\n}\\n.ant-input-group-addon,\\n.ant-input-group-wrap,\\n.ant-input-group > .ant-input {\\n display: table-cell;\\n}\\n.ant-input-group-addon:not(:first-child):not(:last-child),\\n.ant-input-group-wrap:not(:first-child):not(:last-child),\\n.ant-input-group > .ant-input:not(:first-child):not(:last-child) {\\n border-radius: 0;\\n}\\n.ant-input-group-addon,\\n.ant-input-group-wrap {\\n width: 1px;\\n white-space: nowrap;\\n vertical-align: middle;\\n}\\n.ant-input-group-wrap > * {\\n display: block !important;\\n}\\n.ant-input-group .ant-input {\\n float: left;\\n width: 100%;\\n margin-bottom: 0;\\n text-align: inherit;\\n}\\n.ant-input-group .ant-input:focus {\\n z-index: 1;\\n border-right-width: 1px;\\n}\\n.ant-input-group .ant-input:hover {\\n z-index: 1;\\n border-right-width: 1px;\\n}\\n.ant-input-group-addon {\\n position: relative;\\n padding: 0 11px;\\n color: rgba(0, 0, 0, 0.65);\\n font-weight: normal;\\n font-size: 14px;\\n text-align: center;\\n background-color: #fafafa;\\n border: 1px solid #d9d9d9;\\n border-radius: 4px;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-input-group-addon .ant-select {\\n margin: -5px -11px;\\n}\\n.ant-input-group-addon .ant-select .ant-select-selection {\\n margin: -1px;\\n background-color: inherit;\\n border: 1px solid transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-input-group-addon .ant-select-open .ant-select-selection,\\n.ant-input-group-addon .ant-select-focused .ant-select-selection {\\n color: #1890ff;\\n}\\n.ant-input-group-addon > i:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n content: '';\\n}\\n.ant-input-group > .ant-input:first-child,\\n.ant-input-group-addon:first-child {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.ant-input-group > .ant-input:first-child .ant-select .ant-select-selection,\\n.ant-input-group-addon:first-child .ant-select .ant-select-selection {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.ant-input-group-addon:first-child {\\n border-right: 0;\\n}\\n.ant-input-group-addon:last-child {\\n border-left: 0;\\n}\\n.ant-input-group > .ant-input:last-child,\\n.ant-input-group-addon:last-child {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.ant-input-group > .ant-input:last-child .ant-select .ant-select-selection,\\n.ant-input-group-addon:last-child .ant-select .ant-select-selection {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.ant-input-group-lg .ant-input,\\n.ant-input-group-lg > .ant-input-group-addon {\\n height: 40px;\\n padding: 6px 11px;\\n font-size: 16px;\\n}\\n.ant-input-group-sm .ant-input,\\n.ant-input-group-sm > .ant-input-group-addon {\\n height: 24px;\\n padding: 1px 7px;\\n}\\n.ant-input-group-lg .ant-select-selection--single {\\n height: 40px;\\n}\\n.ant-input-group-sm .ant-select-selection--single {\\n height: 24px;\\n}\\n.ant-input-group .ant-input-affix-wrapper {\\n display: table-cell;\\n float: left;\\n width: 100%;\\n}\\n.ant-input-group.ant-input-group-compact {\\n display: block;\\n zoom: 1;\\n}\\n.ant-input-group.ant-input-group-compact::before,\\n.ant-input-group.ant-input-group-compact::after {\\n display: table;\\n content: '';\\n}\\n.ant-input-group.ant-input-group-compact::after {\\n clear: both;\\n}\\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),\\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),\\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {\\n border-right-width: 1px;\\n}\\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,\\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,\\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {\\n z-index: 1;\\n}\\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,\\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,\\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {\\n z-index: 1;\\n}\\n.ant-input-group.ant-input-group-compact > * {\\n display: inline-block;\\n float: none;\\n vertical-align: top;\\n border-radius: 0;\\n}\\n.ant-input-group.ant-input-group-compact > *:not(:last-child) {\\n margin-right: -1px;\\n border-right-width: 1px;\\n}\\n.ant-input-group.ant-input-group-compact .ant-input {\\n float: none;\\n}\\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection,\\n.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,\\n.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,\\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {\\n border-right-width: 1px;\\n border-radius: 0;\\n}\\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:hover,\\n.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:hover,\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,\\n.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,\\n.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,\\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {\\n z-index: 1;\\n}\\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,\\n.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:focus,\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,\\n.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,\\n.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,\\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {\\n z-index: 1;\\n}\\n.ant-input-group.ant-input-group-compact > *:first-child,\\n.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selection,\\n.ant-input-group.ant-input-group-compact > .ant-calendar-picker:first-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:first-child .ant-mention-editor,\\n.ant-input-group.ant-input-group-compact > .ant-time-picker:first-child .ant-time-picker-input {\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.ant-input-group.ant-input-group-compact > *:last-child,\\n.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection,\\n.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input,\\n.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor,\\n.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input {\\n border-right-width: 1px;\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {\\n vertical-align: top;\\n}\\n.ant-input-group-wrapper {\\n display: inline-block;\\n width: 100%;\\n text-align: start;\\n vertical-align: top;\\n}\\n.ant-input-affix-wrapper {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n text-align: start;\\n}\\n.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled) {\\n border-color: #40a9ff;\\n border-right-width: 1px !important;\\n}\\n.ant-input-affix-wrapper .ant-input {\\n position: relative;\\n text-align: inherit;\\n}\\n.ant-input-affix-wrapper .ant-input-prefix,\\n.ant-input-affix-wrapper .ant-input-suffix {\\n position: absolute;\\n top: 50%;\\n z-index: 2;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n color: rgba(0, 0, 0, 0.65);\\n line-height: 0;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),\\n.ant-input-affix-wrapper .ant-input-suffix :not(.anticon) {\\n line-height: 1.5;\\n}\\n.ant-input-affix-wrapper .ant-input-disabled ~ .ant-input-suffix .anticon {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\n.ant-input-affix-wrapper .ant-input-prefix {\\n left: 12px;\\n}\\n.ant-input-affix-wrapper .ant-input-suffix {\\n right: 12px;\\n}\\n.ant-input-affix-wrapper .ant-input:not(:first-child) {\\n padding-left: 30px;\\n}\\n.ant-input-affix-wrapper .ant-input:not(:last-child) {\\n padding-right: 30px;\\n}\\n.ant-input-affix-wrapper.ant-input-affix-wrapper-input-with-clear-btn .ant-input:not(:last-child) {\\n padding-right: 49px;\\n}\\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input {\\n padding-right: 22px;\\n}\\n.ant-input-affix-wrapper .ant-input {\\n min-height: 100%;\\n}\\n.ant-input-password-icon {\\n color: rgba(0, 0, 0, 0.45);\\n cursor: pointer;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-input-password-icon:hover {\\n color: #333;\\n}\\n.ant-input-clear-icon {\\n color: rgba(0, 0, 0, 0.25);\\n font-size: 12px;\\n cursor: pointer;\\n -webkit-transition: color 0.3s;\\n transition: color 0.3s;\\n vertical-align: 0;\\n}\\n.ant-input-clear-icon:hover {\\n color: rgba(0, 0, 0, 0.45);\\n}\\n.ant-input-clear-icon:active {\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-input-clear-icon + i {\\n margin-left: 6px;\\n}\\n.ant-input-textarea-clear-icon {\\n color: rgba(0, 0, 0, 0.25);\\n font-size: 12px;\\n cursor: pointer;\\n -webkit-transition: color 0.3s;\\n transition: color 0.3s;\\n position: absolute;\\n top: 0;\\n right: 0;\\n margin: 8px 8px 0 0;\\n}\\n.ant-input-textarea-clear-icon:hover {\\n color: rgba(0, 0, 0, 0.45);\\n}\\n.ant-input-textarea-clear-icon:active {\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-input-textarea-clear-icon + i {\\n margin-left: 6px;\\n}\\n.ant-input-search-icon {\\n color: rgba(0, 0, 0, 0.45);\\n cursor: pointer;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-input-search-icon:hover {\\n color: rgba(0, 0, 0, 0.8);\\n}\\n.ant-input-search-enter-button input {\\n border-right: 0;\\n}\\n.ant-input-search-enter-button + .ant-input-group-addon,\\n.ant-input-search-enter-button input + .ant-input-group-addon {\\n padding: 0;\\n border: 0;\\n}\\n.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button,\\n.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-btn {\\n line-height: 1.499;\\n position: relative;\\n display: inline-block;\\n font-weight: 400;\\n white-space: nowrap;\\n text-align: center;\\n background-image: none;\\n border: 1px solid transparent;\\n -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);\\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);\\n cursor: pointer;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n height: 32px;\\n padding: 0 15px;\\n font-size: 14px;\\n border-radius: 4px;\\n color: rgba(0, 0, 0, 0.65);\\n background-color: #fff;\\n border-color: #d9d9d9;\\n}\\n.ant-btn > .anticon {\\n line-height: 1;\\n}\\n.ant-btn,\\n.ant-btn:active,\\n.ant-btn:focus {\\n outline: 0;\\n}\\n.ant-btn:not([disabled]):hover {\\n text-decoration: none;\\n}\\n.ant-btn:not([disabled]):active {\\n outline: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn.disabled,\\n.ant-btn[disabled] {\\n cursor: not-allowed;\\n}\\n.ant-btn.disabled > *,\\n.ant-btn[disabled] > * {\\n pointer-events: none;\\n}\\n.ant-btn-lg {\\n height: 40px;\\n padding: 0 15px;\\n font-size: 16px;\\n border-radius: 4px;\\n}\\n.ant-btn-sm {\\n height: 24px;\\n padding: 0 7px;\\n font-size: 14px;\\n border-radius: 4px;\\n}\\n.ant-btn > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn:hover,\\n.ant-btn:focus {\\n color: #40a9ff;\\n background-color: #fff;\\n border-color: #40a9ff;\\n}\\n.ant-btn:hover > a:only-child,\\n.ant-btn:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn:hover > a:only-child::after,\\n.ant-btn:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn:active,\\n.ant-btn.active {\\n color: #096dd9;\\n background-color: #fff;\\n border-color: #096dd9;\\n}\\n.ant-btn:active > a:only-child,\\n.ant-btn.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn:active > a:only-child::after,\\n.ant-btn.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-disabled,\\n.ant-btn.disabled,\\n.ant-btn[disabled],\\n.ant-btn-disabled:hover,\\n.ant-btn.disabled:hover,\\n.ant-btn[disabled]:hover,\\n.ant-btn-disabled:focus,\\n.ant-btn.disabled:focus,\\n.ant-btn[disabled]:focus,\\n.ant-btn-disabled:active,\\n.ant-btn.disabled:active,\\n.ant-btn[disabled]:active,\\n.ant-btn-disabled.active,\\n.ant-btn.disabled.active,\\n.ant-btn[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-disabled > a:only-child,\\n.ant-btn.disabled > a:only-child,\\n.ant-btn[disabled] > a:only-child,\\n.ant-btn-disabled:hover > a:only-child,\\n.ant-btn.disabled:hover > a:only-child,\\n.ant-btn[disabled]:hover > a:only-child,\\n.ant-btn-disabled:focus > a:only-child,\\n.ant-btn.disabled:focus > a:only-child,\\n.ant-btn[disabled]:focus > a:only-child,\\n.ant-btn-disabled:active > a:only-child,\\n.ant-btn.disabled:active > a:only-child,\\n.ant-btn[disabled]:active > a:only-child,\\n.ant-btn-disabled.active > a:only-child,\\n.ant-btn.disabled.active > a:only-child,\\n.ant-btn[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-disabled > a:only-child::after,\\n.ant-btn.disabled > a:only-child::after,\\n.ant-btn[disabled] > a:only-child::after,\\n.ant-btn-disabled:hover > a:only-child::after,\\n.ant-btn.disabled:hover > a:only-child::after,\\n.ant-btn[disabled]:hover > a:only-child::after,\\n.ant-btn-disabled:focus > a:only-child::after,\\n.ant-btn.disabled:focus > a:only-child::after,\\n.ant-btn[disabled]:focus > a:only-child::after,\\n.ant-btn-disabled:active > a:only-child::after,\\n.ant-btn.disabled:active > a:only-child::after,\\n.ant-btn[disabled]:active > a:only-child::after,\\n.ant-btn-disabled.active > a:only-child::after,\\n.ant-btn.disabled.active > a:only-child::after,\\n.ant-btn[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn:hover,\\n.ant-btn:focus,\\n.ant-btn:active,\\n.ant-btn.active {\\n text-decoration: none;\\n background: #fff;\\n}\\n.ant-btn > i,\\n.ant-btn > span {\\n display: inline-block;\\n -webkit-transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n pointer-events: none;\\n}\\n.ant-btn-primary {\\n color: #fff;\\n background-color: #1890ff;\\n border-color: #1890ff;\\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\\n -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\\n}\\n.ant-btn-primary > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-primary > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-primary:hover,\\n.ant-btn-primary:focus {\\n color: #fff;\\n background-color: #40a9ff;\\n border-color: #40a9ff;\\n}\\n.ant-btn-primary:hover > a:only-child,\\n.ant-btn-primary:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-primary:hover > a:only-child::after,\\n.ant-btn-primary:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-primary:active,\\n.ant-btn-primary.active {\\n color: #fff;\\n background-color: #096dd9;\\n border-color: #096dd9;\\n}\\n.ant-btn-primary:active > a:only-child,\\n.ant-btn-primary.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-primary:active > a:only-child::after,\\n.ant-btn-primary.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-primary-disabled,\\n.ant-btn-primary.disabled,\\n.ant-btn-primary[disabled],\\n.ant-btn-primary-disabled:hover,\\n.ant-btn-primary.disabled:hover,\\n.ant-btn-primary[disabled]:hover,\\n.ant-btn-primary-disabled:focus,\\n.ant-btn-primary.disabled:focus,\\n.ant-btn-primary[disabled]:focus,\\n.ant-btn-primary-disabled:active,\\n.ant-btn-primary.disabled:active,\\n.ant-btn-primary[disabled]:active,\\n.ant-btn-primary-disabled.active,\\n.ant-btn-primary.disabled.active,\\n.ant-btn-primary[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-primary-disabled > a:only-child,\\n.ant-btn-primary.disabled > a:only-child,\\n.ant-btn-primary[disabled] > a:only-child,\\n.ant-btn-primary-disabled:hover > a:only-child,\\n.ant-btn-primary.disabled:hover > a:only-child,\\n.ant-btn-primary[disabled]:hover > a:only-child,\\n.ant-btn-primary-disabled:focus > a:only-child,\\n.ant-btn-primary.disabled:focus > a:only-child,\\n.ant-btn-primary[disabled]:focus > a:only-child,\\n.ant-btn-primary-disabled:active > a:only-child,\\n.ant-btn-primary.disabled:active > a:only-child,\\n.ant-btn-primary[disabled]:active > a:only-child,\\n.ant-btn-primary-disabled.active > a:only-child,\\n.ant-btn-primary.disabled.active > a:only-child,\\n.ant-btn-primary[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-primary-disabled > a:only-child::after,\\n.ant-btn-primary.disabled > a:only-child::after,\\n.ant-btn-primary[disabled] > a:only-child::after,\\n.ant-btn-primary-disabled:hover > a:only-child::after,\\n.ant-btn-primary.disabled:hover > a:only-child::after,\\n.ant-btn-primary[disabled]:hover > a:only-child::after,\\n.ant-btn-primary-disabled:focus > a:only-child::after,\\n.ant-btn-primary.disabled:focus > a:only-child::after,\\n.ant-btn-primary[disabled]:focus > a:only-child::after,\\n.ant-btn-primary-disabled:active > a:only-child::after,\\n.ant-btn-primary.disabled:active > a:only-child::after,\\n.ant-btn-primary[disabled]:active > a:only-child::after,\\n.ant-btn-primary-disabled.active > a:only-child::after,\\n.ant-btn-primary.disabled.active > a:only-child::after,\\n.ant-btn-primary[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {\\n border-right-color: #40a9ff;\\n border-left-color: #40a9ff;\\n}\\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {\\n border-color: #d9d9d9;\\n}\\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {\\n border-right-color: #40a9ff;\\n}\\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {\\n border-right-color: #d9d9d9;\\n}\\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\\n.ant-btn-group .ant-btn-primary + .ant-btn-primary {\\n border-left-color: #40a9ff;\\n}\\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\\n.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\\n border-left-color: #d9d9d9;\\n}\\n.ant-btn-ghost {\\n color: rgba(0, 0, 0, 0.65);\\n background-color: transparent;\\n border-color: #d9d9d9;\\n}\\n.ant-btn-ghost > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-ghost > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-ghost:hover,\\n.ant-btn-ghost:focus {\\n color: #40a9ff;\\n background-color: transparent;\\n border-color: #40a9ff;\\n}\\n.ant-btn-ghost:hover > a:only-child,\\n.ant-btn-ghost:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-ghost:hover > a:only-child::after,\\n.ant-btn-ghost:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-ghost:active,\\n.ant-btn-ghost.active {\\n color: #096dd9;\\n background-color: transparent;\\n border-color: #096dd9;\\n}\\n.ant-btn-ghost:active > a:only-child,\\n.ant-btn-ghost.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-ghost:active > a:only-child::after,\\n.ant-btn-ghost.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-ghost-disabled,\\n.ant-btn-ghost.disabled,\\n.ant-btn-ghost[disabled],\\n.ant-btn-ghost-disabled:hover,\\n.ant-btn-ghost.disabled:hover,\\n.ant-btn-ghost[disabled]:hover,\\n.ant-btn-ghost-disabled:focus,\\n.ant-btn-ghost.disabled:focus,\\n.ant-btn-ghost[disabled]:focus,\\n.ant-btn-ghost-disabled:active,\\n.ant-btn-ghost.disabled:active,\\n.ant-btn-ghost[disabled]:active,\\n.ant-btn-ghost-disabled.active,\\n.ant-btn-ghost.disabled.active,\\n.ant-btn-ghost[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-ghost-disabled > a:only-child,\\n.ant-btn-ghost.disabled > a:only-child,\\n.ant-btn-ghost[disabled] > a:only-child,\\n.ant-btn-ghost-disabled:hover > a:only-child,\\n.ant-btn-ghost.disabled:hover > a:only-child,\\n.ant-btn-ghost[disabled]:hover > a:only-child,\\n.ant-btn-ghost-disabled:focus > a:only-child,\\n.ant-btn-ghost.disabled:focus > a:only-child,\\n.ant-btn-ghost[disabled]:focus > a:only-child,\\n.ant-btn-ghost-disabled:active > a:only-child,\\n.ant-btn-ghost.disabled:active > a:only-child,\\n.ant-btn-ghost[disabled]:active > a:only-child,\\n.ant-btn-ghost-disabled.active > a:only-child,\\n.ant-btn-ghost.disabled.active > a:only-child,\\n.ant-btn-ghost[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-ghost-disabled > a:only-child::after,\\n.ant-btn-ghost.disabled > a:only-child::after,\\n.ant-btn-ghost[disabled] > a:only-child::after,\\n.ant-btn-ghost-disabled:hover > a:only-child::after,\\n.ant-btn-ghost.disabled:hover > a:only-child::after,\\n.ant-btn-ghost[disabled]:hover > a:only-child::after,\\n.ant-btn-ghost-disabled:focus > a:only-child::after,\\n.ant-btn-ghost.disabled:focus > a:only-child::after,\\n.ant-btn-ghost[disabled]:focus > a:only-child::after,\\n.ant-btn-ghost-disabled:active > a:only-child::after,\\n.ant-btn-ghost.disabled:active > a:only-child::after,\\n.ant-btn-ghost[disabled]:active > a:only-child::after,\\n.ant-btn-ghost-disabled.active > a:only-child::after,\\n.ant-btn-ghost.disabled.active > a:only-child::after,\\n.ant-btn-ghost[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-dashed {\\n color: rgba(0, 0, 0, 0.65);\\n background-color: #fff;\\n border-color: #d9d9d9;\\n border-style: dashed;\\n}\\n.ant-btn-dashed > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-dashed > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-dashed:hover,\\n.ant-btn-dashed:focus {\\n color: #40a9ff;\\n background-color: #fff;\\n border-color: #40a9ff;\\n}\\n.ant-btn-dashed:hover > a:only-child,\\n.ant-btn-dashed:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-dashed:hover > a:only-child::after,\\n.ant-btn-dashed:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-dashed:active,\\n.ant-btn-dashed.active {\\n color: #096dd9;\\n background-color: #fff;\\n border-color: #096dd9;\\n}\\n.ant-btn-dashed:active > a:only-child,\\n.ant-btn-dashed.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-dashed:active > a:only-child::after,\\n.ant-btn-dashed.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-dashed-disabled,\\n.ant-btn-dashed.disabled,\\n.ant-btn-dashed[disabled],\\n.ant-btn-dashed-disabled:hover,\\n.ant-btn-dashed.disabled:hover,\\n.ant-btn-dashed[disabled]:hover,\\n.ant-btn-dashed-disabled:focus,\\n.ant-btn-dashed.disabled:focus,\\n.ant-btn-dashed[disabled]:focus,\\n.ant-btn-dashed-disabled:active,\\n.ant-btn-dashed.disabled:active,\\n.ant-btn-dashed[disabled]:active,\\n.ant-btn-dashed-disabled.active,\\n.ant-btn-dashed.disabled.active,\\n.ant-btn-dashed[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-dashed-disabled > a:only-child,\\n.ant-btn-dashed.disabled > a:only-child,\\n.ant-btn-dashed[disabled] > a:only-child,\\n.ant-btn-dashed-disabled:hover > a:only-child,\\n.ant-btn-dashed.disabled:hover > a:only-child,\\n.ant-btn-dashed[disabled]:hover > a:only-child,\\n.ant-btn-dashed-disabled:focus > a:only-child,\\n.ant-btn-dashed.disabled:focus > a:only-child,\\n.ant-btn-dashed[disabled]:focus > a:only-child,\\n.ant-btn-dashed-disabled:active > a:only-child,\\n.ant-btn-dashed.disabled:active > a:only-child,\\n.ant-btn-dashed[disabled]:active > a:only-child,\\n.ant-btn-dashed-disabled.active > a:only-child,\\n.ant-btn-dashed.disabled.active > a:only-child,\\n.ant-btn-dashed[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-dashed-disabled > a:only-child::after,\\n.ant-btn-dashed.disabled > a:only-child::after,\\n.ant-btn-dashed[disabled] > a:only-child::after,\\n.ant-btn-dashed-disabled:hover > a:only-child::after,\\n.ant-btn-dashed.disabled:hover > a:only-child::after,\\n.ant-btn-dashed[disabled]:hover > a:only-child::after,\\n.ant-btn-dashed-disabled:focus > a:only-child::after,\\n.ant-btn-dashed.disabled:focus > a:only-child::after,\\n.ant-btn-dashed[disabled]:focus > a:only-child::after,\\n.ant-btn-dashed-disabled:active > a:only-child::after,\\n.ant-btn-dashed.disabled:active > a:only-child::after,\\n.ant-btn-dashed[disabled]:active > a:only-child::after,\\n.ant-btn-dashed-disabled.active > a:only-child::after,\\n.ant-btn-dashed.disabled.active > a:only-child::after,\\n.ant-btn-dashed[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-danger {\\n color: #fff;\\n background-color: #ff4d4f;\\n border-color: #ff4d4f;\\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\\n -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\\n}\\n.ant-btn-danger > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-danger > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-danger:hover,\\n.ant-btn-danger:focus {\\n color: #fff;\\n background-color: #ff7875;\\n border-color: #ff7875;\\n}\\n.ant-btn-danger:hover > a:only-child,\\n.ant-btn-danger:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-danger:hover > a:only-child::after,\\n.ant-btn-danger:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-danger:active,\\n.ant-btn-danger.active {\\n color: #fff;\\n background-color: #d9363e;\\n border-color: #d9363e;\\n}\\n.ant-btn-danger:active > a:only-child,\\n.ant-btn-danger.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-danger:active > a:only-child::after,\\n.ant-btn-danger.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-danger-disabled,\\n.ant-btn-danger.disabled,\\n.ant-btn-danger[disabled],\\n.ant-btn-danger-disabled:hover,\\n.ant-btn-danger.disabled:hover,\\n.ant-btn-danger[disabled]:hover,\\n.ant-btn-danger-disabled:focus,\\n.ant-btn-danger.disabled:focus,\\n.ant-btn-danger[disabled]:focus,\\n.ant-btn-danger-disabled:active,\\n.ant-btn-danger.disabled:active,\\n.ant-btn-danger[disabled]:active,\\n.ant-btn-danger-disabled.active,\\n.ant-btn-danger.disabled.active,\\n.ant-btn-danger[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-danger-disabled > a:only-child,\\n.ant-btn-danger.disabled > a:only-child,\\n.ant-btn-danger[disabled] > a:only-child,\\n.ant-btn-danger-disabled:hover > a:only-child,\\n.ant-btn-danger.disabled:hover > a:only-child,\\n.ant-btn-danger[disabled]:hover > a:only-child,\\n.ant-btn-danger-disabled:focus > a:only-child,\\n.ant-btn-danger.disabled:focus > a:only-child,\\n.ant-btn-danger[disabled]:focus > a:only-child,\\n.ant-btn-danger-disabled:active > a:only-child,\\n.ant-btn-danger.disabled:active > a:only-child,\\n.ant-btn-danger[disabled]:active > a:only-child,\\n.ant-btn-danger-disabled.active > a:only-child,\\n.ant-btn-danger.disabled.active > a:only-child,\\n.ant-btn-danger[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-danger-disabled > a:only-child::after,\\n.ant-btn-danger.disabled > a:only-child::after,\\n.ant-btn-danger[disabled] > a:only-child::after,\\n.ant-btn-danger-disabled:hover > a:only-child::after,\\n.ant-btn-danger.disabled:hover > a:only-child::after,\\n.ant-btn-danger[disabled]:hover > a:only-child::after,\\n.ant-btn-danger-disabled:focus > a:only-child::after,\\n.ant-btn-danger.disabled:focus > a:only-child::after,\\n.ant-btn-danger[disabled]:focus > a:only-child::after,\\n.ant-btn-danger-disabled:active > a:only-child::after,\\n.ant-btn-danger.disabled:active > a:only-child::after,\\n.ant-btn-danger[disabled]:active > a:only-child::after,\\n.ant-btn-danger-disabled.active > a:only-child::after,\\n.ant-btn-danger.disabled.active > a:only-child::after,\\n.ant-btn-danger[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-link {\\n color: #1890ff;\\n background-color: transparent;\\n border-color: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-link > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-link > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-link:hover,\\n.ant-btn-link:focus {\\n color: #40a9ff;\\n background-color: transparent;\\n border-color: #40a9ff;\\n}\\n.ant-btn-link:hover > a:only-child,\\n.ant-btn-link:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-link:hover > a:only-child::after,\\n.ant-btn-link:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-link:active,\\n.ant-btn-link.active {\\n color: #096dd9;\\n background-color: transparent;\\n border-color: #096dd9;\\n}\\n.ant-btn-link:active > a:only-child,\\n.ant-btn-link.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-link:active > a:only-child::after,\\n.ant-btn-link.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-link-disabled,\\n.ant-btn-link.disabled,\\n.ant-btn-link[disabled],\\n.ant-btn-link-disabled:hover,\\n.ant-btn-link.disabled:hover,\\n.ant-btn-link[disabled]:hover,\\n.ant-btn-link-disabled:focus,\\n.ant-btn-link.disabled:focus,\\n.ant-btn-link[disabled]:focus,\\n.ant-btn-link-disabled:active,\\n.ant-btn-link.disabled:active,\\n.ant-btn-link[disabled]:active,\\n.ant-btn-link-disabled.active,\\n.ant-btn-link.disabled.active,\\n.ant-btn-link[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-link-disabled > a:only-child,\\n.ant-btn-link.disabled > a:only-child,\\n.ant-btn-link[disabled] > a:only-child,\\n.ant-btn-link-disabled:hover > a:only-child,\\n.ant-btn-link.disabled:hover > a:only-child,\\n.ant-btn-link[disabled]:hover > a:only-child,\\n.ant-btn-link-disabled:focus > a:only-child,\\n.ant-btn-link.disabled:focus > a:only-child,\\n.ant-btn-link[disabled]:focus > a:only-child,\\n.ant-btn-link-disabled:active > a:only-child,\\n.ant-btn-link.disabled:active > a:only-child,\\n.ant-btn-link[disabled]:active > a:only-child,\\n.ant-btn-link-disabled.active > a:only-child,\\n.ant-btn-link.disabled.active > a:only-child,\\n.ant-btn-link[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-link-disabled > a:only-child::after,\\n.ant-btn-link.disabled > a:only-child::after,\\n.ant-btn-link[disabled] > a:only-child::after,\\n.ant-btn-link-disabled:hover > a:only-child::after,\\n.ant-btn-link.disabled:hover > a:only-child::after,\\n.ant-btn-link[disabled]:hover > a:only-child::after,\\n.ant-btn-link-disabled:focus > a:only-child::after,\\n.ant-btn-link.disabled:focus > a:only-child::after,\\n.ant-btn-link[disabled]:focus > a:only-child::after,\\n.ant-btn-link-disabled:active > a:only-child::after,\\n.ant-btn-link.disabled:active > a:only-child::after,\\n.ant-btn-link[disabled]:active > a:only-child::after,\\n.ant-btn-link-disabled.active > a:only-child::after,\\n.ant-btn-link.disabled.active > a:only-child::after,\\n.ant-btn-link[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-link:hover,\\n.ant-btn-link:focus,\\n.ant-btn-link:active {\\n border-color: transparent;\\n}\\n.ant-btn-link-disabled,\\n.ant-btn-link.disabled,\\n.ant-btn-link[disabled],\\n.ant-btn-link-disabled:hover,\\n.ant-btn-link.disabled:hover,\\n.ant-btn-link[disabled]:hover,\\n.ant-btn-link-disabled:focus,\\n.ant-btn-link.disabled:focus,\\n.ant-btn-link[disabled]:focus,\\n.ant-btn-link-disabled:active,\\n.ant-btn-link.disabled:active,\\n.ant-btn-link[disabled]:active,\\n.ant-btn-link-disabled.active,\\n.ant-btn-link.disabled.active,\\n.ant-btn-link[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: transparent;\\n border-color: transparent;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-link-disabled > a:only-child,\\n.ant-btn-link.disabled > a:only-child,\\n.ant-btn-link[disabled] > a:only-child,\\n.ant-btn-link-disabled:hover > a:only-child,\\n.ant-btn-link.disabled:hover > a:only-child,\\n.ant-btn-link[disabled]:hover > a:only-child,\\n.ant-btn-link-disabled:focus > a:only-child,\\n.ant-btn-link.disabled:focus > a:only-child,\\n.ant-btn-link[disabled]:focus > a:only-child,\\n.ant-btn-link-disabled:active > a:only-child,\\n.ant-btn-link.disabled:active > a:only-child,\\n.ant-btn-link[disabled]:active > a:only-child,\\n.ant-btn-link-disabled.active > a:only-child,\\n.ant-btn-link.disabled.active > a:only-child,\\n.ant-btn-link[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-link-disabled > a:only-child::after,\\n.ant-btn-link.disabled > a:only-child::after,\\n.ant-btn-link[disabled] > a:only-child::after,\\n.ant-btn-link-disabled:hover > a:only-child::after,\\n.ant-btn-link.disabled:hover > a:only-child::after,\\n.ant-btn-link[disabled]:hover > a:only-child::after,\\n.ant-btn-link-disabled:focus > a:only-child::after,\\n.ant-btn-link.disabled:focus > a:only-child::after,\\n.ant-btn-link[disabled]:focus > a:only-child::after,\\n.ant-btn-link-disabled:active > a:only-child::after,\\n.ant-btn-link.disabled:active > a:only-child::after,\\n.ant-btn-link[disabled]:active > a:only-child::after,\\n.ant-btn-link-disabled.active > a:only-child::after,\\n.ant-btn-link.disabled.active > a:only-child::after,\\n.ant-btn-link[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-icon-only {\\n width: 32px;\\n height: 32px;\\n padding: 0;\\n font-size: 16px;\\n border-radius: 4px;\\n}\\n.ant-btn-icon-only.ant-btn-lg {\\n width: 40px;\\n height: 40px;\\n padding: 0;\\n font-size: 18px;\\n border-radius: 4px;\\n}\\n.ant-btn-icon-only.ant-btn-sm {\\n width: 24px;\\n height: 24px;\\n padding: 0;\\n font-size: 14px;\\n border-radius: 4px;\\n}\\n.ant-btn-icon-only > i {\\n vertical-align: middle;\\n}\\n.ant-btn-round {\\n height: 32px;\\n padding: 0 16px;\\n font-size: 14px;\\n border-radius: 32px;\\n}\\n.ant-btn-round.ant-btn-lg {\\n height: 40px;\\n padding: 0 20px;\\n font-size: 16px;\\n border-radius: 40px;\\n}\\n.ant-btn-round.ant-btn-sm {\\n height: 24px;\\n padding: 0 12px;\\n font-size: 14px;\\n border-radius: 24px;\\n}\\n.ant-btn-round.ant-btn-icon-only {\\n width: auto;\\n}\\n.ant-btn-circle,\\n.ant-btn-circle-outline {\\n min-width: 32px;\\n padding-right: 0;\\n padding-left: 0;\\n text-align: center;\\n border-radius: 50%;\\n}\\n.ant-btn-circle.ant-btn-lg,\\n.ant-btn-circle-outline.ant-btn-lg {\\n min-width: 40px;\\n border-radius: 50%;\\n}\\n.ant-btn-circle.ant-btn-sm,\\n.ant-btn-circle-outline.ant-btn-sm {\\n min-width: 24px;\\n border-radius: 50%;\\n}\\n.ant-btn::before {\\n position: absolute;\\n top: -1px;\\n right: -1px;\\n bottom: -1px;\\n left: -1px;\\n z-index: 1;\\n display: none;\\n background: #fff;\\n border-radius: inherit;\\n opacity: 0.35;\\n -webkit-transition: opacity 0.2s;\\n transition: opacity 0.2s;\\n content: '';\\n pointer-events: none;\\n}\\n.ant-btn .anticon {\\n -webkit-transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-btn .anticon.anticon-plus > svg,\\n.ant-btn .anticon.anticon-minus > svg {\\n shape-rendering: optimizeSpeed;\\n}\\n.ant-btn.ant-btn-loading {\\n position: relative;\\n}\\n.ant-btn.ant-btn-loading:not([disabled]) {\\n pointer-events: none;\\n}\\n.ant-btn.ant-btn-loading::before {\\n display: block;\\n}\\n.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) {\\n padding-left: 29px;\\n}\\n.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon:not(:last-child) {\\n margin-left: -14px;\\n}\\n.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) {\\n padding-left: 24px;\\n}\\n.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon {\\n margin-left: -17px;\\n}\\n.ant-btn-group {\\n position: relative;\\n display: inline-block;\\n}\\n.ant-btn-group > .ant-btn,\\n.ant-btn-group > span > .ant-btn {\\n position: relative;\\n}\\n.ant-btn-group > .ant-btn:hover,\\n.ant-btn-group > span > .ant-btn:hover,\\n.ant-btn-group > .ant-btn:focus,\\n.ant-btn-group > span > .ant-btn:focus,\\n.ant-btn-group > .ant-btn:active,\\n.ant-btn-group > span > .ant-btn:active,\\n.ant-btn-group > .ant-btn.active,\\n.ant-btn-group > span > .ant-btn.active {\\n z-index: 2;\\n}\\n.ant-btn-group > .ant-btn:disabled,\\n.ant-btn-group > span > .ant-btn:disabled {\\n z-index: 0;\\n}\\n.ant-btn-group > .ant-btn-icon-only {\\n font-size: 14px;\\n}\\n.ant-btn-group-lg > .ant-btn,\\n.ant-btn-group-lg > span > .ant-btn {\\n height: 40px;\\n padding: 0 15px;\\n font-size: 16px;\\n border-radius: 0;\\n line-height: 38px;\\n}\\n.ant-btn-group-lg > .ant-btn.ant-btn-icon-only {\\n width: 40px;\\n height: 40px;\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.ant-btn-group-sm > .ant-btn,\\n.ant-btn-group-sm > span > .ant-btn {\\n height: 24px;\\n padding: 0 7px;\\n font-size: 14px;\\n border-radius: 0;\\n line-height: 22px;\\n}\\n.ant-btn-group-sm > .ant-btn > .anticon,\\n.ant-btn-group-sm > span > .ant-btn > .anticon {\\n font-size: 14px;\\n}\\n.ant-btn-group-sm > .ant-btn.ant-btn-icon-only {\\n width: 24px;\\n height: 24px;\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.ant-btn-group .ant-btn + .ant-btn,\\n.ant-btn + .ant-btn-group,\\n.ant-btn-group span + .ant-btn,\\n.ant-btn-group .ant-btn + span,\\n.ant-btn-group > span + span,\\n.ant-btn-group + .ant-btn,\\n.ant-btn-group + .ant-btn-group {\\n margin-left: -1px;\\n}\\n.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {\\n border-left-color: transparent;\\n}\\n.ant-btn-group .ant-btn {\\n border-radius: 0;\\n}\\n.ant-btn-group > .ant-btn:first-child,\\n.ant-btn-group > span:first-child > .ant-btn {\\n margin-left: 0;\\n}\\n.ant-btn-group > .ant-btn:only-child {\\n border-radius: 4px;\\n}\\n.ant-btn-group > span:only-child > .ant-btn {\\n border-radius: 4px;\\n}\\n.ant-btn-group > .ant-btn:first-child:not(:last-child),\\n.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.ant-btn-group > .ant-btn:last-child:not(:first-child),\\n.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n.ant-btn-group-sm > .ant-btn:only-child {\\n border-radius: 4px;\\n}\\n.ant-btn-group-sm > span:only-child > .ant-btn {\\n border-radius: 4px;\\n}\\n.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\\n.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\\n.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n.ant-btn-group > .ant-btn-group {\\n float: left;\\n}\\n.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {\\n border-radius: 0;\\n}\\n.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {\\n padding-right: 8px;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {\\n padding-left: 8px;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.ant-btn:focus > span,\\n.ant-btn:active > span {\\n position: relative;\\n}\\n.ant-btn > .anticon + span,\\n.ant-btn > span + .anticon {\\n margin-left: 8px;\\n}\\n.ant-btn-background-ghost {\\n color: #fff;\\n background: transparent !important;\\n border-color: #fff;\\n}\\n.ant-btn-background-ghost.ant-btn-primary {\\n color: #1890ff;\\n background-color: transparent;\\n border-color: #1890ff;\\n text-shadow: none;\\n}\\n.ant-btn-background-ghost.ant-btn-primary > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-primary:hover,\\n.ant-btn-background-ghost.ant-btn-primary:focus {\\n color: #40a9ff;\\n background-color: transparent;\\n border-color: #40a9ff;\\n}\\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-primary:active,\\n.ant-btn-background-ghost.ant-btn-primary.active {\\n color: #096dd9;\\n background-color: transparent;\\n border-color: #096dd9;\\n}\\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-primary-disabled,\\n.ant-btn-background-ghost.ant-btn-primary.disabled,\\n.ant-btn-background-ghost.ant-btn-primary[disabled],\\n.ant-btn-background-ghost.ant-btn-primary-disabled:hover,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:hover,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:focus,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:focus,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:active,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:active,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active,\\n.ant-btn-background-ghost.ant-btn-primary-disabled.active,\\n.ant-btn-background-ghost.ant-btn-primary.disabled.active,\\n.ant-btn-background-ghost.ant-btn-primary[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-background-ghost.ant-btn-primary-disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary-disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-primary-disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary-disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary-disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-danger {\\n color: #ff4d4f;\\n background-color: transparent;\\n border-color: #ff4d4f;\\n text-shadow: none;\\n}\\n.ant-btn-background-ghost.ant-btn-danger > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-danger:hover,\\n.ant-btn-background-ghost.ant-btn-danger:focus {\\n color: #ff7875;\\n background-color: transparent;\\n border-color: #ff7875;\\n}\\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-danger:active,\\n.ant-btn-background-ghost.ant-btn-danger.active {\\n color: #d9363e;\\n background-color: transparent;\\n border-color: #d9363e;\\n}\\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-danger-disabled,\\n.ant-btn-background-ghost.ant-btn-danger.disabled,\\n.ant-btn-background-ghost.ant-btn-danger[disabled],\\n.ant-btn-background-ghost.ant-btn-danger-disabled:hover,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:hover,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:focus,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:focus,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:active,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:active,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active,\\n.ant-btn-background-ghost.ant-btn-danger-disabled.active,\\n.ant-btn-background-ghost.ant-btn-danger.disabled.active,\\n.ant-btn-background-ghost.ant-btn-danger[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-background-ghost.ant-btn-danger-disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger-disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-danger-disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger-disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger-disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-link {\\n color: #1890ff;\\n background-color: transparent;\\n border-color: transparent;\\n text-shadow: none;\\n color: #fff;\\n}\\n.ant-btn-background-ghost.ant-btn-link > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-link > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-link:hover,\\n.ant-btn-background-ghost.ant-btn-link:focus {\\n color: #40a9ff;\\n background-color: transparent;\\n border-color: transparent;\\n}\\n.ant-btn-background-ghost.ant-btn-link:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link:focus > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-link:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link:focus > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-link:active,\\n.ant-btn-background-ghost.ant-btn-link.active {\\n color: #096dd9;\\n background-color: transparent;\\n border-color: transparent;\\n}\\n.ant-btn-background-ghost.ant-btn-link:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-link:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-background-ghost.ant-btn-link-disabled,\\n.ant-btn-background-ghost.ant-btn-link.disabled,\\n.ant-btn-background-ghost.ant-btn-link[disabled],\\n.ant-btn-background-ghost.ant-btn-link-disabled:hover,\\n.ant-btn-background-ghost.ant-btn-link.disabled:hover,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:hover,\\n.ant-btn-background-ghost.ant-btn-link-disabled:focus,\\n.ant-btn-background-ghost.ant-btn-link.disabled:focus,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:focus,\\n.ant-btn-background-ghost.ant-btn-link-disabled:active,\\n.ant-btn-background-ghost.ant-btn-link.disabled:active,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:active,\\n.ant-btn-background-ghost.ant-btn-link-disabled.active,\\n.ant-btn-background-ghost.ant-btn-link.disabled.active,\\n.ant-btn-background-ghost.ant-btn-link[disabled].active {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n text-shadow: none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-btn-background-ghost.ant-btn-link-disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.disabled > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link[disabled] > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link-disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.disabled:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:hover > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link-disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.disabled:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:focus > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link-disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.disabled:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link-disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link.disabled.active > a:only-child,\\n.ant-btn-background-ghost.ant-btn-link[disabled].active > a:only-child {\\n color: currentColor;\\n}\\n.ant-btn-background-ghost.ant-btn-link-disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.disabled > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link[disabled] > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link-disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.disabled:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:hover > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link-disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.disabled:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:focus > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link-disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.disabled:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link[disabled]:active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link-disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link.disabled.active > a:only-child::after,\\n.ant-btn-background-ghost.ant-btn-link[disabled].active > a:only-child::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: transparent;\\n content: '';\\n}\\n.ant-btn-two-chinese-chars::first-letter {\\n letter-spacing: 0.34em;\\n}\\n.ant-btn-two-chinese-chars > *:not(.anticon) {\\n margin-right: -0.34em;\\n letter-spacing: 0.34em;\\n}\\n.ant-btn-block {\\n width: 100%;\\n}\\n.ant-btn:empty {\\n vertical-align: top;\\n}\\na.ant-btn {\\n padding-top: 0.1px;\\n line-height: 30px;\\n}\\na.ant-btn-lg {\\n line-height: 38px;\\n}\\na.ant-btn-sm {\\n line-height: 22px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || 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; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createDOMForm = _interopRequireDefault(require(\"rc-form/lib/createDOMForm\"));\n\nvar _createFormField = _interopRequireDefault(require(\"rc-form/lib/createFormField\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _type = require(\"../_util/type\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _FormItem = _interopRequireDefault(require(\"./FormItem\"));\n\nvar _constants = require(\"./constants\");\n\nvar _context = _interopRequireDefault(require(\"./context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar FormLayouts = (0, _type.tuple)('horizontal', 'inline', 'vertical');\n\nvar Form = /*#__PURE__*/function (_React$Component) {\n _inherits(Form, _React$Component);\n\n var _super = _createSuper(Form);\n\n function Form(props) {\n var _this;\n\n _classCallCheck(this, Form);\n\n _this = _super.call(this, props);\n\n _this.renderForm = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n hideRequiredMark = _this$props.hideRequiredMark,\n _this$props$className = _this$props.className,\n className = _this$props$className === void 0 ? '' : _this$props$className,\n layout = _this$props.layout;\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var formClassName = (0, _classnames[\"default\"])(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-horizontal\"), layout === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), layout === 'vertical'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), layout === 'inline'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hide-required-mark\"), hideRequiredMark), _classNames), className);\n var formProps = (0, _omit[\"default\"])(_this.props, ['prefixCls', 'className', 'layout', 'form', 'hideRequiredMark', 'wrapperCol', 'labelAlign', 'labelCol', 'colon']);\n return /*#__PURE__*/React.createElement(\"form\", _extends({}, formProps, {\n className: formClassName\n }));\n };\n\n (0, _warning[\"default\"])(!props.form, 'Form', 'It is unnecessary to pass `form` to `Form` after antd@1.7.0.');\n return _this;\n }\n\n _createClass(Form, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperCol = _this$props2.wrapperCol,\n labelAlign = _this$props2.labelAlign,\n labelCol = _this$props2.labelCol,\n layout = _this$props2.layout,\n colon = _this$props2.colon;\n return /*#__PURE__*/React.createElement(_context[\"default\"].Provider, {\n value: {\n wrapperCol: wrapperCol,\n labelAlign: labelAlign,\n labelCol: labelCol,\n vertical: layout === 'vertical',\n colon: colon\n }\n }, /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderForm));\n }\n }]);\n\n return Form;\n}(React.Component);\n\nexports[\"default\"] = Form;\nForm.defaultProps = {\n colon: true,\n layout: 'horizontal',\n hideRequiredMark: false,\n onSubmit: function onSubmit(e) {\n e.preventDefault();\n }\n};\nForm.propTypes = {\n prefixCls: PropTypes.string,\n layout: PropTypes.oneOf(FormLayouts),\n children: PropTypes.any,\n onSubmit: PropTypes.func,\n hideRequiredMark: PropTypes.bool,\n colon: PropTypes.bool\n};\nForm.Item = _FormItem[\"default\"];\nForm.createFormField = _createFormField[\"default\"];\n\nForm.create = function create() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _createDOMForm[\"default\"])(_extends(_extends({\n fieldNameProp: 'id'\n }, options), {\n fieldMetaProp: _constants.FIELD_META_PROP,\n fieldDataProp: _constants.FIELD_DATA_PROP\n }));\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _domScrollIntoView = require('dom-scroll-into-view');\n\nvar _domScrollIntoView2 = _interopRequireDefault(_domScrollIntoView);\n\nvar _has = require('lodash/has');\n\nvar _has2 = _interopRequireDefault(_has);\n\nvar _createBaseForm = require('./createBaseForm');\n\nvar _createBaseForm2 = _interopRequireDefault(_createBaseForm);\n\nvar _createForm = require('./createForm');\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction computedStyle(el, prop) {\n var getComputedStyle = window.getComputedStyle;\n var style =\n // If we have getComputedStyle\n getComputedStyle ?\n // Query it\n // TODO: From CSS-Query notes, we might need (node, null) for FF\n getComputedStyle(el) :\n\n // Otherwise, we are in IE and use currentStyle\n el.currentStyle;\n if (style) {\n return style[\n // Switch to camelCase for CSSOM\n // DEV: Grabbed from jQuery\n // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n prop.replace(/-(\\w)/gi, function (word, letter) {\n return letter.toUpperCase();\n })];\n }\n return undefined;\n}\n\nfunction getScrollableContainer(n) {\n var node = n;\n var nodeName = void 0;\n /* eslint no-cond-assign:0 */\n while ((nodeName = node.nodeName.toLowerCase()) !== 'body') {\n var overflowY = computedStyle(node, 'overflowY');\n // https://stackoverflow.com/a/36900407/3040605\n if (node !== n && (overflowY === 'auto' || overflowY === 'scroll') && node.scrollHeight > node.clientHeight) {\n return node;\n }\n node = node.parentNode;\n }\n return nodeName === 'body' ? node.ownerDocument : node;\n}\n\nvar mixin = {\n getForm: function getForm() {\n return (0, _extends3['default'])({}, _createForm.mixin.getForm.call(this), {\n validateFieldsAndScroll: this.validateFieldsAndScroll\n });\n },\n validateFieldsAndScroll: function validateFieldsAndScroll(ns, opt, cb) {\n var _this = this;\n\n var _getParams = (0, _utils.getParams)(ns, opt, cb),\n names = _getParams.names,\n callback = _getParams.callback,\n options = _getParams.options;\n\n var newCb = function newCb(error, values) {\n if (error) {\n var validNames = _this.fieldsStore.getValidFieldsName();\n var firstNode = void 0;\n var firstTop = void 0;\n\n validNames.forEach(function (name) {\n if ((0, _has2['default'])(error, name)) {\n var instance = _this.getFieldInstance(name);\n if (instance) {\n var node = _reactDom2['default'].findDOMNode(instance);\n var top = node.getBoundingClientRect().top;\n if (node.type !== 'hidden' && (firstTop === undefined || firstTop > top)) {\n firstTop = top;\n firstNode = node;\n }\n }\n }\n });\n\n if (firstNode) {\n var c = options.container || getScrollableContainer(firstNode);\n (0, _domScrollIntoView2['default'])(firstNode, c, (0, _extends3['default'])({\n onlyScrollIfNeeded: true\n }, options.scroll));\n }\n }\n\n if (typeof callback === 'function') {\n callback(error, values);\n }\n };\n\n return this.validateFields(names, options, newCb);\n }\n};\n\nfunction createDOMForm(option) {\n return (0, _createBaseForm2['default'])((0, _extends3['default'])({}, option), [mixin]);\n}\n\nexports['default'] = createDOMForm;\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n } // only handle componentWillReceiveProps\n\n\n if (typeof prototype.componentWillReceiveProps !== 'function') {\n return Component;\n } // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps\n // https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler\n\n\n if (!_react.default.Profiler) {\n return Component;\n } // Here polyfill get started\n\n\n prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;\n delete prototype.componentWillReceiveProps;\n return Component;\n};\n\nvar _default = unsafeLifecyclesPolyfill;\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = require('./util');\n\nvar _validator = require('./validator/');\n\nvar _validator2 = _interopRequireDefault(_validator);\n\nvar _messages2 = require('./messages');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = _messages2.messages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = (0, _util.deepMerge)((0, _messages2.newMessages)(), _messages);\n }\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((typeof rules === 'undefined' ? 'undefined' : _typeof(rules)) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n var z = void 0;\n var item = void 0;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_) {\n var _this = this;\n\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var source = source_;\n var options = o;\n var callback = 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();\n }\n return Promise.resolve();\n }\n\n function complete(results) {\n var i = void 0;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = (0, _util.convertFieldsError)(errors);\n }\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages = this.messages();\n if (messages === _messages2.messages) {\n messages = (0, _messages2.newMessages)();\n }\n (0, _util.deepMerge)(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var arr = void 0;\n var value = void 0;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, 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 = _extends({}, rule);\n }\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return (0, _util.asyncMap)(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + '.' + key\n });\n }\n\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n if (errors.length && rule.message) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map((0, _util.complementError)(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\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) {\n errors = [].concat(rule.message).map((0, _util.complementError)(rule));\n } else if (options.error) {\n errors = [options.error(rule, (0, _util.format)(options.messages.required, rule.field))];\n } else {\n errors = [];\n }\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n var schema = new Schema(fieldsSchema);\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, function (errs) {\n var finalErrors = [];\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res = void 0;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || rule.field + ' fails');\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !_validator2['default'].hasOwnProperty(rule.type)) {\n throw new Error((0, _util.format)('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return _validator2['default'].required;\n }\n return _validator2['default'][this.getType(rule)] || false;\n }\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n _validator2['default'][type] = validator;\n};\n\nSchema.warning = _util.warning;\n\nSchema.messages = _messages2.messages;\n\nexports['default'] = Schema;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _string = require('./string');\n\nvar _string2 = _interopRequireDefault(_string);\n\nvar _method = require('./method');\n\nvar _method2 = _interopRequireDefault(_method);\n\nvar _number = require('./number');\n\nvar _number2 = _interopRequireDefault(_number);\n\nvar _boolean = require('./boolean');\n\nvar _boolean2 = _interopRequireDefault(_boolean);\n\nvar _regexp = require('./regexp');\n\nvar _regexp2 = _interopRequireDefault(_regexp);\n\nvar _integer = require('./integer');\n\nvar _integer2 = _interopRequireDefault(_integer);\n\nvar _float = require('./float');\n\nvar _float2 = _interopRequireDefault(_float);\n\nvar _array = require('./array');\n\nvar _array2 = _interopRequireDefault(_array);\n\nvar _object = require('./object');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _enum = require('./enum');\n\nvar _enum2 = _interopRequireDefault(_enum);\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nvar _date = require('./date');\n\nvar _date2 = _interopRequireDefault(_date);\n\nvar _required = require('./required');\n\nvar _required2 = _interopRequireDefault(_required);\n\nvar _type = require('./type');\n\nvar _type2 = _interopRequireDefault(_type);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n string: _string2['default'],\n method: _method2['default'],\n number: _number2['default'],\n boolean: _boolean2['default'],\n regexp: _regexp2['default'],\n integer: _integer2['default'],\n float: _float2['default'],\n array: _array2['default'],\n object: _object2['default'],\n 'enum': _enum2['default'],\n pattern: _pattern2['default'],\n date: _date2['default'],\n url: _type2['default'],\n hex: _type2['default'],\n email: _type2['default'],\n required: _required2['default']\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options, 'string');\n if (!(0, _util.isEmptyValue)(value, 'string')) {\n _rule2['default'].type(rule, value, source, errors, options);\n _rule2['default'].range(rule, value, source, errors, options);\n _rule2['default'].pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n _rule2['default'].whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexports['default'] = string;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\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 */\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(util.format(options.messages.whitespace, rule.fullField));\n }\n}\n\nexports['default'] = whitespace;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nvar _required = require('./required');\n\nvar _required2 = _interopRequireDefault(_required);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/* eslint max-len:0 */\n\nvar 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]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp('^(?!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]*)?$', 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\n\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n\n/**\n * Rule for validating the type of a value.\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 */\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n (0, _required2['default'])(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== rule.type) {\n errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\nexports['default'] = type;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/**\n * Rule for validating minimum and maximum allowed values.\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 */\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n 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(util.format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(util.format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(util.format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(util.format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\nexports['default'] = range;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar ENUM = 'enum';\n\n/**\n * Rule for validating a value exists in an enumerable list.\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 */\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(util.format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\nexports['default'] = enumerable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/**\n * Rule for validating a regular expression pattern.\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 */\nfunction pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\nexports['default'] = pattern;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = method;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n _rule2['default'].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = number;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _util = require('../util');\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = boolean;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (!(0, _util.isEmptyValue)(value)) {\n _rule2['default'].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = regexp;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n _rule2['default'].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = integer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n _rule2['default'].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = floatFn;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value, 'array') && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options, 'array');\n if (!(0, _util.isEmptyValue)(value, 'array')) {\n _rule2['default'].type(rule, value, source, errors, options);\n _rule2['default'].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = array;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule2['default'].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = object;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar ENUM = 'enum';\n\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (value) {\n _rule2['default'][ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = enumerable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (!(0, _util.isEmptyValue)(value, 'string')) {\n _rule2['default'].pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = pattern;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if ((0, _util.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options);\n if (!(0, _util.isEmptyValue)(value)) {\n var dateObject = void 0;\n\n if (typeof value === 'number') {\n dateObject = new Date(value);\n } else {\n dateObject = value;\n }\n\n _rule2['default'].type(rule, dateObject, source, errors, options);\n if (dateObject) {\n _rule2['default'].range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexports['default'] = date;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);\n _rule2['default'].required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nexports['default'] = required;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _rule = require('../rule/');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _util = require('../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0, _util.isEmptyValue)(value, ruleType) && !rule.required) {\n return callback();\n }\n _rule2['default'].required(rule, value, source, errors, options, ruleType);\n if (!(0, _util.isEmptyValue)(value, ruleType)) {\n _rule2['default'].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexports['default'] = type;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newMessages = newMessages;\nfunction newMessages() {\n return {\n 'default': 'Validation error on field %s',\n required: '%s is required',\n 'enum': '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\n\nvar messages = exports.messages = newMessages();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _defineProperty2 = require('babel-runtime/helpers/defineProperty');\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports['default'] = createFieldsStore;\n\nvar _set = require('lodash/set');\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _createFormField = require('./createFormField');\n\nvar _createFormField2 = _interopRequireDefault(_createFormField);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction partOf(a, b) {\n return b.indexOf(a) === 0 && ['.', '['].indexOf(b[a.length]) !== -1;\n}\n\nfunction internalFlattenFields(fields) {\n return (0, _utils.flattenFields)(fields, function (_, node) {\n return (0, _createFormField.isFormField)(node);\n }, 'You must wrap field data with `createFormField`.');\n}\n\nvar FieldsStore = function () {\n function FieldsStore(fields) {\n (0, _classCallCheck3['default'])(this, FieldsStore);\n\n _initialiseProps.call(this);\n\n this.fields = internalFlattenFields(fields);\n this.fieldsMeta = {};\n }\n\n (0, _createClass3['default'])(FieldsStore, [{\n key: 'updateFields',\n value: function updateFields(fields) {\n this.fields = internalFlattenFields(fields);\n }\n }, {\n key: 'flattenRegisteredFields',\n value: function flattenRegisteredFields(fields) {\n var validFieldsName = this.getAllFieldsName();\n return (0, _utils.flattenFields)(fields, function (path) {\n return validFieldsName.indexOf(path) >= 0;\n }, 'You cannot set a form field before rendering a field associated with the value.');\n }\n }, {\n key: 'setFields',\n value: function setFields(fields) {\n var _this = this;\n\n var fieldsMeta = this.fieldsMeta;\n var nowFields = (0, _extends3['default'])({}, this.fields, fields);\n var nowValues = {};\n Object.keys(fieldsMeta).forEach(function (f) {\n nowValues[f] = _this.getValueFromFields(f, nowFields);\n });\n Object.keys(nowValues).forEach(function (f) {\n var value = nowValues[f];\n var fieldMeta = _this.getFieldMeta(f);\n if (fieldMeta && fieldMeta.normalize) {\n var nowValue = fieldMeta.normalize(value, _this.getValueFromFields(f, _this.fields), nowValues);\n if (nowValue !== value) {\n nowFields[f] = (0, _extends3['default'])({}, nowFields[f], {\n value: nowValue\n });\n }\n }\n });\n this.fields = nowFields;\n }\n }, {\n key: 'resetFields',\n value: function resetFields(ns) {\n var fields = this.fields;\n\n var names = ns ? this.getValidFieldsFullName(ns) : this.getAllFieldsName();\n return names.reduce(function (acc, name) {\n var field = fields[name];\n if (field && 'value' in field) {\n acc[name] = {};\n }\n return acc;\n }, {});\n }\n }, {\n key: 'setFieldMeta',\n value: function setFieldMeta(name, meta) {\n this.fieldsMeta[name] = meta;\n }\n }, {\n key: 'setFieldsAsDirty',\n value: function setFieldsAsDirty() {\n var _this2 = this;\n\n Object.keys(this.fields).forEach(function (name) {\n var field = _this2.fields[name];\n var fieldMeta = _this2.fieldsMeta[name];\n if (field && fieldMeta && (0, _utils.hasRules)(fieldMeta.validate)) {\n _this2.fields[name] = (0, _extends3['default'])({}, field, {\n dirty: true\n });\n }\n });\n }\n }, {\n key: 'getFieldMeta',\n value: function getFieldMeta(name) {\n this.fieldsMeta[name] = this.fieldsMeta[name] || {};\n return this.fieldsMeta[name];\n }\n }, {\n key: 'getValueFromFields',\n value: function getValueFromFields(name, fields) {\n var field = fields[name];\n if (field && 'value' in field) {\n return field.value;\n }\n var fieldMeta = this.getFieldMeta(name);\n return fieldMeta && fieldMeta.initialValue;\n }\n }, {\n key: 'getValidFieldsName',\n value: function getValidFieldsName() {\n var _this3 = this;\n\n var fieldsMeta = this.fieldsMeta;\n\n return fieldsMeta ? Object.keys(fieldsMeta).filter(function (name) {\n return !_this3.getFieldMeta(name).hidden;\n }) : [];\n }\n }, {\n key: 'getAllFieldsName',\n value: function getAllFieldsName() {\n var fieldsMeta = this.fieldsMeta;\n\n return fieldsMeta ? Object.keys(fieldsMeta) : [];\n }\n }, {\n key: 'getValidFieldsFullName',\n value: function getValidFieldsFullName(maybePartialName) {\n var maybePartialNames = Array.isArray(maybePartialName) ? maybePartialName : [maybePartialName];\n return this.getValidFieldsName().filter(function (fullName) {\n return maybePartialNames.some(function (partialName) {\n return fullName === partialName || (0, _utils.startsWith)(fullName, partialName) && ['.', '['].indexOf(fullName[partialName.length]) >= 0;\n });\n });\n }\n }, {\n key: 'getFieldValuePropValue',\n value: function getFieldValuePropValue(fieldMeta) {\n var name = fieldMeta.name,\n getValueProps = fieldMeta.getValueProps,\n valuePropName = fieldMeta.valuePropName;\n\n var field = this.getField(name);\n var fieldValue = 'value' in field ? field.value : fieldMeta.initialValue;\n if (getValueProps) {\n return getValueProps(fieldValue);\n }\n return (0, _defineProperty3['default'])({}, valuePropName, fieldValue);\n }\n }, {\n key: 'getField',\n value: function getField(name) {\n return (0, _extends3['default'])({}, this.fields[name], {\n name: name\n });\n }\n }, {\n key: 'getNotCollectedFields',\n value: function getNotCollectedFields() {\n var _this4 = this;\n\n var fieldsName = this.getValidFieldsName();\n return fieldsName.filter(function (name) {\n return !_this4.fields[name];\n }).map(function (name) {\n return {\n name: name,\n dirty: false,\n value: _this4.getFieldMeta(name).initialValue\n };\n }).reduce(function (acc, field) {\n return (0, _set2['default'])(acc, field.name, (0, _createFormField2['default'])(field));\n }, {});\n }\n }, {\n key: 'getNestedAllFields',\n value: function getNestedAllFields() {\n var _this5 = this;\n\n return Object.keys(this.fields).reduce(function (acc, name) {\n return (0, _set2['default'])(acc, name, (0, _createFormField2['default'])(_this5.fields[name]));\n }, this.getNotCollectedFields());\n }\n }, {\n key: 'getFieldMember',\n value: function getFieldMember(name, member) {\n return this.getField(name)[member];\n }\n }, {\n key: 'getNestedFields',\n value: function getNestedFields(names, getter) {\n var fields = names || this.getValidFieldsName();\n return fields.reduce(function (acc, f) {\n return (0, _set2['default'])(acc, f, getter(f));\n }, {});\n }\n }, {\n key: 'getNestedField',\n value: function getNestedField(name, getter) {\n var fullNames = this.getValidFieldsFullName(name);\n if (fullNames.length === 0 || // Not registered\n fullNames.length === 1 && fullNames[0] === name // Name already is full name.\n ) {\n return getter(name);\n }\n var isArrayValue = fullNames[0][name.length] === '[';\n var suffixNameStartIndex = isArrayValue ? name.length : name.length + 1;\n return fullNames.reduce(function (acc, fullName) {\n return (0, _set2['default'])(acc, fullName.slice(suffixNameStartIndex), getter(fullName));\n }, isArrayValue ? [] : {});\n }\n }, {\n key: 'isValidNestedFieldName',\n\n\n // @private\n // BG: `a` and `a.b` cannot be use in the same form\n value: function isValidNestedFieldName(name) {\n var names = this.getAllFieldsName();\n return names.every(function (n) {\n return !partOf(n, name) && !partOf(name, n);\n });\n }\n }, {\n key: 'clearField',\n value: function clearField(name) {\n delete this.fields[name];\n delete this.fieldsMeta[name];\n }\n }]);\n return FieldsStore;\n}();\n\nvar _initialiseProps = function _initialiseProps() {\n var _this6 = this;\n\n this.setFieldsInitialValue = function (initialValues) {\n var flattenedInitialValues = _this6.flattenRegisteredFields(initialValues);\n var fieldsMeta = _this6.fieldsMeta;\n Object.keys(flattenedInitialValues).forEach(function (name) {\n if (fieldsMeta[name]) {\n _this6.setFieldMeta(name, (0, _extends3['default'])({}, _this6.getFieldMeta(name), {\n initialValue: flattenedInitialValues[name]\n }));\n }\n });\n };\n\n this.getAllValues = function () {\n var fieldsMeta = _this6.fieldsMeta,\n fields = _this6.fields;\n\n return Object.keys(fieldsMeta).reduce(function (acc, name) {\n return (0, _set2['default'])(acc, name, _this6.getValueFromFields(name, fields));\n }, {});\n };\n\n this.getFieldsValue = function (names) {\n return _this6.getNestedFields(names, _this6.getFieldValue);\n };\n\n this.getFieldValue = function (name) {\n var fields = _this6.fields;\n\n return _this6.getNestedField(name, function (fullName) {\n return _this6.getValueFromFields(fullName, fields);\n });\n };\n\n this.getFieldsError = function (names) {\n return _this6.getNestedFields(names, _this6.getFieldError);\n };\n\n this.getFieldError = function (name) {\n return _this6.getNestedField(name, function (fullName) {\n return (0, _utils.getErrorStrs)(_this6.getFieldMember(fullName, 'errors'));\n });\n };\n\n this.isFieldValidating = function (name) {\n return _this6.getFieldMember(name, 'validating');\n };\n\n this.isFieldsValidating = function (ns) {\n var names = ns || _this6.getValidFieldsName();\n return names.some(function (n) {\n return _this6.isFieldValidating(n);\n });\n };\n\n this.isFieldTouched = function (name) {\n return _this6.getFieldMember(name, 'touched');\n };\n\n this.isFieldsTouched = function (ns) {\n var names = ns || _this6.getValidFieldsName();\n return names.some(function (n) {\n return _this6.isFieldTouched(n);\n });\n };\n};\n\nfunction createFieldsStore(fields) {\n return new FieldsStore(fields);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar FieldElemWrapper = function (_React$Component) {\n (0, _inherits3['default'])(FieldElemWrapper, _React$Component);\n\n function FieldElemWrapper() {\n (0, _classCallCheck3['default'])(this, FieldElemWrapper);\n return (0, _possibleConstructorReturn3['default'])(this, (FieldElemWrapper.__proto__ || Object.getPrototypeOf(FieldElemWrapper)).apply(this, arguments));\n }\n\n (0, _createClass3['default'])(FieldElemWrapper, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n name = _props.name,\n form = _props.form;\n\n form.domFields[name] = true;\n form.recoverClearedField(name);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _props2 = this.props,\n name = _props2.name,\n form = _props2.form;\n\n var fieldMeta = form.fieldsStore.getFieldMeta(name);\n if (!fieldMeta.preserve) {\n // after destroy, delete data\n form.clearedFieldMetaCache[name] = {\n field: form.fieldsStore.getField(name),\n meta: fieldMeta\n };\n form.clearField(name);\n }\n delete form.domFields[name];\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n return FieldElemWrapper;\n}(_react2['default'].Component);\n\nexports['default'] = FieldElemWrapper;\n\n\nFieldElemWrapper.propTypes = {\n name: _propTypes2['default'].string,\n form: _propTypes2['default'].shape({\n domFields: _propTypes2['default'].objectOf(_propTypes2['default'].bool),\n recoverClearedField: _propTypes2['default'].func,\n fieldsStore: _propTypes2['default'].shape({\n getFieldMeta: _propTypes2['default'].func,\n getField: _propTypes2['default'].func\n }),\n clearedFieldMetaCache: _propTypes2['default'].objectOf(_propTypes2['default'].shape({\n field: _propTypes2['default'].object,\n meta: _propTypes2['default'].object\n })),\n clearField: _propTypes2['default'].func\n }),\n children: _propTypes2['default'].node\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mixin = undefined;\n\nvar _createBaseForm = require('./createBaseForm');\n\nvar _createBaseForm2 = _interopRequireDefault(_createBaseForm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar mixin = exports.mixin = {\n getForm: function getForm() {\n return {\n getFieldsValue: this.fieldsStore.getFieldsValue,\n getFieldValue: this.fieldsStore.getFieldValue,\n getFieldInstance: this.getFieldInstance,\n setFieldsValue: this.setFieldsValue,\n setFields: this.setFields,\n setFieldsInitialValue: this.fieldsStore.setFieldsInitialValue,\n getFieldDecorator: this.getFieldDecorator,\n getFieldProps: this.getFieldProps,\n getFieldsError: this.fieldsStore.getFieldsError,\n getFieldError: this.fieldsStore.getFieldError,\n isFieldValidating: this.fieldsStore.isFieldValidating,\n isFieldsValidating: this.fieldsStore.isFieldsValidating,\n isFieldsTouched: this.fieldsStore.isFieldsTouched,\n isFieldTouched: this.fieldsStore.isFieldTouched,\n isSubmitting: this.isSubmitting,\n submit: this.submit,\n validateFields: this.validateFields,\n resetFields: this.resetFields\n };\n }\n};\n\nfunction createForm(options) {\n return (0, _createBaseForm2['default'])(options, [mixin]);\n}\n\nexports['default'] = createForm;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _rcAnimate = _interopRequireDefault(require(\"rc-animate\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _row = _interopRequireDefault(require(\"../grid/row\"));\n\nvar _col = _interopRequireDefault(require(\"../grid/col\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _type = require(\"../_util/type\");\n\nvar _constants = require(\"./constants\");\n\nvar _context = _interopRequireDefault(require(\"./context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar ValidateStatuses = (0, _type.tuple)('success', 'warning', 'error', 'validating', '');\nvar FormLabelAligns = (0, _type.tuple)('left', 'right');\n\nfunction intersperseSpace(list) {\n return list.reduce(function (current, item) {\n return [].concat(_toConsumableArray(current), [' ', item]);\n }, []).slice(1);\n}\n\nvar FormItem = /*#__PURE__*/function (_React$Component) {\n _inherits(FormItem, _React$Component);\n\n var _super = _createSuper(FormItem);\n\n function FormItem() {\n var _this;\n\n _classCallCheck(this, FormItem);\n\n _this = _super.apply(this, arguments);\n _this.helpShow = false; // Resolve duplicated ids bug between different forms\n // https://github.com/ant-design/ant-design/issues/7351\n\n _this.onLabelClick = function () {\n var id = _this.props.id || _this.getId();\n\n if (!id) {\n return;\n }\n\n var formItemNode = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n var control = formItemNode.querySelector(\"[id=\\\"\".concat(id, \"\\\"]\"));\n\n if (control && control.focus) {\n control.focus();\n }\n };\n\n _this.onHelpAnimEnd = function (_key, helpShow) {\n _this.helpShow = helpShow;\n\n if (!helpShow) {\n _this.setState({});\n }\n };\n\n _this.renderFormItem = function (_ref) {\n var _itemClassName;\n\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n style = _a.style,\n className = _a.className,\n restProps = __rest(_a, [\"prefixCls\", \"style\", \"className\"]);\n\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n\n var children = _this.renderChildren(prefixCls);\n\n var itemClassName = (_itemClassName = {}, _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item\"), true), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-with-help\"), _this.helpShow), _defineProperty(_itemClassName, \"\".concat(className), !!className), _itemClassName);\n return /*#__PURE__*/React.createElement(_row[\"default\"], _extends({\n className: (0, _classnames[\"default\"])(itemClassName),\n style: style\n }, (0, _omit[\"default\"])(restProps, ['id', 'htmlFor', 'label', 'labelAlign', 'labelCol', 'wrapperCol', 'help', 'extra', 'validateStatus', 'hasFeedback', 'required', 'colon']), {\n key: \"row\"\n }), children);\n };\n\n return _this;\n }\n\n _createClass(FormItem, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n children = _this$props.children,\n help = _this$props.help,\n validateStatus = _this$props.validateStatus,\n id = _this$props.id;\n (0, _warning[\"default\"])(this.getControls(children, true).length <= 1 || help !== undefined || validateStatus !== undefined, 'Form.Item', 'Cannot generate `validateStatus` and `help` automatically, ' + 'while there are more than one `getFieldDecorator` in it.');\n (0, _warning[\"default\"])(!id, 'Form.Item', '`id` is deprecated for its label `htmlFor`. Please use `htmlFor` directly.');\n }\n }, {\n key: \"getHelpMessage\",\n value: function getHelpMessage() {\n var help = this.props.help;\n\n if (help === undefined && this.getOnlyControl()) {\n var _this$getField = this.getField(),\n errors = _this$getField.errors;\n\n if (errors) {\n return intersperseSpace(errors.map(function (e, index) {\n var node = null;\n\n if ( /*#__PURE__*/React.isValidElement(e)) {\n node = e;\n } else if ( /*#__PURE__*/React.isValidElement(e.message)) {\n node = e.message;\n } // eslint-disable-next-line react/no-array-index-key\n\n\n return node ? /*#__PURE__*/React.cloneElement(node, {\n key: index\n }) : e.message;\n }));\n }\n\n return '';\n }\n\n return help;\n }\n }, {\n key: \"getControls\",\n value: function getControls(children, recursively) {\n var controls = [];\n var childrenArray = React.Children.toArray(children);\n\n for (var i = 0; i < childrenArray.length; i++) {\n if (!recursively && controls.length > 0) {\n break;\n }\n\n var child = childrenArray[i];\n\n if (child.type && (child.type === FormItem || child.type.displayName === 'FormItem')) {\n continue;\n }\n\n if (!child.props) {\n continue;\n }\n\n if (_constants.FIELD_META_PROP in child.props) {\n // And means FIELD_DATA_PROP in child.props, too.\n controls.push(child);\n } else if (child.props.children) {\n controls = controls.concat(this.getControls(child.props.children, recursively));\n }\n }\n\n return controls;\n }\n }, {\n key: \"getOnlyControl\",\n value: function getOnlyControl() {\n var child = this.getControls(this.props.children, false)[0];\n return child !== undefined ? child : null;\n }\n }, {\n key: \"getChildProp\",\n value: function getChildProp(prop) {\n var child = this.getOnlyControl();\n return child && child.props && child.props[prop];\n }\n }, {\n key: \"getId\",\n value: function getId() {\n return this.getChildProp('id');\n }\n }, {\n key: \"getMeta\",\n value: function getMeta() {\n return this.getChildProp(_constants.FIELD_META_PROP);\n }\n }, {\n key: \"getField\",\n value: function getField() {\n return this.getChildProp(_constants.FIELD_DATA_PROP);\n }\n }, {\n key: \"getValidateStatus\",\n value: function getValidateStatus() {\n var onlyControl = this.getOnlyControl();\n\n if (!onlyControl) {\n return '';\n }\n\n var field = this.getField();\n\n if (field.validating) {\n return 'validating';\n }\n\n if (field.errors) {\n return 'error';\n }\n\n var fieldValue = 'value' in field ? field.value : this.getMeta().initialValue;\n\n if (fieldValue !== undefined && fieldValue !== null && fieldValue !== '') {\n return 'success';\n }\n\n return '';\n }\n }, {\n key: \"isRequired\",\n value: function isRequired() {\n var required = this.props.required;\n\n if (required !== undefined) {\n return required;\n }\n\n if (this.getOnlyControl()) {\n var meta = this.getMeta() || {};\n var validate = meta.validate || [];\n return validate.filter(function (item) {\n return !!item.rules;\n }).some(function (item) {\n return item.rules.some(function (rule) {\n return rule.required;\n });\n });\n }\n\n return false;\n }\n }, {\n key: \"renderHelp\",\n value: function renderHelp(prefixCls) {\n var help = this.getHelpMessage();\n var children = help ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-explain\"),\n key: \"help\"\n }, help) : null;\n\n if (children) {\n this.helpShow = !!children;\n }\n\n return /*#__PURE__*/React.createElement(_rcAnimate[\"default\"], {\n transitionName: \"show-help\",\n component: \"\",\n transitionAppear: true,\n key: \"help\",\n onEnd: this.onHelpAnimEnd\n }, children);\n }\n }, {\n key: \"renderExtra\",\n value: function renderExtra(prefixCls) {\n var extra = this.props.extra;\n return extra ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra) : null;\n }\n }, {\n key: \"renderValidateWrapper\",\n value: function renderValidateWrapper(prefixCls, c1, c2, c3) {\n var props = this.props;\n var onlyControl = this.getOnlyControl;\n var validateStatus = props.validateStatus === undefined && onlyControl ? this.getValidateStatus() : props.validateStatus;\n var classes = \"\".concat(prefixCls, \"-item-control\");\n\n if (validateStatus) {\n classes = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-item-control\"), {\n 'has-feedback': validateStatus && props.hasFeedback,\n 'has-success': validateStatus === 'success',\n 'has-warning': validateStatus === 'warning',\n 'has-error': validateStatus === 'error',\n 'is-validating': validateStatus === 'validating'\n });\n }\n\n var iconType = '';\n\n switch (validateStatus) {\n case 'success':\n iconType = 'check-circle';\n break;\n\n case 'warning':\n iconType = 'exclamation-circle';\n break;\n\n case 'error':\n iconType = 'close-circle';\n break;\n\n case 'validating':\n iconType = 'loading';\n break;\n\n default:\n iconType = '';\n break;\n }\n\n var icon = props.hasFeedback && iconType ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-children-icon\")\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: iconType,\n theme: iconType === 'loading' ? 'outlined' : 'filled'\n })) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-children\")\n }, c1, icon), c2, c3);\n }\n }, {\n key: \"renderWrapper\",\n value: function renderWrapper(prefixCls, children) {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(_context[\"default\"].Consumer, {\n key: \"wrapper\"\n }, function (_ref2) {\n var contextWrapperCol = _ref2.wrapperCol,\n vertical = _ref2.vertical;\n var wrapperCol = _this2.props.wrapperCol;\n var mergedWrapperCol = ('wrapperCol' in _this2.props ? wrapperCol : contextWrapperCol) || {};\n var className = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-item-control-wrapper\"), mergedWrapperCol.className); // No pass FormContext since it's useless\n\n return /*#__PURE__*/React.createElement(_context[\"default\"].Provider, {\n value: {\n vertical: vertical\n }\n }, /*#__PURE__*/React.createElement(_col[\"default\"], _extends({}, mergedWrapperCol, {\n className: className\n }), children));\n });\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(prefixCls) {\n var _this3 = this;\n\n return /*#__PURE__*/React.createElement(_context[\"default\"].Consumer, {\n key: \"label\"\n }, function (_ref3) {\n var _classNames;\n\n var vertical = _ref3.vertical,\n contextLabelAlign = _ref3.labelAlign,\n contextLabelCol = _ref3.labelCol,\n contextColon = _ref3.colon;\n var _this3$props = _this3.props,\n label = _this3$props.label,\n labelCol = _this3$props.labelCol,\n labelAlign = _this3$props.labelAlign,\n colon = _this3$props.colon,\n id = _this3$props.id,\n htmlFor = _this3$props.htmlFor;\n\n var required = _this3.isRequired();\n\n var mergedLabelCol = ('labelCol' in _this3.props ? labelCol : contextLabelCol) || {};\n var mergedLabelAlign = 'labelAlign' in _this3.props ? labelAlign : contextLabelAlign;\n var labelClsBasic = \"\".concat(prefixCls, \"-item-label\");\n var labelColClassName = (0, _classnames[\"default\"])(labelClsBasic, mergedLabelAlign === 'left' && \"\".concat(labelClsBasic, \"-left\"), mergedLabelCol.className);\n var labelChildren = label; // Keep label is original where there should have no colon\n\n var computedColon = colon === true || contextColon !== false && colon !== false;\n var haveColon = computedColon && !vertical; // Remove duplicated user input colon\n\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[::]\\s*$/, '');\n }\n\n var labelClassName = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-required\"), required), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-no-colon\"), !computedColon), _classNames));\n return label ? /*#__PURE__*/React.createElement(_col[\"default\"], _extends({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor || id || _this3.getId(),\n className: labelClassName,\n title: typeof label === 'string' ? label : '',\n onClick: _this3.onLabelClick\n }, labelChildren)) : null;\n });\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(prefixCls) {\n var children = this.props.children;\n return [this.renderLabel(prefixCls), this.renderWrapper(prefixCls, this.renderValidateWrapper(prefixCls, children, this.renderHelp(prefixCls), this.renderExtra(prefixCls)))];\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderFormItem);\n }\n }]);\n\n return FormItem;\n}(React.Component);\n\nexports[\"default\"] = FormItem;\nFormItem.defaultProps = {\n hasFeedback: false\n};\nFormItem.propTypes = {\n prefixCls: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n labelCol: PropTypes.object,\n help: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]),\n validateStatus: PropTypes.oneOf(ValidateStatuses),\n hasFeedback: PropTypes.bool,\n wrapperCol: PropTypes.object,\n className: PropTypes.string,\n id: PropTypes.string,\n children: PropTypes.node,\n colon: PropTypes.bool\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\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\nvar Group = function Group(props) {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n var cls = (0, _classnames[\"default\"])(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), props.size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), props.size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\"), props.compact), _classNames), className);\n return /*#__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 }, props.children);\n });\n};\n\nvar _default = Group;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _isMobile = require(\"is-mobile\");\n\nvar _Input = _interopRequireDefault(require(\"./Input\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _button = _interopRequireDefault(require(\"../button\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\nfunction _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar Search = /*#__PURE__*/function (_React$Component) {\n _inherits(Search, _React$Component);\n\n var _super = _createSuper(Search);\n\n function Search() {\n var _this;\n\n _classCallCheck(this, Search);\n\n _this = _super.apply(this, arguments);\n\n _this.saveInput = function (node) {\n _this.input = node;\n };\n\n _this.onChange = function (e) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n onSearch = _this$props.onSearch;\n\n if (e && e.target && e.type === 'click' && onSearch) {\n onSearch(e.target.value, e);\n }\n\n if (onChange) {\n onChange(e);\n }\n };\n\n _this.onSearch = function (e) {\n var _this$props2 = _this.props,\n onSearch = _this$props2.onSearch,\n loading = _this$props2.loading,\n disabled = _this$props2.disabled;\n\n if (loading || disabled) {\n return;\n }\n\n if (onSearch) {\n onSearch(_this.input.input.value, e);\n }\n\n if (!(0, _isMobile.isMobile)({\n tablet: true\n })) {\n _this.input.focus();\n }\n };\n\n _this.renderLoading = function (prefixCls) {\n var _this$props3 = _this.props,\n enterButton = _this$props3.enterButton,\n size = _this$props3.size;\n\n if (enterButton) {\n return /*#__PURE__*/React.createElement(_button[\"default\"], {\n className: \"\".concat(prefixCls, \"-button\"),\n type: \"primary\",\n size: size,\n key: \"enterButton\"\n }, /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"loading\"\n }));\n }\n\n return /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-icon\"),\n type: \"loading\",\n key: \"loadingIcon\"\n });\n };\n\n _this.renderSuffix = function (prefixCls) {\n var _this$props4 = _this.props,\n suffix = _this$props4.suffix,\n enterButton = _this$props4.enterButton,\n loading = _this$props4.loading;\n\n if (loading && !enterButton) {\n return [suffix, _this.renderLoading(prefixCls)];\n }\n\n if (enterButton) return suffix;\n var icon = /*#__PURE__*/React.createElement(_icon[\"default\"], {\n className: \"\".concat(prefixCls, \"-icon\"),\n type: \"search\",\n key: \"searchIcon\",\n onClick: _this.onSearch\n });\n\n if (suffix) {\n return [/*#__PURE__*/React.isValidElement(suffix) ? /*#__PURE__*/React.cloneElement(suffix, {\n key: 'suffix'\n }) : null, icon];\n }\n\n return icon;\n };\n\n _this.renderAddonAfter = function (prefixCls) {\n var _this$props5 = _this.props,\n enterButton = _this$props5.enterButton,\n size = _this$props5.size,\n disabled = _this$props5.disabled,\n addonAfter = _this$props5.addonAfter,\n loading = _this$props5.loading;\n var btnClassName = \"\".concat(prefixCls, \"-button\");\n\n if (loading && enterButton) {\n return [_this.renderLoading(prefixCls), addonAfter];\n }\n\n if (!enterButton) return addonAfter;\n var button;\n var enterButtonAsElement = enterButton;\n var isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = /*#__PURE__*/React.cloneElement(enterButtonAsElement, _extends({\n onClick: _this.onSearch,\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size: size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(_button[\"default\"], {\n className: btnClassName,\n type: \"primary\",\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onClick: _this.onSearch\n }, enterButton === true ? /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"search\"\n }) : enterButton);\n }\n\n if (addonAfter) {\n return [button, /*#__PURE__*/React.isValidElement(addonAfter) ? /*#__PURE__*/React.cloneElement(addonAfter, {\n key: 'addonAfter'\n }) : null];\n }\n\n return button;\n };\n\n _this.renderSearch = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n customizeInputPrefixCls = _a.inputPrefixCls,\n size = _a.size,\n enterButton = _a.enterButton,\n className = _a.className,\n restProps = __rest(_a, [\"prefixCls\", \"inputPrefixCls\", \"size\", \"enterButton\", \"className\"]);\n\n delete restProps.onSearch;\n delete restProps.loading;\n var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var inputClassName;\n\n if (enterButton) {\n var _classNames;\n\n inputClassName = (0, _classnames[\"default\"])(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-enter-button\"), !!enterButton), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), !!size), _classNames));\n } else {\n inputClassName = (0, _classnames[\"default\"])(prefixCls, className);\n }\n\n return /*#__PURE__*/React.createElement(_Input[\"default\"], _extends({\n onPressEnter: _this.onSearch\n }, restProps, {\n size: size,\n prefixCls: inputPrefixCls,\n addonAfter: _this.renderAddonAfter(prefixCls),\n suffix: _this.renderSuffix(prefixCls),\n onChange: _this.onChange,\n ref: _this.saveInput,\n className: inputClassName\n }));\n };\n\n return _this;\n }\n\n _createClass(Search, [{\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 return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderSearch);\n }\n }]);\n\n return Search;\n}(React.Component);\n\nexports[\"default\"] = Search;\nSearch.defaultProps = {\n enterButton: false\n};","'use strict'\r\n\r\nmodule.exports = isMobile\r\nmodule.exports.isMobile = isMobile\r\nmodule.exports.default = isMobile\r\n\r\nvar mobileRE = /(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[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i\r\n\r\nvar tabletRE = /(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[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i\r\n\r\nfunction isMobile (opts) {\r\n if (!opts) opts = {}\r\n var ua = opts.ua\r\n if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent\r\n if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') {\r\n ua = ua.headers['user-agent']\r\n }\r\n if (typeof ua !== 'string') return false\r\n\r\n var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua)\r\n\r\n if (\r\n !result &&\r\n opts.tablet &&\r\n opts.featureDetect &&\r\n navigator &&\r\n navigator.maxTouchPoints > 1 &&\r\n ua.indexOf('Macintosh') !== -1 &&\r\n ua.indexOf('Safari') !== -1\r\n ) {\r\n result = true\r\n }\r\n\r\n return result\r\n}\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _wave = _interopRequireDefault(require(\"../_util/wave\"));\n\nvar _type = require(\"../_util/type\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\n\n\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\n\nfunction isString(str) {\n return typeof str === 'string';\n} // Insert one space between two chinese characters automatically.\n\n\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child == null) {\n return;\n }\n\n var SPACE = needInserted ? ' ' : ''; // strictNullChecks oops.\n\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return /*#__PURE__*/React.cloneElement(child, {}, child.props.children.split('').join(SPACE));\n }\n\n if (typeof child === 'string') {\n if (isTwoCNChar(child)) {\n child = child.split('').join(SPACE);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n\n return child;\n}\n\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n\n var isCurrentChildPure = type === 'string' || type === 'number';\n\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n\n isPrevChildPure = isCurrentChildPure;\n }); // Pass to React.Children.map to auto fill key\n\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\n\nvar ButtonTypes = (0, _type.tuple)('default', 'primary', 'ghost', 'dashed', 'danger', 'link');\nvar ButtonShapes = (0, _type.tuple)('circle', 'circle-outline', 'round');\nvar ButtonSizes = (0, _type.tuple)('large', 'default', 'small');\nvar ButtonHTMLTypes = (0, _type.tuple)('submit', 'button', 'reset');\n\nvar Button = /*#__PURE__*/function (_React$Component) {\n _inherits(Button, _React$Component);\n\n var _super = _createSuper(Button);\n\n function Button(props) {\n var _this;\n\n _classCallCheck(this, Button);\n\n _this = _super.call(this, props);\n\n _this.saveButtonRef = function (node) {\n _this.buttonNode = node;\n };\n\n _this.handleClick = function (e) {\n var loading = _this.state.loading;\n var onClick = _this.props.onClick;\n\n if (loading) {\n return;\n }\n\n if (onClick) {\n onClick(e);\n }\n };\n\n _this.renderButton = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n autoInsertSpaceInButton = _ref.autoInsertSpaceInButton;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n type = _a.type,\n shape = _a.shape,\n size = _a.size,\n className = _a.className,\n children = _a.children,\n icon = _a.icon,\n ghost = _a.ghost,\n block = _a.block,\n rest = __rest(_a, [\"prefixCls\", \"type\", \"shape\", \"size\", \"className\", \"children\", \"icon\", \"ghost\", \"block\"]);\n\n var _this$state = _this.state,\n loading = _this$state.loading,\n hasTwoCNChar = _this$state.hasTwoCNChar;\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var iconType = loading ? 'loading' : icon;\n var classes = (0, _classnames[\"default\"])(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && iconType), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), !!loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-background-ghost\"), ghost), _defineProperty(_classNames, \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _classNames));\n var iconNode = iconType ? /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: iconType\n }) : null;\n var kids = children || children === 0 ? spaceChildren(children, _this.isNeedInserted() && autoInsertSpace) : null;\n var linkButtonRestProps = (0, _omit[\"default\"])(rest, ['htmlType', 'loading']);\n\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: _this.handleClick,\n ref: _this.saveButtonRef\n }), iconNode, kids);\n } // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n\n\n var _b = rest,\n htmlType = _b.htmlType,\n otherProps = __rest(_b, [\"htmlType\"]);\n\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, (0, _omit[\"default\"])(otherProps, ['loading']), {\n type: htmlType,\n className: classes,\n onClick: _this.handleClick,\n ref: _this.saveButtonRef\n }), iconNode, kids);\n\n if (type === 'link') {\n return buttonNode;\n }\n\n return /*#__PURE__*/React.createElement(_wave[\"default\"], null, buttonNode);\n };\n\n _this.state = {\n loading: props.loading,\n hasTwoCNChar: false\n };\n return _this;\n }\n\n _createClass(Button, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.fixTwoCNChar();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n this.fixTwoCNChar();\n\n if (prevProps.loading && typeof prevProps.loading !== 'boolean') {\n clearTimeout(this.delayTimeout);\n }\n\n var loading = this.props.loading;\n\n if (loading && typeof loading !== 'boolean' && loading.delay) {\n this.delayTimeout = window.setTimeout(function () {\n _this2.setState({\n loading: loading\n });\n }, loading.delay);\n } else if (prevProps.loading !== loading) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n loading: loading\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n }\n }, {\n key: \"fixTwoCNChar\",\n value: function fixTwoCNChar() {\n // Fix for HOC usage like <FormatMessage />\n if (!this.buttonNode) {\n return;\n }\n\n var buttonText = this.buttonNode.textContent;\n\n if (this.isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!this.state.hasTwoCNChar) {\n this.setState({\n hasTwoCNChar: true\n });\n }\n } else if (this.state.hasTwoCNChar) {\n this.setState({\n hasTwoCNChar: false\n });\n }\n }\n }, {\n key: \"isNeedInserted\",\n value: function isNeedInserted() {\n var _this$props = this.props,\n icon = _this$props.icon,\n children = _this$props.children,\n type = _this$props.type;\n return React.Children.count(children) === 1 && !icon && type !== 'link';\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderButton);\n }\n }]);\n\n return Button;\n}(React.Component);\n\nButton.__ANT_BUTTON = true;\nButton.defaultProps = {\n loading: false,\n ghost: false,\n block: false,\n htmlType: 'button'\n};\nButton.propTypes = {\n type: PropTypes.string,\n shape: PropTypes.oneOf(ButtonShapes),\n size: PropTypes.oneOf(ButtonSizes),\n htmlType: PropTypes.oneOf(ButtonHTMLTypes),\n onClick: PropTypes.func,\n loading: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n className: PropTypes.string,\n icon: PropTypes.string,\n block: PropTypes.bool,\n title: PropTypes.string\n};\n(0, _reactLifecyclesCompat.polyfill)(Button);\nvar _default = Button;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _Event = _interopRequireDefault(require(\"css-animation/lib/Event\"));\n\nvar _raf = _interopRequireDefault(require(\"./raf\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar styleForPesudo; // Where el is the DOM element you'd like to test for visibility\n\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return !element || element.offsetParent === null;\n}\n\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\.\\d]*)?\\)/);\n\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n\n return true;\n}\n\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n\n var _super = _createSuper(Wave);\n\n function Wave() {\n var _this;\n\n _classCallCheck(this, Wave);\n\n _this = _super.apply(this, arguments);\n _this.animationStart = false;\n _this.destroy = false;\n\n _this.onClick = function (node, waveColor) {\n if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {\n return;\n }\n\n var insertExtraNode = _this.props.insertExtraNode;\n _this.extraNode = document.createElement('div');\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n\n extraNode.className = 'ant-click-animating-node';\n\n var attributeName = _this.getAttributeName();\n\n node.setAttribute(attributeName, 'true'); // Not white or transparnt or grey\n\n styleForPesudo = styleForPesudo || document.createElement('style');\n\n if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\\(\\d*, \\d*, \\d*, 0\\)/.test(waveColor) && // any transparent rgba color\n waveColor !== 'transparent') {\n // Add nonce if CSP exist\n if (_this.csp && _this.csp.nonce) {\n styleForPesudo.nonce = _this.csp.nonce;\n }\n\n extraNode.style.borderColor = waveColor;\n styleForPesudo.innerHTML = \"\\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\\n --antd-wave-shadow-color: \".concat(waveColor, \";\\n }\");\n\n if (!document.body.contains(styleForPesudo)) {\n document.body.appendChild(styleForPesudo);\n }\n }\n\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n\n _Event[\"default\"].addStartEventListener(node, _this.onTransitionStart);\n\n _Event[\"default\"].addEndEventListener(node, _this.onTransitionEnd);\n };\n\n _this.onTransitionStart = function (e) {\n if (_this.destroy) return;\n var node = (0, _reactDom.findDOMNode)(_assertThisInitialized(_this));\n\n if (!e || e.target !== node) {\n return;\n }\n\n if (!_this.animationStart) {\n _this.resetEffect(node);\n }\n };\n\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n\n _this.resetEffect(e.target);\n };\n\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {\n return;\n }\n\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n\n _this.resetEffect(node); // Get wave color from target\n\n\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n\n _raf[\"default\"].cancel(_this.animationStartId);\n\n _this.animationStart = true; // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n\n _this.animationStartId = (0, _raf[\"default\"])(function () {\n _this.animationStart = false;\n }, 10);\n };\n\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n return children;\n };\n\n return _this;\n }\n\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = (0, _reactDom.findDOMNode)(this);\n\n if (!node || node.nodeType !== 1) {\n return;\n }\n\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n\n this.destroy = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n\n if (styleForPesudo) {\n styleForPesudo.innerHTML = '';\n }\n\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n\n _Event[\"default\"].removeStartEventListener(node, this.onTransitionStart);\n\n _Event[\"default\"].removeEndEventListener(node, this.onTransitionEnd);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderWave);\n }\n }]);\n\n return Wave;\n}(React.Component);\n\nexports[\"default\"] = Wave;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexports['default'] = TransitionEvents;\nmodule.exports = exports['default'];","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar ButtonGroup = function ButtonGroup(props) {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls); // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var classes = (0, _classnames[\"default\"])(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n }));\n });\n};\n\nvar _default = ButtonGroup;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _rcResizeObserver = _interopRequireDefault(require(\"rc-resize-observer\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _calculateNodeHeight = _interopRequireDefault(require(\"./calculateNodeHeight\"));\n\nvar _raf = _interopRequireDefault(require(\"../_util/raf\"));\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ResizableTextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(ResizableTextArea, _React$Component);\n\n var _super = _createSuper(ResizableTextArea);\n\n function ResizableTextArea(props) {\n var _this;\n\n _classCallCheck(this, ResizableTextArea);\n\n _this = _super.call(this, props);\n\n _this.saveTextArea = function (textArea) {\n _this.textArea = textArea;\n };\n\n _this.resizeOnNextFrame = function () {\n _raf[\"default\"].cancel(_this.nextFrameActionId);\n\n _this.nextFrameActionId = (0, _raf[\"default\"])(_this.resizeTextarea);\n };\n\n _this.resizeTextarea = function () {\n var autoSize = _this.props.autoSize || _this.props.autosize;\n\n if (!autoSize || !_this.textArea) {\n return;\n }\n\n var minRows = autoSize.minRows,\n maxRows = autoSize.maxRows;\n var textareaStyles = (0, _calculateNodeHeight[\"default\"])(_this.textArea, false, minRows, maxRows);\n\n _this.setState({\n textareaStyles: textareaStyles,\n resizing: true\n }, function () {\n _raf[\"default\"].cancel(_this.resizeFrameId);\n\n _this.resizeFrameId = (0, _raf[\"default\"])(function () {\n _this.setState({\n resizing: false\n });\n\n _this.fixFirefoxAutoScroll();\n });\n });\n };\n\n _this.renderTextArea = function () {\n var _this$props = _this.props,\n prefixCls = _this$props.prefixCls,\n autoSize = _this$props.autoSize,\n autosize = _this$props.autosize,\n className = _this$props.className,\n disabled = _this$props.disabled;\n var _this$state = _this.state,\n textareaStyles = _this$state.textareaStyles,\n resizing = _this$state.resizing;\n (0, _warning[\"default\"])(autosize === undefined, 'Input.TextArea', 'autosize is deprecated, please use autoSize instead.');\n var otherProps = (0, _omit[\"default\"])(_this.props, ['prefixCls', 'onPressEnter', 'autoSize', 'autosize', 'defaultValue', 'allowClear']);\n var cls = (0, _classnames[\"default\"])(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)); // Fix https://github.com/ant-design/ant-design/issues/6776\n // Make sure it could be reset when using form.getFieldDecorator\n\n if ('value' in otherProps) {\n otherProps.value = otherProps.value || '';\n }\n\n var style = _extends(_extends(_extends({}, _this.props.style), textareaStyles), resizing ? {\n overflowX: 'hidden',\n overflowY: 'hidden'\n } : null);\n\n return /*#__PURE__*/React.createElement(_rcResizeObserver[\"default\"], {\n onResize: _this.resizeOnNextFrame,\n disabled: !(autoSize || autosize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, otherProps, {\n className: cls,\n style: style,\n ref: _this.saveTextArea\n })));\n };\n\n _this.state = {\n textareaStyles: {},\n resizing: false\n };\n return _this;\n }\n\n _createClass(ResizableTextArea, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.resizeTextarea();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Re-render with the new content then recalculate the height as required.\n if (prevProps.value !== this.props.value) {\n this.resizeTextarea();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n _raf[\"default\"].cancel(this.nextFrameActionId);\n\n _raf[\"default\"].cancel(this.resizeFrameId);\n } // https://github.com/ant-design/ant-design/issues/21870\n\n }, {\n key: \"fixFirefoxAutoScroll\",\n value: function fixFirefoxAutoScroll() {\n try {\n if (document.activeElement === this.textArea) {\n var currentStart = this.textArea.selectionStart;\n var currentEnd = this.textArea.selectionEnd;\n this.textArea.setSelectionRange(currentStart, currentEnd);\n }\n } catch (e) {// Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.renderTextArea();\n }\n }]);\n\n return ResizableTextArea;\n}(React.Component);\n\n(0, _reactLifecyclesCompat.polyfill)(ResizableTextArea);\nvar _default = ResizableTextArea;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar React = __importStar(require(\"react\"));\n\nvar findDOMNode_1 = __importDefault(require(\"rc-util/lib/Dom/findDOMNode\"));\n\nvar toArray_1 = __importDefault(require(\"rc-util/lib/Children/toArray\"));\n\nvar warning_1 = __importDefault(require(\"rc-util/lib/warning\"));\n\nvar ref_1 = require(\"rc-util/lib/ref\");\n\nvar resize_observer_polyfill_1 = __importDefault(require(\"resize-observer-polyfill\"));\n\nvar util_1 = require(\"./util\");\n\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ReactResizeObserver).apply(this, arguments));\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n onResize(size);\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode_1.default(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new resize_observer_polyfill_1.default(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray_1.default(children);\n\n if (childNodes.length > 1) {\n warning_1.default(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning_1.default(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if (React.isValidElement(childNode) && util_1.supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = React.cloneElement(childNode, {\n ref: ref_1.composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (!React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n}(React.Component);\n\nReactResizeObserver.displayName = 'ResizeObserver';\nexports.default = ReactResizeObserver;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findDOMNode;\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nfunction findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return _reactDom.default.findDOMNode(node);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toArray;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactIs = require(\"react-is\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toArray(children) {\n var ret = [];\n\n _react.default.Children.forEach(children, function (child) {\n if (child === undefined || child === null) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if ((0, _reactIs.isFragment)(child) && child.props) {\n ret = ret.concat(toArray(child.props.children));\n } else {\n ret.push(child);\n }\n });\n\n return ret;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fillRef = fillRef;\nexports.composeRef = composeRef;\nexports.supportRef = supportRef;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\n\nfunction composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\n\nfunction supportRef(nodeOrComponent) {\n // Function component node\n if (nodeOrComponent.type && nodeOrComponent.type.prototype && !nodeOrComponent.type.prototype.render) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && nodeOrComponent.prototype && !nodeOrComponent.prototype.render) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction supportRef(node) {\n // Function component\n if (node.type && node.type.prototype && !node.type.prototype.render) {\n return false;\n }\n\n return true;\n}\n\nexports.supportRef = supportRef;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateNodeStyling = calculateNodeStyling;\nexports[\"default\"] = calculateNodeHeight;\n// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\n\nfunction calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n\n return nodeInfo;\n}\n\nfunction calculateNodeHeight(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n } // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n\n\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n } // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n\n\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle; // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n\n\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = Number.MIN_SAFE_INTEGER;\n var maxHeight = Number.MAX_SAFE_INTEGER;\n var height = hiddenTextarea.scrollHeight;\n var overflowY;\n\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n\n height = Math.max(minHeight, height);\n }\n\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n\n return {\n height: height,\n minHeight: minHeight,\n maxHeight: maxHeight,\n overflowY: overflowY\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _Input = _interopRequireDefault(require(\"./Input\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\n\nvar Password = /*#__PURE__*/function (_React$Component) {\n _inherits(Password, _React$Component);\n\n var _super = _createSuper(Password);\n\n function Password() {\n var _this;\n\n _classCallCheck(this, Password);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visible: false\n };\n\n _this.onVisibleChange = function () {\n var disabled = _this.props.disabled;\n\n if (disabled) {\n return;\n }\n\n _this.setState(function (_ref) {\n var visible = _ref.visible;\n return {\n visible: !visible\n };\n });\n };\n\n _this.saveInput = function (instance) {\n if (instance && instance.input) {\n _this.input = instance.input;\n }\n };\n\n return _this;\n }\n\n _createClass(Password, [{\n key: \"getIcon\",\n value: function getIcon() {\n var _iconProps;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n action = _this$props.action;\n var iconTrigger = ActionMap[action] || '';\n var iconProps = (_iconProps = {}, _defineProperty(_iconProps, iconTrigger, this.onVisibleChange), _defineProperty(_iconProps, \"className\", \"\".concat(prefixCls, \"-icon\")), _defineProperty(_iconProps, \"type\", this.state.visible ? 'eye' : 'eye-invisible'), _defineProperty(_iconProps, \"key\", 'passwordIcon'), _defineProperty(_iconProps, \"onMouseDown\", function onMouseDown(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n }), _iconProps);\n return /*#__PURE__*/React.createElement(_icon[\"default\"], iconProps);\n }\n }, {\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: \"select\",\n value: function select() {\n this.input.select();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _a = this.props,\n className = _a.className,\n prefixCls = _a.prefixCls,\n inputPrefixCls = _a.inputPrefixCls,\n size = _a.size,\n visibilityToggle = _a.visibilityToggle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\", \"visibilityToggle\"]);\n\n var suffixIcon = visibilityToggle && this.getIcon();\n var inputClassName = (0, _classnames[\"default\"])(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), !!size));\n return /*#__PURE__*/React.createElement(_Input[\"default\"], _extends({}, (0, _omit[\"default\"])(restProps, ['suffix']), {\n type: this.state.visible ? 'text' : 'password',\n size: size,\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon,\n ref: this.saveInput\n }));\n }\n }]);\n\n return Password;\n}(React.Component);\n\nexports[\"default\"] = Password;\nPassword.defaultProps = {\n inputPrefixCls: 'ant-input',\n prefixCls: 'ant-input-password',\n action: 'click',\n visibilityToggle: true\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _extends = Object.assign || 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; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lodash = require('lodash.debounce');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction autoprefixes(styles) {\n return Object.keys(styles).reduce(function (obj, key) {\n return obj[key] = (0, _autoprefix2.default)(styles[key]), obj;\n }, {});\n}\n\nvar styles = autoprefixes({\n wrapper: {\n position: 'fixed',\n width: 0,\n height: 0,\n top: 0,\n left: 0\n },\n\n dim: {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: 0,\n background: 'rgba(0, 0, 0, 0.2)',\n opacity: 1\n },\n\n dimAppear: {\n opacity: 0\n },\n\n dimTransparent: {\n pointerEvents: 'none'\n },\n\n dimHidden: {\n opacity: 0\n },\n\n dock: {\n position: 'fixed',\n zIndex: 1,\n boxShadow: '0 0 4px rgba(0, 0, 0, 0.3)',\n background: 'white',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%'\n },\n\n dockHidden: {\n opacity: 0\n },\n\n dockResizing: {\n transition: 'none'\n },\n\n dockContent: {\n width: '100%',\n height: '100%',\n overflow: 'auto'\n },\n\n resizer: {\n position: 'absolute',\n zIndex: 2,\n opacity: 0\n }\n});\n\nfunction getTransitions(duration) {\n return ['left', 'top', 'width', 'height'].map(function (p) {\n return p + ' ' + duration / 1000 + 's ease-out';\n });\n}\n\nfunction getDockStyles(_ref, _ref2) {\n var fluid = _ref.fluid;\n var dockStyle = _ref.dockStyle;\n var dockHiddenStyle = _ref.dockHiddenStyle;\n var duration = _ref.duration;\n var position = _ref.position;\n var isVisible = _ref.isVisible;\n var size = _ref2.size;\n var isResizing = _ref2.isResizing;\n var fullWidth = _ref2.fullWidth;\n var fullHeight = _ref2.fullHeight;\n\n var posStyle = void 0;\n var absSize = fluid ? size * 100 + '%' : size + 'px';\n\n function getRestSize(fullSize) {\n return fluid ? 100 - size * 100 + '%' : fullSize - size + 'px';\n }\n\n switch (position) {\n case 'left':\n posStyle = {\n width: absSize,\n left: isVisible ? 0 : '-' + absSize\n };\n break;\n case 'right':\n posStyle = {\n left: isVisible ? getRestSize(fullWidth) : fullWidth,\n width: absSize\n };\n break;\n case 'top':\n posStyle = {\n top: isVisible ? 0 : '-' + absSize,\n height: absSize\n };\n break;\n case 'bottom':\n posStyle = {\n top: isVisible ? getRestSize(fullHeight) : fullHeight,\n height: absSize\n };\n break;\n }\n\n var transitions = getTransitions(duration);\n\n return [styles.dock, (0, _autoprefix2.default)({\n transition: [].concat(_toConsumableArray(transitions), [!isVisible && 'opacity 0.01s linear ' + duration / 1000 + 's']).filter(function (t) {\n return t;\n }).join(',')\n }), dockStyle, (0, _autoprefix2.default)(posStyle), isResizing && styles.dockResizing, !isVisible && styles.dockHidden, !isVisible && dockHiddenStyle];\n}\n\nfunction getDimStyles(_ref3, _ref4) {\n var dimMode = _ref3.dimMode;\n var dimStyle = _ref3.dimStyle;\n var duration = _ref3.duration;\n var isVisible = _ref3.isVisible;\n var isTransitionStarted = _ref4.isTransitionStarted;\n\n return [styles.dim, (0, _autoprefix2.default)({\n transition: 'opacity ' + duration / 1000 + 's ease-out'\n }), dimStyle, dimMode === 'transparent' && styles.dimTransparent, !isVisible && styles.dimHidden, isTransitionStarted && isVisible && styles.dimAppear, isTransitionStarted && !isVisible && styles.dimDisappear];\n}\n\nfunction getResizerStyles(position) {\n var resizerStyle = void 0;\n var size = 10;\n\n switch (position) {\n case 'left':\n resizerStyle = {\n right: -size / 2,\n width: size,\n top: 0,\n height: '100%',\n cursor: 'col-resize'\n };\n break;\n case 'right':\n resizerStyle = {\n left: -size / 2,\n width: size,\n top: 0,\n height: '100%',\n cursor: 'col-resize'\n };\n break;\n case 'top':\n resizerStyle = {\n bottom: -size / 2,\n height: size,\n left: 0,\n width: '100%',\n cursor: 'row-resize'\n };\n break;\n case 'bottom':\n resizerStyle = {\n top: -size / 2,\n height: size,\n left: 0,\n width: '100%',\n cursor: 'row-resize'\n };\n break;\n }\n\n return [styles.resizer, (0, _autoprefix2.default)(resizerStyle)];\n}\n\nfunction getFullSize(position, fullWidth, fullHeight) {\n return position === 'left' || position === 'right' ? fullWidth : fullHeight;\n}\n\nvar Dock = (_temp = _class = function (_Component) {\n _inherits(Dock, _Component);\n\n function Dock(props) {\n _classCallCheck(this, Dock);\n\n var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Dock).call(this, props));\n\n _this.transitionEnd = function () {\n _this.setState({ isTransitionStarted: false });\n };\n\n _this.hideDim = function () {\n if (!_this.props.isVisible) {\n _this.setState({ isDimHidden: true });\n }\n };\n\n _this.handleDimClick = function () {\n if (_this.props.dimMode === 'opaque') {\n _this.props.onVisibleChange && _this.props.onVisibleChange(false);\n }\n };\n\n _this.handleResize = function () {\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(_this.updateWindowSize.bind(_this, true));\n } else {\n _this.updateWindowSize(true);\n }\n };\n\n _this.updateWindowSize = function (windowResize) {\n var sizeState = {\n fullWidth: window.innerWidth,\n fullHeight: window.innerHeight\n };\n\n if (windowResize) {\n _this.setState(_extends({}, sizeState, {\n isResizing: true,\n isWindowResizing: windowResize\n }));\n\n _this.debouncedUpdateWindowSizeEnd();\n } else {\n _this.setState(sizeState);\n }\n };\n\n _this.updateWindowSizeEnd = function () {\n _this.setState({\n isResizing: false,\n isWindowResizing: false\n });\n };\n\n _this.debouncedUpdateWindowSizeEnd = (0, _lodash2.default)(_this.updateWindowSizeEnd, 30);\n\n _this.handleWrapperLeave = function () {\n _this.setState({ isResizing: false });\n };\n\n _this.handleMouseDown = function () {\n _this.setState({ isResizing: true });\n };\n\n _this.handleMouseUp = function () {\n _this.setState({ isResizing: false });\n };\n\n _this.handleMouseMove = function (e) {\n if (!_this.state.isResizing || _this.state.isWindowResizing) return;\n e.preventDefault();\n\n var _this$props = _this.props;\n var position = _this$props.position;\n var fluid = _this$props.fluid;\n var _this$state = _this.state;\n var fullWidth = _this$state.fullWidth;\n var fullHeight = _this$state.fullHeight;\n var isControlled = _this$state.isControlled;\n var x = e.clientX;\n var y = e.clientY;\n\n var size = void 0;\n\n switch (position) {\n case 'left':\n size = fluid ? x / fullWidth : x;\n break;\n case 'right':\n size = fluid ? (fullWidth - x) / fullWidth : fullWidth - x;\n break;\n case 'top':\n size = fluid ? y / fullHeight : y;\n break;\n case 'bottom':\n size = fluid ? (fullHeight - y) / fullHeight : fullHeight - y;\n break;\n }\n\n _this.props.onSizeChange && _this.props.onSizeChange(size);\n\n if (!isControlled) {\n _this.setState({ size: size });\n }\n };\n\n _this.state = {\n isControlled: typeof props.size !== 'undefined',\n size: props.size || props.defaultSize,\n isDimHidden: !props.isVisible,\n fullWidth: typeof window !== 'undefined' && window.innerWidth,\n fullHeight: typeof window !== 'undefined' && window.innerHeight,\n isTransitionStarted: false,\n isWindowResizing: false\n };\n return _this;\n }\n\n _createClass(Dock, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n window.addEventListener('mouseup', this.handleMouseUp);\n window.addEventListener('mousemove', this.handleMouseMove);\n window.addEventListener('resize', this.handleResize);\n\n if (!window.fullWidth) {\n this.updateWindowSize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('mouseup', this.handleMouseUp);\n window.removeEventListener('mousemove', this.handleMouseMove);\n window.removeEventListener('resize', this.handleResize);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var isControlled = typeof nextProps.size !== 'undefined';\n\n this.setState({ isControlled: isControlled });\n\n if (isControlled && this.props.size !== nextProps.size) {\n this.setState({ size: nextProps.size });\n } else if (this.props.fluid !== nextProps.fluid) {\n this.updateSize(nextProps);\n }\n\n if (this.props.isVisible !== nextProps.isVisible) {\n this.setState({\n isTransitionStarted: true\n });\n }\n }\n }, {\n key: 'updateSize',\n value: function updateSize(props) {\n var _state = this.state;\n var fullWidth = _state.fullWidth;\n var fullHeight = _state.fullHeight;\n\n\n this.setState({\n size: props.fluid ? this.state.size / getFullSize(props.position, fullWidth, fullHeight) : getFullSize(props.position, fullWidth, fullHeight) * this.state.size\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n if (this.props.isVisible !== prevProps.isVisible) {\n if (!this.props.isVisible) {\n window.setTimeout(function () {\n return _this2.hideDim();\n }, this.props.duration);\n } else {\n this.setState({ isDimHidden: false });\n }\n\n window.setTimeout(function () {\n return _this2.setState({ isTransitionStarted: false });\n }, 0);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props;\n var children = _props.children;\n var zIndex = _props.zIndex;\n var dimMode = _props.dimMode;\n var position = _props.position;\n var isVisible = _props.isVisible;\n var _state2 = this.state;\n var isResizing = _state2.isResizing;\n var size = _state2.size;\n var isDimHidden = _state2.isDimHidden;\n\n\n var dimStyles = Object.assign.apply(Object, [{}].concat(_toConsumableArray(getDimStyles(this.props, this.state))));\n var dockStyles = Object.assign.apply(Object, [{}].concat(_toConsumableArray(getDockStyles(this.props, this.state))));\n var resizerStyles = Object.assign.apply(Object, [{}].concat(_toConsumableArray(getResizerStyles(position))));\n\n return _react2.default.createElement(\n 'div',\n { style: Object.assign({}, styles.wrapper, { zIndex: zIndex }) },\n dimMode !== 'none' && !isDimHidden && _react2.default.createElement('div', { style: dimStyles, onClick: this.handleDimClick }),\n _react2.default.createElement(\n 'div',\n { style: dockStyles },\n _react2.default.createElement('div', { style: resizerStyles,\n onMouseDown: this.handleMouseDown }),\n _react2.default.createElement(\n 'div',\n { style: styles.dockContent },\n typeof children === 'function' ? children({\n position: position,\n isResizing: isResizing,\n size: size,\n isVisible: isVisible\n }) : children\n )\n )\n );\n }\n }]);\n\n return Dock;\n}(_react.Component), _class.propTypes = {\n position: _propTypes2.default.oneOf(['left', 'right', 'top', 'bottom']),\n zIndex: _propTypes2.default.number,\n fluid: _propTypes2.default.bool,\n size: _propTypes2.default.number,\n defaultSize: _propTypes2.default.number,\n dimMode: _propTypes2.default.oneOf(['none', 'transparent', 'opaque']),\n isVisible: _propTypes2.default.bool,\n onVisibleChange: _propTypes2.default.func,\n onSizeChange: _propTypes2.default.func,\n dimStyle: _propTypes2.default.object,\n dockStyle: _propTypes2.default.object,\n duration: _propTypes2.default.number\n}, _class.defaultProps = {\n position: 'left',\n zIndex: 99999999,\n fluid: true,\n defaultSize: 0.3,\n dimMode: 'opaque',\n duration: 200\n}, _temp);\nexports.default = Dock;","/**\n * lodash 3.1.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\nvar getNative = require('lodash._getnative');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeNow = getNative(Date, 'now');\n\n/**\n * Gets the number of milliseconds that have elapsed since the Unix epoch\n * (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @category Date\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it is invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = debounce;\n","/**\n * lodash 3.9.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = getNative;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nexports.default = autoprefix;\n// Same as https://github.com/SimenB/react-vendor-prefixes/blob/master/src/index.js,\n// but dumber\n\nvar vendorSpecificProperties = ['animation', 'animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction', 'appearance', 'backfaceVisibility', 'backgroundClip', 'borderImage', 'borderImageSlice', 'boxSizing', 'boxShadow', 'contentColumns', 'transform', 'transformOrigin', 'transformStyle', 'transition', 'transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction', 'perspective', 'perspectiveOrigin', 'userSelect'];\n\nvar prefixes = ['Moz', 'Webkit', 'ms', 'O'];\n\nfunction prefixProp(key, value) {\n return prefixes.reduce(function (obj, pre) {\n return obj[pre + key[0].toUpperCase() + key.substr(1)] = value, obj;\n }, {});\n}\n\nfunction autoprefix(style) {\n return Object.keys(style).reduce(function (obj, key) {\n return vendorSpecificProperties.indexOf(key) !== -1 ? _extends({}, obj, prefixProp(key, style[key])) : obj;\n }, style);\n}","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-radio-group {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n display: inline-block;\\n}\\n.ant-radio-wrapper {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n margin-right: 8px;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n.ant-radio {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n white-space: nowrap;\\n vertical-align: sub;\\n outline: none;\\n cursor: pointer;\\n}\\n.ant-radio-wrapper:hover .ant-radio,\\n.ant-radio:hover .ant-radio-inner,\\n.ant-radio-input:focus + .ant-radio-inner {\\n border-color: #1890ff;\\n}\\n.ant-radio-input:focus + .ant-radio-inner {\\n -webkit-box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);\\n box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);\\n}\\n.ant-radio-checked::after {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 1px solid #1890ff;\\n border-radius: 50%;\\n visibility: hidden;\\n -webkit-animation: antRadioEffect 0.36s ease-in-out;\\n animation: antRadioEffect 0.36s ease-in-out;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n content: '';\\n}\\n.ant-radio:hover::after,\\n.ant-radio-wrapper:hover .ant-radio::after {\\n visibility: visible;\\n}\\n.ant-radio-inner {\\n position: relative;\\n top: 0;\\n left: 0;\\n display: block;\\n width: 16px;\\n height: 16px;\\n background-color: #fff;\\n border-color: #d9d9d9;\\n border-style: solid;\\n border-width: 1px;\\n border-radius: 100px;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-radio-inner::after {\\n position: absolute;\\n top: 3px;\\n left: 3px;\\n display: table;\\n width: 8px;\\n height: 8px;\\n background-color: #1890ff;\\n border-top: 0;\\n border-left: 0;\\n border-radius: 8px;\\n -webkit-transform: scale(0);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n opacity: 0;\\n -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n content: ' ';\\n}\\n.ant-radio-input {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n cursor: pointer;\\n opacity: 0;\\n}\\n.ant-radio-checked .ant-radio-inner {\\n border-color: #1890ff;\\n}\\n.ant-radio-checked .ant-radio-inner::after {\\n -webkit-transform: scale(1);\\n -ms-transform: scale(1);\\n transform: scale(1);\\n opacity: 1;\\n -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\\n}\\n.ant-radio-disabled .ant-radio-inner {\\n background-color: #f5f5f5;\\n border-color: #d9d9d9 !important;\\n cursor: not-allowed;\\n}\\n.ant-radio-disabled .ant-radio-inner::after {\\n background-color: rgba(0, 0, 0, 0.2);\\n}\\n.ant-radio-disabled .ant-radio-input {\\n cursor: not-allowed;\\n}\\n.ant-radio-disabled + span {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\nspan.ant-radio + * {\\n padding-right: 8px;\\n padding-left: 8px;\\n}\\n.ant-radio-button-wrapper {\\n position: relative;\\n display: inline-block;\\n height: 32px;\\n margin: 0;\\n padding: 0 15px;\\n color: rgba(0, 0, 0, 0.65);\\n line-height: 30px;\\n background: #fff;\\n border: 1px solid #d9d9d9;\\n border-top-width: 1.02px;\\n border-left: 0;\\n cursor: pointer;\\n -webkit-transition: color 0.3s, background 0.3s, border-color 0.3s;\\n transition: color 0.3s, background 0.3s, border-color 0.3s;\\n}\\n.ant-radio-button-wrapper a {\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-radio-button-wrapper > .ant-radio-button {\\n display: block;\\n width: 0;\\n height: 0;\\n margin-left: 0;\\n}\\n.ant-radio-group-large .ant-radio-button-wrapper {\\n height: 40px;\\n font-size: 16px;\\n line-height: 38px;\\n}\\n.ant-radio-group-small .ant-radio-button-wrapper {\\n height: 24px;\\n padding: 0 7px;\\n line-height: 22px;\\n}\\n.ant-radio-button-wrapper:not(:first-child)::before {\\n position: absolute;\\n top: 0;\\n left: -1px;\\n display: block;\\n width: 1px;\\n height: 100%;\\n background-color: #d9d9d9;\\n content: '';\\n}\\n.ant-radio-button-wrapper:first-child {\\n border-left: 1px solid #d9d9d9;\\n border-radius: 4px 0 0 4px;\\n}\\n.ant-radio-button-wrapper:last-child {\\n border-radius: 0 4px 4px 0;\\n}\\n.ant-radio-button-wrapper:first-child:last-child {\\n border-radius: 4px;\\n}\\n.ant-radio-button-wrapper:hover {\\n position: relative;\\n color: #1890ff;\\n}\\n.ant-radio-button-wrapper:focus-within {\\n outline: 3px solid rgba(24, 144, 255, 0.06);\\n}\\n.ant-radio-button-wrapper .ant-radio-inner,\\n.ant-radio-button-wrapper input[type='checkbox'],\\n.ant-radio-button-wrapper input[type='radio'] {\\n width: 0;\\n height: 0;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\\n z-index: 1;\\n color: #1890ff;\\n background: #fff;\\n border-color: #1890ff;\\n -webkit-box-shadow: -1px 0 0 0 #1890ff;\\n box-shadow: -1px 0 0 0 #1890ff;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {\\n background-color: #1890ff !important;\\n opacity: 0.1;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {\\n border-color: #1890ff;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\\n color: #40a9ff;\\n border-color: #40a9ff;\\n -webkit-box-shadow: -1px 0 0 0 #40a9ff;\\n box-shadow: -1px 0 0 0 #40a9ff;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\\n color: #096dd9;\\n border-color: #096dd9;\\n -webkit-box-shadow: -1px 0 0 0 #096dd9;\\n box-shadow: -1px 0 0 0 #096dd9;\\n}\\n.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\\n outline: 3px solid rgba(24, 144, 255, 0.06);\\n}\\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {\\n color: #fff;\\n background: #1890ff;\\n border-color: #1890ff;\\n}\\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {\\n color: #fff;\\n background: #40a9ff;\\n border-color: #40a9ff;\\n}\\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {\\n color: #fff;\\n background: #096dd9;\\n border-color: #096dd9;\\n}\\n.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {\\n outline: 3px solid rgba(24, 144, 255, 0.06);\\n}\\n.ant-radio-button-wrapper-disabled {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n cursor: not-allowed;\\n}\\n.ant-radio-button-wrapper-disabled:first-child,\\n.ant-radio-button-wrapper-disabled:hover {\\n color: rgba(0, 0, 0, 0.25);\\n background-color: #f5f5f5;\\n border-color: #d9d9d9;\\n}\\n.ant-radio-button-wrapper-disabled:first-child {\\n border-left-color: #d9d9d9;\\n}\\n.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {\\n color: #fff;\\n background-color: #e6e6e6;\\n border-color: #d9d9d9;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n@-webkit-keyframes antRadioEffect {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(1.6);\\n transform: scale(1.6);\\n opacity: 0;\\n }\\n}\\n@keyframes antRadioEffect {\\n 0% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(1.6);\\n transform: scale(1.6);\\n opacity: 0;\\n }\\n}\\n@supports (-moz-appearance: meterbar) and (background-blend-mode: difference, normal) {\\n .ant-radio {\\n vertical-align: text-bottom;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FacebookEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst useFrame_1 = require(\"../hooks/useFrame\");\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst uuid_1 = require(\"../uuid\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst react_sub_unsub_1 = require(\"react-sub-unsub\");\nconst embedJsScriptSrc = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v16.0';\nconst defaultEmbedWidth = 550;\nconst maxPlaceholderWidth = defaultEmbedWidth;\nconst defaultPlaceholderHeight = 372;\nconst borderRadius = 3;\n// Embed Stages\nconst CHECK_SCRIPT_STAGE = 'check-script';\nconst LOAD_SCRIPT_STAGE = 'load-script';\nconst CONFIRM_SCRIPT_LOADED_STAGE = 'confirm-script-loaded';\nconst PROCESS_EMBED_STAGE = 'process-embed';\nconst CONFIRM_EMBED_SUCCESS_STAGE = 'confirm-embed-success';\nconst RETRYING_STAGE = 'retrying';\nconst EMBED_SUCCESS_STAGE = 'embed-success';\nconst FacebookEmbed = (_a) => {\n var _b, _c;\n var { url, width, height, linkText = 'View post on Facebook', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled = false, scriptLoadDisabled = false, retryDelay = 5000, retryDisabled = false, frame = undefined, debug = false } = _a, divProps = __rest(_a, [\"url\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\", \"scriptLoadDisabled\", \"retryDelay\", \"retryDisabled\", \"frame\", \"debug\"]);\n const [stage, setStage] = react_1.default.useState(CHECK_SCRIPT_STAGE);\n const embedSuccess = react_1.default.useMemo(() => stage === EMBED_SUCCESS_STAGE, [stage]);\n const uuidRef = react_1.default.useRef((0, uuid_1.generateUUID)());\n const [processTime, setProcessTime] = react_1.default.useState(Date.now());\n const embedContainerKey = react_1.default.useMemo(() => `${uuidRef.current}-${processTime}`, [processTime]);\n const frm = (0, useFrame_1.useFrame)(frame);\n // Debug Output\n react_1.default.useEffect(() => {\n debug && console.log(`[${new Date().toISOString()}]: ${stage}`);\n }, [debug, stage]);\n // === === === === === === === === === === === === === === === === === === ===\n // Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n // Check Script Stage\n react_1.default.useEffect(() => {\n var _a, _b, _c;\n if (stage === CHECK_SCRIPT_STAGE) {\n if ((_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.FB) === null || _b === void 0 ? void 0 : _b.XFBML) === null || _c === void 0 ? void 0 : _c.parse) {\n setStage(PROCESS_EMBED_STAGE);\n }\n else if (!scriptLoadDisabled) {\n setStage(LOAD_SCRIPT_STAGE);\n }\n else {\n console.error('Facebook embed script not found. Unable to process Facebook embed:', url);\n }\n }\n }, [scriptLoadDisabled, stage, url, frm.window]);\n // Load Script Stage\n react_1.default.useEffect(() => {\n if (stage === LOAD_SCRIPT_STAGE) {\n if (frm.document) {\n const scriptElement = frm.document.createElement('script');\n scriptElement.setAttribute('src', embedJsScriptSrc);\n frm.document.head.appendChild(scriptElement);\n setStage(CONFIRM_SCRIPT_LOADED_STAGE);\n }\n }\n }, [stage, frm.document]);\n // Confirm Script Loaded Stage\n react_1.default.useEffect(() => {\n const subs = new react_sub_unsub_1.Subs();\n if (stage === CONFIRM_SCRIPT_LOADED_STAGE) {\n subs.setInterval(() => {\n var _a, _b, _c;\n if ((_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.FB) === null || _b === void 0 ? void 0 : _b.XFBML) === null || _c === void 0 ? void 0 : _c.parse) {\n setStage(PROCESS_EMBED_STAGE);\n }\n }, 1);\n }\n return subs.createCleanup();\n }, [stage, frm.window]);\n // Process Embed Stage\n react_1.default.useEffect(() => {\n var _a, _b, _c;\n if (stage === PROCESS_EMBED_STAGE) {\n const parse = (_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.FB) === null || _b === void 0 ? void 0 : _b.XFBML) === null || _c === void 0 ? void 0 : _c.parse;\n if (parse) {\n parse();\n setStage(CONFIRM_EMBED_SUCCESS_STAGE);\n }\n else {\n console.error('Facebook embed script not found. Unable to process Facebook embed:', url);\n }\n }\n }, [stage, url, frm.window]);\n // Confirm Embed Success Stage\n react_1.default.useEffect(() => {\n const subs = new react_sub_unsub_1.Subs();\n if (stage === CONFIRM_EMBED_SUCCESS_STAGE) {\n subs.setInterval(() => {\n if (frm.document) {\n const fbPostContainerElement = frm.document.getElementById(uuidRef.current);\n if (fbPostContainerElement) {\n const fbPostElem = fbPostContainerElement.getElementsByClassName('fb-post')[0];\n if (fbPostElem) {\n if (fbPostElem.children.length > 0) {\n setStage(EMBED_SUCCESS_STAGE);\n }\n }\n }\n }\n }, 1);\n if (!retryDisabled) {\n subs.setTimeout(() => {\n setStage(RETRYING_STAGE);\n }, retryDelay);\n }\n }\n return subs.createCleanup();\n }, [retryDisabled, retryDelay, stage, frm.document]);\n // Retrying Stage\n react_1.default.useEffect(() => {\n if (stage === RETRYING_STAGE) {\n // This forces the embed container to remount\n setProcessTime(Date.now());\n setStage(PROCESS_EMBED_STAGE);\n }\n }, [stage]);\n // END Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n const isPercentageWidth = !!(width === null || width === void 0 ? void 0 : width.toString().includes('%'));\n const isPercentageHeight = !!(height === null || height === void 0 ? void 0 : height.toString().includes('%'));\n // === Placeholder ===\n const placeholderStyle = {\n maxWidth: isPercentageWidth ? undefined : maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? (isPercentageWidth ? '100%' : width) : '100%',\n height: isPercentageHeight\n ? '100%'\n : typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: '1px solid #dee2e6',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (react_1.default.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-facebook-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n react_1.default.createElement(EmbedStyle_1.EmbedStyle, null),\n react_1.default.createElement(\"div\", { id: uuidRef.current, className: (0, classnames_1.default)(!embedSuccess && 'rsme-d-none') },\n react_1.default.createElement(\"div\", { key: embedContainerKey, className: \"fb-post\", \"data-href\": url, \"data-width\": isPercentageWidth ? '100%' : width !== null && width !== void 0 ? width : defaultEmbedWidth, style: {\n width: isPercentageWidth ? '100%' : width !== null && width !== void 0 ? width : defaultEmbedWidth,\n height: isPercentageHeight ? '100%' : height !== null && height !== void 0 ? height : undefined,\n } })),\n !embedSuccess && !placeholderDisabled && placeholder));\n};\nexports.FacebookEmbed = FacebookEmbed;\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShareArrowIcon = exports.ChatBubbleIcon = exports.HeartIcon = exports.EngagementIconsPlaceholder = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst EngagementIconsPlaceholder = (_a) => {\n var divProps = __rest(_a, []);\n return (react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)(divProps.className), style: Object.assign({ display: 'flex', alignItems: 'center', columnGap: 14 }, divProps.style) }),\n react_1.default.createElement(exports.HeartIcon, null),\n react_1.default.createElement(exports.ChatBubbleIcon, null),\n react_1.default.createElement(exports.ShareArrowIcon, null)));\n};\nexports.EngagementIconsPlaceholder = EngagementIconsPlaceholder;\nconst HeartIcon = (props) => {\n return (react_1.default.createElement(\"div\", Object.assign({}, props),\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: '50%',\n height: '12.5px',\n width: '12.5px',\n transform: 'translateX(0px) translateY(7px)',\n } }),\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n height: '12.5px',\n transform: 'rotate(-45deg) translateX(3px) translateY(1px)',\n width: '12.5px',\n flexGrow: 0,\n marginRight: '6px',\n marginLeft: '2px',\n } }),\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: '50%',\n height: '12.5px',\n width: '12.5px',\n transform: 'translateX(9px) translateY(-18px)',\n } })));\n};\nexports.HeartIcon = HeartIcon;\nconst ChatBubbleIcon = (props) => {\n return (react_1.default.createElement(\"div\", Object.assign({}, props),\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: '50%',\n height: '20px',\n width: '20px',\n } }),\n react_1.default.createElement(\"div\", { style: {\n width: 0,\n height: 0,\n borderTop: '2px solid transparent',\n borderLeft: '6px solid #f4f4f4',\n borderBottom: '2px solid transparent',\n transform: 'translateX(16px) translateY(-4px) rotate(30deg)',\n } })));\n};\nexports.ChatBubbleIcon = ChatBubbleIcon;\nconst ShareArrowIcon = (props) => {\n return (react_1.default.createElement(\"div\", Object.assign({}, props, { style: {\n height: 25,\n width: 25,\n transform: 'translateX(0px) translateY(-2px)',\n } }),\n react_1.default.createElement(\"svg\", { version: \"1.1\", id: \"Layer_1\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", x: \"0px\", y: \"0px\", viewBox: \"0 0 512 512\", xmlSpace: \"preserve\" },\n react_1.default.createElement(\"path\", { style: { fill: '#F4F4F4' }, d: \"M295.204,180.593C132.168,180.593,0,312.759,0,475.796\\nc51.398-130.047,184.869-203.22,317.483-183.603L295.204,180.593z\" }),\n react_1.default.createElement(\"path\", { style: { fill: '#F4F4F4' }, d: \"M512,253L295.204,36.204v217.818C159.946,249.655,34.992,339.262,0,475.794\\nc59.905-109.171,178.724-165.463,295.204-151.033v145.035L512,253z\" }))));\n};\nexports.ShareArrowIcon = ShareArrowIcon;\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProfilePlaceholder = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst ProfilePlaceholder = (_a) => {\n var divProps = __rest(_a, []);\n return (react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)(divProps.className), style: Object.assign({}, divProps.style) }),\n react_1.default.createElement(\"div\", { style: { display: 'flex', columnGap: 14 } },\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: '50%',\n width: 40,\n height: 40,\n } }),\n react_1.default.createElement(\"div\", { style: { display: 'flex', flexDirection: 'column', justifyContent: 'center', rowGap: 6 } },\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: 4,\n width: 100,\n height: 14,\n } }),\n react_1.default.createElement(\"div\", { style: {\n backgroundColor: '#F4F4F4',\n borderRadius: 4,\n width: 60,\n height: 14,\n } })))));\n};\nexports.ProfilePlaceholder = ProfilePlaceholder;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstagramEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst React = __importStar(require(\"react\"));\nconst react_sub_unsub_1 = require(\"react-sub-unsub\");\nconst useFrame_1 = require(\"../hooks/useFrame\");\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst uuid_1 = require(\"../uuid\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst embedJsScriptSrc = 'https://www.instagram.com/embed.js';\nconst minPlaceholderWidth = 328;\nconst defaultPlaceholderHeight = 372;\nconst borderRadius = 3;\n// Embed Stages\nconst CHECK_SCRIPT_STAGE = 'check-script';\nconst LOAD_SCRIPT_STAGE = 'load-script';\nconst CONFIRM_SCRIPT_LOADED_STAGE = 'confirm-script-loaded';\nconst PROCESS_EMBED_STAGE = 'process-embed';\nconst CONFIRM_EMBED_SUCCESS_STAGE = 'confirm-embed-success';\nconst RETRYING_STAGE = 'retrying';\nconst EMBED_SUCCESS_STAGE = 'embed-success';\nconst InstagramEmbed = (_a) => {\n var _b, _c;\n var { url, width, height, linkText = 'View post on Instagram', captioned = false, placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled = false, scriptLoadDisabled = false, retryDelay = 5000, retryDisabled = false, igVersion = '14', frame = undefined, debug = false } = _a, divProps = __rest(_a, [\"url\", \"width\", \"height\", \"linkText\", \"captioned\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\", \"scriptLoadDisabled\", \"retryDelay\", \"retryDisabled\", \"igVersion\", \"frame\", \"debug\"]);\n const [stage, setStage] = React.useState(CHECK_SCRIPT_STAGE);\n const uuidRef = React.useRef((0, uuid_1.generateUUID)());\n const [processTime, setProcessTime] = React.useState(Date.now());\n const embedContainerKey = React.useMemo(() => `${uuidRef.current}-${processTime}`, [processTime]);\n const frm = (0, useFrame_1.useFrame)(frame);\n // Debug Output\n React.useEffect(() => {\n debug && console.log(`[${new Date().toISOString()}]: ${stage}`);\n }, [debug, stage]);\n // === === === === === === === === === === === === === === === === === === ===\n // Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n // Check Script Stage\n React.useEffect(() => {\n var _a, _b, _c;\n if (stage === CHECK_SCRIPT_STAGE) {\n if ((_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.instgrm) === null || _b === void 0 ? void 0 : _b.Embeds) === null || _c === void 0 ? void 0 : _c.process) {\n setStage(PROCESS_EMBED_STAGE);\n }\n else if (!scriptLoadDisabled) {\n setStage(LOAD_SCRIPT_STAGE);\n }\n else {\n console.error('Instagram embed script not found. Unable to process Instagram embed:', url);\n }\n }\n }, [scriptLoadDisabled, stage, url, frm.window]);\n // Load Script Stage\n React.useEffect(() => {\n if (stage === LOAD_SCRIPT_STAGE) {\n if (frm.document) {\n const scriptElement = frm.document.createElement('script');\n scriptElement.setAttribute('src', embedJsScriptSrc);\n frm.document.head.appendChild(scriptElement);\n setStage(CONFIRM_SCRIPT_LOADED_STAGE);\n }\n }\n }, [stage, frm.document]);\n // Confirm Script Loaded Stage\n React.useEffect(() => {\n const subs = new react_sub_unsub_1.Subs();\n if (stage === CONFIRM_SCRIPT_LOADED_STAGE) {\n subs.setInterval(() => {\n var _a, _b, _c;\n if ((_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.instgrm) === null || _b === void 0 ? void 0 : _b.Embeds) === null || _c === void 0 ? void 0 : _c.process) {\n setStage(PROCESS_EMBED_STAGE);\n }\n }, 1);\n }\n return subs.createCleanup();\n }, [stage, frm.window]);\n // Process Embed Stage\n React.useEffect(() => {\n var _a, _b, _c;\n if (stage === PROCESS_EMBED_STAGE) {\n const process = (_c = (_b = (_a = frm.window) === null || _a === void 0 ? void 0 : _a.instgrm) === null || _b === void 0 ? void 0 : _b.Embeds) === null || _c === void 0 ? void 0 : _c.process;\n if (process) {\n process();\n setStage(CONFIRM_EMBED_SUCCESS_STAGE);\n }\n else {\n console.error('Instagram embed script not found. Unable to process Instagram embed:', url);\n }\n }\n }, [stage, frm.window, url]);\n // Confirm Embed Success Stage\n React.useEffect(() => {\n const subs = new react_sub_unsub_1.Subs();\n if (stage === CONFIRM_EMBED_SUCCESS_STAGE) {\n subs.setInterval(() => {\n if (frm.document) {\n const preEmbedElement = frm.document.getElementById(uuidRef.current);\n if (!preEmbedElement) {\n setStage(EMBED_SUCCESS_STAGE);\n }\n }\n }, 1);\n if (!retryDisabled) {\n subs.setTimeout(() => {\n setStage(RETRYING_STAGE);\n }, retryDelay);\n }\n }\n return subs.createCleanup();\n }, [retryDelay, retryDisabled, stage, frm.document]);\n // Retrying Stage\n React.useEffect(() => {\n if (stage === RETRYING_STAGE) {\n // This forces the embed container to remount\n setProcessTime(Date.now());\n setStage(PROCESS_EMBED_STAGE);\n }\n }, [stage]);\n // END Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n const urlWithNoQuery = url.replace(/[?].*$/, '');\n const cleanUrlWithEndingSlash = `${urlWithNoQuery}${urlWithNoQuery.endsWith('/') ? '' : '/'}`;\n const isPercentageWidth = !!(width === null || width === void 0 ? void 0 : width.toString().includes('%'));\n const isPercentageHeight = !!(height === null || height === void 0 ? void 0 : height.toString().includes('%'));\n // === Placeholder ===\n const placeholderStyle = {\n minWidth: isPercentageWidth ? undefined : minPlaceholderWidth,\n width: typeof width !== 'undefined' ? (isPercentageWidth ? '100%' : width) : '100%',\n height: isPercentageHeight\n ? '100%'\n : typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: '1px solid #dee2e6',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (React.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: cleanUrlWithEndingSlash, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (React.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-instagram-embed', uuidRef.current, divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n React.createElement(EmbedStyle_1.EmbedStyle, null),\n React.createElement(\"blockquote\", { key: embedContainerKey, className: \"instagram-media\", \"data-instgrm-permalink\": `${cleanUrlWithEndingSlash}?utm_source=ig_embed&utm_campaign=loading`, \"data-instgrm-version\": igVersion, \"data-instgrm-captioned\": captioned ? captioned : undefined, \"data-width\": isPercentageWidth ? '100%' : width !== null && width !== void 0 ? width : undefined, style: {\n width: 'calc(100% - 2px)',\n } },\n !placeholderDisabled && placeholder,\n React.createElement(\"div\", { id: uuidRef.current, className: \"instagram-media-pre-embed rsme-d-none\" }, \"\\u00A0\"))));\n};\nexports.InstagramEmbed = InstagramEmbed;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedInEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst React = __importStar(require(\"react\"));\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst minPlaceholderWidth = 250;\nconst maxPlaceholderWidth = 550;\nconst defaultPlaceholderHeight = 550;\nconst borderRadius = 8;\nconst LinkedInEmbed = (_a) => {\n var _b, _c;\n var { url, postUrl, width, height = 500, linkText = 'View post on LinkedIn', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled = false } = _a, divProps = __rest(_a, [\"url\", \"postUrl\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\"]);\n const [ready, setReady] = React.useState(false);\n // === Placeholder ===\n const placeholderStyle = {\n minWidth: minPlaceholderWidth,\n maxWidth: maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? width : '100%',\n height: typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: 'solid 1px rgba(0, 0, 0, 0.15)',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (React.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: postUrl !== null && postUrl !== void 0 ? postUrl : url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (React.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-linkedin-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n React.createElement(EmbedStyle_1.EmbedStyle, null),\n React.createElement(\"iframe\", { className: (0, classnames_1.default)('linkedin-post', !ready && 'rsme-d-none'), src: url, width: \"100%\", height: !ready ? 0 : height, frameBorder: \"0\", onLoad: () => setReady(true) }),\n !ready && !placeholderDisabled && placeholder));\n};\nexports.LinkedInEmbed = LinkedInEmbed;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PinterestEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst React = __importStar(require(\"react\"));\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst minPlaceholderWidth = 250;\nconst maxPlaceholderWidth = 550;\nconst defaultPlaceholderHeight = 550;\nconst borderRadius = 8;\nconst PinterestEmbed = (_a) => {\n var _b, _c, _d;\n var { url, postUrl, width, height = 500, linkText = 'View post on Pinterest', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled = false } = _a, divProps = __rest(_a, [\"url\", \"postUrl\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\"]);\n const [ready, setReady] = React.useState(false);\n // === Placeholder ===\n const placeholderStyle = {\n minWidth: minPlaceholderWidth,\n maxWidth: maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? width : '100%',\n height: typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: 'solid 1px rgba(0, 0, 0, 0.15)',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (React.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: postUrl !== null && postUrl !== void 0 ? postUrl : url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // Example URL: https://www.pinterest.com/pin/875105771321194304/sent/?invite_code=e86262c989ee4f559a08a4494c300ba3&sfo=1\n const postIdMatch = (_d = url.match(/pin\\/([\\w\\d_-]+)/)) === null || _d === void 0 ? void 0 : _d[1];\n const postId = postIdMatch !== null && postIdMatch !== void 0 ? postIdMatch : '000000000000000000';\n return (React.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-pinterest-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n React.createElement(EmbedStyle_1.EmbedStyle, null),\n React.createElement(\"iframe\", { className: (0, classnames_1.default)('pinterest-post', !ready && 'rsme-d-none'), src: `https://assets.pinterest.com/ext/embed.html?id=${postId}`, width: \"100%\", height: !ready ? 0 : height, frameBorder: \"0\", scrolling: \"no\", onLoad: () => setReady(true) }),\n !ready && !placeholderDisabled && placeholder));\n};\nexports.PinterestEmbed = PinterestEmbed;\n","\"use strict\";\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TikTokEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst react_sub_unsub_1 = require(\"react-sub-unsub\");\nconst useFrame_1 = require(\"../hooks/useFrame\");\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst uuid_1 = require(\"../uuid\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst embedJsScriptSrc = 'https://www.tiktok.com/embed.js';\nconst minPlaceholderWidth = 325;\nconst maxPlaceholderWidth = 480;\nconst defaultPlaceholderHeight = 550;\nconst borderRadius = 8;\n// Embed Stages\nconst PROCESS_EMBED_STAGE = 'process-embed';\nconst CONFIRM_EMBED_SUCCESS_STAGE = 'confirm-embed-success';\nconst RETRYING_STAGE = 'retrying';\nconst EMBED_SUCCESS_STAGE = 'embed-success';\nconst TikTokEmbed = (_a) => {\n var _b, _c;\n var { url, width, height, linkText = 'View post on TikTok', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled = false, scriptLoadDisabled = false, retryDelay = 5000, retryDisabled = false, frame = undefined, debug = false } = _a, divProps = __rest(_a, [\"url\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\", \"scriptLoadDisabled\", \"retryDelay\", \"retryDisabled\", \"frame\", \"debug\"]);\n const [stage, setStage] = react_1.default.useState(PROCESS_EMBED_STAGE);\n const uuidRef = react_1.default.useRef((0, uuid_1.generateUUID)());\n const [processTime, setProcessTime] = react_1.default.useState(Date.now());\n const embedContainerKey = react_1.default.useMemo(() => `${uuidRef.current}-${processTime}`, [processTime]);\n const frm = (0, useFrame_1.useFrame)(frame);\n // Debug Output\n react_1.default.useEffect(() => {\n debug && console.log(`[${new Date().toISOString()}]: ${stage}`);\n }, [debug, stage]);\n // === === === === === === === === === === === === === === === === === === ===\n // Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n // Process Embed Stage\n react_1.default.useEffect(() => {\n if (stage === PROCESS_EMBED_STAGE) {\n if (frm.document && !scriptLoadDisabled) {\n const scriptId = `tiktok-embed-script`;\n const prevScript = frm.document.getElementById(scriptId);\n if (prevScript) {\n prevScript.remove();\n }\n const scriptElement = frm.document.createElement('script');\n scriptElement.setAttribute('src', `${embedJsScriptSrc}?t=${Date.now()}`);\n scriptElement.setAttribute('id', scriptId);\n frm.document.head.appendChild(scriptElement);\n setStage(CONFIRM_EMBED_SUCCESS_STAGE);\n }\n }\n }, [scriptLoadDisabled, stage, frm.document]);\n // Confirm Embed Success Stage\n react_1.default.useEffect(() => {\n const subs = new react_sub_unsub_1.Subs();\n if (stage === CONFIRM_EMBED_SUCCESS_STAGE) {\n subs.setInterval(() => {\n if (frm.document) {\n const preEmbedElement = frm.document.getElementById(uuidRef.current);\n if (!preEmbedElement) {\n setStage(EMBED_SUCCESS_STAGE);\n }\n }\n }, 1);\n if (!retryDisabled) {\n subs.setTimeout(() => {\n setStage(RETRYING_STAGE);\n }, retryDelay);\n }\n }\n return subs.createCleanup();\n }, [retryDelay, retryDisabled, stage, frm.document]);\n // Retrying Stage\n react_1.default.useEffect(() => {\n if (stage === RETRYING_STAGE) {\n // This forces the embed container to remount\n setProcessTime(Date.now());\n setStage(PROCESS_EMBED_STAGE);\n }\n }, [stage]);\n // END Embed Stages\n // === === === === === === === === === === === === === === === === === === ===\n // Format: https://www.tiktok.com/@epicgardening/video/7055411162212633903?is_copy_url=1&is_from_webapp=v1\n const embedId = url.replace(/[?].*$/, '').replace(/^.+\\//, '');\n // === Placeholder ===\n const placeholderStyle = {\n minWidth: minPlaceholderWidth,\n maxWidth: maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? width : '100%',\n height: typeof height !== 'undefined'\n ? height\n : typeof ((_b = divProps.style) === null || _b === void 0 ? void 0 : _b.height) !== 'undefined' || typeof ((_c = divProps.style) === null || _c === void 0 ? void 0 : _c.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: 'solid 1px rgba(22,24,35,0.12)',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (react_1.default.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (react_1.default.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-tiktok-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n react_1.default.createElement(EmbedStyle_1.EmbedStyle, null),\n react_1.default.createElement(\"div\", { className: \"tiktok-embed-container\" },\n react_1.default.createElement(\"blockquote\", { key: embedContainerKey, className: \"tiktok-embed\", cite: url, \"data-video-id\": embedId }, !placeholderDisabled ? (react_1.default.createElement(\"div\", { id: uuidRef.current, style: { display: 'flex', justifyContent: 'center' } }, placeholder)) : (react_1.default.createElement(\"div\", { id: uuidRef.current, style: { display: 'none' } }, \"\\u00A0\"))))));\n};\nexports.TikTokEmbed = TikTokEmbed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TwitterEmbed = void 0;\nconst XEmbed_1 = require(\"./XEmbed\");\n/**\n * @deprecated Twitter was rebranded to the name X in July 2023. Use `XEmbed` instead.\n */\nexports.TwitterEmbed = XEmbed_1.XEmbed;\n","import React from 'react';\n\nvar twitterWidgetJs = 'https://platform.twitter.com/widgets.js';\n\nvar methodName = 'createTimeline';\n\nvar TwitterTimelineEmbed = function TwitterTimelineEmbed(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n var buildOptions = function buildOptions() {\n var options = Object.assign({}, props.options);\n\n if (props !== null && props !== void 0 && props.autoHeight) {\n var _ref$current, _ref$current$parentNo;\n\n options.height = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$parentNo = _ref$current.parentNode) === null || _ref$current$parentNo === void 0 ? void 0 : _ref$current$parentNo.offsetHeight;\n }\n\n options = Object.assign({}, options, {\n theme: props === null || props === void 0 ? void 0 : props.theme,\n linkColor: props === null || props === void 0 ? void 0 : props.linkColor,\n borderColor: props === null || props === void 0 ? void 0 : props.borderColor,\n lang: props === null || props === void 0 ? void 0 : props.lang,\n tweetLimit: props === null || props === void 0 ? void 0 : props.tweetLimit,\n ariaPolite: props === null || props === void 0 ? void 0 : props.ariaPolite\n });\n return options;\n };\n\n var buildChromeOptions = function buildChromeOptions(options) {\n options.chrome = '';\n\n if (props.noHeader) {\n options.chrome = options.chrome + ' noheader';\n }\n\n if (props.noFooter) {\n options.chrome = options.chrome + ' nofooter';\n }\n\n if (props.noBorders) {\n options.chrome = options.chrome + ' noborders';\n }\n\n if (props.noScrollbar) {\n options.chrome = options.chrome + ' noscrollbar';\n }\n\n if (props.transparent) {\n options.chrome = options.chrome + ' transparent';\n }\n\n return options;\n };\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName]) {\n console.error(\"Method \" + methodName + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n var options = buildOptions();\n options = buildChromeOptions(options);\n window.twttr.widgets[methodName]({\n sourceType: props.sourceType,\n screenName: props.screenName,\n userId: props.userId,\n ownerScreenName: props.ownerScreenName,\n slug: props.slug,\n id: props.id || props.widgetId,\n url: props.url\n }, ref === null || ref === void 0 ? void 0 : ref.current, options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$1 = 'createShareButton';\n\nvar TwitterShareButton = function TwitterShareButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$1]) {\n console.error(\"Method \" + methodName$1 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$1](props.url, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$2 = 'createFollowButton';\n\nvar TwitterFollowButton = function TwitterFollowButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$2]) {\n console.error(\"Method \" + methodName$2 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$2](props.screenName, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$3 = 'createHashtagButton';\n\nvar TwitterHashtagButton = function TwitterHashtagButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$3]) {\n console.error(\"Method \" + methodName$3 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$3](props.tag, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$4 = 'createMentionButton';\n\nvar TwitterMentionButton = function TwitterMentionButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$4]) {\n console.error(\"Method \" + methodName$4 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$4](props.screenName, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$5 = 'createTweet';\n\nvar TwitterTweetEmbed = function TwitterTweetEmbed(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$5]) {\n console.error(\"Method \" + methodName$5 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$5](props.tweetId, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$6 = 'createMoment';\n\nvar TwitterMomentShare = function TwitterMomentShare(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$6]) {\n console.error(\"Method \" + methodName$6 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$6](props.momentId, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$7 = 'createDMButton';\n\nvar TwitterDMButton = function TwitterDMButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$7]) {\n console.error(\"Method \" + methodName$7 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$7](props.id, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n if (isComponentMounted) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$8 = 'createVideo';\n\nvar TwitterVideoEmbed = function TwitterVideoEmbed(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$8]) {\n console.error(\"Method \" + methodName$8 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$8](props.id, ref === null || ref === void 0 ? void 0 : ref.current).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nvar methodName$9 = 'createPeriscopeOnAirButton';\n\nvar TwitterOnAirButton = function TwitterOnAirButton(props) {\n var ref = React.useRef(null);\n\n var _React$useState = React.useState(true),\n loading = _React$useState[0],\n setLoading = _React$useState[1];\n\n React.useEffect(function () {\n var isComponentMounted = true;\n\n var script = require('scriptjs');\n\n script(twitterWidgetJs, 'twitter-embed', function () {\n if (!window.twttr) {\n console.error('Failure to load window.twttr, aborting load');\n return;\n }\n\n if (isComponentMounted) {\n if (!window.twttr.widgets[methodName$9]) {\n console.error(\"Method \" + methodName$9 + \" is not present anymore in twttr.widget api\");\n return;\n }\n\n window.twttr.widgets[methodName$9](props.username, ref === null || ref === void 0 ? void 0 : ref.current, props.options).then(function (element) {\n setLoading(false);\n\n if (props.onLoad) {\n props.onLoad(element);\n }\n });\n }\n });\n return function () {\n isComponentMounted = false;\n };\n }, []);\n return React.createElement(React.Fragment, null, loading && React.createElement(React.Fragment, null, props.placeholder), React.createElement(\"div\", {\n ref: ref\n }));\n};\n\nexport { TwitterDMButton, TwitterFollowButton, TwitterHashtagButton, TwitterMentionButton, TwitterMomentShare, TwitterOnAirButton, TwitterShareButton, TwitterTimelineEmbed, TwitterTweetEmbed, TwitterVideoEmbed };\n//# sourceMappingURL=index.modern.js.map\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\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)\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.YouTubeEmbed = void 0;\nconst classnames_1 = __importDefault(require(\"classnames\"));\nconst React = __importStar(require(\"react\"));\nconst react_youtube_1 = __importDefault(require(\"react-youtube\"));\nconst PlaceholderEmbed_1 = require(\"../placeholder/PlaceholderEmbed\");\nconst EmbedStyle_1 = require(\"./EmbedStyle\");\nconst maxPlaceholderWidth = 640;\nconst defaultPlaceholderHeight = 360;\nconst borderRadius = 0;\nconst YouTubeEmbed = (_a) => {\n var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var { url, width, height, linkText = 'Watch on YouTube', placeholderImageUrl, placeholderSpinner, placeholderSpinnerDisabled = false, placeholderProps, embedPlaceholder, placeholderDisabled, youTubeProps } = _a, divProps = __rest(_a, [\"url\", \"width\", \"height\", \"linkText\", \"placeholderImageUrl\", \"placeholderSpinner\", \"placeholderSpinnerDisabled\", \"placeholderProps\", \"embedPlaceholder\", \"placeholderDisabled\", \"youTubeProps\"]);\n const [ready, setReady] = React.useState(false);\n const videoIdMatch = (_b = url.match(/[?&]v=(.+?)(?:$|[&?])/)) === null || _b === void 0 ? void 0 : _b[1];\n const shortsIdMatch = (_c = url.match(/https:\\/\\/(?:www\\.)?youtube\\.com\\/shorts\\/(.+?)(?:$|[&?])/)) === null || _c === void 0 ? void 0 : _c[1];\n const shortLinkMatch = (_d = url.match(/https:\\/\\/youtu\\.be\\/(.+?)(?:$|[&?])/)) === null || _d === void 0 ? void 0 : _d[1];\n const embedLinkMatch = (_e = url.match(/https:\\/\\/(?:www\\.)youtube(-nocookie)?\\.com\\/embed\\/(.+?)(?:$|[&?])/)) === null || _e === void 0 ? void 0 : _e[2];\n const videoId = (_h = (_g = (_f = videoIdMatch !== null && videoIdMatch !== void 0 ? videoIdMatch : shortsIdMatch) !== null && _f !== void 0 ? _f : shortLinkMatch) !== null && _g !== void 0 ? _g : embedLinkMatch) !== null && _h !== void 0 ? _h : '00000000';\n const start = +((_k = (_j = url.match(/(.+?)(?:$|[&?])start=(\\d+)/)) === null || _j === void 0 ? void 0 : _j[2]) !== null && _k !== void 0 ? _k : 0);\n const isPercentageWidth = !!(width === null || width === void 0 ? void 0 : width.toString().includes('%'));\n const isPercentageHeight = !!(height === null || height === void 0 ? void 0 : height.toString().includes('%'));\n let opts = {};\n if (!!start) {\n opts.playerVars = { start };\n }\n if (typeof width !== 'undefined') {\n opts.width = isPercentageWidth ? '100%' : `${width}`;\n }\n if (typeof height !== 'undefined') {\n opts.height = isPercentageHeight ? '100%' : `${height}`;\n }\n opts = Object.assign(Object.assign({}, opts), youTubeProps === null || youTubeProps === void 0 ? void 0 : youTubeProps.opts);\n // === Placeholder ===\n const placeholderStyle = {\n maxWidth: isPercentageWidth ? undefined : maxPlaceholderWidth,\n width: typeof width !== 'undefined' ? (isPercentageWidth ? '100%' : width) : '100%',\n height: isPercentageHeight\n ? '100%'\n : typeof height !== 'undefined'\n ? height\n : typeof ((_l = divProps.style) === null || _l === void 0 ? void 0 : _l.height) !== 'undefined' || typeof ((_m = divProps.style) === null || _m === void 0 ? void 0 : _m.maxHeight) !== 'undefined'\n ? '100%'\n : defaultPlaceholderHeight,\n border: '1px solid #dee2e6',\n borderRadius,\n };\n const placeholder = embedPlaceholder !== null && embedPlaceholder !== void 0 ? embedPlaceholder : (React.createElement(PlaceholderEmbed_1.PlaceholderEmbed, Object.assign({ url: url, imageUrl: placeholderImageUrl, linkText: linkText, spinner: placeholderSpinner, spinnerDisabled: placeholderSpinnerDisabled }, placeholderProps, { style: Object.assign(Object.assign({}, placeholderStyle), placeholderProps === null || placeholderProps === void 0 ? void 0 : placeholderProps.style) })));\n // === END Placeholder ===\n return (React.createElement(\"div\", Object.assign({}, divProps, { className: (0, classnames_1.default)('rsme-embed rsme-youtube-embed', divProps.className), style: Object.assign({ overflow: 'hidden', width: width !== null && width !== void 0 ? width : undefined, height: height !== null && height !== void 0 ? height : undefined, borderRadius }, divProps.style) }),\n React.createElement(EmbedStyle_1.EmbedStyle, null),\n React.createElement(\"div\", { className: (0, classnames_1.default)(!ready && 'rsme-d-none') },\n React.createElement(react_youtube_1.default, Object.assign({}, youTubeProps, { className: (_o = youTubeProps === null || youTubeProps === void 0 ? void 0 : youTubeProps.className) !== null && _o !== void 0 ? _o : 'youtube-iframe', videoId: (_p = youTubeProps === null || youTubeProps === void 0 ? void 0 : youTubeProps.videoId) !== null && _p !== void 0 ? _p : videoId, opts: opts, onReady: (e) => {\n setReady(true);\n if (youTubeProps && youTubeProps.onReady) {\n youTubeProps === null || youTubeProps === void 0 ? void 0 : youTubeProps.onReady(e);\n }\n } }))),\n !ready && !placeholderDisabled && placeholder));\n};\nexports.YouTubeEmbed = YouTubeEmbed;\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/YouTube.tsx\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport isEqual from \"fast-deep-equal\";\nimport youTubePlayer from \"youtube-player\";\nfunction shouldUpdateVideo(prevProps, props) {\n var _a, _b;\n if (prevProps.videoId !== props.videoId) {\n return true;\n }\n const prevVars = ((_a = prevProps.opts) == null ? void 0 : _a.playerVars) || {};\n const vars = ((_b = props.opts) == null ? void 0 : _b.playerVars) || {};\n return prevVars.start !== vars.start || prevVars.end !== vars.end;\n}\nfunction filterResetOptions(opts = {}) {\n return __spreadProps(__spreadValues({}, opts), {\n height: 0,\n width: 0,\n playerVars: __spreadProps(__spreadValues({}, opts.playerVars), {\n autoplay: 0,\n start: 0,\n end: 0\n })\n });\n}\nfunction shouldResetPlayer(prevProps, props) {\n return prevProps.videoId !== props.videoId || !isEqual(filterResetOptions(prevProps.opts), filterResetOptions(props.opts));\n}\nfunction shouldUpdatePlayer(prevProps, props) {\n var _a, _b, _c, _d;\n return prevProps.id !== props.id || prevProps.className !== props.className || ((_a = prevProps.opts) == null ? void 0 : _a.width) !== ((_b = props.opts) == null ? void 0 : _b.width) || ((_c = prevProps.opts) == null ? void 0 : _c.height) !== ((_d = props.opts) == null ? void 0 : _d.height) || prevProps.iframeClassName !== props.iframeClassName || prevProps.title !== props.title;\n}\nvar defaultProps = {\n videoId: \"\",\n id: \"\",\n className: \"\",\n iframeClassName: \"\",\n style: {},\n title: \"\",\n loading: void 0,\n opts: {},\n onReady: () => {\n },\n onError: () => {\n },\n onPlay: () => {\n },\n onPause: () => {\n },\n onEnd: () => {\n },\n onStateChange: () => {\n },\n onPlaybackRateChange: () => {\n },\n onPlaybackQualityChange: () => {\n }\n};\nvar propTypes = {\n videoId: PropTypes.string,\n id: PropTypes.string,\n className: PropTypes.string,\n iframeClassName: PropTypes.string,\n style: PropTypes.object,\n title: PropTypes.string,\n loading: PropTypes.oneOf([\"lazy\", \"eager\"]),\n opts: PropTypes.objectOf(PropTypes.any),\n onReady: PropTypes.func,\n onError: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onEnd: PropTypes.func,\n onStateChange: PropTypes.func,\n onPlaybackRateChange: PropTypes.func,\n onPlaybackQualityChange: PropTypes.func\n};\nvar _YouTube = class extends React.Component {\n constructor(props) {\n super(props);\n this.destroyPlayerPromise = void 0;\n this.onPlayerReady = (event) => {\n var _a, _b;\n return (_b = (_a = this.props).onReady) == null ? void 0 : _b.call(_a, event);\n };\n this.onPlayerError = (event) => {\n var _a, _b;\n return (_b = (_a = this.props).onError) == null ? void 0 : _b.call(_a, event);\n };\n this.onPlayerStateChange = (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = this.props).onStateChange) == null ? void 0 : _b.call(_a, event);\n switch (event.data) {\n case _YouTube.PlayerState.ENDED:\n (_d = (_c = this.props).onEnd) == null ? void 0 : _d.call(_c, event);\n break;\n case _YouTube.PlayerState.PLAYING:\n (_f = (_e = this.props).onPlay) == null ? void 0 : _f.call(_e, event);\n break;\n case _YouTube.PlayerState.PAUSED:\n (_h = (_g = this.props).onPause) == null ? void 0 : _h.call(_g, event);\n break;\n default:\n }\n };\n this.onPlayerPlaybackRateChange = (event) => {\n var _a, _b;\n return (_b = (_a = this.props).onPlaybackRateChange) == null ? void 0 : _b.call(_a, event);\n };\n this.onPlayerPlaybackQualityChange = (event) => {\n var _a, _b;\n return (_b = (_a = this.props).onPlaybackQualityChange) == null ? void 0 : _b.call(_a, event);\n };\n this.destroyPlayer = () => {\n if (this.internalPlayer) {\n this.destroyPlayerPromise = this.internalPlayer.destroy().then(() => this.destroyPlayerPromise = void 0);\n return this.destroyPlayerPromise;\n }\n return Promise.resolve();\n };\n this.createPlayer = () => {\n if (typeof document === \"undefined\")\n return;\n if (this.destroyPlayerPromise) {\n this.destroyPlayerPromise.then(this.createPlayer);\n return;\n }\n const playerOpts = __spreadProps(__spreadValues({}, this.props.opts), {\n videoId: this.props.videoId\n });\n this.internalPlayer = youTubePlayer(this.container, playerOpts);\n this.internalPlayer.on(\"ready\", this.onPlayerReady);\n this.internalPlayer.on(\"error\", this.onPlayerError);\n this.internalPlayer.on(\"stateChange\", this.onPlayerStateChange);\n this.internalPlayer.on(\"playbackRateChange\", this.onPlayerPlaybackRateChange);\n this.internalPlayer.on(\"playbackQualityChange\", this.onPlayerPlaybackQualityChange);\n if (this.props.title || this.props.loading) {\n this.internalPlayer.getIframe().then((iframe) => {\n if (this.props.title)\n iframe.setAttribute(\"title\", this.props.title);\n if (this.props.loading)\n iframe.setAttribute(\"loading\", this.props.loading);\n });\n }\n };\n this.resetPlayer = () => this.destroyPlayer().then(this.createPlayer);\n this.updatePlayer = () => {\n var _a;\n (_a = this.internalPlayer) == null ? void 0 : _a.getIframe().then((iframe) => {\n if (this.props.id)\n iframe.setAttribute(\"id\", this.props.id);\n else\n iframe.removeAttribute(\"id\");\n if (this.props.iframeClassName)\n iframe.setAttribute(\"class\", this.props.iframeClassName);\n else\n iframe.removeAttribute(\"class\");\n if (this.props.opts && this.props.opts.width)\n iframe.setAttribute(\"width\", this.props.opts.width.toString());\n else\n iframe.removeAttribute(\"width\");\n if (this.props.opts && this.props.opts.height)\n iframe.setAttribute(\"height\", this.props.opts.height.toString());\n else\n iframe.removeAttribute(\"height\");\n if (this.props.title)\n iframe.setAttribute(\"title\", this.props.title);\n else\n iframe.setAttribute(\"title\", \"YouTube video player\");\n if (this.props.loading)\n iframe.setAttribute(\"loading\", this.props.loading);\n else\n iframe.removeAttribute(\"loading\");\n });\n };\n this.getInternalPlayer = () => {\n return this.internalPlayer;\n };\n this.updateVideo = () => {\n var _a, _b, _c, _d;\n if (typeof this.props.videoId === \"undefined\" || this.props.videoId === null) {\n (_a = this.internalPlayer) == null ? void 0 : _a.stopVideo();\n return;\n }\n let autoplay = false;\n const opts = {\n videoId: this.props.videoId\n };\n if ((_b = this.props.opts) == null ? void 0 : _b.playerVars) {\n autoplay = this.props.opts.playerVars.autoplay === 1;\n if (\"start\" in this.props.opts.playerVars) {\n opts.startSeconds = this.props.opts.playerVars.start;\n }\n if (\"end\" in this.props.opts.playerVars) {\n opts.endSeconds = this.props.opts.playerVars.end;\n }\n }\n if (autoplay) {\n (_c = this.internalPlayer) == null ? void 0 : _c.loadVideoById(opts);\n return;\n }\n (_d = this.internalPlayer) == null ? void 0 : _d.cueVideoById(opts);\n };\n this.refContainer = (container) => {\n this.container = container;\n };\n this.container = null;\n this.internalPlayer = null;\n }\n componentDidMount() {\n this.createPlayer();\n }\n componentDidUpdate(prevProps) {\n return __async(this, null, function* () {\n if (shouldUpdatePlayer(prevProps, this.props)) {\n this.updatePlayer();\n }\n if (shouldResetPlayer(prevProps, this.props)) {\n yield this.resetPlayer();\n }\n if (shouldUpdateVideo(prevProps, this.props)) {\n this.updateVideo();\n }\n });\n }\n componentWillUnmount() {\n this.destroyPlayer();\n }\n render() {\n return /* @__PURE__ */ React.createElement(\"div\", {\n className: this.props.className,\n style: this.props.style\n }, /* @__PURE__ */ React.createElement(\"div\", {\n id: this.props.id,\n className: this.props.iframeClassName,\n ref: this.refContainer\n }));\n }\n};\nvar YouTube = _YouTube;\nYouTube.propTypes = propTypes;\nYouTube.defaultProps = defaultProps;\nYouTube.PlayerState = {\n UNSTARTED: -1,\n ENDED: 0,\n PLAYING: 1,\n PAUSED: 2,\n BUFFERING: 3,\n CUED: 5\n};\nvar YouTube_default = YouTube;\nexport {\n YouTube_default as default\n};\n//# sourceMappingURL=YouTube.esm.js.map","'use strict';\n\nvar Sister;\n\n/**\n* @link https://github.com/gajus/sister for the canonical source repository\n* @license https://github.com/gajus/sister/blob/master/LICENSE BSD 3-Clause\n*/\nSister = function () {\n var sister = {},\n events = {};\n\n /**\n * @name handler\n * @function\n * @param {Object} data Event data.\n */\n\n /**\n * @param {String} name Event name.\n * @param {handler} handler\n * @return {listener}\n */\n sister.on = function (name, handler) {\n var listener = {name: name, handler: handler};\n events[name] = events[name] || [];\n events[name].unshift(listener);\n return listener;\n };\n\n /**\n * @param {listener}\n */\n sister.off = function (listener) {\n var index = events[listener.name].indexOf(listener);\n\n if (index !== -1) {\n events[listener.name].splice(index, 1);\n }\n };\n\n /**\n * @param {String} name Event name.\n * @param {Object} data Event data.\n */\n sister.trigger = function (name, data) {\n var listeners = events[name],\n i;\n\n if (listeners) {\n i = listeners.length;\n while (i--) {\n listeners[i].handler(data);\n }\n }\n };\n\n return sister;\n};\n\nmodule.exports = Sister;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _loadScript = require('load-script');\n\nvar _loadScript2 = _interopRequireDefault(_loadScript);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (emitter) {\n /**\n * A promise that is resolved when window.onYouTubeIframeAPIReady is called.\n * The promise is resolved with a reference to window.YT object.\n */\n var iframeAPIReady = new Promise(function (resolve) {\n if (window.YT && window.YT.Player && window.YT.Player instanceof Function) {\n resolve(window.YT);\n\n return;\n } else {\n var protocol = window.location.protocol === 'http:' ? 'http:' : 'https:';\n\n (0, _loadScript2.default)(protocol + '//www.youtube.com/iframe_api', function (error) {\n if (error) {\n emitter.trigger('error', error);\n }\n });\n }\n\n var previous = window.onYouTubeIframeAPIReady;\n\n // The API will call this function when page has finished downloading\n // the JavaScript for the player API.\n window.onYouTubeIframeAPIReady = function () {\n if (previous) {\n previous();\n }\n\n resolve(window.YT);\n };\n });\n\n return iframeAPIReady;\n};\n\nmodule.exports = exports['default'];","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _debug = require('debug');\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _functionNames = require('./functionNames');\n\nvar _functionNames2 = _interopRequireDefault(_functionNames);\n\nvar _eventNames = require('./eventNames');\n\nvar _eventNames2 = _interopRequireDefault(_eventNames);\n\nvar _FunctionStateMap = require('./FunctionStateMap');\n\nvar _FunctionStateMap2 = _interopRequireDefault(_FunctionStateMap);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable promise/prefer-await-to-then */\n\nvar debug = (0, _debug2.default)('youtube-player');\n\nvar YouTubePlayer = {};\n\n/**\n * Construct an object that defines an event handler for all of the YouTube\n * player events. Proxy captured events through an event emitter.\n *\n * @todo Capture event parameters.\n * @see https://developers.google.com/youtube/iframe_api_reference#Events\n */\nYouTubePlayer.proxyEvents = function (emitter) {\n var events = {};\n\n var _loop = function _loop(eventName) {\n var onEventName = 'on' + eventName.slice(0, 1).toUpperCase() + eventName.slice(1);\n\n events[onEventName] = function (event) {\n debug('event \"%s\"', onEventName, event);\n\n emitter.trigger(eventName, event);\n };\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = _eventNames2.default[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var eventName = _step.value;\n\n _loop(eventName);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return events;\n};\n\n/**\n * Delays player API method execution until player state is ready.\n *\n * @todo Proxy all of the methods using Object.keys.\n * @todo See TRICKY below.\n * @param playerAPIReady Promise that resolves when player is ready.\n * @param strictState A flag designating whether or not to wait for\n * an acceptable state when calling supported functions.\n * @returns {Object}\n */\nYouTubePlayer.promisifyPlayer = function (playerAPIReady) {\n var strictState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var functions = {};\n\n var _loop2 = function _loop2(functionName) {\n if (strictState && _FunctionStateMap2.default[functionName]) {\n functions[functionName] = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return playerAPIReady.then(function (player) {\n var stateInfo = _FunctionStateMap2.default[functionName];\n var playerState = player.getPlayerState();\n\n // eslint-disable-next-line no-warning-comments\n // TODO: Just spread the args into the function once Babel is fixed:\n // https://github.com/babel/babel/issues/4270\n //\n // eslint-disable-next-line prefer-spread\n var value = player[functionName].apply(player, args);\n\n // TRICKY: For functions like `seekTo`, a change in state must be\n // triggered given that the resulting state could match the initial\n // state.\n if (stateInfo.stateChangeRequired ||\n\n // eslint-disable-next-line no-extra-parens\n Array.isArray(stateInfo.acceptableStates) && stateInfo.acceptableStates.indexOf(playerState) === -1) {\n return new Promise(function (resolve) {\n var onPlayerStateChange = function onPlayerStateChange() {\n var playerStateAfterChange = player.getPlayerState();\n\n var timeout = void 0;\n\n if (typeof stateInfo.timeout === 'number') {\n timeout = setTimeout(function () {\n player.removeEventListener('onStateChange', onPlayerStateChange);\n\n resolve();\n }, stateInfo.timeout);\n }\n\n if (Array.isArray(stateInfo.acceptableStates) && stateInfo.acceptableStates.indexOf(playerStateAfterChange) !== -1) {\n player.removeEventListener('onStateChange', onPlayerStateChange);\n\n clearTimeout(timeout);\n\n resolve();\n }\n };\n\n player.addEventListener('onStateChange', onPlayerStateChange);\n }).then(function () {\n return value;\n });\n }\n\n return value;\n });\n };\n } else {\n functions[functionName] = function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return playerAPIReady.then(function (player) {\n // eslint-disable-next-line no-warning-comments\n // TODO: Just spread the args into the function once Babel is fixed:\n // https://github.com/babel/babel/issues/4270\n //\n // eslint-disable-next-line prefer-spread\n return player[functionName].apply(player, args);\n });\n };\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _functionNames2.default[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var functionName = _step2.value;\n\n _loop2(functionName);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return functions;\n};\n\nexports.default = YouTubePlayer;\nmodule.exports = exports['default'];","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Functions\n */\nexports.default = ['cueVideoById', 'loadVideoById', 'cueVideoByUrl', 'loadVideoByUrl', 'playVideo', 'pauseVideo', 'stopVideo', 'getVideoLoadedFraction', 'cuePlaylist', 'loadPlaylist', 'nextVideo', 'previousVideo', 'playVideoAt', 'setShuffle', 'setLoop', 'getPlaylist', 'getPlaylistIndex', 'setOption', 'mute', 'unMute', 'isMuted', 'setVolume', 'getVolume', 'seekTo', 'getPlayerState', 'getPlaybackRate', 'setPlaybackRate', 'getAvailablePlaybackRates', 'getPlaybackQuality', 'setPlaybackQuality', 'getAvailableQualityLevels', 'getCurrentTime', 'getDuration', 'removeEventListener', 'getVideoUrl', 'getVideoEmbedCode', 'getOptions', 'getOption', 'addEventListener', 'destroy', 'setSize', 'getIframe'];\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Events\n * `volumeChange` is not officially supported but seems to work\n * it emits an object: `{volume: 82.6923076923077, muted: false}`\n */\nexports.default = ['ready', 'stateChange', 'playbackQualityChange', 'playbackRateChange', 'error', 'apiChange', 'volumeChange'];\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _PlayerStates = require('./constants/PlayerStates');\n\nvar _PlayerStates2 = _interopRequireDefault(_PlayerStates);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n pauseVideo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PAUSED],\n stateChangeRequired: false\n },\n playVideo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PLAYING],\n stateChangeRequired: false\n },\n seekTo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PLAYING, _PlayerStates2.default.PAUSED],\n stateChangeRequired: true,\n\n // TRICKY: `seekTo` may not cause a state change if no buffering is\n // required.\n timeout: 3000\n }\n};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n BUFFERING: 3,\n ENDED: 0,\n PAUSED: 2,\n PLAYING: 1,\n UNSTARTED: -1,\n VIDEO_CUED: 5\n};\nmodule.exports = exports[\"default\"];","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getOverflowOptions = getOverflowOptions;\nexports[\"default\"] = getPlacements;\n\nvar _placements = require(\"rc-tooltip/lib/placements\");\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\n\nfunction getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\n\nfunction getPlacements() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 12 : _config$verticalArrow,\n _config$autoAdjustOve = config.autoAdjustOverflow,\n autoAdjustOverflow = _config$autoAdjustOve === void 0 ? true : _config$autoAdjustOve;\n var 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(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, _placements.placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","'use strict';\n\nexports.__esModule = true;\nvar autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nvar placements = exports.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};\n\nexports['default'] = placements;","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-modal {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n top: 100px;\\n width: auto;\\n margin: 0 auto;\\n padding-bottom: 24px;\\n pointer-events: none;\\n}\\n.ant-modal-wrap {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n overflow: auto;\\n outline: 0;\\n -webkit-overflow-scrolling: touch;\\n}\\n.ant-modal-title {\\n margin: 0;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: 500;\\n font-size: 16px;\\n line-height: 22px;\\n word-wrap: break-word;\\n}\\n.ant-modal-content {\\n position: relative;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 0;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n pointer-events: auto;\\n}\\n.ant-modal-close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 10;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.45);\\n font-weight: 700;\\n line-height: 1;\\n text-decoration: none;\\n background: transparent;\\n border: 0;\\n outline: 0;\\n cursor: pointer;\\n -webkit-transition: color 0.3s;\\n transition: color 0.3s;\\n}\\n.ant-modal-close-x {\\n display: block;\\n width: 56px;\\n height: 56px;\\n font-size: 16px;\\n font-style: normal;\\n line-height: 56px;\\n text-align: center;\\n text-transform: none;\\n text-rendering: auto;\\n}\\n.ant-modal-close:focus,\\n.ant-modal-close:hover {\\n color: rgba(0, 0, 0, 0.75);\\n text-decoration: none;\\n}\\n.ant-modal-header {\\n padding: 16px 24px;\\n color: rgba(0, 0, 0, 0.65);\\n background: #fff;\\n border-bottom: 1px solid #e8e8e8;\\n border-radius: 4px 4px 0 0;\\n}\\n.ant-modal-body {\\n padding: 24px;\\n font-size: 14px;\\n line-height: 1.5;\\n word-wrap: break-word;\\n}\\n.ant-modal-footer {\\n padding: 10px 16px;\\n text-align: right;\\n background: transparent;\\n border-top: 1px solid #e8e8e8;\\n border-radius: 0 0 4px 4px;\\n}\\n.ant-modal-footer button + button {\\n margin-bottom: 0;\\n margin-left: 8px;\\n}\\n.ant-modal.zoom-enter,\\n.ant-modal.zoom-appear {\\n -webkit-transform: none;\\n -ms-transform: none;\\n transform: none;\\n opacity: 0;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.ant-modal-mask {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.45);\\n filter: alpha(opacity=50);\\n}\\n.ant-modal-mask-hidden {\\n display: none;\\n}\\n.ant-modal-open {\\n overflow: hidden;\\n}\\n.ant-modal-centered {\\n text-align: center;\\n}\\n.ant-modal-centered::before {\\n display: inline-block;\\n width: 0;\\n height: 100%;\\n vertical-align: middle;\\n content: '';\\n}\\n.ant-modal-centered .ant-modal {\\n top: 0;\\n display: inline-block;\\n text-align: left;\\n vertical-align: middle;\\n}\\n@media (max-width: 767px) {\\n .ant-modal {\\n max-width: calc(100vw - 16px);\\n margin: 8px auto;\\n }\\n .ant-modal-centered .ant-modal {\\n -webkit-box-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n }\\n}\\n.ant-modal-confirm .ant-modal-header {\\n display: none;\\n}\\n.ant-modal-confirm .ant-modal-close {\\n display: none;\\n}\\n.ant-modal-confirm .ant-modal-body {\\n padding: 32px 32px 24px;\\n}\\n.ant-modal-confirm-body-wrapper {\\n zoom: 1;\\n}\\n.ant-modal-confirm-body-wrapper::before,\\n.ant-modal-confirm-body-wrapper::after {\\n display: table;\\n content: '';\\n}\\n.ant-modal-confirm-body-wrapper::after {\\n clear: both;\\n}\\n.ant-modal-confirm-body .ant-modal-confirm-title {\\n display: block;\\n overflow: hidden;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: 500;\\n font-size: 16px;\\n line-height: 1.4;\\n}\\n.ant-modal-confirm-body .ant-modal-confirm-content {\\n margin-top: 8px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n}\\n.ant-modal-confirm-body > .anticon {\\n float: left;\\n margin-right: 16px;\\n font-size: 22px;\\n}\\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\\n margin-left: 38px;\\n}\\n.ant-modal-confirm .ant-modal-confirm-btns {\\n float: right;\\n margin-top: 24px;\\n}\\n.ant-modal-confirm .ant-modal-confirm-btns button + button {\\n margin-bottom: 0;\\n margin-left: 8px;\\n}\\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\\n color: #f5222d;\\n}\\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\\n color: #faad14;\\n}\\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\\n color: #1890ff;\\n}\\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\\n color: #52c41a;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = confirm;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _Modal = _interopRequireWildcard(require(\"./Modal\"));\n\nvar _ActionButton = _interopRequireDefault(require(\"./ActionButton\"));\n\nvar _locale = require(\"./locale\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || 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); }\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\nvar IS_REACT_16 = !!ReactDOM.createPortal;\n\nvar ConfirmDialog = function ConfirmDialog(props) {\n var onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okButtonProps = props.okButtonProps,\n cancelButtonProps = props.cancelButtonProps,\n _props$iconType = props.iconType,\n iconType = _props$iconType === void 0 ? 'question-circle' : _props$iconType;\n (0, _warning[\"default\"])(!('iconType' in props), 'Modal', \"The property 'iconType' is deprecated. Use the property 'icon' instead.\"); // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n\n var icon = props.icon === undefined ? iconType : props.icon;\n var okType = props.okType || 'primary';\n var prefixCls = props.prefixCls || 'ant-modal';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\"); // 默认为 true,保持向下兼容\n\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask; // 默认为 false,保持旧版默认行为\n\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var runtimeLocale = (0, _locale.getConfirmLocale)();\n var okText = props.okText || (okCancel ? runtimeLocale.okText : runtimeLocale.justOkText);\n var cancelText = props.cancelText || runtimeLocale.cancelText;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var transitionName = props.transitionName || 'zoom';\n var maskTransitionName = props.maskTransitionName || 'fade';\n var classString = (0, _classnames[\"default\"])(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), props.className);\n var cancelButton = okCancel && /*#__PURE__*/React.createElement(_ActionButton[\"default\"], {\n actionFn: onCancel,\n closeModal: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps\n }, cancelText);\n var iconNode = typeof icon === 'string' ? /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: icon\n }) : icon;\n return /*#__PURE__*/React.createElement(_Modal[\"default\"], {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: (0, _classnames[\"default\"])(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered)),\n onCancel: function onCancel() {\n return close({\n triggerCancel: true\n });\n },\n visible: visible,\n title: \"\",\n transitionName: transitionName,\n footer: \"\",\n maskTransitionName: maskTransitionName,\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\")\n }, iconNode, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(_ActionButton[\"default\"], {\n type: okType,\n actionFn: onOk,\n closeModal: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps\n }, okText))));\n};\n\nfunction confirm(config) {\n var div = document.createElement('div');\n document.body.appendChild(div); // eslint-disable-next-line no-use-before-define\n\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n visible: true\n });\n\n function destroy() {\n var unmountResult = ReactDOM.unmountComponentAtNode(div);\n\n if (unmountResult && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, args);\n }\n\n for (var i = 0; i < _Modal.destroyFns.length; i++) {\n var fn = _Modal.destroyFns[i]; // eslint-disable-next-line no-use-before-define\n\n if (fn === close) {\n _Modal.destroyFns.splice(i, 1);\n\n break;\n }\n }\n }\n\n function render(props) {\n ReactDOM.render( /*#__PURE__*/React.createElement(ConfirmDialog, props), div);\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\n currentConfig = _extends(_extends({}, currentConfig), {\n visible: false,\n afterClose: destroy.bind.apply(destroy, [this].concat(args))\n });\n\n if (IS_REACT_16) {\n render(currentConfig);\n } else {\n destroy.apply(void 0, args);\n }\n }\n\n function update(newConfig) {\n currentConfig = _extends(_extends({}, currentConfig), newConfig);\n render(currentConfig);\n }\n\n render(currentConfig);\n\n _Modal.destroyFns.push(close);\n\n return {\n destroy: close,\n update: update\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\nvar _button = _interopRequireDefault(require(\"../button\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ActionButton = /*#__PURE__*/function (_React$Component) {\n _inherits(ActionButton, _React$Component);\n\n var _super = _createSuper(ActionButton);\n\n function ActionButton(props) {\n var _this;\n\n _classCallCheck(this, ActionButton);\n\n _this = _super.call(this, props);\n\n _this.onClick = function () {\n var _this$props = _this.props,\n actionFn = _this$props.actionFn,\n closeModal = _this$props.closeModal;\n\n if (actionFn) {\n var ret;\n\n if (actionFn.length) {\n ret = actionFn(closeModal);\n } else {\n ret = actionFn();\n\n if (!ret) {\n closeModal();\n }\n }\n\n if (ret && ret.then) {\n _this.setState({\n loading: true\n });\n\n ret.then(function () {\n // It's unnecessary to set loading=false, for the Modal will be unmounted after close.\n // this.setState({ loading: false });\n closeModal.apply(void 0, arguments);\n }, function (e) {\n // Emit error when catch promise reject\n // eslint-disable-next-line no-console\n console.error(e); // See: https://github.com/ant-design/ant-design/issues/6183\n\n _this.setState({\n loading: false\n });\n });\n }\n } else {\n closeModal();\n }\n };\n\n _this.state = {\n loading: false\n };\n return _this;\n }\n\n _createClass(ActionButton, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.autoFocus) {\n var $this = ReactDOM.findDOMNode(this);\n this.timeoutId = setTimeout(function () {\n return $this.focus();\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timeoutId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n type = _this$props2.type,\n children = _this$props2.children,\n buttonProps = _this$props2.buttonProps;\n var loading = this.state.loading;\n return /*#__PURE__*/React.createElement(_button[\"default\"], _extends({\n type: type,\n onClick: this.onClick,\n loading: loading\n }, buttonProps), children);\n }\n }]);\n\n return ActionButton;\n}(React.Component);\n\nexports[\"default\"] = ActionButton;","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-collapse {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n background-color: #fafafa;\\n border: 1px solid #d9d9d9;\\n border-bottom: 0;\\n border-radius: 4px;\\n}\\n.ant-collapse > .ant-collapse-item {\\n border-bottom: 1px solid #d9d9d9;\\n}\\n.ant-collapse > .ant-collapse-item:last-child,\\n.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header {\\n border-radius: 0 0 4px 4px;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header {\\n position: relative;\\n padding: 12px 16px;\\n padding-left: 40px;\\n color: rgba(0, 0, 0, 0.85);\\n line-height: 22px;\\n cursor: pointer;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\\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 position: absolute;\\n top: 50%;\\n left: 16px;\\n display: inline-block;\\n font-size: 12px;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow > * {\\n line-height: 1;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\\n display: inline-block;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow::before {\\n display: none;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow .ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow-icon {\\n display: block;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {\\n -webkit-transition: -webkit-transform 0.24s;\\n transition: -webkit-transform 0.24s;\\n transition: transform 0.24s;\\n transition: transform 0.24s, -webkit-transform 0.24s;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {\\n float: right;\\n}\\n.ant-collapse > .ant-collapse-item > .ant-collapse-header:focus {\\n outline: none;\\n}\\n.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {\\n padding-left: 12px;\\n}\\n.ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header {\\n padding: 12px 16px;\\n padding-right: 40px;\\n}\\n.ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {\\n right: 16px;\\n left: auto;\\n}\\n.ant-collapse-anim-active {\\n -webkit-transition: height 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);\\n transition: height 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);\\n}\\n.ant-collapse-content {\\n overflow: hidden;\\n color: rgba(0, 0, 0, 0.65);\\n background-color: #fff;\\n border-top: 1px solid #d9d9d9;\\n}\\n.ant-collapse-content > .ant-collapse-content-box {\\n padding: 16px;\\n}\\n.ant-collapse-content-inactive {\\n display: none;\\n}\\n.ant-collapse-item:last-child > .ant-collapse-content {\\n border-radius: 0 0 4px 4px;\\n}\\n.ant-collapse-borderless {\\n background-color: #fafafa;\\n border: 0;\\n}\\n.ant-collapse-borderless > .ant-collapse-item {\\n border-bottom: 1px solid #d9d9d9;\\n}\\n.ant-collapse-borderless > .ant-collapse-item:last-child,\\n.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header {\\n border-radius: 0;\\n}\\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content {\\n background-color: transparent;\\n border-top: 0;\\n}\\n.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\\n padding-top: 4px;\\n}\\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,\\n.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {\\n color: rgba(0, 0, 0, 0.25);\\n cursor: not-allowed;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e};exports.default=wrap;var _react=require(\"react\"),_react2=_interopRequireDefault(_react),_RevealBase=require(\"./RevealBase\"),_RevealBase2=_interopRequireDefault(_RevealBase);module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_slicedToArray=function(){function e(e,t){var i=[],s=!0,o=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,n=e}finally{try{!s&&a.return&&a.return()}finally{if(o)throw n}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e},_createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),t}}(),_react=require(\"react\"),_react2=_interopRequireDefault(_react),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),inOut=(0,_propTypes.shape)({make:_propTypes.func,duration:_propTypes.number.isRequired,delay:_propTypes.number.isRequired,forever:_propTypes.bool,count:_propTypes.number.isRequired,style:_propTypes.object.isRequired,reverse:_propTypes.bool}),propTypes={collapse:_propTypes.bool,collapseEl:_propTypes.element,cascade:_propTypes.bool,wait:_propTypes.number,force:_propTypes.bool,disabled:_propTypes.bool,appear:_propTypes.bool,enter:_propTypes.bool,exit:_propTypes.bool,fraction:_propTypes.number,refProp:_propTypes.string,innerRef:_propTypes.func,onReveal:_propTypes.func,unmountOnExit:_propTypes.bool,mountOnEnter:_propTypes.bool,inEffect:inOut.isRequired,outEffect:(0,_propTypes.oneOfType)([inOut,(0,_propTypes.oneOf)([!1])]).isRequired,ssrReveal:_propTypes.bool,collapseOnly:_propTypes.bool,ssrFadeout:_propTypes.bool},defaultProps={fraction:.2,refProp:\"ref\"},contextTypes={transitionGroup:_propTypes.object},RevealBase=function(e){function t(e,i){_classCallCheck(this,t);var s=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));return s.isOn=void 0===e.when||!!e.when,s.state={collapse:e.collapse?t.getInitialCollapseStyle(e):void 0,style:{opacity:s.isOn&&!e.ssrReveal||!e.outEffect?void 0:0}},s.savedChild=!1,s.isShown=!1,_globals.observerMode?s.handleObserve=s.handleObserve.bind(s):(s.revealHandler=s.makeHandler(s.reveal),s.resizeHandler=s.makeHandler(s.resize)),s.saveRef=s.saveRef.bind(s),s}return _inherits(t,e),_createClass(t,[{key:\"saveRef\",value:function(e){this.childRef&&this.childRef(e),this.props.innerRef&&this.props.innerRef(e),this.el!==e&&(this.el=e&&\"offsetHeight\"in e?e:void 0,this.observe(this.props,!0))}},{key:\"invisible\",value:function(){this&&this.el&&(this.savedChild=!1,this.isShown||(this.setState({hasExited:!0,collapse:this.props.collapse?_extends({},this.state.collapse,{visibility:\"hidden\"}):null,style:{opacity:0}}),!_globals.observerMode&&this.props.collapse&&window.document.dispatchEvent(_globals.collapseend)))}},{key:\"animationEnd\",value:function(e,t,i){var s=this,o=i.forever,n=i.count,r=i.delay,a=i.duration;if(!o){var l=function(){s&&s.el&&(s.animationEndTimeout=void 0,e.call(s))};this.animationEndTimeout=window.setTimeout(l,r+(a+(t?a:0)*n))}}},{key:\"getDimensionValue\",value:function(){return this.el.offsetHeight+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-top\"),10)+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-bottom\"),10)}},{key:\"collapse\",value:function(e,t,i){var s=i.duration+(t.cascade?i.duration:0),o=this.isOn?this.getDimensionValue():0,n=void 0,r=void 0;if(t.collapseOnly)n=i.duration/3,r=i.delay;else{var a=s>>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)<window.pageYOffset+window.innerHeight)?(this.isShown=!0,this.setState({hasAppeared:!0,collapse:this.props.collapse?{height:this.getDimensionValue()}:this.state.collapse,style:{opacity:1}}),void this.onReveal(this.props)):_globals.ssr&&(_globals.fadeOutEnabled||this.props.ssrFadeout)&&this.props.outEffect&&t.getTop(this.el)<window.pageYOffset+window.innerHeight?(this.setState({style:{opacity:0,transition:\"opacity 1000ms 1000ms\"}}),void window.setTimeout(function(){return e.reveal(e.props,!0)},2e3)):void(this.isOn&&(this.props.force?this.animate(this.props):this.reveal(this.props)))}}},{key:\"cascade\",value:function(e){var t=this,i=void 0;i=\"string\"==typeof e?e.split(\"\").map(function(e,t){return _react2.default.createElement(\"span\",{key:t,style:{display:\"inline-block\",whiteSpace:\"pre\"}},e)}):_react2.default.Children.toArray(e);var s=this.props[this.isOn||!this.props.outEffect?\"inEffect\":\"outEffect\"],o=s.duration,n=s.reverse,r=i.length,a=2*o;this.props.collapse&&(a=parseInt(this.state.style.animationDuration,10),o=a/2);var l=n?r:0;return i=i.map(function(e){return\"object\"===(void 0===e?\"undefined\":_typeof(e))&&e?_react2.default.cloneElement(e,{style:_extends({},e.props.style,t.state.style,{animationDuration:Math.round((0,_globals.cascade)(n?l--:l++,0,r,o,a))+\"ms\"})}):e})}},{key:\"componentWillReceiveProps\",value:function(e){if(void 0!==e.when&&(this.isOn=!!e.when),e.fraction!==this.props.fraction&&this.observe(e,!0),!this.isOn&&e.onExited&&\"exit\"in e&&!1===e.exit)return void e.onExited();e.disabled||(e.collapse&&!this.props.collapse&&(this.setState({style:{},collapse:t.getInitialCollapseStyle(e)}),this.isShown=!1),e.when===this.props.when&&e.spy===this.props.spy||this.reveal(e),this.onRevealTimeout&&!this.isOn&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)))}},{key:\"getChild\",value:function(){if(this.savedChild&&!this.props.disabled)return this.savedChild;if(\"object\"===_typeof(this.props.children)){var e=_react2.default.Children.only(this.props.children);return\"type\"in e&&\"string\"==typeof e.type||\"ref\"!==this.props.refProp?e:_react2.default.createElement(\"div\",null,e)}return _react2.default.createElement(\"div\",null,this.props.children)}},{key:\"render\",value:function(){var e=void 0;e=this.state.hasAppeared?!this.props.unmountOnExit||!this.state.hasExited||this.isOn:!this.props.mountOnEnter||this.isOn;var t=this.getChild();\"function\"==typeof t.ref&&(this.childRef=t.ref);var i=!1,s=t.props,o=s.style,n=s.className,r=s.children,a=this.props.disabled?n:(this.props.outEffect?_globals.namespace:\"\")+(this.state.className?\" \"+this.state.className:\"\")+(n?\" \"+n:\"\")||void 0,l=void 0;\"function\"==typeof this.state.style.animationName&&(this.state.style.animationName=this.state.style.animationName(!this.isOn,this.props)),this.props.cascade&&!this.props.disabled&&r&&this.state.style.animationName?(i=this.cascade(r),l=_extends({},o,{opacity:1})):l=this.props.disabled?o:_extends({},o,this.state.style);var p=_extends({},this.props.props,_defineProperty({className:a,style:l},this.props.refProp,this.saveRef)),h=_react2.default.cloneElement(t,p,e?i||r:void 0);return void 0!==this.props.collapse?this.props.collapseEl?_react2.default.cloneElement(this.props.collapseEl,{style:_extends({},this.props.collapseEl.style,this.props.disabled?void 0:this.state.collapse),children:h}):_react2.default.createElement(\"div\",{style:this.props.disabled?void 0:this.state.collapse,children:h}):h}},{key:\"makeHandler\",value:function(e){var t=this,i=function(){e.call(t,t.props),t.ticking=!1};return function(){t.ticking||((0,_globals.raf)(i),t.ticking=!0)}}},{key:\"inViewport\",value:function(e){if(!this.el||window.document.hidden)return!1;var i=this.el.offsetHeight,s=window.pageYOffset-t.getTop(this.el),o=Math.min(i,window.innerHeight)*(_globals.globalHide?e.fraction:0);return s>o-window.innerHeight&&s<i-o}},{key:\"resize\",value:function(e){this&&this.el&&this.isOn&&this.inViewport(e)&&(this.unlisten(),this.isShown=this.isOn,this.setState({hasExited:!this.isOn,hasAppeared:!0,collapse:void 0,style:{opacity:this.isOn||!e.outEffect?1:0}}),this.onReveal(e))}},{key:\"listen\",value:function(){_globals.observerMode||this.isListener||(this.isListener=!0,window.addEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.addEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.addEventListener(\"resize\",this.resizeHandler,{passive:!0}))}},{key:\"unlisten\",value:function(){!_globals.observerMode&&this.isListener&&(window.removeEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.removeEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.removeEventListener(\"resize\",this.resizeHandler,{passive:!0}),this.isListener=!1),this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),this.animationEndTimeout&&(this.animationEndTimeout=window.clearTimeout(this.animationEndTimeout))}}],[{key:\"getInitialCollapseStyle\",value:function(e){return{height:0,visibility:e.when?void 0:\"hidden\"}}},{key:\"getTop\",value:function(e){for(;void 0===e.offsetTop;)e=e.parentNode;for(var t=e.offsetTop;e.offsetParent;t+=e.offsetTop)e=e.offsetParent;return t}}]),t}(_react2.default.Component);RevealBase.propTypes=propTypes,RevealBase.defaultProps=defaultProps,RevealBase.contextTypes=contextTypes,RevealBase.displayName=\"RevealBase\",exports.default=RevealBase,module.exports=exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcCollapse = _interopRequireDefault(require(\"rc-collapse\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CollapsePanel = _interopRequireDefault(require(\"./CollapsePanel\"));\n\nvar _icon = _interopRequireDefault(require(\"../icon\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _openAnimation = _interopRequireDefault(require(\"../_util/openAnimation\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Collapse = /*#__PURE__*/function (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n var _super = _createSuper(Collapse);\n\n function Collapse() {\n var _this;\n\n _classCallCheck(this, Collapse);\n\n _this = _super.apply(this, arguments);\n\n _this.renderExpandIcon = function () {\n var panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var prefixCls = arguments.length > 1 ? arguments[1] : undefined;\n var expandIcon = _this.props.expandIcon;\n var icon = expandIcon ? expandIcon(panelProps) : /*#__PURE__*/React.createElement(_icon[\"default\"], {\n type: \"right\",\n rotate: panelProps.isActive ? 90 : undefined\n });\n return /*#__PURE__*/React.isValidElement(icon) ? /*#__PURE__*/React.cloneElement(icon, {\n className: (0, _classnames[\"default\"])(icon.props.className, \"\".concat(prefixCls, \"-arrow\"))\n }) : icon;\n };\n\n _this.renderCollapse = function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n _this$props$className = _this$props.className,\n className = _this$props$className === void 0 ? '' : _this$props$className,\n bordered = _this$props.bordered,\n expandIconPosition = _this$props.expandIconPosition;\n var prefixCls = getPrefixCls('collapse', customizePrefixCls);\n var collapseClassName = (0, _classnames[\"default\"])((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-borderless\"), !bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-position-\").concat(expandIconPosition), true), _classNames), className);\n return /*#__PURE__*/React.createElement(_rcCollapse[\"default\"], _extends({}, _this.props, {\n expandIcon: function expandIcon(panelProps) {\n return _this.renderExpandIcon(panelProps, prefixCls);\n },\n prefixCls: prefixCls,\n className: collapseClassName\n }));\n };\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderCollapse);\n }\n }]);\n\n return Collapse;\n}(React.Component);\n\nexports[\"default\"] = Collapse;\nCollapse.Panel = _CollapsePanel[\"default\"];\nCollapse.defaultProps = {\n bordered: true,\n openAnimation: _extends(_extends({}, _openAnimation[\"default\"]), {\n appear: function appear() {}\n }),\n expandIconPosition: 'left'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcCollapse = _interopRequireDefault(require(\"rc-collapse\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _this = _super.apply(this, arguments);\n\n _this.renderCollapsePanel = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n _this$props$className = _this$props.className,\n className = _this$props$className === void 0 ? '' : _this$props$className,\n _this$props$showArrow = _this$props.showArrow,\n showArrow = _this$props$showArrow === void 0 ? true : _this$props$showArrow;\n var prefixCls = getPrefixCls('collapse', customizePrefixCls);\n var collapsePanelClassName = (0, _classnames[\"default\"])(_defineProperty({}, \"\".concat(prefixCls, \"-no-arrow\"), !showArrow), className);\n return /*#__PURE__*/React.createElement(_rcCollapse[\"default\"].Panel, _extends({}, _this.props, {\n prefixCls: prefixCls,\n className: collapsePanelClassName\n }));\n };\n\n return _this;\n }\n\n _createClass(CollapsePanel, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderCollapsePanel);\n }\n }]);\n\n return CollapsePanel;\n}(React.Component);\n\nexports[\"default\"] = CollapsePanel;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _cssAnimation = _interopRequireDefault(require(\"css-animation\"));\n\nvar _raf = _interopRequireDefault(require(\"raf\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Deprecated. We should replace the animation with pure react motion instead of modify style directly.\n * If you are creating new component with animation, please use `./motion`.\n */\nfunction animate(node, show, done) {\n var height;\n var requestAnimationFrameId;\n return (0, _cssAnimation[\"default\"])(node, 'ant-motion-collapse-legacy', {\n start: function start() {\n if (!show) {\n node.style.height = \"\".concat(node.offsetHeight, \"px\");\n node.style.opacity = '1';\n } else {\n height = node.offsetHeight;\n node.style.height = '0px';\n node.style.opacity = '0';\n }\n },\n active: function active() {\n if (requestAnimationFrameId) {\n _raf[\"default\"].cancel(requestAnimationFrameId);\n }\n\n requestAnimationFrameId = (0, _raf[\"default\"])(function () {\n node.style.height = \"\".concat(show ? height : 0, \"px\");\n node.style.opacity = show ? '1' : '0';\n });\n },\n end: function end() {\n if (requestAnimationFrameId) {\n _raf[\"default\"].cancel(requestAnimationFrameId);\n }\n\n node.style.height = '';\n node.style.opacity = '';\n done();\n }\n });\n}\n\nvar animation = {\n enter: function enter(node, done) {\n return animate(node, true, done);\n },\n leave: function leave(node, done) {\n return animate(node, false, done);\n },\n appear: function appear(node, done) {\n return animate(node, true, done);\n }\n};\nvar _default = animation;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _shallowequal = _interopRequireDefault(require(\"shallowequal\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _radio = _interopRequireDefault(require(\"./radio\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction getCheckedValue(children) {\n var value = null;\n var matched = false;\n React.Children.forEach(children, function (radio) {\n if (radio && radio.props && radio.props.checked) {\n value = radio.props.value;\n matched = true;\n }\n });\n return matched ? {\n value: value\n } : undefined;\n}\n\nvar RadioGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(RadioGroup, _React$Component);\n\n var _super = _createSuper(RadioGroup);\n\n function RadioGroup(props) {\n var _this;\n\n _classCallCheck(this, RadioGroup);\n\n _this = _super.call(this, props);\n\n _this.onRadioChange = function (ev) {\n var lastValue = _this.state.value;\n var value = ev.target.value;\n\n if (!('value' in _this.props)) {\n _this.setState({\n value: value\n });\n }\n\n var onChange = _this.props.onChange;\n\n if (onChange && value !== lastValue) {\n onChange(ev);\n }\n };\n\n _this.renderGroup = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n buttonStyle = props.buttonStyle;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var classString = (0, _classnames[\"default\"])(groupPrefixCls, \"\".concat(groupPrefixCls, \"-\").concat(buttonStyle), _defineProperty({}, \"\".concat(groupPrefixCls, \"-\").concat(props.size), props.size), className);\n var children = props.children; // 如果存在 options, 优先使用\n\n if (options && options.length > 0) {\n children = options.map(function (option) {\n if (typeof option === 'string') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(_radio[\"default\"], {\n key: option,\n prefixCls: prefixCls,\n disabled: _this.props.disabled,\n value: option,\n checked: _this.state.value === option\n }, option);\n } // 此处类型自动推导为 { label: string value: string }\n\n\n return /*#__PURE__*/React.createElement(_radio[\"default\"], {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: prefixCls,\n disabled: option.disabled || _this.props.disabled,\n value: option.value,\n checked: _this.state.value === option.value\n }, option.label);\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classString,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n id: props.id\n }, children);\n };\n\n var value;\n\n if ('value' in props) {\n value = props.value;\n } else if ('defaultValue' in props) {\n value = props.defaultValue;\n } else {\n var checkedValue = getCheckedValue(props.children);\n value = checkedValue && checkedValue.value;\n }\n\n _this.state = {\n value: value\n };\n return _this;\n }\n\n _createClass(RadioGroup, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n radioGroup: {\n onChange: this.onRadioChange,\n value: this.state.value,\n disabled: this.props.disabled,\n name: this.props.name\n }\n };\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _shallowequal[\"default\"])(this.props, nextProps) || !(0, _shallowequal[\"default\"])(this.state, nextState);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderGroup);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n\n var checkedValue = getCheckedValue(nextProps.children);\n\n if (checkedValue) {\n return {\n value: checkedValue.value\n };\n }\n\n return null;\n }\n }]);\n\n return RadioGroup;\n}(React.Component);\n\nRadioGroup.defaultProps = {\n buttonStyle: 'outline'\n};\nRadioGroup.childContextTypes = {\n radioGroup: PropTypes.any\n};\n(0, _reactLifecyclesCompat.polyfill)(RadioGroup);\nvar _default = RadioGroup;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _radio = _interopRequireDefault(require(\"./radio\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar RadioButton = /*#__PURE__*/function (_React$Component) {\n _inherits(RadioButton, _React$Component);\n\n var _super = _createSuper(RadioButton);\n\n function RadioButton() {\n var _this;\n\n _classCallCheck(this, RadioButton);\n\n _this = _super.apply(this, arguments);\n\n _this.renderRadioButton = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n radioProps = __rest(_a, [\"prefixCls\"]);\n\n var prefixCls = getPrefixCls('radio-button', customizePrefixCls);\n\n if (_this.context.radioGroup) {\n radioProps.checked = _this.props.value === _this.context.radioGroup.value;\n radioProps.disabled = _this.props.disabled || _this.context.radioGroup.disabled;\n }\n\n return /*#__PURE__*/React.createElement(_radio[\"default\"], _extends({\n prefixCls: prefixCls\n }, radioProps));\n };\n\n return _this;\n }\n\n _createClass(RadioButton, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderRadioButton);\n }\n }]);\n\n return RadioButton;\n}(React.Component);\n\nexports[\"default\"] = RadioButton;\nRadioButton.contextTypes = {\n radioGroup: PropTypes.any\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.easeInOutCubic = easeInOutCubic;\n\n// eslint-disable-next-line import/prefer-default-export\nfunction easeInOutCubic(t, b, c, d) {\n var cc = c - b;\n t /= d / 2;\n\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-badge {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: relative;\\n display: inline-block;\\n color: unset;\\n line-height: 1;\\n}\\n.ant-badge-count {\\n min-width: 20px;\\n height: 20px;\\n padding: 0 6px;\\n color: #fff;\\n font-weight: normal;\\n font-size: 12px;\\n line-height: 20px;\\n white-space: nowrap;\\n text-align: center;\\n background: #f5222d;\\n border-radius: 10px;\\n -webkit-box-shadow: 0 0 0 1px #fff;\\n box-shadow: 0 0 0 1px #fff;\\n}\\n.ant-badge-count a,\\n.ant-badge-count a:hover {\\n color: #fff;\\n}\\n.ant-badge-multiple-words {\\n padding: 0 8px;\\n}\\n.ant-badge-dot {\\n width: 6px;\\n height: 6px;\\n background: #f5222d;\\n border-radius: 100%;\\n -webkit-box-shadow: 0 0 0 1px #fff;\\n box-shadow: 0 0 0 1px #fff;\\n}\\n.ant-badge-count,\\n.ant-badge-dot,\\n.ant-badge .ant-scroll-number-custom-component {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 1;\\n -webkit-transform: translate(50%, -50%);\\n -ms-transform: translate(50%, -50%);\\n transform: translate(50%, -50%);\\n -webkit-transform-origin: 100% 0%;\\n -ms-transform-origin: 100% 0%;\\n transform-origin: 100% 0%;\\n}\\n.ant-badge-status {\\n line-height: inherit;\\n vertical-align: baseline;\\n}\\n.ant-badge-status-dot {\\n position: relative;\\n top: -1px;\\n display: inline-block;\\n width: 6px;\\n height: 6px;\\n vertical-align: middle;\\n border-radius: 50%;\\n}\\n.ant-badge-status-success {\\n background-color: #52c41a;\\n}\\n.ant-badge-status-processing {\\n position: relative;\\n background-color: #1890ff;\\n}\\n.ant-badge-status-processing::after {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 1px solid #1890ff;\\n border-radius: 50%;\\n -webkit-animation: antStatusProcessing 1.2s infinite ease-in-out;\\n animation: antStatusProcessing 1.2s infinite ease-in-out;\\n content: '';\\n}\\n.ant-badge-status-default {\\n background-color: #d9d9d9;\\n}\\n.ant-badge-status-error {\\n background-color: #f5222d;\\n}\\n.ant-badge-status-warning {\\n background-color: #faad14;\\n}\\n.ant-badge-status-pink {\\n background: #eb2f96;\\n}\\n.ant-badge-status-magenta {\\n background: #eb2f96;\\n}\\n.ant-badge-status-red {\\n background: #f5222d;\\n}\\n.ant-badge-status-volcano {\\n background: #fa541c;\\n}\\n.ant-badge-status-orange {\\n background: #fa8c16;\\n}\\n.ant-badge-status-yellow {\\n background: #fadb14;\\n}\\n.ant-badge-status-gold {\\n background: #faad14;\\n}\\n.ant-badge-status-cyan {\\n background: #13c2c2;\\n}\\n.ant-badge-status-lime {\\n background: #a0d911;\\n}\\n.ant-badge-status-green {\\n background: #52c41a;\\n}\\n.ant-badge-status-blue {\\n background: #1890ff;\\n}\\n.ant-badge-status-geekblue {\\n background: #2f54eb;\\n}\\n.ant-badge-status-purple {\\n background: #722ed1;\\n}\\n.ant-badge-status-text {\\n margin-left: 8px;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n}\\n.ant-badge-zoom-appear,\\n.ant-badge-zoom-enter {\\n -webkit-animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\\n animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n}\\n.ant-badge-zoom-leave {\\n -webkit-animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\\n animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n}\\n.ant-badge-not-a-wrapper:not(.ant-badge-status) {\\n vertical-align: middle;\\n}\\n.ant-badge-not-a-wrapper .ant-scroll-number {\\n position: relative;\\n top: auto;\\n display: block;\\n}\\n.ant-badge-not-a-wrapper .ant-badge-count {\\n -webkit-transform: none;\\n -ms-transform: none;\\n transform: none;\\n}\\n@-webkit-keyframes antStatusProcessing {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(2.4);\\n transform: scale(2.4);\\n opacity: 0;\\n }\\n}\\n@keyframes antStatusProcessing {\\n 0% {\\n -webkit-transform: scale(0.8);\\n transform: scale(0.8);\\n opacity: 0.5;\\n }\\n 100% {\\n -webkit-transform: scale(2.4);\\n transform: scale(2.4);\\n opacity: 0;\\n }\\n}\\n.ant-scroll-number {\\n overflow: hidden;\\n}\\n.ant-scroll-number-only {\\n display: inline-block;\\n height: 20px;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-scroll-number-only > p.ant-scroll-number-only-unit {\\n height: 20px;\\n margin: 0;\\n}\\n.ant-scroll-number-symbol {\\n vertical-align: top;\\n}\\n@-webkit-keyframes antZoomBadgeIn {\\n 0% {\\n -webkit-transform: scale(0) translate(50%, -50%);\\n transform: scale(0) translate(50%, -50%);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1) translate(50%, -50%);\\n transform: scale(1) translate(50%, -50%);\\n }\\n}\\n@keyframes antZoomBadgeIn {\\n 0% {\\n -webkit-transform: scale(0) translate(50%, -50%);\\n transform: scale(0) translate(50%, -50%);\\n opacity: 0;\\n }\\n 100% {\\n -webkit-transform: scale(1) translate(50%, -50%);\\n transform: scale(1) translate(50%, -50%);\\n }\\n}\\n@-webkit-keyframes antZoomBadgeOut {\\n 0% {\\n -webkit-transform: scale(1) translate(50%, -50%);\\n transform: scale(1) translate(50%, -50%);\\n }\\n 100% {\\n -webkit-transform: scale(0) translate(50%, -50%);\\n transform: scale(0) translate(50%, -50%);\\n opacity: 0;\\n }\\n}\\n@keyframes antZoomBadgeOut {\\n 0% {\\n -webkit-transform: scale(1) translate(50%, -50%);\\n transform: scale(1) translate(50%, -50%);\\n }\\n 100% {\\n -webkit-transform: scale(0) translate(50%, -50%);\\n transform: scale(0) translate(50%, -50%);\\n opacity: 0;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _configProvider = require(\"../config-provider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction getNumberArray(num) {\n return num ? num.toString().split('').reverse().map(function (i) {\n var current = Number(i);\n return isNaN(current) ? i : current;\n }) : [];\n}\n\nfunction renderNumberList(position, className) {\n var childrenToReturn = [];\n\n for (var i = 0; i < 30; i++) {\n childrenToReturn.push( /*#__PURE__*/React.createElement(\"p\", {\n key: i.toString(),\n className: (0, _classnames[\"default\"])(className, {\n current: position === i\n })\n }, i % 10));\n }\n\n return childrenToReturn;\n}\n\nvar ScrollNumber = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollNumber, _React$Component);\n\n var _super = _createSuper(ScrollNumber);\n\n function ScrollNumber(props) {\n var _this;\n\n _classCallCheck(this, ScrollNumber);\n\n _this = _super.call(this, props);\n\n _this.onAnimated = function () {\n var onAnimated = _this.props.onAnimated;\n\n if (onAnimated) {\n onAnimated();\n }\n };\n\n _this.renderScrollNumber = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n className = _this$props.className,\n style = _this$props.style,\n title = _this$props.title,\n _this$props$component = _this$props.component,\n component = _this$props$component === void 0 ? 'sup' : _this$props$component,\n displayComponent = _this$props.displayComponent; // fix https://fb.me/react-unknown-prop\n\n var restProps = (0, _omit[\"default\"])(_this.props, ['count', 'onAnimated', 'component', 'prefixCls', 'displayComponent']);\n var prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n\n var newProps = _extends(_extends({}, restProps), {\n className: (0, _classnames[\"default\"])(prefixCls, className),\n title: title\n }); // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />\n\n\n if (style && style.borderColor) {\n newProps.style = _extends(_extends({}, style), {\n boxShadow: \"0 0 0 1px \".concat(style.borderColor, \" inset\")\n });\n }\n\n if (displayComponent) {\n return /*#__PURE__*/React.cloneElement(displayComponent, {\n className: (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-custom-component\"), displayComponent.props && displayComponent.props.className)\n });\n }\n\n return /*#__PURE__*/React.createElement(component, newProps, _this.renderNumberElement(prefixCls));\n };\n\n _this.state = {\n animateStarted: true,\n count: props.count\n };\n return _this;\n }\n\n _createClass(ScrollNumber, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_, prevState) {\n var _this2 = this;\n\n this.lastCount = prevState.count;\n var animateStarted = this.state.animateStarted;\n\n if (animateStarted) {\n this.clearTimeout(); // Let browser has time to reset the scroller before actually\n // performing the transition.\n\n this.timeout = setTimeout(function () {\n // eslint-disable-next-line react/no-did-update-set-state\n _this2.setState(function (__, props) {\n return {\n animateStarted: false,\n count: props.count\n };\n }, _this2.onAnimated);\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimeout();\n }\n }, {\n key: \"getPositionByNum\",\n value: function getPositionByNum(num, i) {\n var count = this.state.count;\n var currentCount = Math.abs(Number(count));\n var lastCount = Math.abs(Number(this.lastCount));\n var currentDigit = Math.abs(getNumberArray(this.state.count)[i]);\n var lastDigit = Math.abs(getNumberArray(this.lastCount)[i]);\n\n if (this.state.animateStarted) {\n return 10 + num;\n } // 同方向则在同一侧切换数字\n\n\n if (currentCount > lastCount) {\n if (currentDigit >= lastDigit) {\n return 10 + num;\n }\n\n return 20 + num;\n }\n\n if (currentDigit <= lastDigit) {\n return 10 + num;\n }\n\n return num;\n }\n }, {\n key: \"renderCurrentNumber\",\n value: function renderCurrentNumber(prefixCls, num, i) {\n if (typeof num === 'number') {\n var position = this.getPositionByNum(num, i);\n var removeTransition = this.state.animateStarted || getNumberArray(this.lastCount)[i] === undefined;\n return /*#__PURE__*/React.createElement('span', {\n className: \"\".concat(prefixCls, \"-only\"),\n style: {\n transition: removeTransition ? 'none' : undefined,\n msTransform: \"translateY(\".concat(-position * 100, \"%)\"),\n WebkitTransform: \"translateY(\".concat(-position * 100, \"%)\"),\n transform: \"translateY(\".concat(-position * 100, \"%)\")\n },\n key: i\n }, renderNumberList(position, \"\".concat(prefixCls, \"-only-unit\")));\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"symbol\",\n className: \"\".concat(prefixCls, \"-symbol\")\n }, num);\n }\n }, {\n key: \"renderNumberElement\",\n value: function renderNumberElement(prefixCls) {\n var _this3 = this;\n\n var count = this.state.count;\n\n if (count && Number(count) % 1 === 0) {\n return getNumberArray(count).map(function (num, i) {\n return _this3.renderCurrentNumber(prefixCls, num, i);\n }).reverse();\n }\n\n return count;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, this.renderScrollNumber);\n }\n }, {\n key: \"clearTimeout\",\n value: function (_clearTimeout) {\n function clearTimeout() {\n return _clearTimeout.apply(this, arguments);\n }\n\n clearTimeout.toString = function () {\n return _clearTimeout.toString();\n };\n\n return clearTimeout;\n }(function () {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = undefined;\n }\n })\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, nextState) {\n if ('count' in nextProps) {\n if (nextState.count === nextProps.count) {\n return null;\n }\n\n return {\n animateStarted: true\n };\n }\n\n return null;\n }\n }]);\n\n return ScrollNumber;\n}(React.Component);\n\nScrollNumber.defaultProps = {\n count: null,\n onAnimated: function onAnimated() {}\n};\n(0, _reactLifecyclesCompat.polyfill)(ScrollNumber);\nvar _default = ScrollNumber;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PresetColorTypes = void 0;\n\nvar _type = require(\"./type\");\n\n// eslint-disable-next-line import/prefer-default-export\nvar PresetColorTypes = (0, _type.tuple)('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');\nexports.PresetColorTypes = PresetColorTypes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useComponentSize = void 0;\nexports.useDeepCompareEffect = useDeepCompareEffect;\nexports.useDeepMemo = useDeepMemo;\nexports.useSnowflakes = exports.useSnowfallStyle = void 0;\n\nvar _react = require(\"react\");\n\nvar _reactFastCompare = _interopRequireDefault(require(\"react-fast-compare\"));\n\nvar _Snowflake = _interopRequireDefault(require(\"./Snowflake\"));\n\nvar _config = require(\"./config\");\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\r\n * A utility function to create a collection of snowflakes\r\n * @param canvasRef A ref to the canvas element\r\n * @param amount The number of snowflakes\r\n * @param config The configuration for each snowflake\r\n */\nvar createSnowflakes = function createSnowflakes(canvasRef, amount, config) {\n if (!canvasRef.current) return [];\n var snowflakes = [];\n\n for (var i = 0; i < amount; i++) {\n snowflakes.push(new _Snowflake[\"default\"](canvasRef.current, config));\n }\n\n return snowflakes;\n};\n/**\r\n * A utility hook to manage creating and updating a collection of snowflakes\r\n * @param canvasRef A ref to the canvas element\r\n * @param amount The number of snowflakes\r\n * @param config The configuration for each snowflake\r\n */\n\n\nvar useSnowflakes = function useSnowflakes(canvasRef, amount, config) {\n var _useState = (0, _react.useState)([]),\n _useState2 = _slicedToArray(_useState, 2),\n snowflakes = _useState2[0],\n setSnowflakes = _useState2[1]; // Handle change of amount\n\n\n (0, _react.useEffect)(function () {\n setSnowflakes(function (snowflakes) {\n var sizeDifference = amount - snowflakes.length;\n\n if (sizeDifference > 0) {\n return [].concat(_toConsumableArray(snowflakes), _toConsumableArray(createSnowflakes(canvasRef, sizeDifference, config)));\n }\n\n if (sizeDifference < 0) {\n return snowflakes.slice(0, amount);\n }\n\n return snowflakes;\n });\n }, [amount, canvasRef, config]); // Handle change of config\n\n (0, _react.useEffect)(function () {\n setSnowflakes(function (snowflakes) {\n return snowflakes.map(function (snowflake) {\n snowflake.updateConfig(config);\n return snowflake;\n });\n });\n }, [config]);\n return snowflakes;\n};\n/**\r\n * Returns the height and width of a HTML element, uses the `ResizeObserver` api if available to detect changes to the\r\n * size. Falls back to listening for resize events on the window.\r\n * @param ref A ref to the HTML element to be measured\r\n */\n\n\nexports.useSnowflakes = useSnowflakes;\n\nvar useComponentSize = function useComponentSize(ref) {\n var _useState3 = (0, _react.useState)((0, _utils.getSize)(ref.current)),\n _useState4 = _slicedToArray(_useState3, 2),\n size = _useState4[0],\n setSize = _useState4[1];\n\n var resizeHandler = (0, _react.useCallback)(function () {\n if (ref.current) {\n setSize((0, _utils.getSize)(ref.current));\n }\n }, [ref]);\n (0, _react.useLayoutEffect)(function () {\n var _window = window,\n ResizeObserver = _window.ResizeObserver;\n if (!ref.current) return;\n resizeHandler();\n\n if (typeof ResizeObserver === 'function') {\n var resizeObserver = new ResizeObserver(resizeHandler);\n resizeObserver.observe(ref.current);\n return function () {\n return resizeObserver.disconnect();\n };\n } else {\n window.addEventListener('resize', resizeHandler);\n return function () {\n return window.removeEventListener('resize', resizeHandler);\n };\n }\n }, [ref, resizeHandler]);\n return size;\n};\n/**\r\n * Utility hook that merges any provided styles with the default styles\r\n * @param overrides The style prop passed into the component\r\n */\n\n\nexports.useComponentSize = useComponentSize;\n\nvar useSnowfallStyle = function useSnowfallStyle(overrides) {\n var styles = (0, _react.useMemo)(function () {\n return _objectSpread(_objectSpread({}, _config.snowfallBaseStyle), overrides || {});\n }, [overrides]);\n return styles;\n};\n/**\r\n * Same as `React.useEffect` but uses a deep comparison on the dependency array. This should only\r\n * be used when working with non-primitive dependencies.\r\n *\r\n * @param effect Effect callback to run\r\n * @param deps Effect dependencies\r\n */\n\n\nexports.useSnowfallStyle = useSnowfallStyle;\n\nfunction useDeepCompareEffect(effect, deps) {\n var ref = (0, _react.useRef)(deps); // Only update the current dependencies if they are not deep equal\n\n if (!(0, _reactFastCompare[\"default\"])(deps, ref.current)) {\n ref.current = deps;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n return (0, _react.useEffect)(effect, ref.current);\n}\n/**\r\n * Utility hook to stabilize a reference to a value, the returned value will always match the input value\r\n * but (unlike an inline object) will maintain [SameValueZero](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\r\n * equality until a change is made.\r\n *\r\n * @example\r\n *\r\n * const obj = useDeepMemo({ foo: 'bar', bar: 'baz' }) // <- inline object creation\r\n * const prevValue = usePrevious(obj) // <- value from the previous render\r\n * console.log(obj === prevValue) // <- always logs true until value changes\r\n */\n\n\nfunction useDeepMemo(value) {\n var _useState5 = (0, _react.useState)(value),\n _useState6 = _slicedToArray(_useState5, 2),\n state = _useState6[0],\n setState = _useState6[1];\n\n useDeepCompareEffect(function () {\n return setState(value);\n }, [value]);\n return state;\n}\n//# sourceMappingURL=hooks.js.map","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../tooltip/style\");","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-menu {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n margin-bottom: 0;\\n padding-left: 0;\\n color: rgba(0, 0, 0, 0.65);\\n line-height: 0;\\n list-style: none;\\n background: #fff;\\n outline: none;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n -webkit-transition: background 0.3s, width 0.2s;\\n transition: background 0.3s, width 0.2s;\\n zoom: 1;\\n}\\n.ant-menu::before,\\n.ant-menu::after {\\n display: table;\\n content: '';\\n}\\n.ant-menu::after {\\n clear: both;\\n}\\n.ant-menu ul,\\n.ant-menu ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n}\\n.ant-menu-hidden {\\n display: none;\\n}\\n.ant-menu-item-group-title {\\n padding: 8px 16px;\\n color: rgba(0, 0, 0, 0.45);\\n font-size: 14px;\\n line-height: 1.5;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-menu-submenu,\\n.ant-menu-submenu-inline {\\n -webkit-transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-submenu-selected {\\n color: #1890ff;\\n}\\n.ant-menu-item:active,\\n.ant-menu-submenu-title:active {\\n background: #e6f7ff;\\n}\\n.ant-menu-submenu .ant-menu-sub {\\n cursor: initial;\\n -webkit-transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-item > a {\\n display: block;\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-menu-item > a:hover {\\n color: #1890ff;\\n}\\n.ant-menu-item > a::before {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: transparent;\\n content: '';\\n}\\n.ant-menu-item > .ant-badge > a {\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-menu-item > .ant-badge > a:hover {\\n color: #1890ff;\\n}\\n.ant-menu-item-divider {\\n height: 1px;\\n overflow: hidden;\\n line-height: 0;\\n background-color: #e8e8e8;\\n}\\n.ant-menu-item:hover,\\n.ant-menu-item-active,\\n.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,\\n.ant-menu-submenu-active,\\n.ant-menu-submenu-title:hover {\\n color: #1890ff;\\n}\\n.ant-menu-horizontal .ant-menu-item,\\n.ant-menu-horizontal .ant-menu-submenu {\\n margin-top: -1px;\\n}\\n.ant-menu-horizontal > .ant-menu-item:hover,\\n.ant-menu-horizontal > .ant-menu-item-active,\\n.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover {\\n background-color: transparent;\\n}\\n.ant-menu-item-selected {\\n color: #1890ff;\\n}\\n.ant-menu-item-selected > a,\\n.ant-menu-item-selected > a:hover {\\n color: #1890ff;\\n}\\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {\\n background-color: #e6f7ff;\\n}\\n.ant-menu-inline,\\n.ant-menu-vertical,\\n.ant-menu-vertical-left {\\n border-right: 1px solid #e8e8e8;\\n}\\n.ant-menu-vertical-right {\\n border-left: 1px solid #e8e8e8;\\n}\\n.ant-menu-vertical.ant-menu-sub,\\n.ant-menu-vertical-left.ant-menu-sub,\\n.ant-menu-vertical-right.ant-menu-sub {\\n min-width: 160px;\\n padding: 0;\\n border-right: 0;\\n -webkit-transform-origin: 0 0;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.ant-menu-vertical.ant-menu-sub .ant-menu-item,\\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,\\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item {\\n left: 0;\\n margin-left: 0;\\n border-right: 0;\\n}\\n.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,\\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,\\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after {\\n border-right: 0;\\n}\\n.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\\n.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\\n -webkit-transform-origin: 0 0;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.ant-menu-horizontal.ant-menu-sub {\\n min-width: 114px;\\n}\\n.ant-menu-item,\\n.ant-menu-submenu-title {\\n position: relative;\\n display: block;\\n margin: 0;\\n padding: 0 20px;\\n white-space: nowrap;\\n cursor: pointer;\\n -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-item .anticon,\\n.ant-menu-submenu-title .anticon {\\n min-width: 14px;\\n margin-right: 10px;\\n font-size: 14px;\\n -webkit-transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-item .anticon + span,\\n.ant-menu-submenu-title .anticon + span {\\n opacity: 1;\\n -webkit-transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu > .ant-menu-item-divider {\\n height: 1px;\\n margin: 1px 0;\\n padding: 0;\\n overflow: hidden;\\n line-height: 0;\\n background-color: #e8e8e8;\\n}\\n.ant-menu-submenu-popup {\\n position: absolute;\\n z-index: 1050;\\n background: #fff;\\n border-radius: 4px;\\n}\\n.ant-menu-submenu-popup .submenu-title-wrapper {\\n padding-right: 20px;\\n}\\n.ant-menu-submenu-popup::before {\\n position: absolute;\\n top: -7px;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n opacity: 0.0001;\\n content: ' ';\\n}\\n.ant-menu-submenu > .ant-menu {\\n background-color: #fff;\\n border-radius: 4px;\\n}\\n.ant-menu-submenu > .ant-menu-submenu-title::after {\\n -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {\\n position: absolute;\\n top: 50%;\\n right: 16px;\\n width: 10px;\\n -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\\n position: absolute;\\n width: 6px;\\n height: 1.5px;\\n background: #fff;\\n background: rgba(0, 0, 0, 0.65) \\\\9;\\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.65)), to(rgba(0, 0, 0, 0.65)));\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65));\\n background-image: none \\\\9;\\n border-radius: 2px;\\n -webkit-transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n content: '';\\n}\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\\n -webkit-transform: rotate(45deg) translateY(-2px);\\n -ms-transform: rotate(45deg) translateY(-2px);\\n transform: rotate(45deg) translateY(-2px);\\n}\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\\n -webkit-transform: rotate(-45deg) translateY(2px);\\n -ms-transform: rotate(-45deg) translateY(2px);\\n transform: rotate(-45deg) translateY(2px);\\n}\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before {\\n background: -webkit-gradient(linear, left top, right top, from(#1890ff), to(#1890ff));\\n background: linear-gradient(to right, #1890ff, #1890ff);\\n}\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\\n -webkit-transform: rotate(-45deg) translateX(2px);\\n -ms-transform: rotate(-45deg) translateX(2px);\\n transform: rotate(-45deg) translateX(2px);\\n}\\n.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\\n -webkit-transform: rotate(45deg) translateX(-2px);\\n -ms-transform: rotate(45deg) translateX(-2px);\\n transform: rotate(45deg) translateX(-2px);\\n}\\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {\\n -webkit-transform: translateY(-2px);\\n -ms-transform: translateY(-2px);\\n transform: translateY(-2px);\\n}\\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\\n -webkit-transform: rotate(-45deg) translateX(-2px);\\n -ms-transform: rotate(-45deg) translateX(-2px);\\n transform: rotate(-45deg) translateX(-2px);\\n}\\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\\n -webkit-transform: rotate(45deg) translateX(2px);\\n -ms-transform: rotate(45deg) translateX(2px);\\n transform: rotate(45deg) translateX(2px);\\n}\\n.ant-menu-vertical .ant-menu-submenu-selected,\\n.ant-menu-vertical-left .ant-menu-submenu-selected,\\n.ant-menu-vertical-right .ant-menu-submenu-selected {\\n color: #1890ff;\\n}\\n.ant-menu-vertical .ant-menu-submenu-selected > a,\\n.ant-menu-vertical-left .ant-menu-submenu-selected > a,\\n.ant-menu-vertical-right .ant-menu-submenu-selected > a {\\n color: #1890ff;\\n}\\n.ant-menu-horizontal {\\n line-height: 46px;\\n white-space: nowrap;\\n border: 0;\\n border-bottom: 1px solid #e8e8e8;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-menu-horizontal > .ant-menu-item,\\n.ant-menu-horizontal > .ant-menu-submenu {\\n position: relative;\\n top: 1px;\\n display: inline-block;\\n vertical-align: bottom;\\n border-bottom: 2px solid transparent;\\n}\\n.ant-menu-horizontal > .ant-menu-item:hover,\\n.ant-menu-horizontal > .ant-menu-submenu:hover,\\n.ant-menu-horizontal > .ant-menu-item-active,\\n.ant-menu-horizontal > .ant-menu-submenu-active,\\n.ant-menu-horizontal > .ant-menu-item-open,\\n.ant-menu-horizontal > .ant-menu-submenu-open,\\n.ant-menu-horizontal > .ant-menu-item-selected,\\n.ant-menu-horizontal > .ant-menu-submenu-selected {\\n color: #1890ff;\\n border-bottom: 2px solid #1890ff;\\n}\\n.ant-menu-horizontal > .ant-menu-item > a {\\n display: block;\\n color: rgba(0, 0, 0, 0.65);\\n}\\n.ant-menu-horizontal > .ant-menu-item > a:hover {\\n color: #1890ff;\\n}\\n.ant-menu-horizontal > .ant-menu-item > a::before {\\n bottom: -2px;\\n}\\n.ant-menu-horizontal > .ant-menu-item-selected > a {\\n color: #1890ff;\\n}\\n.ant-menu-horizontal::after {\\n display: block;\\n clear: both;\\n height: 0;\\n content: '\\\\20';\\n}\\n.ant-menu-vertical .ant-menu-item,\\n.ant-menu-vertical-left .ant-menu-item,\\n.ant-menu-vertical-right .ant-menu-item,\\n.ant-menu-inline .ant-menu-item {\\n position: relative;\\n}\\n.ant-menu-vertical .ant-menu-item::after,\\n.ant-menu-vertical-left .ant-menu-item::after,\\n.ant-menu-vertical-right .ant-menu-item::after,\\n.ant-menu-inline .ant-menu-item::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n border-right: 3px solid #1890ff;\\n -webkit-transform: scaleY(0.0001);\\n -ms-transform: scaleY(0.0001);\\n transform: scaleY(0.0001);\\n opacity: 0;\\n -webkit-transition: opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\\n transition: opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\\n transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\\n transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\\n content: '';\\n}\\n.ant-menu-vertical .ant-menu-item,\\n.ant-menu-vertical-left .ant-menu-item,\\n.ant-menu-vertical-right .ant-menu-item,\\n.ant-menu-inline .ant-menu-item,\\n.ant-menu-vertical .ant-menu-submenu-title,\\n.ant-menu-vertical-left .ant-menu-submenu-title,\\n.ant-menu-vertical-right .ant-menu-submenu-title,\\n.ant-menu-inline .ant-menu-submenu-title {\\n height: 40px;\\n margin-top: 4px;\\n margin-bottom: 4px;\\n padding: 0 16px;\\n overflow: hidden;\\n font-size: 14px;\\n line-height: 40px;\\n text-overflow: ellipsis;\\n}\\n.ant-menu-vertical .ant-menu-submenu,\\n.ant-menu-vertical-left .ant-menu-submenu,\\n.ant-menu-vertical-right .ant-menu-submenu,\\n.ant-menu-inline .ant-menu-submenu {\\n padding-bottom: 0.02px;\\n}\\n.ant-menu-vertical .ant-menu-item:not(:last-child),\\n.ant-menu-vertical-left .ant-menu-item:not(:last-child),\\n.ant-menu-vertical-right .ant-menu-item:not(:last-child),\\n.ant-menu-inline .ant-menu-item:not(:last-child) {\\n margin-bottom: 8px;\\n}\\n.ant-menu-vertical > .ant-menu-item,\\n.ant-menu-vertical-left > .ant-menu-item,\\n.ant-menu-vertical-right > .ant-menu-item,\\n.ant-menu-inline > .ant-menu-item,\\n.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title,\\n.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title,\\n.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title,\\n.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\\n height: 40px;\\n line-height: 40px;\\n}\\n.ant-menu-inline {\\n width: 100%;\\n}\\n.ant-menu-inline .ant-menu-selected::after,\\n.ant-menu-inline .ant-menu-item-selected::after {\\n -webkit-transform: scaleY(1);\\n -ms-transform: scaleY(1);\\n transform: scaleY(1);\\n opacity: 1;\\n -webkit-transition: opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.ant-menu-inline .ant-menu-item,\\n.ant-menu-inline .ant-menu-submenu-title {\\n width: calc(100% + 1px);\\n}\\n.ant-menu-inline .ant-menu-submenu-title {\\n padding-right: 34px;\\n}\\n.ant-menu-inline-collapsed {\\n width: 80px;\\n}\\n.ant-menu-inline-collapsed > .ant-menu-item,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title,\\n.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {\\n left: 0;\\n padding: 0 32px !important;\\n text-overflow: clip;\\n}\\n.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-submenu-arrow,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-submenu-arrow,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow,\\n.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow {\\n display: none;\\n}\\n.ant-menu-inline-collapsed > .ant-menu-item .anticon,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon,\\n.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon {\\n margin: 0;\\n font-size: 16px;\\n line-height: 40px;\\n}\\n.ant-menu-inline-collapsed > .ant-menu-item .anticon + span,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon + span,\\n.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span,\\n.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span {\\n display: inline-block;\\n max-width: 0;\\n opacity: 0;\\n}\\n.ant-menu-inline-collapsed-tooltip {\\n pointer-events: none;\\n}\\n.ant-menu-inline-collapsed-tooltip .anticon {\\n display: none;\\n}\\n.ant-menu-inline-collapsed-tooltip a {\\n color: rgba(255, 255, 255, 0.85);\\n}\\n.ant-menu-inline-collapsed .ant-menu-item-group-title {\\n padding-right: 4px;\\n padding-left: 4px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.ant-menu-item-group-list {\\n margin: 0;\\n padding: 0;\\n}\\n.ant-menu-item-group-list .ant-menu-item,\\n.ant-menu-item-group-list .ant-menu-submenu-title {\\n padding: 0 16px 0 28px;\\n}\\n.ant-menu-root.ant-menu-vertical,\\n.ant-menu-root.ant-menu-vertical-left,\\n.ant-menu-root.ant-menu-vertical-right,\\n.ant-menu-root.ant-menu-inline {\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-menu-sub.ant-menu-inline {\\n padding: 0;\\n border: 0;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.ant-menu-sub.ant-menu-inline > .ant-menu-item,\\n.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\\n height: 40px;\\n line-height: 40px;\\n list-style-position: inside;\\n list-style-type: disc;\\n}\\n.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\\n padding-left: 32px;\\n}\\n.ant-menu-item-disabled,\\n.ant-menu-submenu-disabled {\\n color: rgba(0, 0, 0, 0.25) !important;\\n background: none;\\n border-color: transparent !important;\\n cursor: not-allowed;\\n}\\n.ant-menu-item-disabled > a,\\n.ant-menu-submenu-disabled > a {\\n color: rgba(0, 0, 0, 0.25) !important;\\n pointer-events: none;\\n}\\n.ant-menu-item-disabled > .ant-menu-submenu-title,\\n.ant-menu-submenu-disabled > .ant-menu-submenu-title {\\n color: rgba(0, 0, 0, 0.25) !important;\\n cursor: not-allowed;\\n}\\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\\n background: rgba(0, 0, 0, 0.25) !important;\\n}\\n.ant-menu-dark,\\n.ant-menu-dark .ant-menu-sub {\\n color: rgba(255, 255, 255, 0.65);\\n background: #001529;\\n}\\n.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow {\\n opacity: 0.45;\\n -webkit-transition: all 0.3s;\\n transition: all 0.3s;\\n}\\n.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\\n background: #fff;\\n}\\n.ant-menu-dark.ant-menu-submenu-popup {\\n background: transparent;\\n}\\n.ant-menu-dark .ant-menu-inline.ant-menu-sub {\\n background: #000c17;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45) inset;\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45) inset;\\n}\\n.ant-menu-dark.ant-menu-horizontal {\\n border-bottom: 0;\\n}\\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item,\\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu {\\n top: 0;\\n margin-top: 0;\\n border-color: #001529;\\n border-bottom: 0;\\n}\\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item > a::before {\\n bottom: 0;\\n}\\n.ant-menu-dark .ant-menu-item,\\n.ant-menu-dark .ant-menu-item-group-title,\\n.ant-menu-dark .ant-menu-item > a {\\n color: rgba(255, 255, 255, 0.65);\\n}\\n.ant-menu-dark.ant-menu-inline,\\n.ant-menu-dark.ant-menu-vertical,\\n.ant-menu-dark.ant-menu-vertical-left,\\n.ant-menu-dark.ant-menu-vertical-right {\\n border-right: 0;\\n}\\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\\n.ant-menu-dark.ant-menu-vertical .ant-menu-item,\\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,\\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item {\\n left: 0;\\n margin-left: 0;\\n border-right: 0;\\n}\\n.ant-menu-dark.ant-menu-inline .ant-menu-item::after,\\n.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,\\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,\\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after {\\n border-right: 0;\\n}\\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\\n.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title {\\n width: 100%;\\n}\\n.ant-menu-dark .ant-menu-item:hover,\\n.ant-menu-dark .ant-menu-item-active,\\n.ant-menu-dark .ant-menu-submenu-active,\\n.ant-menu-dark .ant-menu-submenu-open,\\n.ant-menu-dark .ant-menu-submenu-selected,\\n.ant-menu-dark .ant-menu-submenu-title:hover {\\n color: #fff;\\n background-color: transparent;\\n}\\n.ant-menu-dark .ant-menu-item:hover > a,\\n.ant-menu-dark .ant-menu-item-active > a,\\n.ant-menu-dark .ant-menu-submenu-active > a,\\n.ant-menu-dark .ant-menu-submenu-open > a,\\n.ant-menu-dark .ant-menu-submenu-selected > a,\\n.ant-menu-dark .ant-menu-submenu-title:hover > a {\\n color: #fff;\\n}\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow {\\n opacity: 1;\\n}\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before {\\n background: #fff;\\n}\\n.ant-menu-dark .ant-menu-item:hover {\\n background-color: transparent;\\n}\\n.ant-menu-dark .ant-menu-item-selected {\\n color: #fff;\\n border-right: 0;\\n}\\n.ant-menu-dark .ant-menu-item-selected::after {\\n border-right: 0;\\n}\\n.ant-menu-dark .ant-menu-item-selected > a,\\n.ant-menu-dark .ant-menu-item-selected > a:hover {\\n color: #fff;\\n}\\n.ant-menu-dark .ant-menu-item-selected .anticon {\\n color: #fff;\\n}\\n.ant-menu-dark .ant-menu-item-selected .anticon + span {\\n color: #fff;\\n}\\n.ant-menu.ant-menu-dark .ant-menu-item-selected,\\n.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected {\\n background-color: #1890ff;\\n}\\n.ant-menu-dark .ant-menu-item-disabled,\\n.ant-menu-dark .ant-menu-submenu-disabled,\\n.ant-menu-dark .ant-menu-item-disabled > a,\\n.ant-menu-dark .ant-menu-submenu-disabled > a {\\n color: rgba(255, 255, 255, 0.35) !important;\\n opacity: 0.8;\\n}\\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title,\\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title {\\n color: rgba(255, 255, 255, 0.35) !important;\\n}\\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\\n background: rgba(255, 255, 255, 0.35) !important;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n.ant-tooltip {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n color: rgba(0, 0, 0, 0.65);\\n font-size: 14px;\\n font-variant: tabular-nums;\\n line-height: 1.5;\\n list-style: none;\\n -webkit-font-feature-settings: 'tnum';\\n font-feature-settings: 'tnum';\\n position: absolute;\\n z-index: 1060;\\n display: block;\\n max-width: 250px;\\n visibility: visible;\\n}\\n.ant-tooltip-hidden {\\n display: none;\\n}\\n.ant-tooltip-placement-top,\\n.ant-tooltip-placement-topLeft,\\n.ant-tooltip-placement-topRight {\\n padding-bottom: 8px;\\n}\\n.ant-tooltip-placement-right,\\n.ant-tooltip-placement-rightTop,\\n.ant-tooltip-placement-rightBottom {\\n padding-left: 8px;\\n}\\n.ant-tooltip-placement-bottom,\\n.ant-tooltip-placement-bottomLeft,\\n.ant-tooltip-placement-bottomRight {\\n padding-top: 8px;\\n}\\n.ant-tooltip-placement-left,\\n.ant-tooltip-placement-leftTop,\\n.ant-tooltip-placement-leftBottom {\\n padding-right: 8px;\\n}\\n.ant-tooltip-inner {\\n min-width: 30px;\\n min-height: 32px;\\n padding: 6px 8px;\\n color: #fff;\\n text-align: left;\\n text-decoration: none;\\n word-wrap: break-word;\\n background-color: rgba(0, 0, 0, 0.75);\\n border-radius: 4px;\\n -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n}\\n.ant-tooltip-arrow {\\n position: absolute;\\n display: block;\\n width: 13.07106781px;\\n height: 13.07106781px;\\n overflow: hidden;\\n background: transparent;\\n pointer-events: none;\\n}\\n.ant-tooltip-arrow::before {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: block;\\n width: 5px;\\n height: 5px;\\n margin: auto;\\n background-color: rgba(0, 0, 0, 0.75);\\n content: '';\\n pointer-events: auto;\\n}\\n.ant-tooltip-placement-top .ant-tooltip-arrow,\\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow,\\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\\n bottom: -5.07106781px;\\n}\\n.ant-tooltip-placement-top .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-topRight .ant-tooltip-arrow::before {\\n -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\\n -webkit-transform: translateY(-6.53553391px) rotate(45deg);\\n -ms-transform: translateY(-6.53553391px) rotate(45deg);\\n transform: translateY(-6.53553391px) rotate(45deg);\\n}\\n.ant-tooltip-placement-top .ant-tooltip-arrow {\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow {\\n left: 13px;\\n}\\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\\n right: 13px;\\n}\\n.ant-tooltip-placement-right .ant-tooltip-arrow,\\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow,\\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\\n left: -5.07106781px;\\n}\\n.ant-tooltip-placement-right .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow::before {\\n -webkit-box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\\n -webkit-transform: translateX(6.53553391px) rotate(45deg);\\n -ms-transform: translateX(6.53553391px) rotate(45deg);\\n transform: translateX(6.53553391px) rotate(45deg);\\n}\\n.ant-tooltip-placement-right .ant-tooltip-arrow {\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow {\\n top: 5px;\\n}\\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\\n bottom: 5px;\\n}\\n.ant-tooltip-placement-left .ant-tooltip-arrow,\\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow,\\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\\n right: -5.07106781px;\\n}\\n.ant-tooltip-placement-left .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow::before {\\n -webkit-box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\\n -webkit-transform: translateX(-6.53553391px) rotate(45deg);\\n -ms-transform: translateX(-6.53553391px) rotate(45deg);\\n transform: translateX(-6.53553391px) rotate(45deg);\\n}\\n.ant-tooltip-placement-left .ant-tooltip-arrow {\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow {\\n top: 5px;\\n}\\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\\n bottom: 5px;\\n}\\n.ant-tooltip-placement-bottom .ant-tooltip-arrow,\\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,\\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\\n top: -5.07106781px;\\n}\\n.ant-tooltip-placement-bottom .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,\\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before {\\n -webkit-box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);\\n box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);\\n -webkit-transform: translateY(6.53553391px) rotate(45deg);\\n -ms-transform: translateY(6.53553391px) rotate(45deg);\\n transform: translateY(6.53553391px) rotate(45deg);\\n}\\n.ant-tooltip-placement-bottom .ant-tooltip-arrow {\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n}\\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {\\n left: 13px;\\n}\\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\\n right: 13px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _rcMenu = require(\"rc-menu\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuContext = _interopRequireDefault(require(\"./MenuContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar SubMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n var _super = _createSuper(SubMenu);\n\n function SubMenu() {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n _this.subMenu.onKeyDown(e);\n };\n\n _this.saveSubMenu = function (subMenu) {\n _this.subMenu = subMenu;\n };\n\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n rootPrefixCls = _this$props.rootPrefixCls,\n popupClassName = _this$props.popupClassName;\n return /*#__PURE__*/React.createElement(_MenuContext[\"default\"].Consumer, null, function (_ref) {\n var antdMenuTheme = _ref.antdMenuTheme;\n return /*#__PURE__*/React.createElement(_rcMenu.SubMenu, _extends({}, _this2.props, {\n ref: _this2.saveSubMenu,\n popupClassName: (0, _classnames[\"default\"])(\"\".concat(rootPrefixCls, \"-\").concat(antdMenuTheme), popupClassName)\n }));\n });\n }\n }]);\n\n return SubMenu;\n}(React.Component);\n\nSubMenu.contextTypes = {\n antdMenuTheme: PropTypes.string\n}; // fix issue:https://github.com/ant-design/ant-design/issues/8666\n\nSubMenu.isSubMenu = 1;\nvar _default = SubMenu;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcMenu = require(\"rc-menu\");\n\nvar _MenuContext = _interopRequireDefault(require(\"./MenuContext\"));\n\nvar _tooltip = _interopRequireDefault(require(\"../tooltip\"));\n\nvar _Sider = require(\"../layout/Sider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _extends() { _extends = Object.assign || 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); }\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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n var _super = _createSuper(MenuItem);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n _this.menuItem.onKeyDown(e);\n };\n\n _this.saveMenuItem = function (menuItem) {\n _this.menuItem = menuItem;\n };\n\n _this.renderItem = function (_ref) {\n var siderCollapsed = _ref.siderCollapsed;\n var _this$props = _this.props,\n level = _this$props.level,\n children = _this$props.children,\n rootPrefixCls = _this$props.rootPrefixCls;\n\n var _a = _this.props,\n title = _a.title,\n rest = __rest(_a, [\"title\"]);\n\n return /*#__PURE__*/React.createElement(_MenuContext[\"default\"].Consumer, null, function (_ref2) {\n var inlineCollapsed = _ref2.inlineCollapsed;\n var tooltipProps = {\n title: title || (level === 1 ? children : '')\n };\n\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null; // Reset `visible` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n\n tooltipProps.visible = false;\n }\n\n return /*#__PURE__*/React.createElement(_tooltip[\"default\"], _extends({}, tooltipProps, {\n placement: \"right\",\n overlayClassName: \"\".concat(rootPrefixCls, \"-inline-collapsed-tooltip\")\n }), /*#__PURE__*/React.createElement(_rcMenu.Item, _extends({}, rest, {\n title: title,\n ref: _this.saveMenuItem\n })));\n });\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(_Sider.SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n\n return MenuItem;\n}(React.Component);\n\nexports[\"default\"] = MenuItem;\nMenuItem.isMenuItem = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\n\nvar _default = isNumeric;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n return {\n height: node.scrollHeight,\n opacity: 1\n };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node.offsetHeight\n };\n};\n\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight\n};\nvar _default = collapseMotion;\nexports[\"default\"] = _default;","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nrequire(\"./index.less\");","\nvar content = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\", function() {\n\t\tvar newContent = require(\"!!../../../../cache-loader/dist/cjs.js??ref--6-1!../../../../css-loader/dist/cjs.js??ref--6-2!../../../../postcss-loader/src/index.js!../../../../less-loader/dist/cjs.js??ref--6-4!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\\n/* stylelint-disable no-duplicate-selectors */\\n/* stylelint-disable */\\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ko_KR = _interopRequireDefault(require(\"rc-pagination/lib/locale/ko_KR\"));\n\nvar _ko_KR2 = _interopRequireDefault(require(\"../date-picker/locale/ko_KR\"));\n\nvar _ko_KR3 = _interopRequireDefault(require(\"../time-picker/locale/ko_KR\"));\n\nvar _ko_KR4 = _interopRequireDefault(require(\"../calendar/locale/ko_KR\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n locale: 'ko',\n Pagination: _ko_KR[\"default\"],\n DatePicker: _ko_KR2[\"default\"],\n TimePicker: _ko_KR3[\"default\"],\n Calendar: _ko_KR4[\"default\"],\n Table: {\n filterTitle: '필터 메뉴',\n filterConfirm: '확인',\n filterReset: '초기화',\n selectAll: '모두 선택',\n selectInvert: '선택 반전'\n },\n Modal: {\n okText: '확인',\n cancelText: '취소',\n justOkText: '확인'\n },\n Popconfirm: {\n okText: '확인',\n cancelText: '취소'\n },\n Transfer: {\n searchPlaceholder: '여기에 검색하세요',\n itemUnit: '개',\n itemsUnit: '개'\n },\n Upload: {\n uploading: '업로드 중...',\n removeFile: '파일 삭제',\n uploadError: '업로드 실패',\n previewFile: '파일 미리보기',\n downloadFile: '파일 다운로드'\n },\n Empty: {\n description: '데이터 없음'\n }\n};\nexports[\"default\"] = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n // Options.jsx\n items_per_page: '/ 쪽',\n jump_to: '이동하기',\n jump_to_confirm: '확인하다',\n page: '',\n\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};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n today: '오늘',\n now: '현재 시각',\n backToToday: '오늘로 돌아가기',\n ok: '확인',\n clear: '지우기',\n month: '월',\n year: '년',\n timeSelect: '시간 선택',\n dateSelect: '날짜 선택',\n monthSelect: '달 선택',\n yearSelect: '연 선택',\n decadeSelect: '연대 선택',\n yearFormat: 'YYYY년',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'Do',\n dateTimeFormat: 'YYYY-MM-DD HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: '이전 달 (PageUp)',\n nextMonth: '다음 달 (PageDown)',\n previousYear: '이전 해 (Control + left)',\n nextYear: '다음 해 (Control + right)',\n previousDecade: '이전 연대',\n nextDecade: '다음 연대',\n previousCentury: '이전 세기',\n nextCentury: '다음 세기'\n};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ko_KR = _interopRequireDefault(require(\"../../date-picker/locale/ko_KR\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _ko_KR[\"default\"];\nexports[\"default\"] = _default;","\nvar content = require(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./aos.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./aos.css\", function() {\n\t\tvar newContent = require(\"!!../../cache-loader/dist/cjs.js??ref--4-1!../../css-loader/dist/cjs.js??ref--4-2!../../postcss-loader/src/index.js!./aos.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"[data-aos][data-aos][data-aos-duration=\\\"50\\\"],body[data-aos-duration=\\\"50\\\"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay=\\\"50\\\"],body[data-aos-delay=\\\"50\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"50\\\"].aos-animate,body[data-aos-delay=\\\"50\\\"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration=\\\"100\\\"],body[data-aos-duration=\\\"100\\\"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay=\\\"100\\\"],body[data-aos-delay=\\\"100\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"100\\\"].aos-animate,body[data-aos-delay=\\\"100\\\"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration=\\\"150\\\"],body[data-aos-duration=\\\"150\\\"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay=\\\"150\\\"],body[data-aos-delay=\\\"150\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"150\\\"].aos-animate,body[data-aos-delay=\\\"150\\\"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration=\\\"200\\\"],body[data-aos-duration=\\\"200\\\"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay=\\\"200\\\"],body[data-aos-delay=\\\"200\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"200\\\"].aos-animate,body[data-aos-delay=\\\"200\\\"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration=\\\"250\\\"],body[data-aos-duration=\\\"250\\\"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay=\\\"250\\\"],body[data-aos-delay=\\\"250\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"250\\\"].aos-animate,body[data-aos-delay=\\\"250\\\"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration=\\\"300\\\"],body[data-aos-duration=\\\"300\\\"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay=\\\"300\\\"],body[data-aos-delay=\\\"300\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"300\\\"].aos-animate,body[data-aos-delay=\\\"300\\\"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration=\\\"350\\\"],body[data-aos-duration=\\\"350\\\"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay=\\\"350\\\"],body[data-aos-delay=\\\"350\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"350\\\"].aos-animate,body[data-aos-delay=\\\"350\\\"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration=\\\"400\\\"],body[data-aos-duration=\\\"400\\\"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay=\\\"400\\\"],body[data-aos-delay=\\\"400\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"400\\\"].aos-animate,body[data-aos-delay=\\\"400\\\"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration=\\\"450\\\"],body[data-aos-duration=\\\"450\\\"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay=\\\"450\\\"],body[data-aos-delay=\\\"450\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"450\\\"].aos-animate,body[data-aos-delay=\\\"450\\\"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration=\\\"500\\\"],body[data-aos-duration=\\\"500\\\"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay=\\\"500\\\"],body[data-aos-delay=\\\"500\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"500\\\"].aos-animate,body[data-aos-delay=\\\"500\\\"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration=\\\"550\\\"],body[data-aos-duration=\\\"550\\\"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay=\\\"550\\\"],body[data-aos-delay=\\\"550\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"550\\\"].aos-animate,body[data-aos-delay=\\\"550\\\"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration=\\\"600\\\"],body[data-aos-duration=\\\"600\\\"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay=\\\"600\\\"],body[data-aos-delay=\\\"600\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"600\\\"].aos-animate,body[data-aos-delay=\\\"600\\\"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration=\\\"650\\\"],body[data-aos-duration=\\\"650\\\"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay=\\\"650\\\"],body[data-aos-delay=\\\"650\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"650\\\"].aos-animate,body[data-aos-delay=\\\"650\\\"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration=\\\"700\\\"],body[data-aos-duration=\\\"700\\\"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay=\\\"700\\\"],body[data-aos-delay=\\\"700\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"700\\\"].aos-animate,body[data-aos-delay=\\\"700\\\"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration=\\\"750\\\"],body[data-aos-duration=\\\"750\\\"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay=\\\"750\\\"],body[data-aos-delay=\\\"750\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"750\\\"].aos-animate,body[data-aos-delay=\\\"750\\\"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration=\\\"800\\\"],body[data-aos-duration=\\\"800\\\"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay=\\\"800\\\"],body[data-aos-delay=\\\"800\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"800\\\"].aos-animate,body[data-aos-delay=\\\"800\\\"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration=\\\"850\\\"],body[data-aos-duration=\\\"850\\\"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay=\\\"850\\\"],body[data-aos-delay=\\\"850\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"850\\\"].aos-animate,body[data-aos-delay=\\\"850\\\"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration=\\\"900\\\"],body[data-aos-duration=\\\"900\\\"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay=\\\"900\\\"],body[data-aos-delay=\\\"900\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"900\\\"].aos-animate,body[data-aos-delay=\\\"900\\\"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration=\\\"950\\\"],body[data-aos-duration=\\\"950\\\"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay=\\\"950\\\"],body[data-aos-delay=\\\"950\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"950\\\"].aos-animate,body[data-aos-delay=\\\"950\\\"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration=\\\"1000\\\"],body[data-aos-duration=\\\"1000\\\"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"],body[data-aos-delay=\\\"1000\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"].aos-animate,body[data-aos-delay=\\\"1000\\\"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration=\\\"1050\\\"],body[data-aos-duration=\\\"1050\\\"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"],body[data-aos-delay=\\\"1050\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"].aos-animate,body[data-aos-delay=\\\"1050\\\"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration=\\\"1100\\\"],body[data-aos-duration=\\\"1100\\\"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"],body[data-aos-delay=\\\"1100\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"].aos-animate,body[data-aos-delay=\\\"1100\\\"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration=\\\"1150\\\"],body[data-aos-duration=\\\"1150\\\"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"],body[data-aos-delay=\\\"1150\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"].aos-animate,body[data-aos-delay=\\\"1150\\\"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration=\\\"1200\\\"],body[data-aos-duration=\\\"1200\\\"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"],body[data-aos-delay=\\\"1200\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"].aos-animate,body[data-aos-delay=\\\"1200\\\"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration=\\\"1250\\\"],body[data-aos-duration=\\\"1250\\\"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"],body[data-aos-delay=\\\"1250\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"].aos-animate,body[data-aos-delay=\\\"1250\\\"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration=\\\"1300\\\"],body[data-aos-duration=\\\"1300\\\"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"],body[data-aos-delay=\\\"1300\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"].aos-animate,body[data-aos-delay=\\\"1300\\\"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration=\\\"1350\\\"],body[data-aos-duration=\\\"1350\\\"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"],body[data-aos-delay=\\\"1350\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"].aos-animate,body[data-aos-delay=\\\"1350\\\"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration=\\\"1400\\\"],body[data-aos-duration=\\\"1400\\\"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"],body[data-aos-delay=\\\"1400\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"].aos-animate,body[data-aos-delay=\\\"1400\\\"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration=\\\"1450\\\"],body[data-aos-duration=\\\"1450\\\"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"],body[data-aos-delay=\\\"1450\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"].aos-animate,body[data-aos-delay=\\\"1450\\\"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration=\\\"1500\\\"],body[data-aos-duration=\\\"1500\\\"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"],body[data-aos-delay=\\\"1500\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"].aos-animate,body[data-aos-delay=\\\"1500\\\"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration=\\\"1550\\\"],body[data-aos-duration=\\\"1550\\\"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"],body[data-aos-delay=\\\"1550\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"].aos-animate,body[data-aos-delay=\\\"1550\\\"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration=\\\"1600\\\"],body[data-aos-duration=\\\"1600\\\"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"],body[data-aos-delay=\\\"1600\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"].aos-animate,body[data-aos-delay=\\\"1600\\\"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration=\\\"1650\\\"],body[data-aos-duration=\\\"1650\\\"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"],body[data-aos-delay=\\\"1650\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"].aos-animate,body[data-aos-delay=\\\"1650\\\"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration=\\\"1700\\\"],body[data-aos-duration=\\\"1700\\\"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"],body[data-aos-delay=\\\"1700\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"].aos-animate,body[data-aos-delay=\\\"1700\\\"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration=\\\"1750\\\"],body[data-aos-duration=\\\"1750\\\"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"],body[data-aos-delay=\\\"1750\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"].aos-animate,body[data-aos-delay=\\\"1750\\\"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration=\\\"1800\\\"],body[data-aos-duration=\\\"1800\\\"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"],body[data-aos-delay=\\\"1800\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"].aos-animate,body[data-aos-delay=\\\"1800\\\"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration=\\\"1850\\\"],body[data-aos-duration=\\\"1850\\\"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"],body[data-aos-delay=\\\"1850\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"].aos-animate,body[data-aos-delay=\\\"1850\\\"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration=\\\"1900\\\"],body[data-aos-duration=\\\"1900\\\"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"],body[data-aos-delay=\\\"1900\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"].aos-animate,body[data-aos-delay=\\\"1900\\\"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration=\\\"1950\\\"],body[data-aos-duration=\\\"1950\\\"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"],body[data-aos-delay=\\\"1950\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"].aos-animate,body[data-aos-delay=\\\"1950\\\"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration=\\\"2000\\\"],body[data-aos-duration=\\\"2000\\\"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"],body[data-aos-delay=\\\"2000\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"].aos-animate,body[data-aos-delay=\\\"2000\\\"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration=\\\"2050\\\"],body[data-aos-duration=\\\"2050\\\"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"],body[data-aos-delay=\\\"2050\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"].aos-animate,body[data-aos-delay=\\\"2050\\\"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration=\\\"2100\\\"],body[data-aos-duration=\\\"2100\\\"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"],body[data-aos-delay=\\\"2100\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"].aos-animate,body[data-aos-delay=\\\"2100\\\"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration=\\\"2150\\\"],body[data-aos-duration=\\\"2150\\\"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"],body[data-aos-delay=\\\"2150\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"].aos-animate,body[data-aos-delay=\\\"2150\\\"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration=\\\"2200\\\"],body[data-aos-duration=\\\"2200\\\"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"],body[data-aos-delay=\\\"2200\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"].aos-animate,body[data-aos-delay=\\\"2200\\\"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration=\\\"2250\\\"],body[data-aos-duration=\\\"2250\\\"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"],body[data-aos-delay=\\\"2250\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"].aos-animate,body[data-aos-delay=\\\"2250\\\"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration=\\\"2300\\\"],body[data-aos-duration=\\\"2300\\\"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"],body[data-aos-delay=\\\"2300\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"].aos-animate,body[data-aos-delay=\\\"2300\\\"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration=\\\"2350\\\"],body[data-aos-duration=\\\"2350\\\"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"],body[data-aos-delay=\\\"2350\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"].aos-animate,body[data-aos-delay=\\\"2350\\\"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration=\\\"2400\\\"],body[data-aos-duration=\\\"2400\\\"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"],body[data-aos-delay=\\\"2400\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"].aos-animate,body[data-aos-delay=\\\"2400\\\"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration=\\\"2450\\\"],body[data-aos-duration=\\\"2450\\\"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"],body[data-aos-delay=\\\"2450\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"].aos-animate,body[data-aos-delay=\\\"2450\\\"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration=\\\"2500\\\"],body[data-aos-duration=\\\"2500\\\"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"],body[data-aos-delay=\\\"2500\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"].aos-animate,body[data-aos-delay=\\\"2500\\\"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration=\\\"2550\\\"],body[data-aos-duration=\\\"2550\\\"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"],body[data-aos-delay=\\\"2550\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"].aos-animate,body[data-aos-delay=\\\"2550\\\"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration=\\\"2600\\\"],body[data-aos-duration=\\\"2600\\\"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"],body[data-aos-delay=\\\"2600\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"].aos-animate,body[data-aos-delay=\\\"2600\\\"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration=\\\"2650\\\"],body[data-aos-duration=\\\"2650\\\"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"],body[data-aos-delay=\\\"2650\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"].aos-animate,body[data-aos-delay=\\\"2650\\\"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration=\\\"2700\\\"],body[data-aos-duration=\\\"2700\\\"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"],body[data-aos-delay=\\\"2700\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"].aos-animate,body[data-aos-delay=\\\"2700\\\"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration=\\\"2750\\\"],body[data-aos-duration=\\\"2750\\\"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"],body[data-aos-delay=\\\"2750\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"].aos-animate,body[data-aos-delay=\\\"2750\\\"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration=\\\"2800\\\"],body[data-aos-duration=\\\"2800\\\"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"],body[data-aos-delay=\\\"2800\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"].aos-animate,body[data-aos-delay=\\\"2800\\\"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration=\\\"2850\\\"],body[data-aos-duration=\\\"2850\\\"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"],body[data-aos-delay=\\\"2850\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"].aos-animate,body[data-aos-delay=\\\"2850\\\"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration=\\\"2900\\\"],body[data-aos-duration=\\\"2900\\\"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"],body[data-aos-delay=\\\"2900\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"].aos-animate,body[data-aos-delay=\\\"2900\\\"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration=\\\"2950\\\"],body[data-aos-duration=\\\"2950\\\"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"],body[data-aos-delay=\\\"2950\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"].aos-animate,body[data-aos-delay=\\\"2950\\\"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration=\\\"3000\\\"],body[data-aos-duration=\\\"3000\\\"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"],body[data-aos-delay=\\\"3000\\\"] [data-aos]{transition-delay:0s}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"].aos-animate,body[data-aos-delay=\\\"3000\\\"] [data-aos].aos-animate{transition-delay:3s}[data-aos]{pointer-events:none}[data-aos].aos-animate{pointer-events:auto}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}@media screen{html:not(.no-js) [data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}html:not(.no-js) [data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:none}html:not(.no-js) [data-aos=fade-up]{transform:translate3d(0,100px,0)}html:not(.no-js) [data-aos=fade-down]{transform:translate3d(0,-100px,0)}html:not(.no-js) [data-aos=fade-right]{transform:translate3d(-100px,0,0)}html:not(.no-js) [data-aos=fade-left]{transform:translate3d(100px,0,0)}html:not(.no-js) [data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}html:not(.no-js) [data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}html:not(.no-js) [data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}html:not(.no-js) [data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}html:not(.no-js) [data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}html:not(.no-js) [data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}html:not(.no-js) [data-aos=zoom-in]{transform:scale(.6)}html:not(.no-js) [data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}html:not(.no-js) [data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}html:not(.no-js) [data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}html:not(.no-js) [data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}html:not(.no-js) [data-aos=zoom-out]{transform:scale(1.2)}html:not(.no-js) [data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}html:not(.no-js) [data-aos^=slide][data-aos^=slide]{transition-property:transform;visibility:hidden}html:not(.no-js) [data-aos^=slide][data-aos^=slide].aos-animate{visibility:visible;transform:translateZ(0)}html:not(.no-js) [data-aos=slide-up]{transform:translate3d(0,100%,0)}html:not(.no-js) [data-aos=slide-down]{transform:translate3d(0,-100%,0)}html:not(.no-js) [data-aos=slide-right]{transform:translate3d(-100%,0,0)}html:not(.no-js) [data-aos=slide-left]{transform:translate3d(100%,0,0)}html:not(.no-js) [data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}html:not(.no-js) [data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}html:not(.no-js) [data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}html:not(.no-js) [data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}html:not(.no-js) [data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}html:not(.no-js) [data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}html:not(.no-js) [data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}html:not(.no-js) [data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}html:not(.no-js) [data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport { Component } from 'react';\n\nvar OptGroup =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(OptGroup, _Component);\n\n function OptGroup() {\n _classCallCheck(this, OptGroup);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(OptGroup).apply(this, arguments));\n }\n\n return OptGroup;\n}(Component);\n\nexport { OptGroup as default };\nOptGroup.isSelectOptGroup = true;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport * as PropTypes from 'prop-types';\nimport { Component } from 'react';\n\nvar Option =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Option, _Component);\n\n function Option() {\n _classCallCheck(this, Option);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Option).apply(this, arguments));\n }\n\n return Option;\n}(Component);\n\nexport { Option as default };\nOption.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nOption.isSelectOption = true;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport * as PropTypes from 'prop-types';\n\nfunction propsValueType() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var props = args[0],\n propName = args[1],\n componentName = args[2],\n rest = args.slice(3);\n var basicType = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n var labelInValueShape = PropTypes.shape({\n key: basicType.isRequired,\n label: PropTypes.node\n });\n\n if (props.labelInValue) {\n var validate = PropTypes.oneOfType([PropTypes.arrayOf(labelInValueShape), labelInValueShape]);\n var error = validate.apply(void 0, [props, propName, componentName].concat(_toConsumableArray(rest)));\n\n if (error) {\n return new Error(\"Invalid prop `\".concat(propName, \"` supplied to `\").concat(componentName, \"`, \") + \"when you set `labelInValue` to `true`, `\".concat(propName, \"` should in \") + \"shape of `{ key: string | number, label?: ReactNode }`.\");\n }\n } else if ((props.mode === 'multiple' || props.mode === 'tags' || props.multiple || props.tags) && props[propName] === '') {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `string` supplied to `\").concat(componentName, \"`, \") + \"expected `array` when `multiple` or `tags` is `true`.\");\n } else {\n var _validate = PropTypes.oneOfType([PropTypes.arrayOf(basicType), basicType]);\n\n return _validate.apply(void 0, [props, propName, componentName].concat(_toConsumableArray(rest)));\n }\n\n return null;\n}\n\nvar SelectPropTypes = {\n id: PropTypes.string,\n defaultActiveFirstOption: PropTypes.bool,\n multiple: PropTypes.bool,\n filterOption: PropTypes.any,\n children: PropTypes.any,\n showSearch: PropTypes.bool,\n disabled: PropTypes.bool,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n tags: PropTypes.bool,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n transitionName: PropTypes.string,\n optionLabelProp: PropTypes.string,\n optionFilterProp: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onSelect: PropTypes.func,\n onSearch: PropTypes.func,\n onPopupScroll: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onInputKeyDown: PropTypes.func,\n placeholder: PropTypes.any,\n onDeselect: PropTypes.func,\n labelInValue: PropTypes.bool,\n loading: PropTypes.bool,\n value: propsValueType,\n defaultValue: propsValueType,\n dropdownStyle: PropTypes.object,\n maxTagTextLength: PropTypes.number,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n tokenSeparators: PropTypes.arrayOf(PropTypes.string),\n getInputElement: PropTypes.func,\n showAction: PropTypes.arrayOf(PropTypes.string),\n clearIcon: PropTypes.node,\n inputIcon: PropTypes.node,\n removeIcon: PropTypes.node,\n menuItemSelectedIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n dropdownRender: PropTypes.func\n};\nexport default SelectPropTypes;","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n if (child === undefined || child === null) {\n return;\n }\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));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import React from 'react';\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title;\n }\n\n return '';\n}\nexport function getValuePropValue(child) {\n if (!child) {\n return null;\n }\n\n var props = child.props;\n\n if ('value' in props) {\n return props.value;\n }\n\n if (child.key) {\n return child.key;\n }\n\n if (child.type && child.type.isSelectOptGroup && props.label) {\n return props.label;\n }\n\n throw new Error(\"Need at least a key or a value or a label (only for OptGroup) for \".concat(child));\n}\nexport function getPropValue(child, prop) {\n if (prop === 'value') {\n return getValuePropValue(child);\n }\n\n return child.props[prop];\n}\nexport function isMultiple(props) {\n return props.multiple;\n}\nexport function isCombobox(props) {\n return props.combobox;\n}\nexport function isMultipleOrTags(props) {\n return props.multiple || props.tags;\n}\nexport function isMultipleOrTagsOrCombobox(props) {\n return isMultipleOrTags(props) || isCombobox(props);\n}\nexport function isSingleMode(props) {\n return !isMultipleOrTagsOrCombobox(props);\n}\nexport function toArray(value) {\n var ret = value;\n\n if (value === undefined) {\n ret = [];\n } else if (!Array.isArray(value)) {\n ret = [value];\n }\n\n return ret;\n}\nexport function getMapKey(value) {\n return \"\".concat(typeof value, \"-\").concat(value);\n}\nexport function preventDefaultEvent(e) {\n e.preventDefault();\n}\nexport function findIndexInValueBySingleValue(value, singleValue) {\n var index = -1;\n\n if (value) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === singleValue) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n}\nexport function getLabelFromPropsValue(value, key) {\n var label;\n value = toArray(value);\n\n if (value) {\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < value.length; i++) {\n if (value[i].key === key) {\n label = value[i].label;\n break;\n }\n }\n }\n\n return label;\n}\nexport function getSelectKeys(menuItems, value) {\n if (value === null || value === undefined) {\n return [];\n }\n\n var selectedKeys = [];\n React.Children.forEach(menuItems, function (item) {\n var type = item.type;\n\n if (type.isMenuItemGroup) {\n selectedKeys = selectedKeys.concat(getSelectKeys(item.props.children, value));\n } else {\n var itemValue = getValuePropValue(item);\n var itemKey = item.key;\n\n if (findIndexInValueBySingleValue(value, itemValue) !== -1 && itemKey) {\n selectedKeys.push(itemKey);\n }\n }\n });\n return selectedKeys;\n}\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'on'\n};\nexport function findFirstMenuItem(children) {\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.type.isMenuItemGroup) {\n var found = findFirstMenuItem(child.props.children);\n\n if (found) {\n return found;\n }\n } else if (!child.props.disabled) {\n return child;\n }\n }\n\n return null;\n}\nexport function includesSeparators(str, separators) {\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < separators.length; ++i) {\n if (str.lastIndexOf(separators[i]) > 0) {\n return true;\n }\n }\n\n return false;\n}\nexport function splitBySeparators(str, separators) {\n var reg = new RegExp(\"[\".concat(separators.join(), \"]\"));\n return str.split(reg).filter(function (token) {\n return token;\n });\n}\nexport function defaultFilterFn(input, child) {\n if (child.props.disabled) {\n return false;\n }\n\n var value = toArray(getPropValue(child, this.props.optionFilterProp)).join('');\n return value.toLowerCase().indexOf(input.toLowerCase()) > -1;\n}\nexport function validateOptionValue(value, props) {\n if (isSingleMode(props) || isMultiple(props)) {\n return;\n }\n\n if (typeof value !== 'string') {\n throw new Error(\"Invalid `value` of type `\".concat(typeof value, \"` supplied to Option, \") + \"expected `string` when `tags/combobox` is `true`.\");\n }\n}\nexport function saveRef(instance, name) {\n return function (node) {\n instance[name] = node;\n };\n}\nexport function generateUUID() {\n if (process.env.NODE_ENV === 'test') {\n return 'test-uuid';\n }\n\n var d = new Date().getTime();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // tslint:disable-next-line:no-bitwise\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16); // tslint:disable-next-line:no-bitwise\n\n return (c === 'x' ? r : r & 0x7 | 0x8).toString(16);\n });\n return uuid;\n}","function _extends() { _extends = Object.assign || 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); }\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\nimport scrollIntoView from 'dom-scroll-into-view';\nimport * as PropTypes from 'prop-types';\nimport raf from 'raf';\nimport Menu from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { getSelectKeys, preventDefaultEvent, saveRef } from './util';\n\nvar DropdownMenu =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(DropdownMenu, _React$Component);\n\n function DropdownMenu(props) {\n var _this;\n\n _classCallCheck(this, DropdownMenu);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DropdownMenu).call(this, props));\n _this.rafInstance = null;\n _this.lastVisible = false;\n\n _this.scrollActiveItemToView = function () {\n // scroll into view\n var itemComponent = findDOMNode(_this.firstActiveItem);\n var _this$props = _this.props,\n visible = _this$props.visible,\n firstActiveValue = _this$props.firstActiveValue;\n var value = _this.props.value;\n\n if (!itemComponent || !visible) {\n return;\n }\n\n var scrollIntoViewOpts = {\n onlyScrollIfNeeded: true\n };\n\n if ((!value || value.length === 0) && firstActiveValue) {\n scrollIntoViewOpts.alignWithTop = true;\n } // Delay to scroll since current frame item position is not ready when pre view is by filter\n // https://github.com/ant-design/ant-design/issues/11268#issuecomment-406634462\n\n\n _this.rafInstance = raf(function () {\n scrollIntoView(itemComponent, findDOMNode(_this.menuRef), scrollIntoViewOpts);\n });\n };\n\n _this.renderMenu = function () {\n var _this$props2 = _this.props,\n menuItems = _this$props2.menuItems,\n menuItemSelectedIcon = _this$props2.menuItemSelectedIcon,\n defaultActiveFirstOption = _this$props2.defaultActiveFirstOption,\n prefixCls = _this$props2.prefixCls,\n multiple = _this$props2.multiple,\n onMenuSelect = _this$props2.onMenuSelect,\n inputValue = _this$props2.inputValue,\n backfillValue = _this$props2.backfillValue,\n onMenuDeselect = _this$props2.onMenuDeselect,\n visible = _this$props2.visible;\n var firstActiveValue = _this.props.firstActiveValue;\n\n if (menuItems && menuItems.length) {\n var menuProps = {};\n\n if (multiple) {\n menuProps.onDeselect = onMenuDeselect;\n menuProps.onSelect = onMenuSelect;\n } else {\n menuProps.onClick = onMenuSelect;\n }\n\n var value = _this.props.value;\n var selectedKeys = getSelectKeys(menuItems, value);\n var activeKeyProps = {};\n var defaultActiveFirst = defaultActiveFirstOption;\n var clonedMenuItems = menuItems;\n\n if (selectedKeys.length || firstActiveValue) {\n if (visible && !_this.lastVisible) {\n activeKeyProps.activeKey = selectedKeys[0] || firstActiveValue;\n } else if (!visible) {\n // Do not trigger auto active since we already have selectedKeys\n if (selectedKeys[0]) {\n defaultActiveFirst = false;\n }\n\n activeKeyProps.activeKey = undefined;\n }\n\n var foundFirst = false; // set firstActiveItem via cloning menus\n // for scroll into view\n\n var clone = function clone(item) {\n var key = item.key;\n\n if (!foundFirst && selectedKeys.indexOf(key) !== -1 || !foundFirst && !selectedKeys.length && firstActiveValue.indexOf(item.key) !== -1) {\n foundFirst = true;\n return React.cloneElement(item, {\n ref: function ref(_ref) {\n _this.firstActiveItem = _ref;\n }\n });\n }\n\n return item;\n };\n\n clonedMenuItems = menuItems.map(function (item) {\n if (item.type.isMenuItemGroup) {\n var children = toArray(item.props.children).map(clone);\n return React.cloneElement(item, {}, children);\n }\n\n return clone(item);\n });\n } else {\n // Clear firstActiveItem when dropdown menu items was empty\n // Avoid `Unable to find node on an unmounted component`\n // https://github.com/ant-design/ant-design/issues/10774\n _this.firstActiveItem = null;\n } // clear activeKey when inputValue change\n\n\n var lastValue = value && value[value.length - 1];\n\n if (inputValue !== _this.lastInputValue && (!lastValue || lastValue !== backfillValue)) {\n activeKeyProps.activeKey = '';\n }\n\n return React.createElement(Menu, _extends({\n ref: _this.saveMenuRef,\n style: _this.props.dropdownMenuStyle,\n defaultActiveFirst: defaultActiveFirst,\n role: \"listbox\",\n itemIcon: multiple ? menuItemSelectedIcon : null\n }, activeKeyProps, {\n multiple: multiple\n }, menuProps, {\n selectedKeys: selectedKeys,\n prefixCls: \"\".concat(prefixCls, \"-menu\")\n }), clonedMenuItems);\n }\n\n return null;\n };\n\n _this.lastInputValue = props.inputValue;\n _this.saveMenuRef = saveRef(_assertThisInitialized(_this), 'menuRef');\n return _this;\n }\n\n _createClass(DropdownMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollActiveItemToView();\n this.lastVisible = this.props.visible;\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (!nextProps.visible) {\n this.lastVisible = false;\n } // freeze when hide\n\n\n return this.props.visible && !nextProps.visible || nextProps.visible || nextProps.inputValue !== this.props.inputValue;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var props = this.props;\n\n if (!prevProps.visible && props.visible) {\n this.scrollActiveItemToView();\n }\n\n this.lastVisible = props.visible;\n this.lastInputValue = props.inputValue;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.rafInstance) {\n raf.cancel(this.rafInstance);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var renderMenu = this.renderMenu();\n return renderMenu ? React.createElement(\"div\", {\n style: {\n overflow: 'auto',\n transform: 'translateZ(0)'\n },\n id: this.props.ariaId,\n onFocus: this.props.onPopupFocus,\n onMouseDown: preventDefaultEvent,\n onScroll: this.props.onPopupScroll\n }, renderMenu) : null;\n }\n }]);\n\n return DropdownMenu;\n}(React.Component);\n\nexport { DropdownMenu as default };\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.propTypes = {\n ariaId: PropTypes.string,\n defaultActiveFirstOption: PropTypes.bool,\n value: PropTypes.any,\n dropdownMenuStyle: PropTypes.object,\n multiple: PropTypes.bool,\n onPopupFocus: PropTypes.func,\n onPopupScroll: PropTypes.func,\n onMenuDeSelect: PropTypes.func,\n onMenuSelect: PropTypes.func,\n prefixCls: PropTypes.string,\n menuItems: PropTypes.any,\n inputValue: PropTypes.string,\n visible: PropTypes.bool,\n firstActiveValue: PropTypes.string,\n menuItemSelectedIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node])\n};","function _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\nfunction _extends() { _extends = Object.assign || 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); }\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\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport classnames from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport raf from 'raf';\nimport Trigger from 'rc-trigger';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport DropdownMenu from './DropdownMenu';\nimport { isSingleMode, saveRef } from './util';\nTrigger.displayName = 'Trigger';\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\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};\n\nvar SelectTrigger =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(SelectTrigger, _React$Component);\n\n function SelectTrigger(props) {\n var _this;\n\n _classCallCheck(this, SelectTrigger);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SelectTrigger).call(this, props));\n _this.dropdownMenuRef = null;\n _this.rafInstance = null;\n\n _this.setDropdownWidth = function () {\n _this.cancelRafInstance();\n\n _this.rafInstance = raf(function () {\n var dom = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n var width = dom.offsetWidth;\n\n if (width !== _this.state.dropdownWidth) {\n _this.setState({\n dropdownWidth: width\n });\n }\n });\n };\n\n _this.cancelRafInstance = function () {\n if (_this.rafInstance) {\n raf.cancel(_this.rafInstance);\n }\n };\n\n _this.getInnerMenu = function () {\n return _this.dropdownMenuRef && _this.dropdownMenuRef.menuRef;\n };\n\n _this.getPopupDOMNode = function () {\n return _this.triggerRef.getPopupDomNode();\n };\n\n _this.getDropdownElement = function (newProps) {\n var props = _this.props;\n var dropdownRender = props.dropdownRender,\n ariaId = props.ariaId;\n var menuNode = React.createElement(DropdownMenu, _extends({\n ref: _this.saveDropdownMenuRef\n }, newProps, {\n ariaId: ariaId,\n prefixCls: _this.getDropdownPrefixCls(),\n onMenuSelect: props.onMenuSelect,\n onMenuDeselect: props.onMenuDeselect,\n onPopupScroll: props.onPopupScroll,\n value: props.value,\n backfillValue: props.backfillValue,\n firstActiveValue: props.firstActiveValue,\n defaultActiveFirstOption: props.defaultActiveFirstOption,\n dropdownMenuStyle: props.dropdownMenuStyle,\n menuItemSelectedIcon: props.menuItemSelectedIcon\n }));\n\n if (dropdownRender) {\n return dropdownRender(menuNode, props);\n }\n\n return null;\n };\n\n _this.getDropdownTransitionName = function () {\n var props = _this.props;\n var transitionName = props.transitionName;\n\n if (!transitionName && props.animation) {\n transitionName = \"\".concat(_this.getDropdownPrefixCls(), \"-\").concat(props.animation);\n }\n\n return transitionName;\n };\n\n _this.getDropdownPrefixCls = function () {\n return \"\".concat(_this.props.prefixCls, \"-dropdown\");\n };\n\n _this.saveDropdownMenuRef = saveRef(_assertThisInitialized(_this), 'dropdownMenuRef');\n _this.saveTriggerRef = saveRef(_assertThisInitialized(_this), 'triggerRef');\n _this.state = {\n dropdownWidth: 0\n };\n return _this;\n }\n\n _createClass(SelectTrigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setDropdownWidth();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.setDropdownWidth();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRafInstance();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _popupClassName;\n\n var _a = this.props,\n onPopupFocus = _a.onPopupFocus,\n empty = _a.empty,\n props = __rest(_a, [\"onPopupFocus\", \"empty\"]);\n\n var multiple = props.multiple,\n visible = props.visible,\n inputValue = props.inputValue,\n dropdownAlign = props.dropdownAlign,\n disabled = props.disabled,\n showSearch = props.showSearch,\n dropdownClassName = props.dropdownClassName,\n dropdownStyle = props.dropdownStyle,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth;\n var dropdownPrefixCls = this.getDropdownPrefixCls();\n var popupClassName = (_popupClassName = {}, _defineProperty(_popupClassName, dropdownClassName, !!dropdownClassName), _defineProperty(_popupClassName, \"\".concat(dropdownPrefixCls, \"--\").concat(multiple ? 'multiple' : 'single'), 1), _defineProperty(_popupClassName, \"\".concat(dropdownPrefixCls, \"--empty\"), empty), _popupClassName);\n var popupElement = this.getDropdownElement({\n menuItems: props.options,\n onPopupFocus: onPopupFocus,\n multiple: multiple,\n inputValue: inputValue,\n visible: visible\n });\n var hideAction;\n\n if (disabled) {\n hideAction = [];\n } else if (isSingleMode(props) && !showSearch) {\n hideAction = ['click'];\n } else {\n hideAction = ['blur'];\n }\n\n var popupStyle = _extends({}, dropdownStyle);\n\n var widthProp = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n\n if (this.state.dropdownWidth) {\n popupStyle[widthProp] = \"\".concat(this.state.dropdownWidth, \"px\");\n }\n\n return React.createElement(Trigger, _extends({}, props, {\n showAction: disabled ? [] : this.props.showAction,\n hideAction: hideAction,\n ref: this.saveTriggerRef,\n popupPlacement: \"bottomLeft\",\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n onPopupVisibleChange: props.onDropdownVisibleChange,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: props.getPopupContainer,\n popupClassName: classnames(popupClassName),\n popupStyle: popupStyle\n }), props.children);\n }\n }]);\n\n return SelectTrigger;\n}(React.Component);\n\nexport { SelectTrigger as default };\nSelectTrigger.defaultProps = {\n dropdownRender: function dropdownRender(menu) {\n return menu;\n }\n};\nSelectTrigger.propTypes = {\n onPopupFocus: PropTypes.func,\n onPopupScroll: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n dropdownAlign: PropTypes.object,\n visible: PropTypes.bool,\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n dropdownClassName: PropTypes.string,\n multiple: PropTypes.bool,\n inputValue: PropTypes.string,\n filterOption: PropTypes.any,\n options: PropTypes.any,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n children: PropTypes.any,\n showAction: PropTypes.arrayOf(PropTypes.string),\n menuItemSelectedIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n dropdownRender: PropTypes.func,\n ariaId: PropTypes.string\n};\nSelectTrigger.displayName = 'SelectTrigger';","function _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\nfunction _extends() { _extends = Object.assign || 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); }\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\nimport classnames from 'classnames';\nimport classes from 'component-classes';\nimport Animate from 'rc-animate';\nimport { Item as MenuItem, ItemGroup as MenuItemGroup } from 'rc-menu';\nimport childrenToArray from \"rc-util/es/Children/toArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { polyfill } from 'react-lifecycles-compat';\nimport warning from 'warning';\nimport Option from './Option'; // Where el is the DOM element you'd like to test for visibility\n\nfunction isHidden(node) {\n return !node || node.offsetParent === null;\n}\n\nimport SelectPropTypes from './PropTypes';\nimport SelectTrigger from './SelectTrigger';\nimport { defaultFilterFn, findFirstMenuItem, findIndexInValueBySingleValue, generateUUID, getLabelFromPropsValue, getMapKey, getPropValue, getValuePropValue, includesSeparators, isCombobox, isMultipleOrTags, isMultipleOrTagsOrCombobox, isSingleMode, preventDefaultEvent, saveRef, splitBySeparators, toArray, toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE, validateOptionValue } from './util';\nvar SELECT_EMPTY_VALUE_KEY = 'RC_SELECT_EMPTY_VALUE_KEY';\n\nvar noop = function noop() {\n return null;\n};\n\nfunction chaining() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < fns.length; i++) {\n if (fns[i] && typeof fns[i] === 'function') {\n fns[i].apply(chaining, args);\n }\n }\n };\n}\n\nvar Select =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Select, _React$Component);\n\n function Select(props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Select).call(this, props));\n _this.inputRef = null;\n _this.inputMirrorRef = null;\n _this.topCtrlRef = null;\n _this.selectTriggerRef = null;\n _this.rootRef = null;\n _this.selectionRef = null;\n _this.dropdownContainer = null;\n _this.blurTimer = null;\n _this.focusTimer = null;\n _this.comboboxTimer = null; // tslint:disable-next-line:variable-name\n\n _this._focused = false; // tslint:disable-next-line:variable-name\n\n _this._mouseDown = false; // tslint:disable-next-line:variable-name\n\n _this._options = []; // tslint:disable-next-line:variable-name\n\n _this._empty = false;\n\n _this.onInputChange = function (event) {\n var tokenSeparators = _this.props.tokenSeparators;\n var val = event.target.value;\n\n if (isMultipleOrTags(_this.props) && tokenSeparators.length && includesSeparators(val, tokenSeparators)) {\n var nextValue = _this.getValueByInput(val);\n\n if (nextValue !== undefined) {\n _this.fireChange(nextValue);\n }\n\n _this.setOpenState(false, {\n needFocus: true\n });\n\n _this.setInputValue('', false);\n\n return;\n }\n\n _this.setInputValue(val);\n\n _this.setState({\n open: true\n });\n\n if (isCombobox(_this.props)) {\n _this.fireChange([val]);\n }\n };\n\n _this.onDropdownVisibleChange = function (open) {\n if (open && !_this._focused) {\n _this.clearBlurTime();\n\n _this.timeoutFocus();\n\n _this._focused = true;\n\n _this.updateFocusClassName();\n }\n\n _this.setOpenState(open);\n }; // combobox ignore\n\n\n _this.onKeyDown = function (event) {\n var open = _this.state.open;\n var disabled = _this.props.disabled;\n\n if (disabled) {\n return;\n }\n\n var keyCode = event.keyCode;\n\n if (open && !_this.getInputDOMNode()) {\n _this.onInputKeyDown(event);\n } else if (keyCode === KeyCode.ENTER || keyCode === KeyCode.DOWN) {\n if (!open) {\n _this.setOpenState(true);\n }\n\n event.preventDefault();\n } else if (keyCode === KeyCode.SPACE) {\n // Not block space if popup is shown\n if (!open) {\n _this.setOpenState(true);\n\n event.preventDefault();\n }\n }\n };\n\n _this.onInputKeyDown = function (event) {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n combobox = _this$props.combobox,\n defaultActiveFirstOption = _this$props.defaultActiveFirstOption;\n\n if (disabled) {\n return;\n }\n\n var state = _this.state;\n\n var isRealOpen = _this.getRealOpenState(state); // magic code\n\n\n var keyCode = event.keyCode;\n\n if (isMultipleOrTags(_this.props) && !event.target.value && keyCode === KeyCode.BACKSPACE) {\n event.preventDefault();\n var value = state.value;\n\n if (value.length) {\n _this.removeSelected(value[value.length - 1]);\n }\n\n return;\n }\n\n if (keyCode === KeyCode.DOWN) {\n if (!state.open) {\n _this.openIfHasChildren();\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n } else if (keyCode === KeyCode.ENTER && state.open) {\n // Aviod trigger form submit when select item\n // https://github.com/ant-design/ant-design/issues/10861\n // https://github.com/ant-design/ant-design/issues/14544\n if (isRealOpen || !combobox) {\n event.preventDefault();\n } // Hard close popup to avoid lock of non option in combobox mode\n\n\n if (isRealOpen && combobox && defaultActiveFirstOption === false) {\n _this.comboboxTimer = setTimeout(function () {\n _this.setOpenState(false);\n });\n }\n } else if (keyCode === KeyCode.ESC) {\n if (state.open) {\n _this.setOpenState(false);\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n return;\n }\n\n if (isRealOpen && _this.selectTriggerRef) {\n var menu = _this.selectTriggerRef.getInnerMenu();\n\n if (menu && menu.onKeyDown(event, _this.handleBackfill)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n _this.onMenuSelect = function (_ref) {\n var item = _ref.item;\n\n if (!item) {\n return;\n }\n\n var value = _this.state.value;\n var props = _this.props;\n var selectedValue = getValuePropValue(item);\n var lastValue = value[value.length - 1];\n var skipTrigger = false;\n\n if (isMultipleOrTags(props)) {\n if (findIndexInValueBySingleValue(value, selectedValue) !== -1) {\n skipTrigger = true;\n } else {\n value = value.concat([selectedValue]);\n }\n } else {\n if (!isCombobox(props) && lastValue !== undefined && lastValue === selectedValue && selectedValue !== _this.state.backfillValue) {\n _this.setOpenState(false, {\n needFocus: true,\n fireSearch: false\n });\n\n skipTrigger = true;\n } else {\n value = [selectedValue];\n\n _this.setOpenState(false, {\n needFocus: true,\n fireSearch: false\n });\n }\n }\n\n if (!skipTrigger) {\n _this.fireChange(value);\n }\n\n _this.fireSelect(selectedValue);\n\n if (!skipTrigger) {\n var inputValue = isCombobox(props) ? getPropValue(item, props.optionLabelProp) : '';\n\n if (props.autoClearSearchValue) {\n _this.setInputValue(inputValue, false);\n }\n }\n };\n\n _this.onMenuDeselect = function (_ref2) {\n var item = _ref2.item,\n domEvent = _ref2.domEvent;\n\n if (domEvent.type === 'keydown' && domEvent.keyCode === KeyCode.ENTER) {\n var menuItemDomNode = ReactDOM.findDOMNode(item); // https://github.com/ant-design/ant-design/issues/20465#issuecomment-569033796\n\n if (!isHidden(menuItemDomNode)) {\n _this.removeSelected(getValuePropValue(item));\n }\n\n return;\n }\n\n if (domEvent.type === 'click') {\n _this.removeSelected(getValuePropValue(item));\n }\n\n var props = _this.props;\n\n if (props.autoClearSearchValue) {\n _this.setInputValue('');\n }\n };\n\n _this.onArrowClick = function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n if (!_this.props.disabled) {\n _this.setOpenState(!_this.state.open, {\n needFocus: !_this.state.open\n });\n }\n };\n\n _this.onPlaceholderClick = function () {\n if (_this.getInputDOMNode && _this.getInputDOMNode()) {\n _this.getInputDOMNode().focus();\n }\n };\n\n _this.onOuterFocus = function (e) {\n if (_this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n _this.clearBlurTime(); // In IE11, onOuterFocus will be trigger twice when focus input\n // First one: e.target is div\n // Second one: e.target is input\n // other browser only trigger second one\n // https://github.com/ant-design/ant-design/issues/15942\n // Here we ignore the first one when e.target is div\n\n\n var inputNode = _this.getInputDOMNode();\n\n if (inputNode && e.target === _this.rootRef) {\n return;\n }\n\n if (!isMultipleOrTagsOrCombobox(_this.props) && e.target === inputNode) {\n return;\n }\n\n if (_this._focused) {\n return;\n }\n\n _this._focused = true;\n\n _this.updateFocusClassName(); // only effect multiple or tag mode\n\n\n if (!isMultipleOrTags(_this.props) || !_this._mouseDown) {\n _this.timeoutFocus();\n }\n };\n\n _this.onPopupFocus = function () {\n // fix ie scrollbar, focus element again\n _this.maybeFocus(true, true);\n };\n\n _this.onOuterBlur = function (e) {\n if (_this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n _this.blurTimer = window.setTimeout(function () {\n _this._focused = false;\n\n _this.updateFocusClassName();\n\n var props = _this.props;\n var value = _this.state.value;\n var inputValue = _this.state.inputValue;\n\n if (isSingleMode(props) && props.showSearch && inputValue && props.defaultActiveFirstOption) {\n var options = _this._options || [];\n\n if (options.length) {\n var firstOption = findFirstMenuItem(options);\n\n if (firstOption) {\n value = [getValuePropValue(firstOption)];\n\n _this.fireChange(value);\n }\n }\n } else if (isMultipleOrTags(props) && inputValue) {\n if (_this._mouseDown) {\n // need update dropmenu when not blur\n _this.setInputValue('');\n } else {\n // why not use setState?\n // https://github.com/ant-design/ant-design/issues/14262\n _this.state.inputValue = '';\n\n if (_this.getInputDOMNode && _this.getInputDOMNode()) {\n _this.getInputDOMNode().value = '';\n }\n }\n\n var tmpValue = _this.getValueByInput(inputValue);\n\n if (tmpValue !== undefined) {\n value = tmpValue;\n\n _this.fireChange(value);\n }\n } // if click the rest space of Select in multiple mode\n\n\n if (isMultipleOrTags(props) && _this._mouseDown) {\n _this.maybeFocus(true, true);\n\n _this._mouseDown = false;\n return;\n }\n\n _this.setOpenState(false);\n\n if (props.onBlur) {\n props.onBlur(_this.getVLForOnChange(value));\n }\n }, 10);\n };\n\n _this.onClearSelection = function (event) {\n var props = _this.props;\n var state = _this.state;\n\n if (props.disabled) {\n return;\n }\n\n var inputValue = state.inputValue;\n var value = state.value;\n event.stopPropagation();\n\n if (inputValue || value.length) {\n if (value.length) {\n _this.fireChange([]);\n }\n\n _this.setOpenState(false, {\n needFocus: true\n });\n\n if (inputValue) {\n _this.setInputValue('');\n }\n }\n };\n\n _this.onChoiceAnimationLeave = function () {\n _this.forcePopupAlign();\n };\n\n _this.getOptionInfoBySingleValue = function (value, optionsInfo) {\n var info;\n optionsInfo = optionsInfo || _this.state.optionsInfo;\n\n if (optionsInfo[getMapKey(value)]) {\n info = optionsInfo[getMapKey(value)];\n }\n\n if (info) {\n return info;\n }\n\n var defaultLabel = value;\n\n if (_this.props.labelInValue) {\n var valueLabel = getLabelFromPropsValue(_this.props.value, value);\n var defaultValueLabel = getLabelFromPropsValue(_this.props.defaultValue, value);\n\n if (valueLabel !== undefined) {\n defaultLabel = valueLabel;\n } else if (defaultValueLabel !== undefined) {\n defaultLabel = defaultValueLabel;\n }\n }\n\n var defaultInfo = {\n option: React.createElement(Option, {\n value: value,\n key: value\n }, value),\n value: value,\n label: defaultLabel\n };\n return defaultInfo;\n };\n\n _this.getOptionBySingleValue = function (value) {\n var _this$getOptionInfoBy = _this.getOptionInfoBySingleValue(value),\n option = _this$getOptionInfoBy.option;\n\n return option;\n };\n\n _this.getOptionsBySingleValue = function (values) {\n return values.map(function (value) {\n return _this.getOptionBySingleValue(value);\n });\n };\n\n _this.getValueByLabel = function (label) {\n if (label === undefined) {\n return null;\n }\n\n var value = null;\n Object.keys(_this.state.optionsInfo).forEach(function (key) {\n var info = _this.state.optionsInfo[key];\n var disabled = info.disabled;\n\n if (disabled) {\n return;\n }\n\n var oldLable = toArray(info.label);\n\n if (oldLable && oldLable.join('') === label) {\n value = info.value;\n }\n });\n return value;\n };\n\n _this.getVLBySingleValue = function (value) {\n if (_this.props.labelInValue) {\n return {\n key: value,\n label: _this.getLabelBySingleValue(value)\n };\n }\n\n return value;\n };\n\n _this.getVLForOnChange = function (vlsS) {\n var vls = vlsS;\n\n if (vls !== undefined) {\n if (!_this.props.labelInValue) {\n vls = vls.map(function (v) {\n return v;\n });\n } else {\n vls = vls.map(function (vl) {\n return {\n key: vl,\n label: _this.getLabelBySingleValue(vl)\n };\n });\n }\n\n return isMultipleOrTags(_this.props) ? vls : vls[0];\n }\n\n return vls;\n };\n\n _this.getLabelBySingleValue = function (value, optionsInfo) {\n var _this$getOptionInfoBy2 = _this.getOptionInfoBySingleValue(value, optionsInfo),\n label = _this$getOptionInfoBy2.label;\n\n return label;\n };\n\n _this.getDropdownContainer = function () {\n if (!_this.dropdownContainer) {\n _this.dropdownContainer = document.createElement('div');\n document.body.appendChild(_this.dropdownContainer);\n }\n\n return _this.dropdownContainer;\n };\n\n _this.getPlaceholderElement = function () {\n var props = _this.props;\n var state = _this.state;\n var hidden = false;\n\n if (state.inputValue) {\n hidden = true;\n }\n\n var value = state.value;\n\n if (value.length) {\n hidden = true;\n }\n\n if (isCombobox(props) && value.length === 1 && state.value && !state.value[0]) {\n hidden = false;\n }\n\n var placeholder = props.placeholder;\n\n if (placeholder) {\n return React.createElement(\"div\", _extends({\n onMouseDown: preventDefaultEvent,\n style: _extends({\n display: hidden ? 'none' : 'block'\n }, UNSELECTABLE_STYLE)\n }, UNSELECTABLE_ATTRIBUTE, {\n onClick: _this.onPlaceholderClick,\n className: \"\".concat(props.prefixCls, \"-selection__placeholder\")\n }), placeholder);\n }\n\n return null;\n };\n\n _this.getInputElement = function () {\n var props = _this.props;\n var defaultInput = React.createElement(\"input\", {\n id: props.id,\n autoComplete: \"off\"\n }); // tslint:disable-next-line:typedef-whitespace\n\n var inputElement = props.getInputElement ? props.getInputElement() : defaultInput;\n var inputCls = classnames(inputElement.props.className, _defineProperty({}, \"\".concat(props.prefixCls, \"-search__field\"), true)); // https://github.com/ant-design/ant-design/issues/4992#issuecomment-281542159\n // Add space to the end of the inputValue as the width measurement tolerance\n\n return React.createElement(\"div\", {\n className: \"\".concat(props.prefixCls, \"-search__field__wrap\")\n }, React.cloneElement(inputElement, {\n ref: _this.saveInputRef,\n onChange: _this.onInputChange,\n onKeyDown: chaining(_this.onInputKeyDown, inputElement.props.onKeyDown, _this.props.onInputKeyDown),\n value: _this.state.inputValue,\n disabled: props.disabled,\n className: inputCls\n }), React.createElement(\"span\", {\n ref: _this.saveInputMirrorRef,\n className: \"\".concat(props.prefixCls, \"-search__field__mirror\")\n }, _this.state.inputValue, \"\\xA0\"));\n };\n\n _this.getInputDOMNode = function () {\n return _this.topCtrlRef ? _this.topCtrlRef.querySelector('input,textarea,div[contentEditable]') : _this.inputRef;\n };\n\n _this.getInputMirrorDOMNode = function () {\n return _this.inputMirrorRef;\n };\n\n _this.getPopupDOMNode = function () {\n if (_this.selectTriggerRef) {\n return _this.selectTriggerRef.getPopupDOMNode();\n }\n };\n\n _this.getPopupMenuComponent = function () {\n if (_this.selectTriggerRef) {\n return _this.selectTriggerRef.getInnerMenu();\n }\n };\n\n _this.setOpenState = function (open) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var needFocus = config.needFocus,\n fireSearch = config.fireSearch;\n var props = _this.props;\n var state = _this.state;\n\n if (state.open === open) {\n _this.maybeFocus(open, !!needFocus);\n\n return;\n }\n\n if (_this.props.onDropdownVisibleChange) {\n _this.props.onDropdownVisibleChange(open);\n }\n\n var nextState = {\n open: open,\n backfillValue: ''\n }; // clear search input value when open is false in singleMode.\n // https://github.com/ant-design/ant-design/issues/16572\n\n if (!open && isSingleMode(props) && props.showSearch) {\n _this.setInputValue('', fireSearch);\n }\n\n if (!open) {\n _this.maybeFocus(open, !!needFocus);\n }\n\n _this.setState(_extends({\n open: open\n }, nextState), function () {\n if (open) {\n _this.maybeFocus(open, !!needFocus);\n }\n });\n };\n\n _this.setInputValue = function (inputValue) {\n var fireSearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var onSearch = _this.props.onSearch;\n\n if (inputValue !== _this.state.inputValue) {\n _this.setState(function (prevState) {\n // Additional check if `inputValue` changed in latest state.\n if (fireSearch && inputValue !== prevState.inputValue && onSearch) {\n onSearch(inputValue);\n }\n\n return {\n inputValue: inputValue\n };\n }, _this.forcePopupAlign);\n }\n };\n\n _this.getValueByInput = function (str) {\n var _this$props2 = _this.props,\n multiple = _this$props2.multiple,\n tokenSeparators = _this$props2.tokenSeparators;\n var nextValue = _this.state.value;\n var hasNewValue = false;\n splitBySeparators(str, tokenSeparators).forEach(function (label) {\n var selectedValue = [label];\n\n if (multiple) {\n var value = _this.getValueByLabel(label);\n\n if (value && findIndexInValueBySingleValue(nextValue, value) === -1) {\n nextValue = nextValue.concat(value);\n hasNewValue = true;\n\n _this.fireSelect(value);\n }\n } else if (findIndexInValueBySingleValue(nextValue, label) === -1) {\n nextValue = nextValue.concat(selectedValue);\n hasNewValue = true;\n\n _this.fireSelect(label);\n }\n });\n return hasNewValue ? nextValue : undefined;\n };\n\n _this.getRealOpenState = function (state) {\n // tslint:disable-next-line:variable-name\n var _open = _this.props.open;\n\n if (typeof _open === 'boolean') {\n return _open;\n }\n\n var open = (state || _this.state).open;\n var options = _this._options || [];\n\n if (isMultipleOrTagsOrCombobox(_this.props) || !_this.props.showSearch) {\n if (open && !options.length) {\n open = false;\n }\n }\n\n return open;\n };\n\n _this.markMouseDown = function () {\n _this._mouseDown = true;\n };\n\n _this.markMouseLeave = function () {\n _this._mouseDown = false;\n };\n\n _this.handleBackfill = function (item) {\n if (!_this.props.backfill || !(isSingleMode(_this.props) || isCombobox(_this.props))) {\n return;\n }\n\n var key = getValuePropValue(item);\n\n if (isCombobox(_this.props)) {\n _this.setInputValue(key, false);\n }\n\n _this.setState({\n value: [key],\n backfillValue: key\n });\n };\n\n _this.filterOption = function (input, child) {\n var defaultFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultFilterFn;\n var value = _this.state.value;\n var lastValue = value[value.length - 1];\n\n if (!input || lastValue && lastValue === _this.state.backfillValue) {\n return true;\n }\n\n var filterFn = _this.props.filterOption;\n\n if ('filterOption' in _this.props) {\n if (filterFn === true) {\n filterFn = defaultFilter.bind(_assertThisInitialized(_this));\n }\n } else {\n filterFn = defaultFilter.bind(_assertThisInitialized(_this));\n }\n\n if (!filterFn) {\n return true;\n } else if (typeof filterFn === 'function') {\n return filterFn.call(_assertThisInitialized(_this), input, child);\n } else if (child.props.disabled) {\n return false;\n }\n\n return true;\n };\n\n _this.timeoutFocus = function () {\n var onFocus = _this.props.onFocus;\n\n if (_this.focusTimer) {\n _this.clearFocusTime();\n }\n\n _this.focusTimer = window.setTimeout(function () {\n if (onFocus) {\n onFocus();\n }\n }, 10);\n };\n\n _this.clearFocusTime = function () {\n if (_this.focusTimer) {\n clearTimeout(_this.focusTimer);\n _this.focusTimer = null;\n }\n };\n\n _this.clearBlurTime = function () {\n if (_this.blurTimer) {\n clearTimeout(_this.blurTimer);\n _this.blurTimer = null;\n }\n };\n\n _this.clearComboboxTime = function () {\n if (_this.comboboxTimer) {\n clearTimeout(_this.comboboxTimer);\n _this.comboboxTimer = null;\n }\n };\n\n _this.updateFocusClassName = function () {\n var rootRef = _this.rootRef;\n var props = _this.props; // avoid setState and its side effect\n\n if (_this._focused) {\n classes(rootRef).add(\"\".concat(props.prefixCls, \"-focused\"));\n } else {\n classes(rootRef).remove(\"\".concat(props.prefixCls, \"-focused\"));\n }\n };\n\n _this.maybeFocus = function (open, needFocus) {\n if (needFocus || open) {\n var input = _this.getInputDOMNode();\n\n var _document = document,\n activeElement = _document.activeElement;\n\n if (input && (open || isMultipleOrTagsOrCombobox(_this.props))) {\n if (activeElement !== input) {\n input.focus();\n _this._focused = true;\n }\n } else if (activeElement !== _this.selectionRef && _this.selectionRef) {\n _this.selectionRef.focus();\n\n _this._focused = true;\n }\n }\n };\n\n _this.removeSelected = function (selectedKey, e) {\n var props = _this.props;\n\n if (props.disabled || _this.isChildDisabled(selectedKey)) {\n return;\n } // Do not trigger Trigger popup\n\n\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n\n var oldValue = _this.state.value;\n var value = oldValue.filter(function (singleValue) {\n return singleValue !== selectedKey;\n });\n var canMultiple = isMultipleOrTags(props);\n\n if (canMultiple) {\n var event = selectedKey;\n\n if (props.labelInValue) {\n event = {\n key: selectedKey,\n label: _this.getLabelBySingleValue(selectedKey)\n };\n }\n\n if (props.onDeselect) {\n props.onDeselect(event, _this.getOptionBySingleValue(selectedKey));\n }\n }\n\n _this.fireChange(value);\n };\n\n _this.openIfHasChildren = function () {\n var props = _this.props;\n\n if (React.Children.count(props.children) || isSingleMode(props)) {\n _this.setOpenState(true);\n }\n };\n\n _this.fireSelect = function (value) {\n if (_this.props.onSelect) {\n _this.props.onSelect(_this.getVLBySingleValue(value), _this.getOptionBySingleValue(value));\n }\n };\n\n _this.fireChange = function (value) {\n var props = _this.props;\n\n if (!('value' in props)) {\n _this.setState({\n value: value\n }, _this.forcePopupAlign);\n }\n\n var vls = _this.getVLForOnChange(value);\n\n var options = _this.getOptionsBySingleValue(value);\n\n if (props.onChange) {\n props.onChange(vls, isMultipleOrTags(_this.props) ? options : options[0]);\n }\n };\n\n _this.isChildDisabled = function (key) {\n return childrenToArray(_this.props.children).some(function (child) {\n var childValue = getValuePropValue(child);\n return childValue === key && child.props && child.props.disabled;\n });\n };\n\n _this.forcePopupAlign = function () {\n if (!_this.state.open) {\n return;\n }\n\n if (_this.selectTriggerRef && _this.selectTriggerRef.triggerRef) {\n _this.selectTriggerRef.triggerRef.forcePopupAlign();\n }\n };\n\n _this.renderFilterOptions = function () {\n var inputValue = _this.state.inputValue;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n tags = _this$props3.tags,\n notFoundContent = _this$props3.notFoundContent;\n var menuItems = [];\n var childrenKeys = [];\n var empty = false;\n\n var options = _this.renderFilterOptionsFromChildren(children, childrenKeys, menuItems);\n\n if (tags) {\n // tags value must be string\n var value = _this.state.value;\n value = value.filter(function (singleValue) {\n return childrenKeys.indexOf(singleValue) === -1 && (!inputValue || String(singleValue).indexOf(String(inputValue)) > -1);\n }); // sort by length\n\n value.sort(function (val1, val2) {\n return val1.length - val2.length;\n });\n value.forEach(function (singleValue) {\n var key = singleValue;\n var menuItem = React.createElement(MenuItem, {\n style: UNSELECTABLE_STYLE,\n role: \"option\",\n attribute: UNSELECTABLE_ATTRIBUTE,\n value: key,\n key: key\n }, key);\n options.push(menuItem);\n menuItems.push(menuItem);\n }); // ref: https://github.com/ant-design/ant-design/issues/14090\n\n if (inputValue && menuItems.every(function (option) {\n return getValuePropValue(option) !== inputValue;\n })) {\n options.unshift(React.createElement(MenuItem, {\n style: UNSELECTABLE_STYLE,\n role: \"option\",\n attribute: UNSELECTABLE_ATTRIBUTE,\n value: inputValue,\n key: inputValue\n }, inputValue));\n }\n }\n\n if (!options.length && notFoundContent) {\n empty = true;\n options = [React.createElement(MenuItem, {\n style: UNSELECTABLE_STYLE,\n attribute: UNSELECTABLE_ATTRIBUTE,\n disabled: true,\n role: \"option\",\n value: \"NOT_FOUND\",\n key: \"NOT_FOUND\"\n }, notFoundContent)];\n }\n\n return {\n empty: empty,\n options: options\n };\n };\n\n _this.renderFilterOptionsFromChildren = function (children, childrenKeys, menuItems) {\n var sel = [];\n var props = _this.props;\n var inputValue = _this.state.inputValue;\n var tags = props.tags;\n React.Children.forEach(children, function (child) {\n if (!child) {\n return;\n }\n\n var type = child.type;\n\n if (type.isSelectOptGroup) {\n var label = child.props.label;\n var key = child.key;\n\n if (!key && typeof label === 'string') {\n key = label;\n } else if (!label && key) {\n label = key;\n } // Match option group label\n\n\n if (inputValue && _this.filterOption(inputValue, child)) {\n var innerItems = childrenToArray(child.props.children).map(function (subChild) {\n var childValueSub = getValuePropValue(subChild) || subChild.key;\n return React.createElement(MenuItem, _extends({\n key: childValueSub,\n value: childValueSub\n }, subChild.props));\n });\n sel.push(React.createElement(MenuItemGroup, {\n key: key,\n title: label\n }, innerItems)); // Not match\n } else {\n var _innerItems = _this.renderFilterOptionsFromChildren(child.props.children, childrenKeys, menuItems);\n\n if (_innerItems.length) {\n sel.push(React.createElement(MenuItemGroup, {\n key: key,\n title: label\n }, _innerItems));\n }\n }\n\n return;\n }\n\n warning(type.isSelectOption, 'the children of `Select` should be `Select.Option` or `Select.OptGroup`, ' + \"instead of `\".concat(type.name || type.displayName || child.type, \"`.\"));\n var childValue = getValuePropValue(child);\n validateOptionValue(childValue, _this.props);\n\n if (_this.filterOption(inputValue, child)) {\n var menuItem = React.createElement(MenuItem, _extends({\n style: UNSELECTABLE_STYLE,\n attribute: UNSELECTABLE_ATTRIBUTE,\n value: childValue,\n key: childValue,\n role: \"option\"\n }, child.props));\n sel.push(menuItem);\n menuItems.push(menuItem);\n }\n\n if (tags) {\n childrenKeys.push(childValue);\n }\n });\n return sel;\n };\n\n _this.renderTopControlNode = function () {\n var _this$state = _this.state,\n open = _this$state.open,\n inputValue = _this$state.inputValue;\n var value = _this.state.value;\n var props = _this.props;\n var choiceTransitionName = props.choiceTransitionName,\n prefixCls = props.prefixCls,\n maxTagTextLength = props.maxTagTextLength,\n maxTagCount = props.maxTagCount,\n showSearch = props.showSearch,\n removeIcon = props.removeIcon;\n var maxTagPlaceholder = props.maxTagPlaceholder;\n var className = \"\".concat(prefixCls, \"-selection__rendered\"); // search input is inside topControlNode in single, multiple & combobox. 2016/04/13\n\n var innerNode = null;\n\n if (isSingleMode(props)) {\n var selectedValue = null;\n\n if (value.length) {\n var showSelectedValue = false;\n var opacity = 1;\n\n if (!showSearch) {\n showSelectedValue = true;\n } else if (open) {\n showSelectedValue = !inputValue;\n\n if (showSelectedValue) {\n opacity = 0.4;\n }\n } else {\n showSelectedValue = true;\n }\n\n var singleValue = value[0];\n\n var _this$getOptionInfoBy3 = _this.getOptionInfoBySingleValue(singleValue),\n label = _this$getOptionInfoBy3.label,\n title = _this$getOptionInfoBy3.title;\n\n selectedValue = React.createElement(\"div\", {\n key: \"value\",\n className: \"\".concat(prefixCls, \"-selection-selected-value\"),\n title: toTitle(title || label),\n style: {\n display: showSelectedValue ? 'block' : 'none',\n opacity: opacity\n }\n }, label);\n }\n\n if (!showSearch) {\n innerNode = [selectedValue];\n } else {\n innerNode = [selectedValue, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-search \").concat(prefixCls, \"-search--inline\"),\n key: \"input\",\n style: {\n display: open ? 'block' : 'none'\n }\n }, _this.getInputElement())];\n }\n } else {\n var selectedValueNodes = [];\n var limitedCountValue = value;\n var maxTagPlaceholderEl;\n\n if (maxTagCount !== undefined && value.length > maxTagCount) {\n limitedCountValue = limitedCountValue.slice(0, maxTagCount);\n\n var omittedValues = _this.getVLForOnChange(value.slice(maxTagCount, value.length));\n\n var content = \"+ \".concat(value.length - maxTagCount, \" ...\");\n\n if (maxTagPlaceholder) {\n content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n }\n\n maxTagPlaceholderEl = React.createElement(\"li\", _extends({\n style: UNSELECTABLE_STYLE\n }, UNSELECTABLE_ATTRIBUTE, {\n role: \"presentation\",\n onMouseDown: preventDefaultEvent,\n className: \"\".concat(prefixCls, \"-selection__choice \").concat(prefixCls, \"-selection__choice__disabled\"),\n key: \"maxTagPlaceholder\",\n title: toTitle(content)\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection__choice__content\")\n }, content));\n }\n\n if (isMultipleOrTags(props)) {\n selectedValueNodes = limitedCountValue.map(function (singleValue) {\n var info = _this.getOptionInfoBySingleValue(singleValue);\n\n var content = info.label;\n var title = info.title || content;\n\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = \"\".concat(content.slice(0, maxTagTextLength), \"...\");\n }\n\n var disabled = _this.isChildDisabled(singleValue);\n\n var choiceClassName = disabled ? \"\".concat(prefixCls, \"-selection__choice \").concat(prefixCls, \"-selection__choice__disabled\") : \"\".concat(prefixCls, \"-selection__choice\");\n return React.createElement(\"li\", _extends({\n style: UNSELECTABLE_STYLE\n }, UNSELECTABLE_ATTRIBUTE, {\n onMouseDown: preventDefaultEvent,\n className: choiceClassName,\n role: \"presentation\",\n key: singleValue || SELECT_EMPTY_VALUE_KEY,\n title: toTitle(title)\n }), React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection__choice__content\")\n }, content), disabled ? null : React.createElement(\"span\", {\n onClick: function onClick(event) {\n _this.removeSelected(singleValue, event);\n },\n className: \"\".concat(prefixCls, \"-selection__choice__remove\")\n }, removeIcon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-selection__choice__remove-icon\")\n }, \"\\xD7\")));\n });\n }\n\n if (maxTagPlaceholderEl) {\n selectedValueNodes.push(maxTagPlaceholderEl);\n }\n\n selectedValueNodes.push(React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-search \").concat(prefixCls, \"-search--inline\"),\n key: \"__input\"\n }, _this.getInputElement()));\n\n if (isMultipleOrTags(props) && choiceTransitionName) {\n innerNode = React.createElement(Animate, {\n onLeave: _this.onChoiceAnimationLeave,\n component: \"ul\",\n transitionName: choiceTransitionName\n }, selectedValueNodes);\n } else {\n innerNode = React.createElement(\"ul\", null, selectedValueNodes);\n }\n }\n\n return React.createElement(\"div\", {\n className: className,\n ref: _this.saveTopCtrlRef\n }, _this.getPlaceholderElement(), innerNode);\n };\n\n var optionsInfo = Select.getOptionsInfoFromProps(props);\n\n if (props.tags && typeof props.filterOption !== 'function') {\n var isDisabledExist = Object.keys(optionsInfo).some(function (key) {\n return optionsInfo[key].disabled;\n });\n warning(!isDisabledExist, 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n }\n\n _this.state = {\n value: Select.getValueFromProps(props, true),\n inputValue: props.combobox ? Select.getInputValueForCombobox(props, optionsInfo, true) : '',\n open: props.defaultOpen,\n optionsInfo: optionsInfo,\n backfillValue: '',\n // a flag for aviod redundant getOptionsInfoFromProps call\n skipBuildOptionsInfo: true,\n ariaId: ''\n };\n _this.saveInputRef = saveRef(_assertThisInitialized(_this), 'inputRef');\n _this.saveInputMirrorRef = saveRef(_assertThisInitialized(_this), 'inputMirrorRef');\n _this.saveTopCtrlRef = saveRef(_assertThisInitialized(_this), 'topCtrlRef');\n _this.saveSelectTriggerRef = saveRef(_assertThisInitialized(_this), 'selectTriggerRef');\n _this.saveRootRef = saveRef(_assertThisInitialized(_this), 'rootRef');\n _this.saveSelectionRef = saveRef(_assertThisInitialized(_this), 'selectionRef');\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // when defaultOpen is true, we should auto focus search input\n // https://github.com/ant-design/ant-design/issues/14254\n if (this.props.autoFocus || this.state.open) {\n this.focus();\n }\n\n this.setState({\n ariaId: generateUUID()\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (isMultipleOrTags(this.props)) {\n var inputNode = this.getInputDOMNode();\n var mirrorNode = this.getInputMirrorDOMNode();\n\n if (inputNode && inputNode.value && mirrorNode) {\n inputNode.style.width = '';\n inputNode.style.width = \"\".concat(mirrorNode.clientWidth, \"px\");\n } else if (inputNode) {\n inputNode.style.width = '';\n }\n }\n\n this.forcePopupAlign();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearFocusTime();\n this.clearBlurTime();\n this.clearComboboxTime();\n\n if (this.dropdownContainer) {\n ReactDOM.unmountComponentAtNode(this.dropdownContainer);\n document.body.removeChild(this.dropdownContainer);\n this.dropdownContainer = null;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (isSingleMode(this.props) && this.selectionRef) {\n this.selectionRef.focus();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().focus();\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n if (isSingleMode(this.props) && this.selectionRef) {\n this.selectionRef.blur();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().blur();\n }\n }\n }, {\n key: \"renderArrow\",\n value: function renderArrow(multiple) {\n // showArrow : Set to true if not multiple by default but keep set value.\n var _this$props4 = this.props,\n _this$props4$showArro = _this$props4.showArrow,\n showArrow = _this$props4$showArro === void 0 ? !multiple : _this$props4$showArro,\n loading = _this$props4.loading,\n inputIcon = _this$props4.inputIcon,\n prefixCls = _this$props4.prefixCls;\n\n if (!showArrow && !loading) {\n return null;\n } // if loading have loading icon\n\n\n var defaultIcon = loading ? React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow-loading\")\n }) : React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow-icon\")\n });\n return React.createElement(\"span\", _extends({\n key: \"arrow\",\n className: \"\".concat(prefixCls, \"-arrow\"),\n style: UNSELECTABLE_STYLE\n }, UNSELECTABLE_ATTRIBUTE, {\n onClick: this.onArrowClick\n }), inputIcon || defaultIcon);\n }\n }, {\n key: \"renderClear\",\n value: function renderClear() {\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n allowClear = _this$props5.allowClear,\n clearIcon = _this$props5.clearIcon;\n var inputValue = this.state.inputValue;\n var value = this.state.value;\n var clear = React.createElement(\"span\", _extends({\n key: \"clear\",\n className: \"\".concat(prefixCls, \"-selection__clear\"),\n onMouseDown: preventDefaultEvent,\n style: UNSELECTABLE_STYLE\n }, UNSELECTABLE_ATTRIBUTE, {\n onClick: this.onClearSelection\n }), clearIcon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-selection__clear-icon\")\n }, \"\\xD7\"));\n\n if (!allowClear) {\n return null;\n }\n\n if (isCombobox(this.props)) {\n if (inputValue) {\n return clear;\n }\n\n return null;\n }\n\n if (inputValue || value.length) {\n return clear;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _rootCls;\n\n var props = this.props;\n var multiple = isMultipleOrTags(props); // Default set showArrow to true if not set (not set directly in defaultProps to handle multiple case)\n\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow;\n var state = this.state;\n var className = props.className,\n disabled = props.disabled,\n prefixCls = props.prefixCls,\n loading = props.loading;\n var ctrlNode = this.renderTopControlNode();\n var _this$state2 = this.state,\n open = _this$state2.open,\n ariaId = _this$state2.ariaId;\n\n if (open) {\n var filterOptions = this.renderFilterOptions();\n this._empty = filterOptions.empty;\n this._options = filterOptions.options;\n }\n\n var realOpen = this.getRealOpenState();\n var empty = this._empty;\n var options = this._options || [];\n var dataOrAriaAttributeProps = {};\n Object.keys(props).forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(props, key) && (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role')) {\n dataOrAriaAttributeProps[key] = props[key];\n }\n }); // for (const key in props) {\n // if (\n // Object.prototype.hasOwnProperty.call(props, key) &&\n // (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role')\n // ) {\n // dataOrAriaAttributeProps[key] = props[key];\n // }\n // }\n\n var extraSelectionProps = _extends({}, dataOrAriaAttributeProps);\n\n if (!isMultipleOrTagsOrCombobox(props)) {\n extraSelectionProps = _extends(_extends({}, extraSelectionProps), {\n onKeyDown: this.onKeyDown,\n tabIndex: props.disabled ? -1 : props.tabIndex\n });\n }\n\n var rootCls = (_rootCls = {}, _defineProperty(_rootCls, className, !!className), _defineProperty(_rootCls, prefixCls, 1), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-open\"), open), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-focused\"), open || !!this._focused), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-combobox\"), isCombobox(props)), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-enabled\"), !disabled), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-allow-clear\"), !!props.allowClear), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-no-arrow\"), !showArrow), _defineProperty(_rootCls, \"\".concat(prefixCls, \"-loading\"), !!loading), _rootCls);\n return React.createElement(SelectTrigger, {\n onPopupFocus: this.onPopupFocus,\n onMouseEnter: this.props.onMouseEnter,\n onMouseLeave: this.props.onMouseLeave,\n dropdownAlign: props.dropdownAlign,\n dropdownClassName: props.dropdownClassName,\n dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,\n defaultActiveFirstOption: props.defaultActiveFirstOption,\n dropdownMenuStyle: props.dropdownMenuStyle,\n transitionName: props.transitionName,\n animation: props.animation,\n prefixCls: props.prefixCls,\n dropdownStyle: props.dropdownStyle,\n combobox: props.combobox,\n showSearch: props.showSearch,\n options: options,\n empty: empty,\n multiple: multiple,\n disabled: disabled,\n visible: realOpen,\n inputValue: state.inputValue,\n value: state.value,\n backfillValue: state.backfillValue,\n firstActiveValue: props.firstActiveValue,\n onDropdownVisibleChange: this.onDropdownVisibleChange,\n getPopupContainer: props.getPopupContainer,\n onMenuSelect: this.onMenuSelect,\n onMenuDeselect: this.onMenuDeselect,\n onPopupScroll: props.onPopupScroll,\n showAction: props.showAction,\n ref: this.saveSelectTriggerRef,\n menuItemSelectedIcon: props.menuItemSelectedIcon,\n dropdownRender: props.dropdownRender,\n ariaId: ariaId\n }, React.createElement(\"div\", {\n id: props.id,\n style: props.style,\n ref: this.saveRootRef,\n onBlur: this.onOuterBlur,\n onFocus: this.onOuterFocus,\n className: classnames(rootCls),\n onMouseDown: this.markMouseDown,\n onMouseUp: this.markMouseLeave,\n onMouseOut: this.markMouseLeave\n }, React.createElement(\"div\", _extends({\n ref: this.saveSelectionRef,\n key: \"selection\",\n className: \"\".concat(prefixCls, \"-selection\\n \").concat(prefixCls, \"-selection--\").concat(multiple ? 'multiple' : 'single'),\n role: \"combobox\",\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"true\",\n \"aria-controls\": ariaId,\n \"aria-expanded\": realOpen\n }, extraSelectionProps), ctrlNode, this.renderClear(), this.renderArrow(!!multiple))));\n }\n }]);\n\n return Select;\n}(React.Component);\n\nSelect.propTypes = SelectPropTypes;\nSelect.defaultProps = {\n prefixCls: 'rc-select',\n defaultOpen: false,\n labelInValue: false,\n defaultActiveFirstOption: true,\n showSearch: true,\n allowClear: false,\n placeholder: '',\n onChange: noop,\n onFocus: noop,\n onBlur: noop,\n onSelect: noop,\n onSearch: noop,\n onDeselect: noop,\n onInputKeyDown: noop,\n dropdownMatchSelectWidth: true,\n dropdownStyle: {},\n dropdownMenuStyle: {},\n optionFilterProp: 'value',\n optionLabelProp: 'value',\n notFoundContent: 'Not Found',\n backfill: false,\n showAction: ['click'],\n tokenSeparators: [],\n autoClearSearchValue: true,\n tabIndex: 0,\n dropdownRender: function dropdownRender(menu) {\n return menu;\n }\n};\n\nSelect.getDerivedStateFromProps = function (nextProps, prevState) {\n var optionsInfo = prevState.skipBuildOptionsInfo ? prevState.optionsInfo : Select.getOptionsInfoFromProps(nextProps, prevState);\n var newState = {\n optionsInfo: optionsInfo,\n skipBuildOptionsInfo: false\n };\n\n if ('open' in nextProps) {\n newState.open = nextProps.open;\n }\n\n if (nextProps.disabled && prevState.open) {\n newState.open = false;\n }\n\n if ('value' in nextProps) {\n var value = Select.getValueFromProps(nextProps);\n newState.value = value;\n\n if (nextProps.combobox) {\n newState.inputValue = Select.getInputValueForCombobox(nextProps, optionsInfo);\n }\n }\n\n return newState;\n};\n\nSelect.getOptionsFromChildren = function (children) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n React.Children.forEach(children, function (child) {\n if (!child) {\n return;\n }\n\n var type = child.type;\n\n if (type.isSelectOptGroup) {\n Select.getOptionsFromChildren(child.props.children, options);\n } else {\n options.push(child);\n }\n });\n return options;\n};\n\nSelect.getInputValueForCombobox = function (props, optionsInfo, useDefaultValue) {\n var value = [];\n\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n\n if (value.length) {\n value = value[0];\n } else {\n return '';\n }\n\n var label = value;\n\n if (props.labelInValue) {\n label = value.label;\n } else if (optionsInfo[getMapKey(value)]) {\n label = optionsInfo[getMapKey(value)].label;\n }\n\n if (label === undefined) {\n label = '';\n }\n\n return label;\n};\n\nSelect.getLabelFromOption = function (props, option) {\n return getPropValue(option, props.optionLabelProp);\n};\n\nSelect.getOptionsInfoFromProps = function (props, preState) {\n var options = Select.getOptionsFromChildren(props.children);\n var optionsInfo = {};\n options.forEach(function (option) {\n var singleValue = getValuePropValue(option);\n optionsInfo[getMapKey(singleValue)] = {\n option: option,\n value: singleValue,\n label: Select.getLabelFromOption(props, option),\n title: option.props.title,\n disabled: option.props.disabled\n };\n });\n\n if (preState) {\n // keep option info in pre state value.\n var oldOptionsInfo = preState.optionsInfo;\n var value = preState.value;\n\n if (value) {\n value.forEach(function (v) {\n var key = getMapKey(v);\n\n if (!optionsInfo[key] && oldOptionsInfo[key] !== undefined) {\n optionsInfo[key] = oldOptionsInfo[key];\n }\n });\n }\n }\n\n return optionsInfo;\n};\n\nSelect.getValueFromProps = function (props, useDefaultValue) {\n var value = [];\n\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n\n if (props.labelInValue) {\n value = value.map(function (v) {\n return v.key;\n });\n }\n\n return value;\n};\n\nSelect.displayName = 'Select';\npolyfill(Select);\nexport default Select;","import OptGroup from './OptGroup';\nimport Option from './Option';\nimport SelectPropTypes from './PropTypes';\nimport Select from './Select';\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport { Option, OptGroup, SelectPropTypes };\nexport default Select;","import _extends from \"babel-runtime/helpers/extends\";\nimport _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n 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) t[p[i]] = s[p[i]];\n }return t;\n};\nimport * as React from 'react';\n\nvar LazyRenderBox = function (_React$Component) {\n _inherits(LazyRenderBox, _React$Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n LazyRenderBox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n if (nextProps.forceRender) {\n return true;\n }\n return !!nextProps.hiddenClassName || !!nextProps.visible;\n };\n\n LazyRenderBox.prototype.render = function render() {\n var _a = this.props,\n className = _a.className,\n hiddenClassName = _a.hiddenClassName,\n visible = _a.visible,\n forceRender = _a.forceRender,\n restProps = __rest(_a, [\"className\", \"hiddenClassName\", \"visible\", \"forceRender\"]);\n var useClassName = className;\n if (!!hiddenClassName && !visible) {\n useClassName += \" \" + hiddenClassName;\n }\n return React.createElement(\"div\", _extends({}, restProps, { className: useClassName }));\n };\n\n return LazyRenderBox;\n}(React.Component);\n\nexport default LazyRenderBox;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport KeyCode from 'rc-util/es/KeyCode';\nimport contains from 'rc-util/es/Dom/contains';\nimport Animate from 'rc-animate';\nimport LazyRenderBox from './LazyRenderBox';\nvar uuid = 0;\n/* eslint react/no-is-mounted:0 */\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (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}\nfunction setTransformOrigin(node, value) {\n var style = node.style;\n ['Webkit', 'Moz', 'Ms', 'ms'].forEach(function (prefix) {\n style[prefix + 'TransformOrigin'] = value;\n });\n style['transformOrigin'] = value;\n}\nfunction 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}\n\nvar Dialog = function (_React$Component) {\n _inherits(Dialog, _React$Component);\n\n function Dialog(props) {\n _classCallCheck(this, Dialog);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.inTransition = false;\n _this.onAnimateLeave = function () {\n var afterClose = _this.props.afterClose;\n // need demo?\n // https://github.com/react-component/dialog/pull/28\n\n if (_this.wrap) {\n _this.wrap.style.display = 'none';\n }\n _this.inTransition = false;\n _this.switchScrollingEffect();\n if (afterClose) {\n afterClose();\n }\n };\n _this.onDialogMouseDown = function () {\n _this.dialogMouseDown = true;\n };\n _this.onMaskMouseUp = function () {\n if (_this.dialogMouseDown) {\n _this.timeoutId = setTimeout(function () {\n _this.dialogMouseDown = false;\n }, 0);\n }\n };\n _this.onMaskClick = function (e) {\n // android trigger click on open (fastclick??)\n if (Date.now() - _this.openTime < 300) {\n return;\n }\n if (e.target === e.currentTarget && !_this.dialogMouseDown) {\n _this.close(e);\n }\n };\n _this.onKeyDown = function (e) {\n var props = _this.props;\n if (props.keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n _this.close(e);\n return;\n }\n // keep focus inside dialog\n if (props.visible) {\n if (e.keyCode === KeyCode.TAB) {\n var activeElement = document.activeElement;\n var sentinelStart = _this.sentinelStart;\n if (e.shiftKey) {\n if (activeElement === sentinelStart) {\n _this.sentinelEnd.focus();\n }\n } else if (activeElement === _this.sentinelEnd) {\n sentinelStart.focus();\n }\n }\n }\n };\n _this.getDialogElement = function () {\n var props = _this.props;\n var closable = props.closable;\n var prefixCls = props.prefixCls;\n var dest = {};\n if (props.width !== undefined) {\n dest.width = props.width;\n }\n if (props.height !== undefined) {\n dest.height = props.height;\n }\n var footer = void 0;\n if (props.footer) {\n footer = React.createElement(\"div\", { className: prefixCls + '-footer', ref: _this.saveRef('footer') }, props.footer);\n }\n var header = void 0;\n if (props.title) {\n header = React.createElement(\"div\", { className: prefixCls + '-header', ref: _this.saveRef('header') }, React.createElement(\"div\", { className: prefixCls + '-title', id: _this.titleId }, props.title));\n }\n var closer = void 0;\n if (closable) {\n closer = React.createElement(\"button\", { type: \"button\", onClick: _this.close, \"aria-label\": \"Close\", className: prefixCls + '-close' }, props.closeIcon || React.createElement(\"span\", { className: prefixCls + '-close-x' }));\n }\n var style = _extends({}, props.style, dest);\n var sentinelStyle = { width: 0, height: 0, overflow: 'hidden', outline: 'none' };\n var transitionName = _this.getTransitionName();\n var dialogElement = React.createElement(LazyRenderBox, { key: \"dialog-element\", role: \"document\", ref: _this.saveRef('dialog'), style: style, className: prefixCls + ' ' + (props.className || ''), visible: props.visible, forceRender: props.forceRender, onMouseDown: _this.onDialogMouseDown }, React.createElement(\"div\", { tabIndex: 0, ref: _this.saveRef('sentinelStart'), style: sentinelStyle, \"aria-hidden\": \"true\" }), React.createElement(\"div\", { className: prefixCls + '-content' }, closer, header, React.createElement(\"div\", _extends({ className: prefixCls + '-body', style: props.bodyStyle, ref: _this.saveRef('body') }, props.bodyProps), props.children), footer), React.createElement(\"div\", { tabIndex: 0, ref: _this.saveRef('sentinelEnd'), style: sentinelStyle, \"aria-hidden\": \"true\" }));\n return React.createElement(Animate, { key: \"dialog\", showProp: \"visible\", onLeave: _this.onAnimateLeave, transitionName: transitionName, component: \"\", transitionAppear: true }, props.visible || !props.destroyOnClose ? dialogElement : null);\n };\n _this.getZIndexStyle = function () {\n var style = {};\n var props = _this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n };\n _this.getWrapStyle = function () {\n return _extends({}, _this.getZIndexStyle(), _this.props.wrapStyle);\n };\n _this.getMaskStyle = function () {\n return _extends({}, _this.getZIndexStyle(), _this.props.maskStyle);\n };\n _this.getMaskElement = function () {\n var props = _this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = _this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, _extends({ style: _this.getMaskStyle(), key: \"mask\", className: props.prefixCls + '-mask', hiddenClassName: props.prefixCls + '-mask-hidden', visible: props.visible }, props.maskProps));\n if (maskTransition) {\n maskElement = React.createElement(Animate, { key: \"mask\", showProp: \"visible\", transitionAppear: true, component: \"\", transitionName: maskTransition }, maskElement);\n }\n }\n return maskElement;\n };\n _this.getMaskTransitionName = function () {\n var props = _this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n };\n _this.getTransitionName = function () {\n var props = _this.props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n };\n _this.close = function (e) {\n var onClose = _this.props.onClose;\n\n if (onClose) {\n onClose(e);\n }\n };\n _this.saveRef = function (name) {\n return function (node) {\n _this[name] = node;\n };\n };\n _this.titleId = 'rcDialogTitle' + uuid++;\n _this.switchScrollingEffect = props.switchScrollingEffect || function () {};\n return _this;\n }\n\n Dialog.prototype.componentDidMount = function componentDidMount() {\n this.componentDidUpdate({});\n // if forceRender is true, set element style display to be none;\n if ((this.props.forceRender || this.props.getContainer === false && !this.props.visible) && this.wrap) {\n this.wrap.style.display = 'none';\n }\n };\n\n Dialog.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _props = this.props,\n visible = _props.visible,\n mask = _props.mask,\n focusTriggerAfterClose = _props.focusTriggerAfterClose;\n\n var mousePosition = this.props.mousePosition;\n if (visible) {\n // first show\n if (!prevProps.visible) {\n this.openTime = Date.now();\n this.switchScrollingEffect();\n this.tryFocus();\n var dialogNode = ReactDOM.findDOMNode(this.dialog);\n if (mousePosition) {\n var elOffset = offset(dialogNode);\n setTransformOrigin(dialogNode, mousePosition.x - elOffset.left + 'px ' + (mousePosition.y - elOffset.top) + 'px');\n } else {\n setTransformOrigin(dialogNode, '');\n }\n }\n } else if (prevProps.visible) {\n this.inTransition = true;\n if (mask && this.lastOutSideFocusNode && focusTriggerAfterClose) {\n try {\n this.lastOutSideFocusNode.focus();\n } catch (e) {\n this.lastOutSideFocusNode = null;\n }\n this.lastOutSideFocusNode = null;\n }\n }\n };\n\n Dialog.prototype.componentWillUnmount = function componentWillUnmount() {\n var _props2 = this.props,\n visible = _props2.visible,\n getOpenCount = _props2.getOpenCount;\n\n if ((visible || this.inTransition) && !getOpenCount()) {\n this.switchScrollingEffect();\n }\n clearTimeout(this.timeoutId);\n };\n\n Dialog.prototype.tryFocus = function tryFocus() {\n if (!contains(this.wrap, document.activeElement)) {\n this.lastOutSideFocusNode = document.activeElement;\n this.sentinelStart.focus();\n }\n };\n\n Dialog.prototype.render = function render() {\n var props = this.props;\n var prefixCls = props.prefixCls,\n maskClosable = props.maskClosable;\n\n var style = this.getWrapStyle();\n // clear hide display\n // and only set display after async anim, not here for hide\n if (props.visible) {\n style.display = null;\n }\n return React.createElement(\"div\", { className: prefixCls + '-root' }, this.getMaskElement(), React.createElement(\"div\", _extends({ tabIndex: -1, onKeyDown: this.onKeyDown, className: prefixCls + '-wrap ' + (props.wrapClassName || ''), ref: this.saveRef('wrap'), onClick: maskClosable ? this.onMaskClick : null, onMouseUp: maskClosable ? this.onMaskMouseUp : null, role: \"dialog\", \"aria-labelledby\": props.title ? this.titleId : null, style: style }, props.wrapProps), this.getDialogElement()));\n };\n\n return Dialog;\n}(React.Component);\n\nexport default Dialog;\n\nDialog.defaultProps = {\n className: '',\n mask: true,\n visible: false,\n keyboard: true,\n closable: true,\n maskClosable: true,\n destroyOnClose: false,\n prefixCls: 'rc-dialog',\n focusTriggerAfterClose: true\n};","var cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\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\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n\n return cached;\n}","/**\n * Easy to set element style, return previous style\n * IE browser compatible(IE browser doesn't merge overflow style, need to set it separately)\n * https://github.com/ant-design/ant-design/issues/19393\n *\n */\nfunction setStyle(style) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$element = options.element,\n element = _options$element === void 0 ? document.body : _options$element;\n var oldStyle = {};\n var styleKeys = Object.keys(style); // IE browser compatible\n\n styleKeys.forEach(function (key) {\n oldStyle[key] = element.style[key];\n });\n styleKeys.forEach(function (key) {\n element.style[key] = style[key];\n });\n return oldStyle;\n}\n\nexport default setStyle;","import getScrollBarSize from './getScrollBarSize';\nimport setStyle from './setStyle';\n\nfunction isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}\n\nvar cacheStyle = {};\nexport default (function (close) {\n if (!isBodyOverflowing() && !close) {\n return;\n } // https://github.com/ant-design/ant-design/issues/19729\n\n\n var scrollingEffectClassName = 'ant-scrolling-effect';\n var scrollingEffectClassNameReg = new RegExp(\"\".concat(scrollingEffectClassName), 'g');\n var bodyClassName = document.body.className;\n\n if (close) {\n if (!scrollingEffectClassNameReg.test(bodyClassName)) return;\n setStyle(cacheStyle);\n cacheStyle = {};\n document.body.className = bodyClassName.replace(scrollingEffectClassNameReg, '').trim();\n return;\n }\n\n var scrollBarSize = getScrollBarSize();\n\n if (scrollBarSize) {\n cacheStyle = setStyle({\n position: 'relative',\n width: \"calc(100% - \".concat(scrollBarSize, \"px)\")\n });\n\n if (!scrollingEffectClassNameReg.test(bodyClassName)) {\n var addClassName = \"\".concat(bodyClassName, \" \").concat(scrollingEffectClassName);\n document.body.className = addClassName.trim();\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* eslint-disable no-underscore-dangle,react/require-default-props */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport ContainerRender from './ContainerRender';\nimport Portal from './Portal';\nimport switchScrollingEffect from './switchScrollingEffect';\nimport setStyle from './setStyle';\nvar openCount = 0;\nvar windowIsUndefined = !(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar IS_REACT_16 = ('createPortal' in ReactDOM); // https://github.com/ant-design/ant-design/issues/19340\n// https://github.com/ant-design/ant-design/issues/19332\n\nvar cacheOverflow = {};\n\nvar PortalWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(PortalWrapper, _React$Component);\n\n var _super = _createSuper(PortalWrapper);\n\n function PortalWrapper(props) {\n var _this;\n\n _classCallCheck(this, PortalWrapper);\n\n _this = _super.call(this, props);\n\n _this.getParent = function () {\n var getContainer = _this.props.getContainer;\n\n if (getContainer) {\n if (typeof getContainer === 'string') {\n return document.querySelectorAll(getContainer)[0];\n }\n\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n\n if (_typeof(getContainer) === 'object' && getContainer instanceof window.HTMLElement) {\n return getContainer;\n }\n }\n\n return document.body;\n };\n\n _this.getContainer = function () {\n if (windowIsUndefined) {\n return null;\n }\n\n if (!_this.container) {\n _this.container = document.createElement('div');\n\n var parent = _this.getParent();\n\n if (parent) {\n parent.appendChild(_this.container);\n }\n }\n\n _this.setWrapperClassName();\n\n return _this.container;\n };\n\n _this.setWrapperClassName = function () {\n var wrapperClassName = _this.props.wrapperClassName;\n\n if (_this.container && wrapperClassName && wrapperClassName !== _this.container.className) {\n _this.container.className = wrapperClassName;\n }\n };\n\n _this.savePortal = function (c) {\n // Warning: don't rename _component\n // https://github.com/react-component/util/pull/65#discussion_r352407916\n _this._component = c;\n };\n\n _this.removeCurrentContainer = function (visible) {\n _this.container = null;\n _this._component = null;\n\n if (!IS_REACT_16) {\n if (visible) {\n _this.renderComponent({\n afterClose: _this.removeContainer,\n onClose: function onClose() {},\n visible: false\n });\n } else {\n _this.removeContainer();\n }\n }\n };\n\n _this.switchScrollingEffect = function () {\n if (openCount === 1 && !Object.keys(cacheOverflow).length) {\n switchScrollingEffect(); // Must be set after switchScrollingEffect\n\n cacheOverflow = setStyle({\n overflow: 'hidden',\n overflowX: 'hidden',\n overflowY: 'hidden'\n });\n } else if (!openCount) {\n setStyle(cacheOverflow);\n cacheOverflow = {};\n switchScrollingEffect(true);\n }\n };\n\n var _visible = props.visible;\n openCount = _visible ? openCount + 1 : openCount;\n _this.state = {\n _self: _assertThisInitialized(_this)\n };\n return _this;\n }\n\n _createClass(PortalWrapper, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.setWrapperClassName();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var visible = this.props.visible; // 离开时不会 render, 导到离开时数值不变,改用 func 。。\n\n openCount = visible && openCount ? openCount - 1 : openCount;\n this.removeCurrentContainer(visible);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n forceRender = _this$props.forceRender,\n visible = _this$props.visible;\n var portal = null;\n var childProps = {\n getOpenCount: function getOpenCount() {\n return openCount;\n },\n getContainer: this.getContainer,\n switchScrollingEffect: this.switchScrollingEffect\n }; // suppport react15\n\n if (!IS_REACT_16) {\n return /*#__PURE__*/React.createElement(ContainerRender, {\n parent: this,\n visible: visible,\n autoDestroy: false,\n getComponent: function getComponent() {\n var extra = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return children(_objectSpread(_objectSpread(_objectSpread({}, extra), childProps), {}, {\n ref: _this2.savePortal\n }));\n },\n getContainer: this.getContainer,\n forceRender: forceRender\n }, function (_ref) {\n var renderComponent = _ref.renderComponent,\n removeContainer = _ref.removeContainer;\n _this2.renderComponent = renderComponent;\n _this2.removeContainer = removeContainer;\n return null;\n });\n }\n\n if (forceRender || visible || this._component) {\n portal = /*#__PURE__*/React.createElement(Portal, {\n getContainer: this.getContainer,\n ref: this.savePortal\n }, children(childProps));\n }\n\n return portal;\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, _ref2) {\n var prevProps = _ref2.prevProps,\n _self = _ref2._self;\n var visible = props.visible,\n getContainer = props.getContainer;\n\n if (prevProps) {\n var prevVisible = prevProps.visible,\n prevGetContainer = prevProps.getContainer;\n\n if (visible !== prevVisible) {\n openCount = visible && !prevVisible ? openCount + 1 : openCount - 1;\n }\n\n var getContainerIsFunc = typeof getContainer === 'function' && typeof prevGetContainer === 'function';\n\n if (getContainerIsFunc ? getContainer.toString() !== prevGetContainer.toString() : getContainer !== prevGetContainer) {\n _self.removeCurrentContainer(false);\n }\n }\n\n return {\n prevProps: props\n };\n }\n }]);\n\n return PortalWrapper;\n}(React.Component);\n\nPortalWrapper.propTypes = {\n wrapperClassName: PropTypes.string,\n forceRender: PropTypes.bool,\n getContainer: PropTypes.any,\n children: PropTypes.func,\n visible: PropTypes.bool\n};\nexport default polyfill(PortalWrapper);","import _extends from 'babel-runtime/helpers/extends';\nimport * as React from 'react';\nimport Dialog from './Dialog';\nimport Portal from 'rc-util/es/PortalWrapper';\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* */\nexport default (function (props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender;\n // 渲染在当前 dom 里;\n\n if (getContainer === false) {\n return React.createElement(Dialog, _extends({}, props, { getOpenCount: function getOpenCount() {\n return 2;\n } }));\n }\n return React.createElement(Portal, { visible: visible, forceRender: forceRender, getContainer: getContainer }, function (childProps) {\n return React.createElement(Dialog, _extends({}, props, childProps));\n });\n});","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nvar Pager = function Pager(props) {\n var _classNames;\n\n var prefixCls = props.rootPrefixCls + '-item';\n var cls = classNames(prefixCls, prefixCls + '-' + props.page, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-active', props.active), _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, prefixCls + '-disabled', !props.page), _classNames));\n\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n\n return React.createElement(\n 'li',\n {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: '0'\n },\n props.itemRender(props.page, 'page', React.createElement(\n 'a',\n null,\n props.page\n ))\n );\n};\n\nPager.propTypes = {\n page: PropTypes.number,\n active: PropTypes.bool,\n last: PropTypes.bool,\n locale: PropTypes.object,\n className: PropTypes.string,\n showTitle: PropTypes.bool,\n rootPrefixCls: PropTypes.string,\n onClick: PropTypes.func,\n onKeyPress: PropTypes.func,\n itemRender: PropTypes.func\n};\n\nexport default Pager;","export default {\n ZERO: 48,\n NINE: 57,\n\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport KEYCODE from './KeyCode';\n\nvar Options = function (_React$Component) {\n _inherits(Options, _React$Component);\n\n function Options() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Options);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Options.__proto__ || Object.getPrototypeOf(Options)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n goInputText: ''\n }, _this.buildOptionText = function (value) {\n return value + ' ' + _this.props.locale.items_per_page;\n }, _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n }, _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\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\n if (goButton) {\n return;\n }\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(rootPrefixCls + '-prev') >= 0 || e.relatedTarget.className.indexOf(rootPrefixCls + '-next') >= 0)) {\n return;\n }\n quickGo(_this.getValidValue());\n }, _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n\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 }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Options, [{\n key: 'getValidValue',\n value: function getValidValue() {\n var _state = this.state,\n goInputText = _state.goInputText,\n current = _state.current;\n\n return !goInputText || isNaN(goInputText) ? current : Number(goInputText);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n pageSize = _props.pageSize,\n pageSizeOptions = _props.pageSizeOptions,\n locale = _props.locale,\n rootPrefixCls = _props.rootPrefixCls,\n changeSize = _props.changeSize,\n quickGo = _props.quickGo,\n goButton = _props.goButton,\n selectComponentClass = _props.selectComponentClass,\n buildOptionText = _props.buildOptionText,\n selectPrefixCls = _props.selectPrefixCls,\n disabled = _props.disabled;\n var goInputText = this.state.goInputText;\n\n var prefixCls = rootPrefixCls + '-options';\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return React.createElement(\n Select.Option,\n { key: i, value: opt },\n (buildOptionText || _this2.buildOptionText)(opt)\n );\n });\n\n changeSelect = React.createElement(\n Select,\n {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: 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 },\n options\n );\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? React.createElement(\n 'button',\n {\n type: 'button',\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled\n },\n locale.jump_to_confirm\n ) : React.createElement(\n 'span',\n {\n onClick: this.go,\n onKeyUp: this.go\n },\n goButton\n );\n }\n goInput = React.createElement(\n 'div',\n { className: prefixCls + '-quick-jumper' },\n locale.jump_to,\n 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 }),\n locale.page,\n gotoButton\n );\n }\n\n return React.createElement(\n 'li',\n { className: '' + prefixCls },\n changeSelect,\n goInput\n );\n }\n }]);\n\n return Options;\n}(React.Component);\n\nOptions.propTypes = {\n disabled: PropTypes.bool,\n changeSize: PropTypes.func,\n quickGo: PropTypes.func,\n selectComponentClass: PropTypes.func,\n current: PropTypes.number,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.string),\n pageSize: PropTypes.number,\n buildOptionText: PropTypes.func,\n locale: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n selectPrefixCls: PropTypes.string,\n goButton: PropTypes.oneOfType([PropTypes.bool, PropTypes.node])\n};\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '30', '40']\n};\n\n\nexport default Options;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction noop() {}\n\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = p;\n if (typeof pageSize === 'undefined') {\n pageSize = state.pageSize;\n }\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nvar Pagination = function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n function Pagination(props) {\n _classCallCheck(this, Pagination);\n\n var _this = _possibleConstructorReturn(this, (Pagination.__proto__ || Object.getPrototypeOf(Pagination)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = 'current' in props;\n if (hasCurrent && !hasOnChange) {\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.'); // eslint-disable-line\n }\n\n var current = props.defaultCurrent;\n if ('current' in props) {\n current = props.current;\n }\n\n var pageSize = props.defaultPageSize;\n if ('pageSize' in props) {\n pageSize = props.pageSize;\n }\n\n current = Math.min(current, calculatePage(pageSize, undefined, props));\n\n _this.state = {\n current: current,\n currentInputValue: current,\n pageSize: pageSize\n };\n return _this;\n }\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\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector('.' + prefixCls + '-item-' + 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\n var value = void 0;\n if (inputValue === '') {\n value = inputValue;\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: 'render',\n value: function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n className = _props.className,\n disabled = _props.disabled;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (this.props.hideOnSinglePage === true && this.props.total <= this.state.pageSize) {\n return null;\n }\n\n var props = this.props;\n var locale = props.locale;\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\n var goButton = props.showQuickJumper && props.showQuickJumper.goButton;\n var pageBufferSize = props.showLessItems ? 1 : 2;\n var _state = this.state,\n current = _state.current,\n pageSize = _state.pageSize;\n\n\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n\n var dataOrAriaAttributeProps = Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n\n if (props.simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = React.createElement(\n 'button',\n {\n type: 'button',\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n },\n locale.jump_to_confirm\n );\n } else {\n gotoButton = React.createElement(\n 'span',\n {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n },\n goButton\n );\n }\n gotoButton = React.createElement(\n 'li',\n {\n title: props.showTitle ? '' + locale.jump_to + this.state.current + '/' + allPages : null,\n className: prefixCls + '-simple-pager'\n },\n gotoButton\n );\n }\n\n return React.createElement(\n 'ul',\n _extends({\n className: prefixCls + ' ' + prefixCls + '-simple ' + props.className,\n style: props.style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps),\n React.createElement(\n 'li',\n {\n title: props.showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: (this.hasPrev() ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev',\n 'aria-disabled': !this.hasPrev()\n },\n props.itemRender(prevPage, 'prev', this.getItemIcon(props.prevIcon))\n ),\n React.createElement(\n 'li',\n {\n title: props.showTitle ? this.state.current + '/' + allPages : null,\n className: prefixCls + '-simple-pager'\n },\n React.createElement('input', {\n type: 'text',\n value: this.state.currentInputValue,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n size: '3'\n }),\n React.createElement(\n 'span',\n { className: prefixCls + '-slash' },\n '/'\n ),\n allPages\n ),\n React.createElement(\n 'li',\n {\n title: props.showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: (this.hasNext() ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next',\n 'aria-disabled': !this.hasNext()\n },\n props.itemRender(nextPage, 'next', this.getItemIcon(props.nextIcon))\n ),\n gotoButton\n );\n }\n\n if (allPages <= 5 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: props.showTitle,\n itemRender: props.itemRender\n };\n if (!allPages) {\n pagerList.push(React.createElement(Pager, _extends({}, pagerProps, {\n key: 'noPager',\n page: allPages,\n className: prefixCls + '-disabled'\n })));\n }\n for (var i = 1; i <= allPages; i++) {\n var active = this.state.current === i;\n pagerList.push(React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = props.showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = props.showLessItems ? locale.next_3 : locale.next_5;\n if (props.showPrevNextJumpers) {\n var jumpPrevClassString = prefixCls + '-jump-prev';\n if (props.jumpPrevIcon) {\n jumpPrevClassString += ' ' + prefixCls + '-jump-prev-custom-icon';\n }\n jumpPrev = React.createElement(\n 'li',\n {\n title: props.showTitle ? prevItemTitle : null,\n key: 'prev',\n onClick: this.jumpPrev,\n tabIndex: '0',\n onKeyPress: this.runIfEnterJumpPrev,\n className: jumpPrevClassString\n },\n props.itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(props.jumpPrevIcon))\n );\n var jumpNextClassString = prefixCls + '-jump-next';\n if (props.jumpNextIcon) {\n jumpNextClassString += ' ' + prefixCls + '-jump-next-custom-icon';\n }\n jumpNext = React.createElement(\n 'li',\n {\n title: props.showTitle ? nextItemTitle : null,\n key: 'next',\n tabIndex: '0',\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: jumpNextClassString\n },\n props.itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(props.jumpNextIcon))\n );\n }\n lastPager = React.createElement(Pager, {\n locale: props.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: props.showTitle,\n itemRender: props.itemRender\n });\n firstPager = React.createElement(Pager, {\n locale: props.locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: props.showTitle,\n itemRender: props.itemRender\n });\n\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i++) {\n var _active = current === _i;\n pagerList.push(React.createElement(Pager, {\n locale: props.locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: props.showTitle,\n itemRender: props.itemRender\n }));\n }\n\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = React.cloneElement(pagerList[0], {\n className: 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] = React.cloneElement(pagerList[pagerList.length - 1], {\n className: prefixCls + '-item-before-jump-next'\n });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (props.showTotal) {\n totalText = React.createElement(\n 'li',\n { className: prefixCls + '-total-text' },\n props.showTotal(props.total, [props.total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > props.total ? props.total : current * pageSize])\n );\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return React.createElement(\n 'ul',\n _extends({\n className: classNames(prefixCls, className, _defineProperty({}, prefixCls + '-disabled', disabled)),\n style: props.style,\n unselectable: 'unselectable',\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps),\n totalText,\n React.createElement(\n 'li',\n {\n title: props.showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: (!prevDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev',\n 'aria-disabled': prevDisabled\n },\n props.itemRender(prevPage, 'prev', this.getItemIcon(props.prevIcon))\n ),\n pagerList,\n React.createElement(\n 'li',\n {\n title: props.showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: (!nextDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next',\n 'aria-disabled': nextDisabled\n },\n props.itemRender(nextPage, 'next', this.getItemIcon(props.nextIcon))\n ),\n React.createElement(Options, {\n disabled: disabled,\n locale: props.locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: props.selectComponentClass,\n selectPrefixCls: props.selectPrefixCls,\n changeSize: this.props.showSizeChanger ? this.changePageSize : null,\n current: this.state.current,\n pageSize: this.state.pageSize,\n pageSizeOptions: this.props.pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n })\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n\n if ('current' in props) {\n newState.current = props.current;\n\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\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\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n newState.pageSize = props.pageSize;\n }\n\n return newState;\n }\n\n /**\n * computed icon node that need to be rendered.\n * @param {React.ReactNode | React.ComponentType<PaginationProps>} icon received icon.\n * @returns {React.ReactNode}\n */\n\n }]);\n\n return Pagination;\n}(React.Component);\n\nPagination.propTypes = {\n disabled: PropTypes.bool,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n current: PropTypes.number,\n defaultCurrent: PropTypes.number,\n total: PropTypes.number,\n pageSize: PropTypes.number,\n defaultPageSize: PropTypes.number,\n onChange: PropTypes.func,\n hideOnSinglePage: PropTypes.bool,\n showSizeChanger: PropTypes.bool,\n showLessItems: PropTypes.bool,\n onShowSizeChange: PropTypes.func,\n selectComponentClass: PropTypes.func,\n showPrevNextJumpers: PropTypes.bool,\n showQuickJumper: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n showTitle: PropTypes.bool,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.string),\n showTotal: PropTypes.func,\n locale: PropTypes.object,\n style: PropTypes.object,\n itemRender: PropTypes.func,\n prevIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n nextIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n jumpPrevIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n jumpNextIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node])\n};\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 showSizeChanger: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.getJumpPrevPage = function () {\n return Math.max(1, _this2.state.current - (_this2.props.showLessItems ? 3 : 5));\n };\n\n this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this2.state, _this2.props), _this2.state.current + (_this2.props.showLessItems ? 3 : 5));\n };\n\n this.getItemIcon = function (icon) {\n var prefixCls = _this2.props.prefixCls;\n\n var iconNode = icon || React.createElement('a', { className: prefixCls + '-item-link' });\n if (typeof icon === 'function') {\n iconNode = React.createElement(icon, _extends({}, _this2.props));\n }\n return iconNode;\n };\n\n this.savePaginationNode = function (node) {\n _this2.paginationNode = node;\n };\n\n this.isValid = function (page) {\n return isInteger(page) && page !== _this2.state.current;\n };\n\n this.shouldDisplayQuickJumper = function () {\n var _props2 = _this2.props,\n showQuickJumper = _props2.showQuickJumper,\n pageSize = _props2.pageSize,\n total = _props2.total;\n\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n };\n\n this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n\n this.handleKeyUp = function (e) {\n var value = _this2.getValidValue(e);\n var currentInputValue = _this2.state.currentInputValue;\n\n if (value !== currentInputValue) {\n _this2.setState({\n currentInputValue: value\n });\n }\n if (e.keyCode === KEYCODE.ENTER) {\n _this2.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this2.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this2.handleChange(value + 1);\n }\n };\n\n this.changePageSize = function (size) {\n var current = _this2.state.current;\n var newCurrent = calculatePage(size, _this2.state, _this2.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 current = _this2.state.current;\n }\n\n if (typeof size === 'number') {\n if (!('pageSize' in _this2.props)) {\n _this2.setState({\n pageSize: size\n });\n }\n if (!('current' in _this2.props)) {\n _this2.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n _this2.props.onShowSizeChange(current, size);\n };\n\n this.handleChange = function (p) {\n var disabled = _this2.props.disabled;\n\n\n var page = p;\n if (_this2.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this2.state, _this2.props);\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n\n if (!('current' in _this2.props)) {\n _this2.setState({\n current: page,\n currentInputValue: page\n });\n }\n\n var pageSize = _this2.state.pageSize;\n _this2.props.onChange(page, pageSize);\n\n return page;\n }\n\n return _this2.state.current;\n };\n\n this.prev = function () {\n if (_this2.hasPrev()) {\n _this2.handleChange(_this2.state.current - 1);\n }\n };\n\n this.next = function () {\n if (_this2.hasNext()) {\n _this2.handleChange(_this2.state.current + 1);\n }\n };\n\n this.jumpPrev = function () {\n _this2.handleChange(_this2.getJumpPrevPage());\n };\n\n this.jumpNext = function () {\n _this2.handleChange(_this2.getJumpNextPage());\n };\n\n this.hasPrev = function () {\n return _this2.state.current > 1;\n };\n\n this.hasNext = function () {\n return _this2.state.current < calculatePage(undefined, _this2.state, _this2.props);\n };\n\n this.runIfEnter = function (event, callback) {\n for (var _len = arguments.length, restParams = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n if (event.key === 'Enter' || event.charCode === 13) {\n callback.apply(undefined, restParams);\n }\n };\n\n this.runIfEnterPrev = function (e) {\n _this2.runIfEnter(e, _this2.prev);\n };\n\n this.runIfEnterNext = function (e) {\n _this2.runIfEnter(e, _this2.next);\n };\n\n this.runIfEnterJumpPrev = function (e) {\n _this2.runIfEnter(e, _this2.jumpPrev);\n };\n\n this.runIfEnterJumpNext = function (e) {\n _this2.runIfEnter(e, _this2.jumpNext);\n };\n\n this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this2.handleChange(_this2.state.currentInputValue);\n }\n };\n};\n\npolyfill(Pagination);\n\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n\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};","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\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};\n\nexport default placements;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Content = function (_React$Component) {\n _inherits(Content, _React$Component);\n\n function Content() {\n _classCallCheck(this, Content);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Content.prototype.componentDidUpdate = function componentDidUpdate() {\n var trigger = this.props.trigger;\n\n if (trigger) {\n trigger.forcePopupAlign();\n }\n };\n\n Content.prototype.render = function render() {\n var _props = this.props,\n overlay = _props.overlay,\n prefixCls = _props.prefixCls,\n id = _props.id;\n\n return React.createElement(\n 'div',\n { className: prefixCls + '-inner', id: id, role: 'tooltip' },\n typeof overlay === 'function' ? overlay() : overlay\n );\n };\n\n return Content;\n}(React.Component);\n\nContent.propTypes = {\n prefixCls: PropTypes.string,\n overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n id: PropTypes.string,\n trigger: PropTypes.any\n};\nexport default Content;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getPopupElement = function () {\n var _this$props = _this.props,\n arrowContent = _this$props.arrowContent,\n overlay = _this$props.overlay,\n prefixCls = _this$props.prefixCls,\n id = _this$props.id;\n\n return [React.createElement(\n 'div',\n { className: prefixCls + '-arrow', key: 'arrow' },\n arrowContent\n ), React.createElement(Content, {\n key: 'content',\n trigger: _this.trigger,\n prefixCls: prefixCls,\n id: id,\n overlay: overlay\n })];\n }, _this.saveTrigger = function (node) {\n _this.trigger = node;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Tooltip.prototype.getPopupDomNode = function getPopupDomNode() {\n return this.trigger.getPopupDomNode();\n };\n\n Tooltip.prototype.render = function render() {\n var _props = this.props,\n overlayClassName = _props.overlayClassName,\n trigger = _props.trigger,\n mouseEnterDelay = _props.mouseEnterDelay,\n mouseLeaveDelay = _props.mouseLeaveDelay,\n overlayStyle = _props.overlayStyle,\n prefixCls = _props.prefixCls,\n children = _props.children,\n onVisibleChange = _props.onVisibleChange,\n afterVisibleChange = _props.afterVisibleChange,\n transitionName = _props.transitionName,\n animation = _props.animation,\n placement = _props.placement,\n align = _props.align,\n destroyTooltipOnHide = _props.destroyTooltipOnHide,\n defaultVisible = _props.defaultVisible,\n getTooltipContainer = _props.getTooltipContainer,\n restProps = _objectWithoutProperties(_props, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'children', 'onVisibleChange', 'afterVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);\n\n var extraProps = _extends({}, restProps);\n if ('visible' in this.props) {\n extraProps.popupVisible = this.props.visible;\n }\n return React.createElement(\n Trigger,\n _extends({\n popupClassName: overlayClassName,\n ref: this.saveTrigger,\n prefixCls: prefixCls,\n popup: this.getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps),\n children\n );\n };\n\n return Tooltip;\n}(Component);\n\nTooltip.propTypes = {\n trigger: PropTypes.any,\n children: PropTypes.any,\n defaultVisible: PropTypes.bool,\n visible: PropTypes.bool,\n placement: PropTypes.string,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n onVisibleChange: PropTypes.func,\n afterVisibleChange: PropTypes.func,\n overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n overlayStyle: PropTypes.object,\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n getTooltipContainer: PropTypes.func,\n destroyTooltipOnHide: PropTypes.bool,\n align: PropTypes.object,\n arrowContent: PropTypes.any,\n id: PropTypes.string\n};\nTooltip.defaultProps = {\n prefixCls: 'rc-tooltip',\n mouseEnterDelay: 0,\n destroyTooltipOnHide: false,\n mouseLeaveDelay: 0.1,\n align: {},\n placement: 'right',\n trigger: ['hover'],\n arrowContent: null\n};\n\n\nexport default Tooltip;","import Tooltip from './Tooltip';\n\nexport default Tooltip;"],"sourceRoot":""}